3ds Max C++ API Reference
IPFRender.h

Functions

virtual int HasRenderableGeometry ()
 The following methods are redirected from the particle object level to a particular ActionList. More...
 
virtual int IsInstanceDependent (IObject *pCont, Object *pSystem)
 If an object creates different meshes depending on the particular instance (view-dependent) it should return 1. More...
 
virtual MeshGetRenderMesh (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, BOOL &needDelete)=0
 GetRenderMesh should be implemented by all renderable GeomObjects. More...
 
virtual int NumberOfRenderMeshes (IObject *pCont, TimeValue t, Object *pSystem)
 Objects may now supply multiple render meshes. More...
 
virtual MeshGetMultipleRenderMesh (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, BOOL &needDelete, int meshNumber)
 For multiple render meshes, this method must be implemented. More...
 
virtual void GetMultipleRenderMeshTM (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, int meshNumber, Matrix3 &meshTM, Interval &meshTMValid)
 For multiple render meshes, this method must be implemented. More...
 
virtual PatchMeshGetRenderPatchMesh (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, BOOL &needDelete)
 If this returns NULL, then GetRenderMesh will be called. More...
 
virtual Class_ID PreferredCollapseType (IObject *pCont, Object *pSystem)
 This method allows objects to specify the class that is the best class to convert to when the user collapses the stack. More...
 
virtual BOOL CanDoDisplacementMapping (IObject *pCont, Object *pSystem)
 Returns TRUE if this object can do displacement mapping; otherwise FALSE. More...
 
FPInterfaceDescGetDesc ()
 

Detailed Description

Function Documentation

◆ HasRenderableGeometry()

virtual int HasRenderableGeometry ( )
inlinevirtual

The following methods are redirected from the particle object level to a particular ActionList.

The first parameter is a particle container of the ActionList. Returns 0 if the action doesn't render in all frames for any reason, for example a non-animated parameter prevents render.

39 { return(1); }

◆ IsInstanceDependent()

virtual int IsInstanceDependent ( IObject pCont,
Object pSystem 
)
inlinevirtual

If an object creates different meshes depending on the particular instance (view-dependent) it should return 1.

Parameters
pContparticle container to render particles from
pSystemprimary particle system shell
46 { return 0; }

◆ GetRenderMesh()

virtual Mesh* GetRenderMesh ( IObject pCont,
TimeValue  t,
Object pSystem,
INode inode,
View view,
BOOL &  needDelete 
)
pure virtual

GetRenderMesh should be implemented by all renderable GeomObjects.

Set needDelete to TRUE if the render should delete the mesh, FALSE otherwise. Primitives that already have a mesh cached can just return a pointer to it (and set needDelete = FALSE).

Parameters
pContparticle container to render particles from
tcurrent frame to render particles at. It's supposed that the container has been already updated to satisfy this moment
pSystemprimary particle system shell
inodeINode of the particle group
viewView as of the GeomObject::GetRenderMesh() method
needDeleteboolean as of the GeomObject::GetRenderMesh() method

◆ NumberOfRenderMeshes()

virtual int NumberOfRenderMeshes ( IObject pCont,
TimeValue  t,
Object pSystem 
)
inlinevirtual

Objects may now supply multiple render meshes.

If this function returns a positive number, then GetMultipleRenderMesh and GetMultipleRenderMeshTM will be called for each mesh, instead of calling GetRenderMesh.

Parameters
pContparticle container to render particles from
tcurrent frame to render particles at. It's supposed that the container has been already updated to satisfy this moment
pSystemprimary particle system shell
67 { return 0; } // 0 indicates multiple meshes not supported.

◆ GetMultipleRenderMesh()

virtual Mesh* GetMultipleRenderMesh ( IObject pCont,
TimeValue  t,
Object pSystem,
INode inode,
View view,
BOOL &  needDelete,
int  meshNumber 
)
inlinevirtual

For multiple render meshes, this method must be implemented.

Set needDelete to TRUE if the render should delete the mesh, FALSE otherwise. meshNumber specifies which of the multiplie meshes is being asked for.

Parameters
pContparticle container to render particles from
tcurrent frame to render particles at. It's supposed that the container has been already updated to satisfy this moment
pSystemprimary particle system shell
inodeINode of the particle group
viewView as of the GeomObject::GetRenderMesh() method
needDeleteboolean as of the GeomObject::GetRenderMesh() method
meshNumberspecifies which of the multiplie meshes is being asked for
80 { return NULL; }
#define NULL
Definition: autoptr.h:18

◆ GetMultipleRenderMeshTM()

virtual void GetMultipleRenderMeshTM ( IObject pCont,
TimeValue  t,
Object pSystem,
INode inode,
View view,
int  meshNumber,
Matrix3 meshTM,
Interval meshTMValid 
)
inlinevirtual

For multiple render meshes, this method must be implemented.

meshTM should be returned with the transform defining the offset of the particular mesh in object space. meshTMValid should contain the validity interval of meshTM

Parameters
pContparticle container to render particles from
tcurrent frame to render particles at. It's supposed that the container has been already updated to satisfy this moment
pSystemprimary particle system shell
inodeINode of the particle group
viewView as of the GeomObject::GetRenderMesh() method
meshNumberspecifies which of the multiplie meshes is being asked for
meshTM
meshTMValid
95  { return; }

◆ GetRenderPatchMesh()

virtual PatchMesh* GetRenderPatchMesh ( IObject pCont,
TimeValue  t,
Object pSystem,
INode inode,
View view,
BOOL &  needDelete 
)
inlinevirtual

If this returns NULL, then GetRenderMesh will be called.

Parameters
pContparticle container to render particles from
tcurrent frame to render particles at. It's supposed that the container has been already updated to satisfy this moment
pSystemprimary particle system shell
inodeINode of the particle group
viewView as of the GeomObject::GetRenderMesh() method
needDeleteboolean as of the GeomObject::GetRenderMesh() method
105 { return NULL; }

◆ PreferredCollapseType()

virtual Class_ID PreferredCollapseType ( IObject pCont,
Object pSystem 
)
inlinevirtual

This method allows objects to specify the class that is the best class to convert to when the user collapses the stack.

Parameters
pContparticle container
pSystemprimary particle system shell
Returns
The Class_ID of the preferred object type.
112 { return triObjectClassID; }
CoreExport Class_ID triObjectClassID

◆ CanDoDisplacementMapping()

virtual BOOL CanDoDisplacementMapping ( IObject pCont,
Object pSystem 
)
inlinevirtual

Returns TRUE if this object can do displacement mapping; otherwise FALSE.

Parameters
pContparticle container
pSystemprimary particle system shell
118 { return 0; }

◆ GetDesc()

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

Implements FPInterface.

123 { return GetDescByID(PFRENDER_INTERFACE); }
#define PFRENDER_INTERFACE
Definition: IPFRender.h:24
virtual FPInterfaceDesc * GetDescByID(Interface_ID id)
Definition: ifnpub.h:613