Predetermine if Joints are available



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

    On 25/12/2007 at 19:40, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R9-R10 
    Platform:   Windows  ;   Mac OSX  ; 
    Language(s) :     C++  ;

    ---------
    What do you reckon is the best way to predetermine if a user has R10 and MOCCA in order to include Joints as an option for a conversion process? Determining if the user is running R10 isn't difficult but how to know if Joints are available (requiring the MOCCA module) is not so straightforward (i.e.: there isn't a way to ask if Ojoint is a valid object type to create (before actually creating objects, mind you) or if the MOCCA module exists).

    Thanks,



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

    On 26/12/2007 at 05:53, xxxxxxxx wrote:

    Wouldn't just checking under "modules" if it is installed or not be enough?
    There is even a "build.txt" file in there.

    Cheers
    Lennart



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

    On 26/12/2007 at 10:56, xxxxxxxx wrote:

    Not sure if that is the best approach or not. What if it was installed but not registered (no valid serial or something)? Just existing on disk doesn't guarantee that it is being used by Cinema 4D.

    One idea that I had was to call op = BaseObject::Alloc(Ojoint) and then BaseObject::Free(op) after making the determination. But that is a bit tricky as well - the allocation could fail for other reasons besides no MOCCA module available.

    I know other developers have made similar queries or given methods for this but don't know where to look exactly. :(

    Thanks,



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

    On 27/12/2007 at 17:33, xxxxxxxx wrote:

    Howdy,

    The R10 joints are not in the Mocca module, they are in the core.

    Adios,
    Cactus Dan



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

    On 27/12/2007 at 17:53, xxxxxxxx wrote:

    That's really interesting - and confirmed (my MacOS version of R10 is the core only). They show it only in the MOCCA section of the manual (Help) and they keep taughting it as MOCCA. Very strange - but makes my life easier! :)

    Thanks, Dan!



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

    On 27/12/2007 at 17:55, xxxxxxxx wrote:

    Howdy,

    BTW, I just tried this:

    > _
    > if(FindPlugin(1019362,C4DPL_OBJECT)) GePrint("R10 Joint is a Plugin");
    > else GePrint("R10 Joint is not a plugin");
    > _

    ...and the console printed: R10 Joint is a Plugin

    So I Reckon the function FindPlugin(LONG id, LONG type) will find anything that has an ID and is of the type you pass. ;o)

    Adios,
    Cactus Dan



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

    On 27/12/2007 at 18:21, xxxxxxxx wrote:

    I'll have to remember that - don't need this too often, but when I do... :)



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

    On 27/12/2007 at 18:24, xxxxxxxx wrote:

    Howdy,

    I also just tried this:

    > _
    > if(FindPlugin(5140,C4DPL_OBJECT)) GePrint("Null Object is a Plugin");
    > else GePrint("Null Object is not a plugin");
    > _

    ... and the console printed: Null Object is a Plugin

    ;o)

    Adios,
    Cactus Dan



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

    On 28/12/2007 at 06:05, xxxxxxxx wrote:

    Internaly many parts of CINEMA 4D are technicaly plugins (i.e. based on the SDK and compiled as CDL/XDL ... files).
    Over time more and more what was previously part of the core application has been moved into external libraries that are easier to maintain and to fix.
    Unsurprisingly this will result as many parts of the app beeing identified as plugins
    Cheers
    Björn



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

    On 28/12/2007 at 12:44, xxxxxxxx wrote:

    Howdy,

    Hehe, that's kind of what I assumed, and why I thought of trying the FindPlugin() function. ;o)

    Adios,
    Cactus Dan


Log in to reply