Enumerations | |
enum | { kPFDefaultDisplay_global, kPFDefaultDisplay_local } |
enum | { kPFActionOrder_globalsFirst, kPFActionOrder_localsFirst } |
enum | { kPFUpdateType_complete, kPFUpdateType_forward } |
enum | { kPFDynamicNames_no, kPFDynamicNames_yes } |
enum | { kPViewActionListHorSpace =20 } |
Functions | |
virtual bool | OpenParticleView (Object *engine)=0 |
Opens ParticleView for a given PFEngine. More... | |
virtual IParticleView * | GetActiveParticleView ()=0 |
Returns the ParticleView which is currently open and shown in PView. More... | |
virtual bool | UpdateParticleViews (bool additionsOnly=false)=0 |
If nothing was delete from PView then additionsOnly is set to true. More... | |
virtual bool | PreUpdateParticleViews (bool additionsOnly=false)=0 |
If procedures between Pre. More... | |
virtual bool | PostUpdateParticleViews (bool additionsOnly=false)=0 |
If procedures between Pre. More... | |
virtual bool | CancelUpdateParticleViews ()=0 |
Not supported for maxscript. More... | |
virtual bool | UpdateOnHold ()=0 |
Return true when in between PreUpdate and PostUpdate. More... | |
virtual void | UpdateParticleAmountShown () |
Updates particle amount shown in PViews. More... | |
virtual void | ActionProceedBegin (INode *actionNode) |
Shows that an action starts the proceed. More... | |
virtual void | ActionProceedEnd (INode *actionNode) |
Shows that an action ends the proceed. More... | |
virtual bool | IsParticleViewInForeground () |
Check if any ParticleView is a foreground window. More... | |
static PFExport int | NumActionClasses () |
Public classes only. More... | |
static PFExport ClassDesc * | ActionClass (int index) |
static PFExport const MCHAR * | ActionName (int index) |
static PFExport int | NumPViewItemClasses () |
Public classes only. More... | |
static PFExport ClassDesc * | PViewItemClass (int index) |
static PFExport const MCHAR * | PViewItemName (int index) |
virtual bool | ParticleViewOpenCloseToggle ()=0 |
Used for CUI shortcuts. More... | |
virtual bool | ParticleFlowActivationToggle (bool selectedOnly=false)=0 |
Used for CUI shortcuts. More... | |
virtual int | GetVacantSpace ()=0 |
Returns X coordinate of half-plane of space free from any PF item. More... | |
virtual void | KeepMaterial (Mtl *mtl)=0 |
The method is used to prevent automatic removal of non-used materials from the scene. More... | |
static PFExport void | RegisterModule (Class_ID moduleID) |
The method is used by a PFlow module to register itself with the system. More... | |
static PFExport bool | IsModuleRegistered (Class_ID moduleID) |
Returns true if a PFlow module was registered. More... | |
FPInterfaceDesc * | GetDesc () |
PFExport IPViewManager * | GetPViewManager () |
Gets PViewManager from the scene. More... | |
PFExport INode * | CreatePFNode (Object *obj) |
Creates an INode used by ParticleFlow objects (actions, engines etc.) The ParticleFlow INode has some properties that are different from a regular INode. More... | |
PFExport void | DeletePFNode (INode *node) |
Deletes a PF-type INode. More... | |
PFExport bool | AppendPFAction (INode *actionList, INode *action) |
There is a special relationship between an action list and an action. More... | |
PFExport bool | InsertPFAction (INode *actionList, INode *action, int indexAt) |
Ensures consistency in relationship between action list and action. More... | |
PFExport bool | RemovePFAction (INode *actionList, int index) |
Ensures consistency in relationship between action list and action. More... | |
PFExport bool | RemovePFAction (INode *actionList, INode *action) |
Ensures consistency in relationship between action list and action. More... | |
PFExport int | GetPViewVacantSpace (INode *excludeNode=NULL) |
Returns X coordinate of half-plane of space free from any PF item. More... | |
PFExport int | GetPViewMaximumZOrderIndex (INode *excludeNode=NULL) |
All items in PView are shown according to their Z order index. More... | |
PFExport bool | CompactPViewZOrder () |
The Z order sequence may have some "holes". More... | |
PFExport void | RegisterParticleFlowNotification () |
ParticleFlow has to track creation of new PF items. More... | |
PFExport void | SuspendParticleFlowNotification () |
Avoids extra effort for tracking. More... | |
PFExport void | ResumeParticleFlowNotification () |
Avoids extra effort for tracking. More... | |
PFExport bool | IsParticleFlowNotificationSuspended () |
Avoids extra effort for tracking. More... | |
PFExport void | ReleasePViewManager () |
The method is used to release PViewManager when a scene is closed. More... | |
PFExport int | GetPFInt (IParamBlock2 *pblock, ParamID id, TimeValue t=0, int tabIndex=0) |
GetPFInt, GetPFFloat and GetPFTimeValue reinforce value boundaries set for parameter values. More... | |
PFExport float | GetPFFloat (IParamBlock2 *pblock, ParamID id, TimeValue t=0, int tabIndex=0) |
See GetPFInt();. More... | |
PFExport TimeValue | GetPFTimeValue (IParamBlock2 *pblock, ParamID id, TimeValue t=0, int tabIndex=0) |
See GetPFInt();. More... | |
PFExport bool | ValidateParticleFlows () |
For internal use. More... | |
PFExport int | GetPFDefaultDisplay () |
PFExport void | SetPFDefaultDisplay (int type) |
PFExport void | InitPFDefaultDisplay (int type) |
PFExport int | GetPFActionOrder () |
PFExport void | SetPFActionOrder (int order) |
PFExport void | InitPFActionOrder (int order) |
PFExport int | GetPFUpdateType () |
PFExport void | SetPFUpdateType (int type) |
PFExport void | InitPFUpdateType (int type) |
PFExport int | GetPFDynamicNames () |
Names of actions in PView may have a dynamic suffix to reflect the most important settings of the action. More... | |
PFExport void | SetPFDynamicNames (int type) |
Names of actions in PView may have a dynamic suffix to reflect the most important settings of the action. More... | |
PFExport void | InitPFDynamicNames (int type) |
Names of actions in PView may have a dynamic suffix to reflect the most important settings of the action. More... | |
PFExport void | DisableParticleInvalidation () |
Particle system and operators/tests may have reference object (i.e. More... | |
PFExport void | EnableParticleInvalidation () |
See DisableParticleInvalidation();. More... | |
PFExport bool | IsAbleInvalidateParticles () |
See DisableParticleInvalidation();. More... | |
PFExport void | SetIgnoreEmitterTMChange () |
See DisableParticleInvalidation();. More... | |
PFExport void | ClearIgnoreEmitterTMChange () |
See DisableParticleInvalidation();. More... | |
PFExport bool | IsIgnoringEmitterTMChange () |
See DisableParticleInvalidation();. More... | |
PFExport void | SetIgnoreEmitterPropChange () |
See DisableParticleInvalidation();. More... | |
PFExport void | ClearIgnoreEmitterPropChange () |
See DisableParticleInvalidation();. More... | |
PFExport bool | IsIgnoringEmitterPropChange () |
For more selective tuning in notification change. More... | |
PFExport void | SetIgnoreRefNodeChange () |
See DisableParticleInvalidation();. More... | |
PFExport void | ClearIgnoreRefNodeChange () |
See DisableParticleInvalidation();. More... | |
PFExport bool | IsIgnoringRefNodeChange () |
See DisableParticleInvalidation();. More... | |
PFExport void | SetPFProceedStatus () |
When a particle system is in the process of calculation/evaluation, it is not advisable to invalidate particle containers. More... | |
PFExport void | ClearPFProceedStatus () |
When a particle system is in the process of calculation/evaluation, it is not advisable to invalidate particle containers. More... | |
PFExport bool | IsPFProceeding () |
When a particle system is in the process of calculation/evaluation, it is not advisable to invalidate particle containers. More... | |
PFExport Object * | GetPFObject (Object *obj) |
Friends | |
PFExport IPViewManager * | GetPViewManager () |
friend PFExport void ReleasePViewManager(); More... | |
PFExport void | ReleasePViewManager () |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
|
pure virtual |
Opens ParticleView for a given PFEngine.
If there are several ParticleViews with the given PFEngine, a dialog pops up to make a choice.
engine | PFEngine to open particle view for |
|
pure virtual |
Returns the ParticleView which is currently open and shown in PView.
|
pure virtual |
If nothing was delete from PView then additionsOnly is set to true.
|
pure virtual |
If procedures between Pre.
. and Post.. involve additions of new items only then set "additionsOnly" to "true". The rollup panel won't be updated.
|
pure virtual |
If procedures between Pre.
. and Post.. involve additions of new items only then set "additionsOnly" to "true". The rollup panel won't be updated.
|
pure virtual |
Not supported for maxscript.
|
pure virtual |
Return true when in between PreUpdate and PostUpdate.
|
inlinevirtual |
|
inlinevirtual |
|
pure virtual |
Used for CUI shortcuts.
|
pure virtual |
Used for CUI shortcuts.
|
pure virtual |
The method is used to prevent automatic removal of non-used materials from the scene.
The method is used by Shape Instance operator. The operator creates combined materials on-the-fly to be assigned to particles. When the reference object for the operator is changed, the material is changed. The old material could be deleted because it doesn't have any more references in the scene. This may create a problem for undo/redo operations. To prevent that this method creates a reference dependency between PViewManager and the Material. Since PViewManager is not saved with the scene, the materials won't be saved either.
The method is used by a PFlow module to register itself with the system.
This way other PFlow modules can query whether a specific module is present/loaded with the system and act accordingly. Once a module is registered, it cannot be unregistered.
Returns true if a PFlow module was registered.
|
inlinevirtual |
Implements FPInterface.
PFExport IPViewManager * GetPViewManager | ( | ) |
Gets PViewManager from the scene.
Deletes a PF-type INode.
The ParticleFlow INode has some properties that are different from a regular INode. Also, deleting a node by the methods cleans up the scene from associated elements, for example deleting a PF emitter also removes all global actions and exclusive actionLists downstream. There won't be any harm done if a regular INode is deleted by the method. The plug-in is able to classify the given node to choose the appropriate way of action.
There is a special relationship between an action list and an action.
The following four methods ensure the consistency in this relationship. Since PF particle system has a list of global action, the system can also be considered as an action list.
Ensures consistency in relationship between action list and action.
See AppendPFAction();
Ensures consistency in relationship between action list and action.
See AppendPFAction();
Ensures consistency in relationship between action list and action.
See AppendPFAction();
All items in PView are shown according to their Z order index.
Returns the highest Z order index amongst all particle systems and action lists.
PFExport bool CompactPViewZOrder | ( | ) |
The Z order sequence may have some "holes".
The method makes the sequence to be more compact by eliminating these "holes". Returns true if there were "holes"; and false if it is already compact.
ParticleFlow has to track creation of new PF items.
For ParticleFlow Shell: the system creates a default configuration and sets PView location. For ActionList: the system sets PView location. For Action: the system creates an ActionList that includes the Action, and sets PView location. To avoid this extra effort from the system side, use Suspend/Resume methods.
Avoids extra effort for tracking.
Avoids extra effort for tracking.
PFExport bool IsParticleFlowNotificationSuspended | ( | ) |
Avoids extra effort for tracking.
The method is used to release PViewManager when a scene is closed.
For internal use only.
GetPFInt, GetPFFloat and GetPFTimeValue reinforce value boundaries set for parameter values.
Can be used instead of pblock()->GetInt and pblock()->GetFloat to be sure that the result values are stay inside the parameter boundaries no matter what.
PFExport float GetPFFloat | ( | IParamBlock2 * | pblock, |
ParamID | id, | ||
TimeValue | t = 0 , |
||
int | tabIndex = 0 |
||
) |
See GetPFInt();.
PFExport TimeValue GetPFTimeValue | ( | IParamBlock2 * | pblock, |
ParamID | id, | ||
TimeValue | t = 0 , |
||
int | tabIndex = 0 |
||
) |
See GetPFInt();.
PFExport bool ValidateParticleFlows | ( | ) |
For internal use.
The method is used to make all ParticleFlow elements valid. The method traverses the scene to collect all ParticleFlow elements then it removes the invalid ones and fixes elements that are fixable. Returns true is the scene was valid, and false if the scene was invalid.
Names of actions in PView may have a dynamic suffix to reflect the most important settings of the action.
Names of actions in PView may have a dynamic suffix to reflect the most important settings of the action.
Names of actions in PView may have a dynamic suffix to reflect the most important settings of the action.
Particle system and operators/tests may have reference object (i.e.
define an emitting area). An operator may require TM of a reference object at different moments. If the reference object has a complex controller, the action of requesting the state of the reference object, if the time is different from the current time, may inflict REFMSG_CHANGE message thus provoking invalidation of the whole particle system. To prevent that, at the moment of acquiring the reference object TMs, the operator should disable particle invalidation, and then enable the invalidation when it is done with the reference object.
PFExport bool IsAbleInvalidateParticles | ( | ) |
PFExport bool IsIgnoringEmitterTMChange | ( | ) |
PFExport bool IsIgnoringEmitterPropChange | ( | ) |
For more selective tuning in notification change.
PFExport bool IsIgnoringRefNodeChange | ( | ) |
When a particle system is in the process of calculation/evaluation, it is not advisable to invalidate particle containers.
This method sets the proceed status.
When a particle system is in the process of calculation/evaluation, it is not advisable to invalidate particle containers.
This method clears the proceed status.
PFExport bool IsPFProceeding | ( | ) |
When a particle system is in the process of calculation/evaluation, it is not advisable to invalidate particle containers.
This method checks if PF is proceeding.
|
friend |
friend PFExport void ReleasePViewManager();
Friend function declarations