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