Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Predetermine if Joints are available

    SDK Help
    0
    10
    732
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      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,

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        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

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          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,

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            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

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              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!

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

                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

                1 Reply Last reply Reply Quote 0
                • H
                  Helper
                  last edited by

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

                  1 Reply Last reply Reply Quote 0
                  • H
                    Helper
                    last edited by

                    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

                    1 Reply Last reply Reply Quote 0
                    • H
                      Helper
                      last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • H
                        Helper
                        last edited by

                        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

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post