Enumerator | Functions | Variables

IPFTest.h

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

Function Documentation

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.

Parameters:
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.

PFExport INode * GetNextActionList ( INode test,
bool *  linkActive = NULL 
) [inherited]

Gets INode of the next ActionList.

If particle satisfies the test then it is directed to this ActionList. Since a test may have several INode instances with different next events, it is necessary to define the INode the method returns activity status of the link to the next ActionList.

PFExport bool SetNextActionList ( INode nextAL,
INode test 
) [inherited]

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.

PFExport bool SetNextActionListMXS ( INode nextAL,
INode test 
) [inherited]

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]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

{ return GetDescByID(PFTEST_INTERFACE); }
void updateNextActionListValue ( INode nextAL ) [inline, inherited]

for internal use only

{ m_nextActionList = nextAL; }
void updateArrowValue ( Object arrow ) [inline, inherited]

for internal use only

{ m_arrow = arrow; }
void updateLinkActiveValue ( bool  linkActive ) [inline, inherited]

for internal use only

{ m_linkActive = linkActive; }

Variable Documentation

INode* m_nextActionList [protected, inherited]
Object* m_arrow [protected, inherited]
bool m_linkActive [protected, inherited]