Enumerations |
|
enum | { invalidateCurrent = 0, invalidateViewport = 1, invalidateRender = 2, invalidateBoth = 3 } |
Functions |
|
virtual INode * | GetParticleSystem () const =0 |
get a master particle system for the
particle group |
|
virtual void | SetParticleSystem (INode *pSystem)=0 |
set a reference on a master particle system
|
|
virtual INode * | GetActionList () const =0 |
get a master action list for the particle
group |
|
virtual void | SetActionList (INode *aList)=0 |
set a reference on a master action list
|
|
virtual int | GetActiveStatus () const =0 |
get activity status of the group; the group
can be put into "idle" mode if returns zero then the group is in
the "idle" mode |
|
virtual void | SetActiveStatus (int status)=0 |
set activity status of the group |
|
virtual int | UpdateActiveStatus ()=0 |
updates activity status of the group taking
into consideration schematics of the master particle system and
master action list if the group is "fertile" but the master
particle system does not have direct association with the master
action list then the group is put into "idle" mode returns activity
status to be set |
|
virtual void | UpdateActionSet ()=0 |
updates set of actions in the particle group
the set is composed from global actions from the master particle
system and local actions from the associated master actionList
|
|
virtual Mtl * | GetMaterial () const =0 |
get material from the list of actions the
last action that has a material is the one |
|
virtual DWORD | GetWireColor () const =0 |
get wire color from the list of actions the
last action that has a PFViewport interface is the one |
|
virtual IObject * | GetParticleContainer () const =0 |
get a particle container for the particle
group |
|
virtual const Interval & | GetValidityInterval () const =0 |
get validity interval for the particle group
|
|
virtual void | SetValidityInterval (Interval &validInterval)=0 |
set validity interval for the particle group
|
|
virtual void | Init (TimeValue time)=0 |
set initial state for the particle group
with time |
|
virtual TimeValue | GetFertilityTime ()=0 |
returns fertility time of the particle
group: the first time moment when the particle group can generate
particles from scratch if the group is not active then it is not
"fertile" |
|
virtual bool | Update (TimeValue t)=0 |
advance particles in the group to the given
time |
|
virtual bool | PreUpdate (TimeValue t)=0 |
the following method allows to apply the
actions Proceed method as a pre procedure before any modification
to the particle container has been made. |
|
virtual bool | PostUpdate (TimeValue t)=0 |
the following method allows to apply the
actions Proceed method as a post procedure when the amount of
particles in all particle groups has been established and there
won't be any particle transfers from one particle group to another
|
|
virtual bool | TransferSurplusContainer (IObject *&pCont, INode *&actionListTo)=0 |
returns a ptr at particleContainer to be
transferred to another Event the particle group looses this ptr
completely if the group doesn't have surplus containers then it
returns false |
|
virtual bool | AppendSurplusContainer (IObject *pCont)=0 |
appends the given container to the container
of the group but first the given container is advanced in time to
be in sync with the container of the group |
|
virtual bool | IsSync (TimeValue &time)=0 |
returns true if content of the particle
group is synchronized in time if group is in "sync" then it doesn't
have surplus containers if false then the method returns the
closest sync time for the particle group it could be a time of the
closest cache moment. |
|
virtual bool | InstantUpdate (TimeValue t)=0 |
set particles in the group to the given time
it should not involve any history dependent operations if the
method is called it implies that the group is able to make an
instant jump to the given time thus there is a cache for that time
|
|
virtual bool | SetFinalUpdateTime (TimeValue t)=0 |
inform the group what would be a final time
for the series of update calls |
|
virtual void | SetHandle (ULONG handle)=0 |
Informs the particle group about the handle
of the particle group node the handle is later used to uniquely
identify particle container for cache purposes. |
|
virtual void | InvalidateContainer (int type=invalidateCurrent)=0 |
clear particle content in the particle group
then enum should be in sync with IPFCache |
|
virtual void | InvalidateCaches (int type=invalidateCurrent)=0 |
clear caches in the particle group |
|
virtual bool | HasDelayedInvalidation () const =0 |
in normal circumstances when a particle
group receives a change notification message from the encapsulated
operator/test the particle group should invalidate itself. |
|
virtual bool | DoDelayedInvalidation ()=0 |
check if the group has a delayed
invalidation |
|
virtual void | InvalidateActions ()=0 |
Particle Group stores pointers at IPFAction interfaces for
efficiency. |
|
FPInterfaceDesc * | GetDesc () |
perform invalidation that was delayed
|
anonymous enum [inherited] |
{ invalidateCurrent=0, invalidateViewport=1, invalidateRender=2, invalidateBoth=3};
INode * GetParticleSystem | ( | ) | const [pure virtual, inherited] |
get a master particle system for the particle group
void SetParticleSystem | ( | INode * | pSystem | ) | [pure virtual, inherited] |
set a reference on a master particle system
virtualINode * GetActionList | ( | ) | const [pure virtual, inherited] |
get a master action list for the particle group
void SetActionList | ( | INode * | aList | ) | [pure virtual, inherited] |
set a reference on a master action list
int GetActiveStatus | ( | ) | const [pure virtual, inherited] |
get activity status of the group; the group can be put into "idle" mode if returns zero then the group is in the "idle" mode
void SetActiveStatus | ( | int | status | ) | [pure virtual, inherited] |
set activity status of the group
int UpdateActiveStatus | ( | ) | [pure virtual, inherited] |
updates activity status of the group taking into consideration schematics of the master particle system and master action list if the group is "fertile" but the master particle system does not have direct association with the master action list then the group is put into "idle" mode returns activity status to be set
void UpdateActionSet | ( | ) | [pure virtual, inherited] |
updates set of actions in the particle group the set is composed from global actions from the master particle system and local actions from the associated master actionList
Mtl * GetMaterial | ( | ) | const [pure virtual, inherited] |
get material from the list of actions the last action that has a material is the one
DWORD GetWireColor | ( | ) | const [pure virtual, inherited] |
get wire color from the list of actions the last action that has a PFViewport interface is the one
IObject * GetParticleContainer | ( | ) | const [pure virtual, inherited] |
get a particle container for the particle group
const Interval & GetValidityInterval | ( | ) | const [pure virtual, inherited] |
get validity interval for the particle group
void SetValidityInterval | ( | Interval & | validInterval | ) | [pure virtual, inherited] |
set validity interval for the particle group
void Init | ( | TimeValue | time | ) | [pure virtual, inherited] |
set initial state for the particle group with time
TimeValue GetFertilityTime | ( | ) | [pure virtual, inherited] |
returns fertility time of the particle group: the first time moment when the particle group can generate particles from scratch if the group is not active then it is not "fertile"
bool Update | ( | TimeValue | t | ) | [pure virtual, inherited] |
advance particles in the group to the given time
bool PreUpdate | ( | TimeValue | t | ) | [pure virtual, inherited] |
the following method allows to apply the actions Proceed method as a pre procedure before any modification to the particle container has been made.
It is not recommended to change the particle container in this method. It is mostly to inquiring particle properties.
bool PostUpdate | ( | TimeValue | t | ) | [pure virtual, inherited] |
the following method allows to apply the actions Proceed method as a post procedure when the amount of particles in all particle groups has been established and there won't be any particle transfers from one particle group to another
returns a ptr at particleContainer to be transferred to another Event the particle group looses this ptr completely if the group doesn't have surplus containers then it returns false
bool AppendSurplusContainer | ( | IObject * | pCont | ) | [pure virtual, inherited] |
appends the given container to the container of the group but first the given container is advanced in time to be in sync with the container of the group
bool IsSync | ( | TimeValue & | time | ) | [pure virtual, inherited] |
returns true if content of the particle group is synchronized in time if group is in "sync" then it doesn't have surplus containers if false then the method returns the closest sync time for the particle group it could be a time of the closest cache moment.
The closest time is always smaller (earlier) then the request time.
bool InstantUpdate | ( | TimeValue | t | ) | [pure virtual, inherited] |
set particles in the group to the given time it should not involve any history dependent operations if the method is called it implies that the group is able to make an instant jump to the given time thus there is a cache for that time
bool SetFinalUpdateTime | ( | TimeValue | t | ) | [pure virtual, inherited] |
inform the group what would be a final time for the series of update calls
void SetHandle | ( | ULONG | handle | ) | [pure virtual, inherited] |
Informs the particle group about the handle of the particle group node the handle is later used to uniquely identify particle container for cache purposes.
void InvalidateContainer | ( | int | type =
invalidateCurrent |
) | [pure virtual, inherited] |
clear particle content in the particle group then enum should be in sync with IPFCache
void InvalidateCaches | ( | int | type =
invalidateCurrent |
) | [pure virtual, inherited] |
clear caches in the particle group
bool HasDelayedInvalidation | ( | ) | const [pure virtual, inherited] |
in normal circumstances when a particle group receives a change notification message from the encapsulated operator/test the particle group should invalidate itself.
However if the particle system is in the stage of proceeding then it is not possible to invalidate particle group right away. The particle group can know the status of the particle system by using global IsPFProceeding method (IPViewManager.h). Then if the system has the proceed status then the particle group should delay the invalidation.
bool DoDelayedInvalidation | ( | ) | [pure virtual, inherited] |
check if the group has a delayed invalidation
void InvalidateActions | ( | ) | [pure virtual, inherited] |
Particle Group stores pointers at IPFAction interfaces for efficiency.
Those pointers are maintained automatically. In some circumstances (during Replace) it is necessary to flush those interfaces because they may become invalid.
FPInterfaceDesc * GetDesc | ( | ) | [inline, virtual, inherited] |
perform invalidation that was delayed
Implements FPInterface.
{ return GetDescByID(PARTICLEGROUP_INTERFACE); }