3ds Max C++ API Reference
IPViewManager.h

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 ClassDescActionClass (int index)
 
static PFExport const MCHARActionName (int index)
 
static PFExport int NumPViewItemClasses ()
 Public classes only. More...
 
static PFExport ClassDescPViewItemClass (int index)
 
static PFExport const MCHARPViewItemName (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...
 
FPInterfaceDescGetDesc ()
 
PFExport IPViewManager ()
 
virtual PFExport ~IPViewManager ()
 
virtual void releaseManager ()=0
 

Variables

static IPViewManagerm_manager
 
static Tab< ClassEntry * > m_actionClasses
 
static Tab< ClassEntry * > m_pViewItemClasses
 
static Tab< Class_IDm_registeredModules
 

Friends

PFExport IPViewManagerGetPViewManager ()
 friend PFExport void ReleasePViewManager(); More...
 
PFExport void ReleasePViewManager ()
 

Detailed Description

Function Documentation

◆ OpenParticleView()

bool OpenParticleView ( Object engine)
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.

Parameters
enginePFEngine to open particle view for

◆ GetActiveParticleView()

IParticleView * GetActiveParticleView ( )
pure virtual

Returns the ParticleView which is currently open and shown in PView.

◆ UpdateParticleViews()

bool UpdateParticleViews ( bool  additionsOnly = false)
pure virtual

If nothing was delete from PView then additionsOnly is set to true.

◆ PreUpdateParticleViews()

bool PreUpdateParticleViews ( bool  additionsOnly = false)
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.

◆ PostUpdateParticleViews()

bool PostUpdateParticleViews ( bool  additionsOnly = false)
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.

◆ CancelUpdateParticleViews()

bool CancelUpdateParticleViews ( )
pure virtual

Not supported for maxscript.

◆ UpdateOnHold()

bool UpdateOnHold ( )
pure virtual

Return true when in between PreUpdate and PostUpdate.

◆ UpdateParticleAmountShown()

void UpdateParticleAmountShown ( )
inlinevirtual

Updates particle amount shown in PViews.

114 { ; }

◆ ActionProceedBegin()

void ActionProceedBegin ( INode actionNode)
inlinevirtual

Shows that an action starts the proceed.

121 { ; }

◆ ActionProceedEnd()

void ActionProceedEnd ( INode actionNode)
inlinevirtual

Shows that an action ends the proceed.

126 { ; }

◆ IsParticleViewInForeground()

bool IsParticleViewInForeground ( )
inlinevirtual

Check if any ParticleView is a foreground window.

131 { return false; }

◆ NumActionClasses()

PFExport static int NumActionClasses ( )
static

Public classes only.

◆ ActionClass()

PFExport static ClassDesc * ActionClass ( int  index)
static

◆ ActionName()

PFExport static MCHAR * ActionName ( int  index)
static

◆ NumPViewItemClasses()

PFExport static int NumPViewItemClasses ( )
static

Public classes only.

◆ PViewItemClass()

PFExport static ClassDesc * PViewItemClass ( int  index)
static

◆ PViewItemName()

PFExport static MCHAR * PViewItemName ( int  index)
static

◆ ParticleViewOpenCloseToggle()

bool ParticleViewOpenCloseToggle ( )
pure virtual

Used for CUI shortcuts.

◆ ParticleFlowActivationToggle()

bool ParticleFlowActivationToggle ( bool  selectedOnly = false)
pure virtual

Used for CUI shortcuts.

◆ GetVacantSpace()

int GetVacantSpace ( )
pure virtual

Returns X coordinate of half-plane of space free from any PF item.

The method is usually used to calculate (x,y) location of newly created PF systems.

◆ KeepMaterial()

void KeepMaterial ( Mtl mtl)
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.

◆ RegisterModule()

PFExport static void RegisterModule ( Class_ID  moduleID)
static

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.

◆ IsModuleRegistered()

PFExport static bool IsModuleRegistered ( Class_ID  moduleID)
static

Returns true if a PFlow module was registered.

◆ GetDesc()

FPInterfaceDesc * GetDesc ( )
inlinevirtual
Remarks
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

#define PVIEWMANAGER_INTERFACE
Definition: IPViewManager.h:26
virtual FPInterfaceDesc * GetDescByID(Interface_ID id)
Definition: ifnpub.h:613

◆ IPViewManager()

PFExport IPViewManager ( )
protected

◆ ~IPViewManager()

virtual PFExport ~IPViewManager ( )
protectedvirtual

◆ releaseManager()

virtual void releaseManager ( )
protectedpure virtual

Variable Documentation

◆ m_manager

IPViewManager* m_manager
staticprotected

◆ m_actionClasses

Tab<ClassEntry*> m_actionClasses
staticprotected

◆ m_pViewItemClasses

Tab<ClassEntry*> m_pViewItemClasses
staticprotected

◆ m_registeredModules

Tab<Class_ID> m_registeredModules
staticprotected

Friends

◆ GetPViewManager

PFExport IPViewManager * GetPViewManager ( )
friend

friend PFExport void ReleasePViewManager();

Friend function declarations

◆ ReleasePViewManager

PFExport void ReleasePViewManager ( )
friend