The test Interface is exposed by all Test Classes.
Methods:
<void><PFlowTest>.proceedStep1 <IObject>container <object>particleSystem <node>particleSystemNode <node>actionNode <Interface>integrator
<IObject>container
- the current particle container. Can be accessed via the Interface: MaxscriptParticleContainer inside a hander using pCont.GetParticleContainer()
<object>particleSystem
- the particle system that generates the particle stream.
The same operator may get calls from different particle systems. If the result varies according to the particle system that generates particles, then this parameter defines which one to be used.
<node>particleSystemNode
- Node of the particle system that generates the particles.
<node>actionNode
- Node of the Test action.
<Interface>integrator
- an operator to proceed particles according to "inertia" rules. The operator updates time, speed, position, spin, orientation channels on the basis of time, acceleration, speed, angular acceleration and spin channels. Each particle system has a default inertia operator. When an action wants to update the current time for particles, it uses the "inertia" operator. An Action in the ActionList stack may "switch" the suggested "inertia" operator by its own if the Action supports the "inertial" operator interface. The particle system recognizes such an Action as a holder of "inertia" interface, and uses it for "inertia" purposes later on. If the parameter is NULL then the particle system doesn't allow the test to advance particles in the time channel.
<boolean><PFlowTest>.proceedStep2 <time>timeStartTick <float>timeStartFraction <&time>timeEndTick <&float>timeEndFraction <&bitArray>testResult <&float array>testTime
timeEndTick is In and Out parameter
timeEndFraction is In and Out parameter
testResult is In and Out parameter
testTime is In and Out parameter
Returns true if the test has been proceeded successfully.
The proceedStep1
and proceedStep2
verify the test condition and may change particle channels. Particles that satisfy the condition may be advanced to the time of the condition satisfaction according to the inertia operator integrator
.
<time>timeStartTick
- The time for a particle to start the simulation. Each particle may have its own current valid time greater than timeStart. In this case the test should consider the current particle time and timeEnd parameter.
<float>timeStartFraction
<&float>timeEndFraction
- Float portion of the real TimeValue
<&bitArray>testResult
- A bit array indicating which particles satisfy the test condition
<&float array>testTime
- For particles that satisfy the condition, the list of time moments when a particle satisfies the condition. The tab has the same number of entries as particles in the container. The entry is set only for particles that satisfy the condition .
See Speed Operator in Script Operator Example for sample usage.
<node><PFlowTest>.getNextActionList <node>testNode <*bool>linkActive
linkActive is In and Out parameter
Returns the next Action List of the specified testNode. This is basically the ActionList (Event) wired to the Test. If a particle satisfies the test then it is directed to this Action List. Since a Test may have several instances with different next events, it is necessary to pass the TestNode as parameter.
EXAMPLE
ev1_a11.GetNextActionList ev1_a11 false
For a complete example, see VolumeDocking Sample Script.
<boolean><PFlowTest>.setNextActionList <node>actionList <node>testNode
Wires the specified testNode to the supplied actionList node. Returns true on success. The next actionList node can be rejected if it is not a real actionList.
<boolean><PFlowTest>.clearNextActionList <node>testNode
Disconnects the specified testNode from its Action List.
<boolean><PFlowTest>.setLinkActive <boolean>linkActive <node>testNode
Will set the Active status of the Link to the supplied boolean value for the specified testNode. Returns true on success.
EXAMPLE
ev1_a11.setLinkActive true ev1_a11
For a complete example, see VolumeDocking Sample Script.
This Interface is available in: