Table of Contents

About

NodeData based classic plugin classes can implement NodeData::GetDDescription(). This allows to dynamically add parameters to the element's parameter description. This description is then used by Cinema 4D to define the parameters that are displayed in the Attribute Manager.

NodeData::GetDDescription() corresponds to C4DAtom::GetDescription().

Note
NodeData::GetDDescription() will be called when the DIRTYFLAGS::DESCRIPTION flag of an object is set.

Usage

When NodeData::GetDDescription() is called it is supposed to fill the given Description object.

// This example defines the element's parameter description by loading the registered description of the plugin type.
virtual Bool GetDDescription(GeListNode* node, Description* description, DESCFLAGS_DESC& flags)
{
const Bool invalidNode = node == nullptr;
const Bool invalidDescription = description == nullptr;
if (invalidNode || invalidDescription)
return false;
// load the description of this type
if (description->LoadDescription(node->GetType()) == false)
return false;
return SUPER::GetDDescription(node, description, flags);
}

The arguments of the function are:

Details on how to handle a Description are described in Description Manual and Description Settings Manual.

Further Reading

Description::LoadDescription
Bool LoadDescription(const BCResourceObj *bc, Bool copy)
Description
Definition: lib_description.h:528
DESCFLAGS_DESC
DESCFLAGS_DESC
Definition: ge_prepass.h:3107
GeListNode
Represents a C4DAtom that resides in a 4D list.
Definition: c4d_baselist.h:1797
DESCFLAGS_DESC::LOADED
@ LOADED
Set if elements have been added to the description, either by loading or manual addition.
Bool
maxon::Bool Bool
Definition: ge_sys_math.h:55
C4DAtom::GetType
Int32 GetType() const
Definition: c4d_baselist.h:1378