Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python 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

    Object Unique identifier?

    SDK Help
    0
    6
    503
    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

      On 31/05/2013 at 01:03, xxxxxxxx wrote:

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

      ---------
      How can I recognize / identify an object among other object where all have the same name?
      For example, I have a Cube, and have added 3 Constraint tags. All automatically get the same name "Constraint". But I want to identify the tag right in the middle.

      I know C4D knows who is who (I hope so).
      What I want is an unique ID for each tag.
      I have looked at SetMarker and the like, but in other development environments, I am used to all objects getting an unique ID, which I can access by a property or method.
      And if possible, I do not want any interaction on my behalf, by doing a SetMarker or the like. I just want to access the unique LONG id or whatever that makes one particular object(tag) special (its memory address for example).

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

        On 31/05/2013 at 01:54, xxxxxxxx wrote:

        I used the two numbers obtained from

        void BaseList2D::GetMarkerStampEx(ULONG* l1, ULONG* l2).

        As a pair, i believe it is unique for as long as c4d runs. They are not stored on disk AFIK so they are different each time a scene is loaded.

        I would not use a memory pointer as identifier because an object might be created at exactly the same location as a previously deleted object.

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

          On 31/05/2013 at 02:43, xxxxxxxx wrote:

          You could also use LULONG BaseObject::GetGUID().

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

            On 31/05/2013 at 02:45, xxxxxxxx wrote:

            Ok I will look into this. Actually, I need something that is persistent, the same after C4D is restarted and project reloaded.

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

              On 31/05/2013 at 04:18, xxxxxxxx wrote:

              Originally posted by xxxxxxxx

              Ok I will look into this. Actually, I need something that is persistent, the same after C4D is restarted and project reloaded.

              Create a hidden numeric field in your description, then set that to some number that you know is unique when the tag is created. When you save and load the file that unique number will be retained, so it's always the same in that file.

              It's getting that unique number that's the pain. To do that you could simply iterate through all your tags in the scene, get the highest number in use between all of them, and assign the new tag that number + 1.

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

                On 31/05/2013 at 05:11, xxxxxxxx wrote:

                A good idea! But actually, it is other tags I want to have a unique ID to, not my own tag.

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