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>numActions()

Returns the number of actions in the list.

<node>getAction <index>index

Returns the indexed action from the list.

<bool>appendAction <node>action

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

See VolumeDocking Sample Script for a complete example.

<bool>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>removeAction <index>index

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

<bool>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>isAction <node>action

Returns true if the specified node is an action.

<bool>isOperator <node>action

Returns true if the specified node is an operator.

<bool>isTest <node>action

Returns true if the specified node is a test.

<bool>isActivated()

Returns true if activated.

<void>activate <bool>active

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

<integer>isActionActive <index>index

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

<void>activateAction <index>index <integer>active

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

<void>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>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>getPViewZOrder()

Returns the Particle View Z order.

<void>setPViewZOrder <integer>z order

Sets the Particle View Z Order. Range is from 0 to 64000.

<integer>getListWidth()

Returns the List Width.

<void>setListWidth <integer>width

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

<integer>getPViewRightBoundary()

Returns the right boundary of the Particle View.

<bool>isCollapsed()

Returns true if the action list is collapsed.

Note:

Collapsing is not implemented yet.

<void>collapse()

Collapses the action list.

Note:

Collapsing is not implemented yet.

<void>expand()

Expands the action list.

Note:

Expanding is not implemented yet.

<bool>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

Particle Flow Interfaces