Public Types | Public Member Functions

IParticleGroup Class Reference

Search for all occurrences

#include <IParticleGroup.h>

Inheritance diagram for IParticleGroup:
Inheritance graph
[legend]

List of all members.

Public Types

enum   { invalidateCurrent = 0, invalidateViewport = 1, invalidateRender = 2, invalidateBoth = 3 }

Public Member 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

IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup
IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup IParticleGroup