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
    1. Maxon Developers Forum
    2. user168462
    3. Topics
    U
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 11
    • Best 0
    • Controversial 0
    • Groups 0

    Topics created by user168462

    • U

      AdditionalCompileOptions in xcode

      Cinema 4D SDK
      • • • user168462
      3
      0
      Votes
      3
      Posts
      609
      Views

      U

      Hi Manuel,
      Actually I couldn't find a clean answer..
      The only way I found was to set some files into ../frameworks/settings/...

      Best,

    • U

      Discover when a tag has been disabled

      Cinema 4D SDK
      • c++ • • user168462
      4
      0
      Votes
      4
      Posts
      742
      Views

      ferdinandF

      Hello @user168462,

      Thank you for reaching out to us. You said,

      "I guess there is no way to observe a tag if you are not implementing it."

      It depends a bit on how you mean that and how you mean your question in general. @C4DS gave you already a very nice answer (thanks for that). There are basically two scenarios (which effectively will become one):

      There is a specific BaseTag instance tag where you did not implement the tag type yourself and you want to track changes for that specific tag instance for a specific parameter. There is a BaseTag type t where you did not implement the tag type yourself and you want to track changes of a parameter for all tags of that type in a scene.

      One might be tempted to solve option 1 by simply storing a pointer to that BaseTag and then periodically look up the tag to track changes. But this will not work due to node reallocation. This problem can be solved by either using the Baselink type or by manually traversing a document tree/graph and identifying nodes by their unique id stored under MAXON_CREATOR_ID. This second approach (traversing the whole document tree) is also what is the solution to option 2.

      To carry out the periodical checking, the most straight forward option is to the core message EVMSG_CHANGE. You can do this in a MessageData plugin or GeDialog derived GUIs. An alternative approach is to implement a SceneHookData plugin and do the traversing in its Execute() method.

      TLDR: While the Cinema 4D classic API does not have a dependency graph or a very granular event system, scene changes can be tracked with EVMSG_CHANGE. It is only that it is up to the user to find out if the change that occurred is of relevance as Cinema 4D does not give any context for the cause of EVMSG_CHANGE.

      Cheers,
      Ferdinand

    • U

      Compute distance from a point to a mesh

      Cinema 4D SDK
      • • • user168462
      4
      0
      Votes
      4
      Posts
      803
      Views

      ferdinandF

      Hi,

      I am looking for hit point. Then if I understand well, my only way would be to use GeRayCollider on all objects ?

      A point-something projection will also give you a "hit-point" in some sense. The question is if you want to find the closest point for a point on some geometry (projection), or a point on a geometry for a point and a ray (intersection). GeRayCollider realizes ray-triangle intersection testing for PolygonObject instances. For multiple objects you must initialize multiple collider instances (or reinitialize one instance). But you cannot intersection test a null, a spline, or joint object as shown in your screenshot as they do not contain any triangles. When you are just interested in the closest point in some discrete geometry, you can use ViewportSelect or the more modern maxon API equivalent maxon::DistanceQueryInterface with a slightly different and more abstract purpose. ViewportSelect can also be used to pick the object in a scene which is closest to a point (for the cursor for example) for further testing with other methods.

      In maxon::GeometryUtilsInterface you will find some basic building blocks for writing something of your own.

    • U

      Retrieving camera view volume

      Cinema 4D SDK
      • sdk c++ maxon api • • user168462
      3
      0
      Votes
      3
      Posts
      549
      Views

      U

      @cairyn Thank you!

    • U

      Get list of all commands and their associated information

      Cinema 4D SDK
      • c++ maxon api sdk • • user168462
      6
      0
      Votes
      6
      Posts
      1.1k
      Views

      ferdinandF

      Hello @m_adam,

      without any further questions or other postings, we will consider this topic as solved and flag it as such by Friday, 17/06/2022.

      Thank you for your understanding,
      Ferdinand