Functions

IPFRender.h

Functions

virtual int  HasRenderableGeometry ()
  The following methods are redirected from the particle object level to a particular ActionList.
virtual int  IsInstanceDependent (IObject *pCont, Object *pSystem)
  If an object creates different meshes depending on the particular instance (view-dependent) it should return 1.
virtual Mesh *  GetRenderMesh (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, BOOL &needDelete)=0
  GetRenderMesh should be implemented by all renderable GeomObjects.
virtual int  NumberOfRenderMeshes (IObject *pCont, TimeValue t, Object *pSystem)
  Objects may now supply multiple render meshes.
virtual Mesh *  GetMultipleRenderMesh (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, BOOL &needDelete, int meshNumber)
  For multiple render meshes, this method must be implemented.
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.
virtual PatchMesh *  GetRenderPatchMesh (IObject *pCont, TimeValue t, Object *pSystem, INode *inode, View &view, BOOL &needDelete)
  If this returns NULL, then GetRenderMesh will be called.
virtual Class_ID  PreferredCollapseType (IObject *pCont, Object *pSystem)
virtual BOOL  CanDoDisplacementMapping (IObject *pCont, Object *pSystem)
FPInterfaceDesc *  GetDesc ()

Function Documentation

int HasRenderableGeometry ( ) [inline, virtual, inherited]

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.

Parameters:
pCont,: particle container to render particles from
time,: current frame to render particles at. It's supposed that the container has been already updated to satisfy this moment
pSystem,: master particle system shell
inode,: INode of the particle group
view,: View as of the GeomObject::GetRenderMesh(...) method
needDelete,: boolean as of the GeomObject::GetRenderMesh(...) method
{ return(1); }
int IsInstanceDependent ( IObject *  pCont,
Object *  pSystem 
) [inline, virtual, inherited]

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

{ return 0; }
Mesh * GetRenderMesh ( IObject *  pCont,
TimeValue  t,
Object *  pSystem,
INode *  inode,
View &  view,
BOOL &  needDelete 
) [pure virtual, inherited]

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).

int NumberOfRenderMeshes ( IObject *  pCont,
TimeValue  t,
Object *  pSystem 
) [inline, virtual, inherited]

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.

{ return 0; } // 0 indicates multiple meshes not supported.
virtual Mesh * GetMultipleRenderMesh ( IObject *  pCont,
TimeValue  t,
Object *  pSystem,
INode *  inode,
View &  view,
BOOL &  needDelete,
int  meshNumber 
) [inline, virtual, inherited]

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.

{ return NULL; }
void GetMultipleRenderMeshTM ( IObject *  pCont,
TimeValue  t,
Object *  pSystem,
INode *  inode,
View &  view,
int  meshNumber,
Matrix3 &  meshTM,
Interval &  meshTMValid 
) [inline, virtual, inherited]

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

                                                            { return;  }
PatchMesh * GetRenderPatchMesh ( IObject *  pCont,
TimeValue  t,
Object *  pSystem,
INode *  inode,
View &  view,
BOOL &  needDelete 
) [inline, virtual, inherited]

If this returns NULL, then GetRenderMesh will be called.

{ return NULL; }
Class_ID PreferredCollapseType ( IObject *  pCont,
Object *  pSystem 
) [inline, virtual, inherited]
{ return triObjectClassID; }
BOOL CanDoDisplacementMapping ( IObject *  pCont,
Object *  pSystem 
) [inline, virtual, inherited]
FPInterfaceDesc * GetDesc ( ) [inline, virtual, inherited]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

{ return GetDescByID(PFRENDER_INTERFACE); }