Determining type of an object



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

    On 11/08/2009 at 11:27, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R11 
    Platform:   Windows  ;   
    Language(s) :     C++  ;

    ---------
    I know this has been asked several times, and I've searched the forum for explanations, but I'm still confused. It's so easy in COFFEE but how to do it in C++?

    Specifically, I want to determine if an object in the scene is a point object. According to the SDK, I should be able to do:

    if(obj->GetInfo() & OBJECT_POINTOBJECT) ...

    but it won't compile, in that OBJECT_POINTOBJECT is undefined. Where in the API is this (and the other OBJECT_ constants) defined? I can't find them anywhere. Or am I misinterpreting the SDK (more than likely!)?

    Thanks,
    Steve



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

    On 11/08/2009 at 12:37, xxxxxxxx wrote:

    if (obj->IsInstanceOf(Opoint)) ...

    Except for Splines, this works for everything (tags, materials, objects, ...). Most of the available IDs are in the SDK docs.

    For Splines, use:

    if (obj->GetInfo()&OBJECT;_ISSPLINE) ...

    To use IsInstanceOf() with your own plugin classes, use the unique Plugin ID in place of something like 'Opoint' and add this to the top of your class definition:

    class MyObject : public ObjectData
    {
    INSTANCEOF(MyObject,ObjectData)
    ...
    };



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

    On 11/08/2009 at 14:46, xxxxxxxx wrote:

    Ah... thank you! I was obviously going wrong with GetInfo, IsInstanceOf does exactly what I need.

    I'll be back when I hit another brick wall, many thanks in the meantime.


Log in to reply