c4d_scenehookdata.h File Reference

Classes

class  SceneHookData
 

Macros

#define PLUGINFLAG_SCENEHOOK_NOTDRAGGABLE
 
#define PLUGINFLAG_SCENEHOOK_SUPPORT_DOCUMENT_DESCRIPTION
 
#define PLUGINFLAG_SCENEHOOK_SUPPORT_ANIMATION
 

Functions

Bool RegisterSceneHookPlugin (Int32 id, const maxon::String &str, Int32 info, DataAllocator *g, Int32 priority, Int32 disklevel)
 

Function Documentation

◆ RegisterSceneHookPlugin()

Bool RegisterSceneHookPlugin ( Int32  id,
const maxon::String str,
Int32  info,
DataAllocator g,
Int32  priority,
Int32  disklevel 
)

Registers a scene hook plugin.

Parameters
[in]idA unique plugin ID. Must be obtained from http://www.plugincafe.com
[in]strThe name of the plugin.
To affect the order that plugins are displayed in menus add "#$n" as a prefix to this name, where n is a number.
Lower numbers are displayed before higher numbers. If name is "--" it will show up as a menu separator.
[in]infoThe scene hook plugin info flags: PLUGINFLAG_SCENEHOOK PLUGINFLAG
[in]gThe allocator for the scene hook plugin. This is a pointer to a function that creates a new instance of SceneHookData with NewObj().
[in]priorityThe interaction priority (Draw/MouseInput/KeyboardInput/GetCursorInfo).
Note
Draw function from a SceneHookData with a lower priority will be called after and could draw over SceneHookData called with higher priority. @node AddToExecution have to be used to change the SceneHookData::Execute priority.
Parameters
[in]disklevelThe plugin level is similar to a version number. The default level is 0.
Increase this for new revisions of a plugin to allow for forward and backward compatibility.

As an example you may have updated a plugin. If you now need to write additional information for new settings or changed types for old settings increase the level.
During loading either a 0 is passed (if the file was written by the old plugin) or 1 (if the file was written by the new plugin). This allows to easily write/read new values.
For forward and backward compatibility to work any existing read order from a given level must not be changed. Cinema 4D skips any new settings automatically if they have not been read.

disklevel is only useful if variables are written/read in NodeData::Write/ NodeData::Read.
Returns
true if the scene hook plugin was registered, otherwise false.