Interface: ActionList

The ActionList Interface is exposed by the Event Class.

It lets you add and removed Actions to/from the Event, test the type of the Actions on the list and control the Event’s appearance in the Particle View.

   

Methods:

<integer><PF_Event>.numActions() 	 

Returns the number of actions in the list.

   

<node><PF_Event>.getAction <index>index   

Returns the indexed action from the list.

   

<bool><PF_Event>.appendAction <node>action 

Appends the specified action to the list, returns true on success.

See VolumeDocking Sample Script for a complete example.

   

<bool><PF_Event>.insertAction <node>action <index>index 

Inserts the specified action in the list at the position defined by the index value. Returns true on success.

See VolumeDocking Sample Script for a complete example.

   

<bool><PF_Event>.removeAction <index>index 

Removes the indexed action from the list. Returns true on success.

   

<bool><PF_Event>.hasAction <node>action <&index>index 

index is In and Out parameter

Returns true if the specified action is on the list. When true, the by-reference index variable will contain the actual index of the existing action on the list.

   

<bool><PF_Event>.isAction <node>action 

Returns true if the specified node is an action.

   

<bool><PF_Event>.isOperator <node>action 

Returns true if the specified node is an operator.

   

<bool><PF_Event>.isTest <node>action 

Returns true if the specified node is a test.

   

<bool><PF_Event>.isActivated() 

Returns true if activated.

   

<void><PF_Event>.activate <bool>active 

Sets the active state to the boolean value specified by the active parameter.

   

<integer><PF_Event>.isActionActive <index>index 

Returns 1 if the indexed action is active, 0 otherwise.

   

<void><PF_Event>.activateAction <index>index <integer>active 

Sets the active flag of the indexed action. 0 = inactive, 1= active

   

<void><PF_Event>.getPViewLocation <&integer>x <&integer>y 

x is In and Out parameter 
y is In and Out parameter 

Returns the x and y location of the Particle View in the by-reference parameters.

   

<void><PF_Event>.setPViewLocation <integer>x <integer>y 

Sets the Particle View location to the specified integer values.

X and Y Range is from 0 to 64000.

   

<integer><PF_Event>.getPViewZOrder() 

Returns the Particle View Z order.

   

<void><PF_Event>.setPViewZOrder <integer>z order 

Sets the Particle View Z Order. Range is from0 to 64000.

   

<integer><PF_Event>.getListWidth() 

Returns the List Width.

   

<void>setListWidth <integer>width 

Sets the List width. Range is from 100 to 1000 pixels.

   

<integer><PF_Event>.getPViewRightBoundary() 

Returns the right boundary of the Particle View.

   

<bool><PF_Event>.isCollapsed() 

Returns true if the action list is collapsed.

NOTE:Collapsing is not implemented yet.

   

<void><PF_Event>.collapse() 

Collapses the action list.

NOTE:Collapsing is not implemented yet.

   

<void><PF_Event>.expand() 

Expands the action list.

NOTE:Expanding is not implemented yet.

   

<bool><PF_Event>.hasUpStream() 

Returns true if the action list has an upstream list.

EXAMPLES AND RESULTS

--Open Particle View to see results
ParticleFlow.openParticleView()
--Create an empty event
ev = Event()
--> $Event:Event 02 @ [0.000000,0.000000,0.000000]
--Get the number of actions - the Event IS empty...
ev.numActions()
--> 0
--Disable Automatic Event Encapsulation
particleFlow.beginEdit()
--> OK
--Create a new Find_Target Action
ft = find_target()
--> $Find_Target:Find Target 01 @ [0.000000,0.000000,0.000000]
--Enable Encapsulation again
particleFlow.endEdit()
--> OK
--Append the Find_Target to the Event
ev.appendAction ft
--> true
--Get the first action in the Event...
ev.getAction 1
--> $Find_Target:Find Target 01 @ [0.000000,0.000000,0.000000]
--Let’s create another Action...
particleFlow.beginEdit()
--> OK
--This time a Birth Action
bt = birth()
--> $Birth:Birth 01 @ [0.000000,0.000000,0.000000]
particleFlow.endEdit()
--> OK
--Insert the Birth at first position
ev.insertAction bt 1
--> true
--Try to insert the Find_Target
--You cannot - it is already in the Event!
ev.insertAction ft 1
--> false
--Remove the second event (Find_Target)
ev.removeAction 2
--> true
--Initialize a variable to pass by reference
ind = 0
--> 0
--Check if the Birth is in the Event - It is!
ev.hasAction bt &ind
--> true
--The by-reference variable has the index
ind
--> 1
--See if Find_Target is also there -
--It isn’t anymore.
ev.hasAction ft &ind
--> false
--See if Birth is an Action...
ev.isAction bt
--> true
--See if Find_Target is an Action...
ev.isAction ft
--> true
--See if Birth is an Operator...
ev.isOperator bt
--> true
--See if Find_Target is an Operator...
ev.isOperator ft
--> false
--See if Birth is a Test...
ev.isTest bt
--> false
--See if Find_Target is a Test...
ev.isTest ft
--> true
--See if the Event is activated...
ev.isActivated()
--> true
--Deactivate it!
ev.activate false
--> OK
--Now it is deactivated.
ev.isActivated()
--> false
--Activate it again.
ev.activate true
--> OK
--Works!
ev.isActivated()
--> true
--See if the Birth action is active
ev.isActionActive 1
--> 1
 
--Deactivate the Birth action
ev.activateAction 1 0
--> OK
--Did it work?
ev.isActionActive 1
--> 0
--Back to Active
ev.activateAction 1 1
--> OK
--Birth is back to work!
ev.isActionActive 1
--> 1
--Initialize some variables to pass by reference
x = y = 0
--> 0
--Get the Event location in Particle View
ev.getPViewLocation &x &y
--> OK
--X now contains the X coordinate...
x
--> 27
--...and Y the Y coordinate
y
--> 14
--Let’s change the location to 40,40
ev.setPViewLocation 40 40
--> OK
--Get again to make sure it worked...
ev.getPViewLocation &x &y
--> OK
x
--> 40
y
--> 40
--Get the Z order of the Event
ev.getPViewZOrder()
--> 1
--Set the Z order down to 0
ev.setPViewZOrder 0
--> OK
--Check that it worked
ev.getPViewZOrder()
--> 0
--Get the width of the Event
ev.getListWidth()
--> 180
--Set the width to something larger
ev.setListWidth 300
--> OK
--It worked (you should see it in PView)
ev.getPViewRightBoundary()
--> 300
--Make it smaller
ev.setListWidth 100
--> OK
--Check where the right boundary is
ev.getPViewRightBoundary()
--> 100
--Get the collapsed state of the Event - currently it will
--always return false, this is for Future Use.
ev.isCollapsed()
--> false
--Note: Not Implemented Yet!
ev.collapse()
--> OK
--Note: Not Implemented Yet!
ev.expand()
--> OK
--See if there are Events upstream - there are none
ev.hasUpStream()
--> false

This Interface is available in:

Event : Helper

See Also