Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/11/2009 at 12:34, xxxxxxxx wrote:
User Information: Cinema 4D Version: R11 Platform: Mac OSX ; Language(s) : C++ ;
--------- In a shader, I have an IN_EXCLUDE description element, which only accepts Base Objects ACCEPT { Obase; }
Basically this works, I get InExcludeData and can i.e. get the right object count. However, I'm struggling with the best way to acces the objects itself during RenderInit (just reading of course).
With GetData(i) I get a valid BaseContainer, but my attempts to create the BaseObject* fail. The BaseContainer delivers -1 on GetId() - NOTOK?
Any insight? Should be straight forward to get the BaseObjects from a list with some cast...
Thanks!
Kabe
On 23/11/2009 at 00:47, xxxxxxxx wrote:
Is that question stupid simple or complicated?
On 23/11/2009 at 06:05, xxxxxxxx wrote:
It's actually pretty stright forward.
Accessing the list objetcs:
LONG MandelbrotData::InitRender(PluginShader *sh, InitRenderStruct *irs) { BaseContainer *data = sh->GetDataInstance(); InExcludeData *list = NULL; list = (InExcludeData* )data->GetCustomDataType(MYLIST,CUSTOMDATATYPE_INEXCLUDE_LIST); if (list) { BaseObject *obj = NULL; LONG i, ocnt = list->GetObjectCount(); for (i=0; i<ocnt; i++) { obj = (BaseObject* )list->ObjectFromIndex(sh->GetDocument(),i); if (obj) { GePrint(obj->GetName()); } } } return LOAD_OK; }
from the resource file:
... IN_EXCLUDE MYLIST { ACCEPT { OBase; } } ...
cheers, Matthias
On 23/11/2009 at 08:01, xxxxxxxx wrote:
Thanks Matthias!
Turned out that I failed in the beginning because I used GetActiveDocument() to get the doc, which fails during preview...