Graph View

Detailed Description

Groups

 DRAGTYPE_GVNODE
 
 DataTypes
 
 GRAPHVIEW_PRIORITY
 
 GVNodeIDs
 
 GV_CONSTANT
 
 GV_GROUP
 
 GV_INITIAL
 
 GV_MESSAGE_FIRST_DATA_ID
 
 GV_PORTS
 
 GV_PREFERENCES_ID
 
 GV_VERSION
 
 Graph View Internal
 
 GvAnimHookType
 
 GvBodyDefaultSize
 
 GvCalcFlags
 
 GvCalcHookType
 
 GvCalcState
 
 GvConnMode
 
 GvDataType
 
 GvDrawState
 
 GvFileIdent
 
 GvGuiConfigIDs
 
 GvInsertMode
 
 GvLayoutType
 
 GvMasterConfigIDs
 
 GvMessage
 
 GvOpSetDataMode
 
 GvOperatorDescriptionFlags
 
 GvOperatorFlags
 
 GvOperatorType
 
 GvPortDescFlags
 
 GvPortFlags
 
 GvPortID
 
 GvPortIO
 
 GvRunId
 
 GvState
 
 GvWorldConfigIDs
 
 ID_GV_DATA_TYPE
 
 ID_GV_OPERATOR
 
 ID_GV_OPGROUP_TYPE
 
 ID_GV_OWNER
 
 ID_GV_VALUE_TYPE
 
 ID_OPERATOR
 
 ID_PLUGIN
 
 ID_PREFS
 
 VERSION_OPERATOR
 

Classes

struct  GvPortListEntry
 
class  GvPortList
 
class  GvCalcTime
 
class  GvCalc
 
class  GvInit
 
class  GvValue
 
class  GvQuery
 
class  GvRun
 
class  GvCalcTable
 
class  GvNode
 
class  GvPort
 
class  GvNodeMaster
 
class  GvNodeGUI
 
class  GvWorld
 
struct  ResolvePortDescId
 
struct  GV_OPCLASS_HANDLER
 
struct  GV_OPGROUP_HANDLER
 
struct  GV_VALUE_HANDLER
 
struct  GV_VALGROUP_HANDLER
 
struct  GV_DATA_HANDLER
 
struct  GvDestination
 
struct  GvPortDescription
 
struct  GvPortInfo
 
struct  GvPortDescInfo
 
struct  GvPortsDescInfo
 
struct  GvPortsInfo
 
struct  GvValuesInfo
 
struct  GvDynamicData
 
struct  GvOperatorDescription
 
struct  GvDropHook
 
struct  GvCalcHook
 
struct  GvMenuHook
 
struct  GvMessHook
 
struct  GvAnimHook
 
struct  GvDrawHook
 
struct  GvHook
 
class  GvOperatorData
 

Macros

#define GV_NODEMASTER_RELEASE
 
#define ID_GV_VALGROUP_TYPE_GENERAL
 
#define ID_GV_OPCLASS_TYPE_GENERAL
 
#define CUSTOMGUI_NORMAL
 
#define GV_OPERATOR_PORTS_ID
 
#define GV_OPERATOR_DATA_ID
 
#define GV_NODE_INVALID_INDEX
 
#define GV_PORT_INVALID_ID
 
#define GV_PORT_INVALID_INDEX
 
#define GV_PORT_INVALID_SUB_ID
 
#define GV_USERDATA_INVALID_ID
 
#define GV_OPERATOR_INVALID_ID
 
#define GV_PORT_INVALID_DESC
 
#define GV_RESOURCE_SYMBOL_MAX_LENGTH
 
#define GV_DATAHANDLER_FLAGS_DISCLEVEL
 
#define GV_OPERATORFLAGS_MASK
 
#define GV_MULTIPLE_PORTS
 

Typedefs

typedef NodeDataDataAllocator(void)
 
typedef Bool(* GvDropHookFunc) (GvDropHook &hook)
 
typedef Bool(* GvCalcHookFunc) (GvCalcHook &hook)
 
typedef Bool(* GvMenuHookFunc) (GvMenuHook &hook)
 
typedef Bool(* GvMessHookFunc) (GvMessHook &hook)
 
typedef Bool(* GvAnimHookFunc) (GvAnimHook &hook)
 
typedef void(* GvDrawHookFunc) (GvDrawHook &hook)
 
typedef BaseList2D *(* GvHookCallback) (BaseDocument *doc, Int32 id)
 
typedef Int32 GvValueType
 
typedef Int32GvIdTablePtr
 

Functions

GvWorldGvGetWorld (void)
 
const String GvGetEmptyString (void)
 
const String GvGetErrorString (const maxon::String &command, Int32 err)
 
void GvGetPortList (GvPortsDescInfo *info, GvPortIO port, GvPortList &portlist)
 
Bool GvGetPortDescription (GvPortsDescInfo *info, GvPortIO port, Int32 id, GvPortDescription *pd)
 
Bool GvGetAllDataTypes (GvPortDescInfo *info, UInt32 default_flag, Int32 first_id)
 
void GvFreePortDescInfo (GvPortDescInfo *info)
 
Bool GvRegisterOpClassType (GV_OPCLASS_HANDLER *data, Int32 struct_size)
 
Bool GvRegisterOpGroupType (GV_OPGROUP_HANDLER *data, Int32 struct_size)
 
Bool GvRegisterValueType (GV_VALUE_HANDLER *data, Int32 struct_size)
 
Bool GvRegisterDataType (GV_DATA_HANDLER *data, Int32 struct_size, const char *symbol=nullptr)
 
Bool GvRegisterValGroupType (GV_VALGROUP_HANDLER *data, Int32 struct_size)
 
GV_OPCLASS_HANDLERGvFindRegisteredOpClass (GvOpClassID id)
 
GV_OPGROUP_HANDLERGvFindRegisteredOpGroup (GvOpGroupID id)
 
const String GvGetOperatorDetailedText (GvOperatorData *op, GvNode *bn)
 
const String GvGetOperatorTitle (GvNode *bn, Int32 string_id)
 
void GvFreeValuesTable (GvNode *bn, maxon::BaseArray< GvValue * > &ports)
 
void GvFreeValuesTable (GvNode *bn, GvValuesInfo &info)
 
Bool GvBuildInValuesTable (GvNode *bn, maxon::BaseArray< GvValue * > &ports, GvCalc *c, GvRun *r, Int32 *ids)
 
Bool GvBuildOutPortsTable (GvNode *bn, maxon::BaseArray< GvPort * > &ports)
 
Bool GvBuildValuesTable (GvNode *bn, maxon::BaseArray< GvPort * > &in_ports, maxon::BaseArray< GvPort * > &out_ports)
 
Bool GvCalculateInValuesTable (GvNode *bn, GvRun *run, GvCalc *calc, GvValuesInfo &info, Int32 singleport=((GvValueType)(-1)), BaseTime *time=nullptr)
 
Bool GvBuildInValuesTable (GvNode *bn, GvValuesInfo &info, GvCalc *c, GvRun *r, GvIdTablePtr ids)
 
Bool GvBuildOutValuesTable (GvNode *bn, GvValuesInfo &info)
 
Bool GvBuildValuesTable (GvNode *bn, GvValuesInfo &info, GvCalc *c, GvRun *r, GvIdTablePtr input_ids)
 
GvDataInfoGvGetDataInfo (GvNode *bn, Int32 id)
 
Bool GvCheckDataInfo (GvNode *bn, Int32 id)
 
Bool GvAllocDynamicData (GvNode *bn, GvDynamicData &data, GvCalc *c, Int32 id)
 
void GvFreeDynamicData (GvDynamicData &data)
 
void GvClearDynamicData (GvDynamicData &data, GvRun *r)
 
void GvClearDynamicData (GvDynamicData &data)
 
Bool GvAllocDynamicDataClear (GvNode *bn, GvDynamicData &data, GvCalc *c, Int32 id)
 
Bool GvAllocDynamicData (GvNode *bn, GvDynamicData &data, GvDataInfo *info)
 
Bool GvSetDataInContainer (const void *const data, GvValueID value_id, BaseContainer &bc, Int32 container_id, Int32 cpu_id=0)
 
GvNodeGetNode (GeListNode *bn)
 
Bool GvRegisterOperatorPlugin (GvOperatorID id, const maxon::String &str, Int32 info, DataAllocator *at, const maxon::String &description, Int32 disklevel, GvOpClassID op_class, GvOpGroupID op_group, Int32 op_owner, BaseBitmap *icon)
 

Macro Definition Documentation

◆ GV_NODEMASTER_RELEASE

#define GV_NODEMASTER_RELEASE

◆ ID_GV_VALGROUP_TYPE_GENERAL

#define ID_GV_VALGROUP_TYPE_GENERAL

General value group.

◆ ID_GV_OPCLASS_TYPE_GENERAL

#define ID_GV_OPCLASS_TYPE_GENERAL

General operator class.

◆ CUSTOMGUI_NORMAL

#define CUSTOMGUI_NORMAL

Normal custom GUI.

◆ GV_OPERATOR_PORTS_ID

#define GV_OPERATOR_PORTS_ID

◆ GV_OPERATOR_DATA_ID

#define GV_OPERATOR_DATA_ID

◆ GV_NODE_INVALID_INDEX

#define GV_NODE_INVALID_INDEX

◆ GV_PORT_INVALID_ID

#define GV_PORT_INVALID_ID

◆ GV_PORT_INVALID_INDEX

#define GV_PORT_INVALID_INDEX

◆ GV_PORT_INVALID_SUB_ID

#define GV_PORT_INVALID_SUB_ID

◆ GV_USERDATA_INVALID_ID

#define GV_USERDATA_INVALID_ID

◆ GV_OPERATOR_INVALID_ID

#define GV_OPERATOR_INVALID_ID

◆ GV_PORT_INVALID_DESC

#define GV_PORT_INVALID_DESC

◆ GV_RESOURCE_SYMBOL_MAX_LENGTH

#define GV_RESOURCE_SYMBOL_MAX_LENGTH

Resource symbol maximum length.

◆ GV_DATAHANDLER_FLAGS_DISCLEVEL

#define GV_DATAHANDLER_FLAGS_DISCLEVEL

◆ GV_OPERATORFLAGS_MASK

#define GV_OPERATORFLAGS_MASK

Mask for GvOperatorFlags.

◆ GV_MULTIPLE_PORTS

#define GV_MULTIPLE_PORTS

All ports.

Typedef Documentation

◆ DataAllocator

typedef NodeData* DataAllocator(void)

◆ GvDropHookFunc

typedef Bool(* GvDropHookFunc) (GvDropHook &hook)

Drop hook function pointer.

Parameters
[in]hookThe hook data.
Returns
true if successful, otherwise false.

◆ GvCalcHookFunc

typedef Bool(* GvCalcHookFunc) (GvCalcHook &hook)

Calculation hook function pointer.

Parameters
[in]hookThe hook data.
Returns
true if successful, otherwise false.

◆ GvMenuHookFunc

typedef Bool(* GvMenuHookFunc) (GvMenuHook &hook)

Menu hook function pointer.

Parameters
[in]hookThe hook data.
Returns
true if successful, otherwise false.

◆ GvMessHookFunc

typedef Bool(* GvMessHookFunc) (GvMessHook &hook)

Message hook function pointer.

Parameters
[in]hookThe hook data.
Returns
true if successful, otherwise false.

◆ GvAnimHookFunc

typedef Bool(* GvAnimHookFunc) (GvAnimHook &hook)

Animation hook function pointer.

Parameters
[in]hookThe hook data.
Returns
true if successful, otherwise false.

◆ GvDrawHookFunc

typedef void(* GvDrawHookFunc) (GvDrawHook &hook)

Draw hook function pointer.

Parameters
[in]hookThe hook data.

◆ GvHookCallback

typedef BaseList2D*(* GvHookCallback) (BaseDocument *doc, Int32 id)

Hook callback function pointer.

Parameters
[in]docDocument.
[in]idHook ID.
Returns
The scene hook.

◆ GvValueType

typedef Int32 GvValueType

◆ GvIdTablePtr

typedef Int32* GvIdTablePtr

Function Documentation

◆ GvGetWorld()

GvWorld* GvGetWorld ( void  )

Retrieves the GV world.

Returns
The GV world. Cinema 4D owns the pointed GV world.

◆ GvGetEmptyString()

const String GvGetEmptyString ( void  )

Gets an empty string, just like String() would do.

Returns
An empty string.

◆ GvGetErrorString()

const String GvGetErrorString ( const maxon::String command,
Int32  err 
)

Returns an error string for display in for example the status bar. The format is currently Status: <command> error!, where error is determined by err.

Parameters
[in]commandThe command string.
[in]errThe error ID. Either a GvError value, in which case an appropriate error string is loaded, or another number that is passed through String::IntToString().
Returns
The error string.

◆ GvGetPortList()

void GvGetPortList ( GvPortsDescInfo info,
GvPortIO  port,
GvPortList portlist 
)

Gets the port list from the information in info.

Parameters
[in]infoThe port description. The caller owns the pointed port description.
[in]portThe port IO mode: GvPortIO
[out]portlistEntries are added to this list.

◆ GvGetPortDescription()

Bool GvGetPortDescription ( GvPortsDescInfo info,
GvPortIO  port,
Int32  id,
GvPortDescription pd 
)

Fills pd with information from info for the specified port.

Parameters
[in]infoThe port description. The caller owns the pointed port description.
[in]portThe port IO mode: GvPortIO
[in]idThe port ID.
[out]pdFilled with the port information about port id from info.
Returns
true if succesful, otherwise false.

◆ GvGetAllDataTypes()

Bool GvGetAllDataTypes ( GvPortDescInfo info,
UInt32  default_flag,
Int32  first_id 
)

Fills info with data type information. Free the structure with GvFreePortDescInfo().

Parameters
[in]infoThe port description to fill. The caller owns the pointed port description.
[in]default_flagThe default flag for the GvPortDescInfo::flags array.
[in]first_idThe first ID for the GvPortDescInfo::ids array. All data type IDs are offset by this amount.
Returns
true if successful, otherwise false.

◆ GvFreePortDescInfo()

void GvFreePortDescInfo ( GvPortDescInfo info)

Frees port description structures allocated with GvGetAllDataTypes().

Parameters
[out]infoThe port description to free.

◆ GvRegisterOpClassType()

Bool GvRegisterOpClassType ( GV_OPCLASS_HANDLER data,
Int32  struct_size 
)

Registers an operator class. See GV_OPCLASS_HANDLER for more information.

Parameters
[in]dataThe handler structure. The caller owns the pointed structure.
Make sure that the passed structure has a long enough life time. The easiest way is to use a static or global variable.
[in]struct_sizeThe size of the structure passed to data, i.e. sizeof(*data).
Returns
true if successful, otherwise false.

◆ GvRegisterOpGroupType()

Bool GvRegisterOpGroupType ( GV_OPGROUP_HANDLER data,
Int32  struct_size 
)

Registers an operator group. See GV_OPGROUP_HANDLER for more information.

Parameters
[in]dataThe handler structure. The caller owns the pointed structure.
Make sure that the passed structure has a long enough life time. The easiest way is to use a static or global variable.
[in]struct_sizeThe size of the structure passed to data, i.e. sizeof(*data).
Returns
true if successful, otherwise false.

◆ GvRegisterValueType()

Bool GvRegisterValueType ( GV_VALUE_HANDLER data,
Int32  struct_size 
)

Registers a value type. See GV_VALUE_HANDLER for more information.

Parameters
[in]dataThe handler structure. The caller owns the pointed structure.
Make sure that the passed structure has a long enough life time. The easiest way is to use a static or global variable.
[in]struct_sizeThe size of the structure passed to data, i.e. sizeof(*data).
Returns
true if successful, otherwise false.

◆ GvRegisterDataType()

Bool GvRegisterDataType ( GV_DATA_HANDLER data,
Int32  struct_size,
const char *  symbol = nullptr 
)

Registers a data type. See GV_DATA_HANDLER for more information.

Parameters
[in]dataThe handler structure. The caller owns the pointed structure.
Make sure that the passed structure has a long enough life time. The easiest way is to use a static or global variable.
[in]struct_sizeThe size of the structure passed to data, i.e. sizeof(*data).
[in]symbolThe data type symbol. The caller owns the pointed character buffer.
Returns
true if successful, otherwise false.

◆ GvRegisterValGroupType()

Bool GvRegisterValGroupType ( GV_VALGROUP_HANDLER data,
Int32  struct_size 
)

Registers a value group type. See GV_VALGROUP_HANDLER for more information.

Parameters
[in]dataThe handler structure. The caller owns the pointed structure.
Make sure that the passed structure has a long enough life time. The easiest way is to use a static or global variable.
[in]struct_sizeThe size of the structure passed to data, i.e. sizeof(*data).
Returns
true if successful, otherwise false.

◆ GvFindRegisteredOpClass()

GV_OPCLASS_HANDLER* GvFindRegisteredOpClass ( GvOpClassID  id)

Finds a registered operator class by ID.

Parameters
[in]idThe operator class ID to find.
Returns
The found class handler, or nullptr. Cinema 4D owns the pointed class handler.

◆ GvFindRegisteredOpGroup()

GV_OPGROUP_HANDLER* GvFindRegisteredOpGroup ( GvOpGroupID  id)

Finds a registered operator group by ID.

Parameters
[in]idThe operator group ID to find.
Returns
The found group handler, or nullptr. Cinema 4D owns the pointed group handler.

◆ GvGetOperatorDetailedText()

const String GvGetOperatorDetailedText ( GvOperatorData op,
GvNode bn 
)

Gets the detailed text for an operator, containing bn->GetTitle() and op->GetText().

Parameters
[in]opThe operator to get the text for. The caller owns the pointed GvOperatorData.
[in]bnThe node to get the title for. The caller owns the pointed GvNode.
Returns
The operator detailed text.

◆ GvGetOperatorTitle()

const String GvGetOperatorTitle ( GvNode bn,
Int32  string_id 
)

Gets the title for an operator, containing either bn->GetTitle() or GeLoadString(string_id) if the title is empty.

Parameters
[in]bnThe node to get the title for. The caller owns the pointed GvNode.
[in]string_idThe string ID to load if the title is empty.
Returns
The operator title.

◆ GvFreeValuesTable() [1/2]

void GvFreeValuesTable ( GvNode bn,
maxon::BaseArray< GvValue * > &  ports 
)

Frees value tables allocated with the direct versions of the GvBuildValuesTable() functions.

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]portsTODO: (Sdkteam) describe

◆ GvFreeValuesTable() [2/2]

void GvFreeValuesTable ( GvNode bn,
GvValuesInfo info 
)

Frees value tables allocated with the GvValuesInfo versions of the GvBuildValuesTable() functions.

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]infoThe values info structure to free. The freed pointers are set to nullptr.

◆ GvBuildInValuesTable() [1/2]

Bool GvBuildInValuesTable ( GvNode bn,
maxon::BaseArray< GvValue * > &  ports,
GvCalc c,
GvRun r,
Int32 ids 
)

Builds an input values table for bn for the specified ids.
Use GvCalculateInValuesTable() to calculate the values, and then get the values from ports.
Free the values table with GvFreeValuesTable().

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[in]portsTODO: (Sdkteam) describe
[in]cThe current calculation helper. The caller owns the pointed calculation helper.
[in]rThe current run helper. The caller owns the pointed run helper.
[in]idsA zero terminated array of port IDs or one of these constants: GV_PORTS
Returns
true if successful, otherwise false.

◆ GvBuildOutPortsTable()

Bool GvBuildOutPortsTable ( GvNode bn,
maxon::BaseArray< GvPort * > &  ports 
)

Builds an output values table for bn. Then set the values in ports. Free the values table with GvFreeValuesTable().

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]portsTODO: (Sdkteam) describe
Returns
true if successful, otherwise false.

◆ GvBuildValuesTable() [1/2]

Bool GvBuildValuesTable ( GvNode bn,
maxon::BaseArray< GvPort * > &  in_ports,
maxon::BaseArray< GvPort * > &  out_ports 
)

A combination of GvBuildInValuesTable() and GvBuildOutPortsTable().

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]in_portsTODO: (Sdkteam) describe
[out]out_portsTODO: (Sdkteam) describe
Returns
true if successful, otherwise false.

◆ GvCalculateInValuesTable()

Bool GvCalculateInValuesTable ( GvNode bn,
GvRun run,
GvCalc calc,
GvValuesInfo info,
Int32  singleport = ((GvValueType)(-1)),
BaseTime time = nullptr 
)

Calls GvValue::Calculate() for all input ports in info.

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[in]runThe current run helper. The caller owns the pointed run helper.
[in]calcThe current calculation helper. The caller owns the pointed calculation helper.
[out]infoThe values information structure with the value tables to calculate.
[in]singleportThe port index. GV_MULTIPLE_PORTS (default) calculates all ports.
[in]timeIf not nullptr animation tracks of the node at time are evaluated before the calculation.
Returns
true if successful, otherwise false.

◆ GvBuildInValuesTable() [2/2]

Bool GvBuildInValuesTable ( GvNode bn,
GvValuesInfo info,
GvCalc c,
GvRun r,
GvIdTablePtr  ids 
)

◆ GvBuildOutValuesTable()

Bool GvBuildOutValuesTable ( GvNode bn,
GvValuesInfo info 
)

◆ GvBuildValuesTable() [2/2]

Bool GvBuildValuesTable ( GvNode bn,
GvValuesInfo info,
GvCalc c,
GvRun r,
GvIdTablePtr  input_ids 
)

◆ GvGetDataInfo()

GvDataInfo* GvGetDataInfo ( GvNode bn,
Int32  id 
)

Gets data info for an element in the operator container of bn.

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[in]idThe container ID.
Returns
The data type information. The GV world owns the pointed GvDataInfo.

◆ GvCheckDataInfo()

Bool GvCheckDataInfo ( GvNode bn,
Int32  id 
)

Checks if there is a data info available for an element in the operator container of bn.

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[in]idThe container ID.
Returns
true if there is a data info, otherwise false.

◆ GvAllocDynamicData() [1/2]

Bool GvAllocDynamicData ( GvNode bn,
GvDynamicData data,
GvCalc c,
Int32  id 
)

Allocates a dynamic data structure suitable for an element in the operator container of bn.
Free the allocated data with GvFreeDynamicData().

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]dataThe dynamic data to allocate.
[in]cThe current calculation helper. The caller owns the pointed calculation helper.
[in]idThe container ID.
Returns
true if successful, otherwise false.

◆ GvFreeDynamicData()

void GvFreeDynamicData ( GvDynamicData data)

Frees the dynamic data in data.

Parameters
[in,out]dataThe dynamic data to free. The associated pointers are set to nullptr.

◆ GvClearDynamicData() [1/2]

void GvClearDynamicData ( GvDynamicData data,
GvRun r 
)

Clears the dynamic data in data, i.e. performs a GV_CALC_CLR calculation. This version of the function clears the data for the CPU specified by r->GetCpuID().

Parameters
[in,out]dataThe dynamic data to clear.
[in]rThe current run helper. The caller owns the pointed run helper.

◆ GvClearDynamicData() [2/2]

void GvClearDynamicData ( GvDynamicData data)

Clears the dynamic data in data, i.e. performs a GV_CALC_CLR calculation. This version of the function clears the data for all CPUs.

Parameters
[in,out]dataThe dynamic data to clear.

◆ GvAllocDynamicDataClear()

Bool GvAllocDynamicDataClear ( GvNode bn,
GvDynamicData data,
GvCalc c,
Int32  id 
)

A combination of GvAllocDynamicData() and GvClearDynamicData().

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]dataThe dynamic data to allocate and clear.
[in]cThe current calculation helper. The caller owns the pointed calculation helper.
[in]idThe container ID.
Returns
true if successful, otherwise false.

◆ GvAllocDynamicData() [2/2]

Bool GvAllocDynamicData ( GvNode bn,
GvDynamicData data,
GvDataInfo info 
)

Allocates a dynamic data structure suitable for for the data type described in info. Free the allocated data with GvFreeDynamicData().

Parameters
[in]bnThe node. The caller owns the pointed GvNode.
[out]dataThe dynamic data to allocate.
[in]infoData type specification.
Returns
true if successful, otherwise false.

◆ GvSetDataInContainer()

Bool GvSetDataInContainer ( const void *const  data,
GvValueID  value_id,
BaseContainer bc,
Int32  container_id,
Int32  cpu_id = 0 
)

Sets data in bc at container_id.

Parameters
[in]dataThe data to set. The caller owns the pointed data.
Points to GV data. The layout of the pointed data is determined by value_id.
[in]value_idDetermines the type of data.
[in]bcThe container to set the value in.
[in]container_idThe container ID to set.
[in]cpu_idThe CPU ID.
Returns
true if successful, otherwise false.

◆ GetNode()

GvNode* GetNode ( GeListNode bn)

A safe cast from GeListNode to GvNode.

Parameters
[in]bnThe list node to cast. The caller owns the pointed node.
Returns
The cast node pointer.

◆ GvRegisterOperatorPlugin()

Bool GvRegisterOperatorPlugin ( GvOperatorID  id,
const maxon::String str,
Int32  info,
DataAllocator at,
const maxon::String description,
Int32  disklevel,
GvOpClassID  op_class,
GvOpGroupID  op_group,
Int32  op_owner,
BaseBitmap icon 
)

Registers an operator plugin with Cinema 4D.

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 settings for the plugin. Possible flags are: PLUGINFLAG GvOperatorFlags
[in]atThe allocator for the operator plugin. This is a pointer to a function that creates a new instance of GvOperatorData with NewObj.
[in]descriptionThe name of the description resource file to use for the operator plugin without .res extension, for example "GVoperator".
The name has to be unique, i.e. "Tdisplay" cannot be used for 2 different descriptions. See Description Resource for more information.
[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 you can 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]op_classThe operator class. Either a class registered with GvRegisterOpClassType() or ID_GV_OPCLASS_TYPE_GENERAL.
[in]op_groupThe operator group. Either a group registered with GvRegisterOpGroupType() or one of these: ID_GV_OPGROUP_TYPE
[in]op_ownerThe owner ID. Either 0 or a unique ID for a custom plugin family.
[in]iconThe icon for the operator. 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.
Returns
true if the plugin was registered, otherwise false.