Functions |
|
PFExport | IPFTest () |
virtual bool | Proceed (IObject *pCont, PreciseTimeValue timeStart, PreciseTimeValue &timeEnd, Object *pSystem, INode *pNode, INode *actionNode, IPFIntegrator *integrator, BitArray &testResult, Tab< float > &testTime)=0 |
Returns true if the test has been proceeded
successfully. |
|
virtual void | ProceedStep1 (IObject *pCont, Object *pSystem, INode *pNode, INode *actionNode, FPInterface *integrator)=0 |
FnPub alternative to virtual bool Proceed()
above. |
|
virtual bool | ProceedStep2 (TimeValue timeStartTick, float timeStartFraction, TimeValue &timeEndTick, float &timeEndFraction, BitArray &testResult, Tab< float > &testTime)=0 |
FnPub alternative to virtual bool Proceed()
above. |
|
PFExport INode * | GetNextActionList (INode *test, bool *linkActive=NULL) |
Gets INode of the next ActionList. |
|
PFExport bool | SetNextActionList (INode *nextAL, INode *test) |
Modifies the next ActionList for the test.
|
|
PFExport bool | SetNextActionListMXS (INode *nextAL, INode *test) |
FnPub alternative for the method above; used
by maxscript to set the next action list. |
|
PFExport bool | SetLinkActive (bool active, INode *test) |
Modifies activity status for the link to the
next ActionList. |
|
PFExport bool | ClearNextActionList (INode *test) |
Deletes the wire going to the nextActionList
for the test. |
|
FPInterfaceDesc * | GetDesc () |
void | updateNextActionListValue (INode *nextAL) |
for internal use only |
|
void | updateArrowValue (Object *arrow) |
for internal use only |
|
void | updateLinkActiveValue (bool linkActive) |
for internal use only |
|
Variables |
|
INode * | m_nextActionList |
Object * | m_arrow |
bool | m_linkActive |
PFExport IPFTest | ( | ) | [inherited] |
bool Proceed | ( | IObject * | pCont, |
PreciseTimeValue | timeStart, | ||
PreciseTimeValue & | timeEnd, | ||
Object * | pSystem, | ||
INode * | pNode, | ||
INode * | actionNode, | ||
IPFIntegrator * | integrator, | ||
BitArray & | testResult, | ||
Tab< float > & | testTime | ||
) | [pure virtual, inherited] |
Returns true if the test has been proceeded successfully.
Verifies the test condition and may change particle channels; particle (that satisfy the condition) may be advanced to the time of the condition satisfaction according to the inertia operator "integrator". If ptr to the integrator is set to NULL then particles are not advanced in time.
timeStart,: | 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. |
timeEnd,: | the time for particles to come to; each particle may have its own current valid time; the parameter sets the time for all particles to synchronize to. Sometimes the test may not be able to proceed all the particles to the given timeEnd. In this case the operator proceeds the particles as far as possible and set the parameter to the time achieved. All the following actions will be given the new timeEnd value as a time value for particles to come to, and the particle system will run another round of action stack modification in the attempt to proceed all the particles to the initially set time. |
pSystem,: | 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 is useful |
pNode,: | INode of the particle system that generates the particles. |
actionNode,: | INode of the test |
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 want to update current time for particles, it uses the "inertia" operator. An Action in the ActionList stack my "switch" the suggested "inertia" operator by its own if the Action support the "inertial" operator interface. The particle system recognizes such an Action as a holder of "inertia" interface, and use 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 |
testResult,: | a bit array to indicate which particles satisfy the test condition |
testTime,: | for particles that satisfy the condition, the list of time moments when a particle satisfies the condifion. The tab has the same number of entry as particles in the container. Only for particles that satisfy the condition the entry is set. |
void ProceedStep1 | ( | IObject * | pCont, |
Object * | pSystem, | ||
INode * | pNode, | ||
INode * | actionNode, | ||
FPInterface * | integrator | ||
) | [pure virtual, inherited] |
FnPub alternative to virtual bool Proceed() above.
FnPub doesn't allow having more than 7 parameters; therefore the method consists of two parts. The methods should be called successively: Step1 and then Step2.
bool ProceedStep2 | ( | TimeValue | timeStartTick, |
float | timeStartFraction, | ||
TimeValue & | timeEndTick, | ||
float & | timeEndFraction, | ||
BitArray & | testResult, | ||
Tab< float > & | testTime | ||
) | [pure virtual, inherited] |
FnPub alternative to virtual bool Proceed() above.
FnPub doesn't allow having more than 7 parameters; therefore the method consists of two parts. The methods should be called successively: Step1 and then Step2.
Modifies the next ActionList for the test.
Returns true if the next actionList has been set successfully. The nextAL node can be rejected if it is not real actionList.
FnPub alternative for the method above; used by maxscript to set the next action list.
PFExport bool SetLinkActive | ( | bool | active, |
INode * | test | ||
) | [inherited] |
Modifies activity status for the link to the next ActionList.
Returns true if the modification has been done successfully
PFExport bool ClearNextActionList | ( | INode * | test | ) | [inherited] |
Deletes the wire going to the nextActionList for the test.
Returns true if the wire was deleted successfully. The test node can be rejected if it is not a real test action.
FPInterfaceDesc * GetDesc | ( | ) | [inline, virtual, inherited] |
Implements FPInterface.
{ return GetDescByID(PFTEST_INTERFACE); }
void updateNextActionListValue | ( | INode * | nextAL | ) | [inline, inherited] |
void updateArrowValue | ( | Object * | arrow | ) | [inline, inherited] |
void updateLinkActiveValue | ( | bool | linkActive | ) | [inline, inherited] |
INode* m_nextActionList [protected,
inherited] |
Object* m_arrow [protected,
inherited] |
bool m_linkActive [protected,
inherited] |