Callback interface for nodes that register shapes.
The easiest way to create this is to implement the TP_BaseShape class:
This class is only forward-declared in c4d_particles.h, so as long as the linker approves this is fine.
Example:
{
public:
{
}
{
}
{
}
{
}
{
}
};
Definition: c4d_baselist.h:3047
Definition: c4d_basedocument.h:498
Definition: c4d_baseobject.h:225
Definition: c4d_baseobject.h:180
Definition: c4d_particles.h:394
Definition: c4d_particles.h:740
Wrapper around a TP_PShapeI pointer.
Definition: c4d_particles.h:268
maxon::Int32 Int32
Definition: ge_sys_math.h:60
maxon::Float Float
Definition: ge_sys_math.h:66
Definition: c4d_particles.h:438
TP_PShapePtr(TP_BaseShape::* GetShapeClone)(const TP_PShapePtr &shape, TP_MasterSystem *msys, Int32 pid, COPYFLAGS flags, AliasTrans *trn)
Definition: c4d_particles.h:450
TP_BaseShape * base
Base class pointer.
Definition: c4d_particles.h:439
BaseObject *(TP_BaseShape::* GetShapeVirtualObjects)(const TP_PShapePtr &shape, TP_MasterSystem *msys, Int32 pid, BaseDocument *doc, HierarchyHelp *hh)
Definition: c4d_particles.h:480
TP_PShapePtr(TP_BaseShape::* GetShape)(const TP_PShapePtr &shape, TP_MasterSystem *msys, Int32 pid, Int32 owner_id)
Definition: c4d_particles.h:469
Float(TP_BaseShape::* GetShapeScale)(const TP_PShapePtr &shape, TP_MasterSystem *msys, Int32 pid)
Definition: c4d_particles.h:489
void(TP_BaseShape::* FreeShape)(TP_PShapePtr &shape, TP_MasterSystem *msys, Int32 pid)
Definition: c4d_particles.h:497
In the TP_MSG_GET_PSHAPEINTERFACE message then simply set the passed pointer TP_PShapeInterface to &baseshape.si
, for a global TP_BaseShape baseshape
object that was previously created.
Thinking Particles will then call the shape functions as needed.