Hi,
NodeData::Write
is called when a document is about to be saved, to let you serialize any data that you cannot serialize into the data container of your NodeData
node. The method passes you a pointer to a Hyperfile
and expects you to serialize your data into that Hyperfile
and Cinema then incorporates that data into the saved file. After the document has been saved, its in memory representation, including the file path, will be updated. The sister methods Read
and CopyTo
are expected to be implemented analogously.
I do not know what you are planning to do, but you said you have multiple nodes in your scene and there probably will be a user who thinks he really needs 500 of them. Which will lead to 500 save operations at the same time (which doesn't seem very graceful to me). So if you really want to save to (a) separate file(s), it would seem more graceful to at least move the save logic to a separate MessageData
plugin and combine all of your nodes into one file.
I do not think that Maxon has fully exposed the saving process of Cinema, but you can get an idea of it by looking into the link I posted in my first post. They somewhat expect you to use the read/write logic related methods in NodeData
. Circumventing these methods to save additional data does not seem advisable (unless you know exactly what you are doing), because it handles all the merging and copying (and other stuff that can happen) for you, which you would have to implement by hand if you would circumvent these methods.
Cheers,
zipit