About
NodeData based Cinema API plugin classes can implement NodeData::Read() and NodeData::Write(). This allows to store internal data that is not stored in the BaseContainer when the scene is saved to a *.c4d file.
- Note
- If NodeData::Read() and NodeData::Write() are implemented typically also NodeData::CopyTo() should be implemented.
NodeData::Read() corresponds to C4DAtom::Read(), NodeData::Write() corresponds to C4DAtom::Write().
See also BaseDocument Disc I/O.
Usage
NodeData::Read() is called when a *.c4d file is loaded, NodeData::Write() is called when the element is saved to a *.c4d file. The given HyperFile object represents this *.c4d file.
{
{
_branchHead->ReadObject(hf, true);
hf->ReadInt32(&_value);
}
return true;
}
Bool Write(
const GeListNode*
node, HyperFile* hf)
const
{
_branchHead->WriteObject(hf);
hf->WriteInt32(_value);
return true;
}
PyObject PyObject PyObject int level
Definition: import.h:58
maxon::Bool Bool
Definition: ge_sys_math.h:46
maxon::Int32 Int32
Definition: ge_sys_math.h:51
The arguments of the functions are:
- The node itself.
- The HyperFile to read from or write to. See HyperFile Manual.
- The element level: This is the plugin version defined with the "Register" function. See Registration.
- Note
- The order of operations needs to be the same in both function implementations.
-
When NodeData::Read() is called the element is not yet part of a BaseDocument.
-
To check if a message dialog can be shown in the context of NodeData::Read(), use HyperFile::GetFilterFlags() to check if ::SCENEFILTER::DIALOGSALLOWED is set.
Further Reading