THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 02/01/2004 at 01:00, xxxxxxxx wrote:
I've posted a question to the developers but I suspect they are still on holiday for yet a few days. However, "Dave" is the magic word. Then I know that you'll never listen to any advice I give you to abandon the idea...
So let me share a small hacking-C4D trick. Just make a scene with a single dummy object and a single Xpresso tag with a single node. Then export two XML files, one where you have moved the node. If you run windiff on these two files you'll find out how the position is stored.
In this case you'll find that a number deep into the node's container changed. Here's the code to dig it up, complete with a few constants from c4d_graphview_def that seemed to fit in: (Though 100 and 101 will have to remain magic constants.)
Bool MenuTest::Execute(BaseDocument *doc)
BaseObject* obj = doc->GetFirstObject();
XPressoTag* xpt = static_cast<XPressoTag*>(obj->GetTag(Texpresso));
GvNodeMaster* nm = xpt->GetNodeMaster();
GvNode* root = nm->GetRoot();
GvNode* node = root->GetDown();
BaseContainer bcs = node->GetData().GetContainer(ID_SHAPECONTAINER);
BaseContainer bcd = bcs.GetContainer(ID_OPERATORCONTAINER);
LONG x = bcd.GetLong(100);
LONG y = bcd.GetLong(101);
GePrint("x: " + x + ", y: " + y);
This is of course unsupported, so you'll have to check if it changes in the future. Good luck with the BT frontend!