3ds Max C++ API Reference
|
Functions | |
virtual bool | Proceed (IObject *pCont, PreciseTimeValue time, int index)=0 |
Proceed a single particle with the given index to the given time. More... | |
virtual bool | Proceed (IObject *pCont, PreciseTimeValue time)=0 |
Proceed all particles in the container to the given time More... | |
virtual bool | Proceed (IObject *pCont, Tab< PreciseTimeValue > ×)=0 |
Proceed all particles in the container to the given times (may be different for each particle). More... | |
virtual bool | Proceed (IObject *pCont, PreciseTimeValue time, BitArray &selected)=0 |
Proceed selected particles only to the given time. More... | |
virtual bool | Proceed (IObject *pCont, Tab< PreciseTimeValue > ×, BitArray &selected)=0 |
Proceed selected particles only to the given times (maybe different for each particle) More... | |
PFExport bool | ProceedSync (IObject *pCont, TimeValue timeTick, float timeFraction, bool isSelected, BitArray *selected) |
"function-publishing" hook-up for the methods above More... | |
PFExport bool | ProceedASync (IObject *pCont, Tab< TimeValue > *timeTicks, Tab< float > *timeFractions, bool isSelected, BitArray *selected) |
"function-publishing" hook-up for the methods above More... | |
virtual IPFIntegrator * | GetEncapsulatedIntegrator () |
An integrator may rely on another integrator to calculation some particle proceedings. More... | |
PFExport bool | HasEncapsulatedIntegrator (IPFIntegrator *integrator) |
Check if the current integrator has the given integrator encapsulated inside the encapsulated integrator can be more than one level down. More... | |
FPInterfaceDesc * | GetDesc () |
Variables | |
static Tab< IObject * > | m_objs |
Friends | |
PFExport IPFIntegrator * | GetPFIntegrator () |
Friend function declarations. More... | |
PFExport void | ReleasePFIntegrator (IPFIntegrator *) |
Friend function declarations. More... | |
|
pure virtual |
Proceed a single particle with the given index to the given time.
If pCont is NULL then the method works with previously given container. It will expedite the call since the method won't acquire particle channels from the container but uses the previously acquired channels. When working with individual particles from the same container, a good practice is to make the call for the first particle with the container specified, and then for all other particles with the container set to NULL.
pCont | the particleContainer |
time | 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 |
index | the index of the particle to proceed |
|
pure virtual |
Proceed all particles in the container to the given time
pCont | the particleContainer |
time | 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 |
|
pure virtual |
Proceed all particles in the container to the given times (may be different for each particle).
pCont | the particleContainer |
times | time value for a particle to come to; particles may have different time values to come to |
|
pure virtual |
Proceed selected particles only to the given time.
pCont | the particleContainer |
time | 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 |
selected | bitArray to define which particles to proceed |
|
pure virtual |
Proceed selected particles only to the given times (maybe different for each particle)
pCont | the particleContainer |
times | time value for a particle to come to; particles may have different time values to come to |
selected | bitArray to define which particles to proceed |
PFExport bool ProceedSync | ( | IObject * | pCont, |
TimeValue | timeTick, | ||
float | timeFraction, | ||
bool | isSelected, | ||
BitArray * | selected | ||
) |
"function-publishing" hook-up for the methods above
pCont | particleContainer |
timeTick,timeFraction | time for particles to come to. All particles may have the same time value to come to, in that case the method with timeTick and timeFraction have to used. Sum of timeTick and timeFraction define the exact time value (without TimeValue granularity). If particles have different time values to come to than use the second method with Tabs of timeTicks and timeFractions |
isSelected,selected | if only part of particles need to be time-advanced then isSelected is true, and "selected" BitArray have to be defined |
PFExport bool ProceedASync | ( | IObject * | pCont, |
Tab< TimeValue > * | timeTicks, | ||
Tab< float > * | timeFractions, | ||
bool | isSelected, | ||
BitArray * | selected | ||
) |
"function-publishing" hook-up for the methods above
pCont | particleContainer |
timeTicks,timeFractions | time for particles to come to. All particles may have the same time value to come to, in that case the method with timeTick and timeFraction have to used. Sum of timeTick and timeFraction define the exact time value (without TimeValue granularity). If particles have different time values to come to than use the second method with Tabs of timeTicks and timeFractions |
isSelected,selected | if only part of particles need to be time-advanced then isSelected is true, and "selected" BitArray have to be defined |
|
inlinevirtual |
An integrator may rely on another integrator to calculation some particle proceedings.
For example, a Collision test has IPFIntegrator interface to proceed particles according to collision approximations. At the same time a Collision test doesn't proceed angular velocity of a particle. For that the test relies on encapsulated standard integrator.
PFExport bool HasEncapsulatedIntegrator | ( | IPFIntegrator * | integrator | ) |
Check if the current integrator has the given integrator encapsulated inside the encapsulated integrator can be more than one level down.
|
inlinevirtual |
Implements FPInterface.
|
friend |
Friend function declarations.
|
friend |
Friend function declarations.