NodeData list
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/04/2010 at 08:48, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 11.5
Platform: Windows ; Mac OSX ;
Language(s) : C++ ;---------
hello all,
i have made new nodedata plugin and i'dd to alloc a list of this mynode in a document, store the list in it ,make recusion in it and retrive some data.any experience ?
Franz -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2010 at 02:12, xxxxxxxx wrote:
NodeData plugins can only be stored in SceneHooks. So you have to write your own SceneHook to save your list of NodeData plugins along with the document.
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2010 at 03:18, xxxxxxxx wrote:
i am exactly in this situation ... but any sample ?
is not very clear how is possible?Franz
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2010 at 08:01, xxxxxxxx wrote:
I may have mixed up something here. I will try to find a solution.
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/04/2010 at 00:23, xxxxxxxx wrote:
thanks
Franz -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 20/05/2010 at 06:39, xxxxxxxx wrote:
FYI, I put together a small example of how to store a NodeData plugin within a scene hook.
Please check the code comments for more detailed information.
the NodeData plugin:
#include "c4d.h" #include "c4d_symbols.h" //just a extremly simple Nodedata plugin :) class MyNode : public NodeData { public: static NodeData *Alloc(void) { return gNew MyNode; } }; #define ID_MYNODE 1024726 Bool RegisterMyNode(void) { return RegisterNodePlugin(ID_MYNODE, "My Node", 0, MyNode::Alloc, NULL, 0, NULL); }
the SceneHookData plugin to store the NodeData plugin:
#include "c4d.h" #include "c4d_symbols.h" class MyNode; #define ID_MYSCENEHOOK 1025181 class MySceneHook : public SceneHookData { public: //constructor; initialization and plugin node allocation MySceneHook() { hookname = String("My SceneHook Name"); mynode = (BaseList2D* )AllocListNode(1024726); } virtual Bool Init(GeListNode *node); virtual Bool Read(GeListNode *node, HyperFile *hf, LONG level); virtual Bool Write(GeListNode *node, HyperFile *hf); virtual LONG GetBranchInfo(GeListNode* node, BranchInfo* info, LONG max, ULONG flags); static NodeData *Alloc(void) { return gNew MySceneHook; } private: AutoAlloc<GeListHead> head; //this is the list head were the plugin node will be inserted to String hookname; BaseList2D *mynode; //pointer to an instance of the plugin node }; Bool MySceneHook::Init(GeListNode *node) { if (!head || !mynode) return FALSE; head->SetParent(node); //needed to save the node list head->Insert(mynode, NULL, NULL); //insert the plugin node into the list return TRUE; } Bool MySceneHook::Read(GeListNode *node, HyperFile *hf, LONG level) { return head->ReadObject(hf, TRUE); //needed to read files } Bool MySceneHook::Write(GeListNode *node, HyperFile *hf) { return head->WriteObject(hf); //needed to save files } LONG MySceneHook::GetBranchInfo(GeListNode *node, BranchInfo *info, LONG max, ULONG flags) { //fill the info structure array; only one element is saved in this example info[0].head = head; info[0].name = &hookname; info[0].id = ID_MYSCENEHOOK; info[0].flags = 0; return 1; //return the number of filled BranchInfo elements } Bool RegisterMySceneHook(void) { return RegisterSceneHookPlugin(ID_MYSCENEHOOK, "My SceneHook", 0, MySceneHook::Alloc, EXECUTION_EXPRESSION, 0, NULL); }
main.cpp
... Bool RegisterMyNode(void); Bool RegisterMySceneHook(void); ... Bool PluginStart(void) { ... if (!RegisterMyNode()) return FALSE; if (!RegisterMySceneHook()) return FALSE; ... return TRUE; }
hope this helps
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 20/05/2010 at 06:43, xxxxxxxx wrote:
Great!!!!!!!!!!!!
now is clear for me
Franz