#include <c4d_objectdata.h>
A data class for creating object plugins.
An object plugin can either be a generator, a modifier, a spline generator or a particle modifier. This is set when the object is registered and affects which functions are called.
Use RegisterObjectPlugin() to register an object plugin.
Dimension | |
virtual void | GetDimension (BaseObject *op, Vector *mp, Vector *rad) |
Draw | |
virtual DRAWRESULT | Draw (BaseObject *op, DRAWPASS drawpass, BaseDraw *bd, BaseDrawHelp *bh) |
virtual DRAWRESULT | DrawShadow (BaseObject *op, BaseDraw *bd, BaseDrawHelp *bh) |
Handle | |
virtual Int32 | DetectHandle (BaseObject *op, BaseDraw *bd, Int32 x, Int32 y, QUALIFIER qualifier) |
virtual Bool | MoveHandle (BaseObject *op, BaseObject *undo, const Vector &mouse_pos, Int32 hit_id, QUALIFIER qualifier, BaseDraw *bd) |
Execution | |
virtual Bool | AddToExecution (BaseObject *op, PriorityList *list) |
virtual EXECUTIONRESULT | Execute (BaseObject *op, BaseDocument *doc, BaseThread *bt, Int32 priority, EXECUTIONFLAGS flags) |
Modeling Axis | |
virtual void | GetModelingAxis (BaseObject *op, BaseDocument *doc, Matrix &axis) |
Generator | |
virtual BaseObject * | GetVirtualObjects (BaseObject *op, HierarchyHelp *hh) |
Modifier | |
virtual Bool | ModifyObject (BaseObject *mod, BaseDocument *doc, BaseObject *op, const Matrix &op_mg, const Matrix &mod_mg, Float lod, Int32 flags, BaseThread *thread) |
Spline | |
virtual SplineObject * | GetContour (BaseObject *op, BaseDocument *doc, Float lod, BaseThread *bt) |
Particle | |
virtual void | ModifyParticles (BaseObject *op, Particle *pp, BaseParticle *ss, Int32 pcnt, Float diff) |
Automated Handle Interface | |
virtual Int32 | GetHandleCount (BaseObject *op) |
virtual void | GetHandle (BaseObject *op, Int32 i, HandleInfo &info) |
virtual void | SetHandle (BaseObject *op, Int32 i, Vector p, const HandleInfo &info) |
Additional Inherited Members | |
Protected Attributes inherited from NodeData | |
GeListNode * | private_link |
|
virtual |
Called to get the boundaries of the object.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[out] | mp | Assign the center point of the bounding box. |
[out] | rad | Assign the XYZ bounding box radius. |
Reimplemented in EffectorData.
|
virtual |
Called to draw additional information for the object in the editor view.
Be sure to call the parent version as last return:
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | drawpass | The draw pass: DRAWPASS |
[in] | bd | The editor's view. The caller owns the pointed view. |
[in] | bh | The helper for the editor's view. The caller owns the pointed view helper. |
Reimplemented in EffectorData.
|
virtual |
Called during the shadow pass instead of the Draw() method.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | bd | The editor's view. The caller owns the pointed view. |
[in] | bh | The helper for the editor's view. The caller owns the pointed view helper. |
|
virtual |
Called to manually detect a click on a handle.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | bd | The editor's view. The caller owns the pointed view. |
[in] | x | The mouse X coordinate. |
[in] | y | The mouse Y coordinate. |
[in] | qualifier | The qualifier keys that were pressed: QUALIFIER |
|
virtual |
Called to move a handle manually.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | undo | This is a copy of the object that should not be modified during the move handle. Cinema 4D owns the pointed object. |
[in] | mouse_pos | The mouse position. |
[in] | hit_id | The handle ID returned from DetectHandle(). |
[in] | qualifier | The qualifier keys that were pressed: QUALIFIER |
[in] | bd | The editor's view. The caller owns the pointed view. |
|
virtual |
Called to add execution priorities.
By default returns false. In that case Cinema 4D will call Execute() at the priority specified by the user in the EXPRESSION_PRIORITY parameter of the container.
If overridden then insert points of execution in the list and return true. Heres is an example:
Cinema 4D will then call Execute() 2 times.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | list | The priority list to add execution points to. Cinema 4D owns the pointed priority list. |
Reimplemented in EffectorData.
|
virtual |
Called at the point in the priority pipeline specified by AddToExecution, or the lack thereof.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | doc | The host document of the object. Cinema 4D owns the pointed document. |
[in] | bt | The calling thread. Can be nullptr. Cinema 4D owns the pointed thread. |
[in] | priority | The priority of the call to Execute() in the pipeline: EXECUTIONPRIORITY |
[in] | flags | The execution flags: EXECUTIONFLAGS |
Reimplemented in EffectorData.
|
virtual |
Called to return the modeling axis for the object.
The value given here will be returned by BaseObject::GetModelingAxis. No built-in tools currently use this, as plugin objects are not editable. Only the camera will use it when in an editing mode.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | doc | The host document of the object. Cinema 4D owns the pointed document. |
[out] | axis | Assign the modeling axis. |
|
virtual |
Called to get an object chain for a generator object.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | hh | A hierarchy helper for the operation. The caller owns the pointed hierarchy helper. |
|
virtual |
Called to modify the passed object.
[in] | mod | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | doc | The document containing the object to modify. Cinema 4D owns the pointed document. |
[in,out] | op | The object to modify. Cinema 4D owns the pointed object. |
[in] | op_mg | The object's world matrix. |
[in] | mod_mg | The modifier object's world matrix. |
[in] | lod | The level of detail. |
[in] | flags | Currently unused. |
[in] | thread | The calling thread. Can be nullptr. Cinema 4D owns the pointed thread. |
Reimplemented in EffectorData.
|
virtual |
Called to check for a change manually.
For example this will update every frame:
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | doc | The document containing the object to modify. Cinema 4D owns the pointed document. |
|
virtual |
Called to return a spline contour.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | doc | The document containing the object to modify. Cinema 4D owns the pointed document. |
[in] | lod | The level of detail. |
[in] | bt | The calling thread. Can be nullptr. Cinema 4D owns the pointed thread. |
|
virtual |
Called to modify particles.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | pp | The initial element of the Particle array. The caller owns the pointed array. This array is used to read the particles information and should not be modified. |
[out] | ss | The initial element of the BaseParticle array. Modify the elements in this array to change the velocity of the particles. The caller owns the pointed array. |
[in] | pcnt | The number of particles in the pp and ss arrays. |
[in] | diff | The time delta for the particles movement in seconds. Usually the difference in time between two frames, but this can be different for such functions as motion blur. |
|
virtual |
Called to get the number of handles the object has.
Part of the automated handle interface.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
Reimplemented in EffectorData.
|
virtual |
Called to get the information for handle i.
Part of the automated handle interface.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | i | The handle index. |
[in,out] | info | Fill with the handle information. |
Reimplemented in EffectorData.
|
virtual |
Called to set the information for handle i.
Called when the user has moved handle i to position p. Update the object's internal data accordingly (e.g. parameter values etc.).
Part of the automated handle interface.
[in] | op | The BaseObject connected with the ObjectData instance. Equal to static_cast <BaseObject*>Get(). Provided for speed and convenience. Cinema 4D owns the pointed object. |
[in] | i | The handle index. |
[in] | p | The handle's position. |
[in] | info | The handle information. |
Reimplemented in EffectorData.