c4d_nodedata.h File Reference

Classes

class  NodeData
 

Typedefs

typedef NodeDataDataAllocator()
 

Functions

void FillNodePlugin (NODEPLUGIN *np, Int32 info, DataAllocator *g, BaseBitmap *icon, Int32 disklevel)
 
Bool RegisterNodePlugin (Int32 id, const maxon::String &str, Int32 info, DataAllocator *g, BaseBitmap *icon, Int32 disklevel, Int32 *fallback)
 

Typedef Documentation

◆ DataAllocator

typedef NodeData* DataAllocator()

NodeData allocator.

Function Documentation

◆ FillNodePlugin()

void FillNodePlugin ( NODEPLUGIN *  np,
Int32  info,
DataAllocator g,
BaseBitmap icon,
Int32  disklevel 
)

Private.

◆ RegisterNodePlugin()

Bool RegisterNodePlugin ( Int32  id,
const maxon::String str,
Int32  info,
DataAllocator g,
BaseBitmap icon,
Int32  disklevel,
Int32 fallback 
)

Registers a node plugin.

Note
Normally this function is not used, but rather the specific registration functions for each NodeData child class.
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 node plugin info flags: PLUGINFLAG
[in]gThe allocator for the node plugin. This is a pointer to a function that creates a new instance of NodeData with NewObj().
[in]iconThe icon for the node. The bitmap is copied.
The icon should be of size 32x32, but will be scaled if needed.
It must also be 24 bits and should if possible include an alpha to support pattern backgrounds.
[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.
[in]fallbackPrivate.
Returns
true if the node plugin was registered, otherwise false.