Accessing objects from InExcludeData

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

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 23/11/2009 at 00:47, xxxxxxxx wrote:

Is that question stupid simple or complicated?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

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

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

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...

Kabe