How to access display tag data?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/02/2003 at 03:28, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.012
Platform: Windows ;
Language(s) : C++ ;---------
Hi,
isn't it possible to change data of a display tag?tag = BaseTag::Alloc(Tdisplay); if (tag) { op->InsertTag(tag, NULL); cData = tag->GetDataInstance(); cData->SetBool(DISPLAYTAG_AFFECT_DISPLAYMODE, TRUE); cData->SetLong(DISPLAYTAG_DISPLAYMODE, DISPLAYTAG_DISPLAYMODE_WIREFRAME); }
This code will insert the tag, but container data is not affected!?
To verify the ID values, I tried this:BaseTag *tag = op->GetTag(Tdisplay); if (tag) { BaseContainer *cData = tag->GetDataInstance(); LONG i; GePrint("Searching ID..."); for (i=1000; i<100000; i++) { if (cData->GetLong(i) == DISPLAYTAG_DISPLAYMODE_WIREFRAME) GePrint("ID:" + LongToString(i)); } }
Nothing. I can change any value using the gui of the tag without any effect in the container data.
What's wrong?
Analogous to Tphong and SetPhong(...), I looked for a method like "SetDisplay(...)"; without any success.
Klaus Heyne -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/02/2003 at 06:03, xxxxxxxx wrote:
please search this forum with a corresponding value. There was already a thread that solved this problem.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/02/2003 at 10:12, xxxxxxxx wrote:
Thanks for the hint. But the thread you mean, handles with coffee and didn't solve the problem.
So, again a code snippet from the execute function of a plugin tag, assigned to the object, that also has the display tag:BaseTag *dTag = op->GetTag(Tdisplay); if (dTag) { BaseContainer *dData = dTag->GetDataInstance(); dData->SetBool(DISPLAYTAG_AFFECT_DISPLAYMODE, TRUE); dData->SetLong(DISPLAYTAG_DISPLAYMODE, DISPLAYTAG_DISPLAYMODE_WIREFRAME); dTag->Message(MSG_UPDATE); }
The debugger does not show the name of the display tag!? Should it?
Is there something wrong with GetDataInstance?
Klaus Heyne -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/02/2003 at 10:21, xxxxxxxx wrote:
Hi,
sorry. My fault. Should have looked bette. HAven´t noticed you are working with C++.
Yes, GetDataInstance is sometimes not possible (don´t ask my why. There must be a reason but I don´t know it). Use GetData to get the BaseContainer and use SetData after changing properties. This will work for the Display Tag (had the same problem some time ago).
Best
Samir