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
    • Recent
    • Tags
    • Users
    • Register
    • Login

    GetClone() crash

    Scheduled Pinned Locked Moved SDK Help
    5 Posts 0 Posters 496 Views
    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 Offline
      Helper
      last edited by

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

      On 16/11/2005 at 10:30, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   9.5 
      Platform:    Mac  ;  Mac OSX  ; 
      Language(s) :     C++  ;

      ---------
      Howdy,

      I don't understand why GetClone() crashes by simply replacing the flag COPY_NO_ANIMATION with COPY_NO_BRANCHES. I also tried just adding COPY_NO_BRANCHES to the flags and leaving COPY_NO_ANIMATION in there and it still crashed.

      Here is the code snippet:

        
      BaseObject* destObject = NULL;  
      destObject =(BaseObject* )op->GetClone(COPY_NO_HIERARCHY|COPY_NO_ANIMATION|COPY_NO_BITS,NULL);  
      if (! destObject) goto Error;  
      

      The above code works fine, but I don't want the object's tags to be copied to the new object.

      The SDK doc says for COPY_NO_BRANCHES:
      Don't copy branches, for example tags on an object. Automatically implies COPY_NO_ANIMATION, as animation is a branch.

      From the SDK doc, I would assume all I have to do is use the COPY_NO_BRANCHES, but that causes Cinema to crash.

      How am I supposed to set it up to not copy the tags to the cloned object?

      Adios,
      Cactus Dan

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

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

        On 16/11/2005 at 11:19, xxxxxxxx wrote:

        Howdy,

        Well, OK, I've now used a work around. Now I'm just checking for tags and deleting them from the clone. I'm going to use this method because I can check for specific tags to delete and keep tags like Phong, UVW, etc., but I'd still like to know why the COPY_NO_BRANCHES flag causes a crash.

        Adios,
        Cactus Dan

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

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

          On 12/12/2005 at 16:13, xxxxxxxx wrote:

          Any solution on this, Dan? Personally, I think that GetClone() should be pinned to the developers' shirts like a Scarlet letter. I'm not doing GetClone() within a GetVirtualObjects() but am trying to get the hierarchy cloned as well - just trying to clone the damn selected objects and it is crashing under every circumstance.

          My opinion: GetClone() doesn't work under certain circumstances (hierarchies and no branches) - at least not in the 8.012 SDK.

          Again, I want access to basic (but obsfucatedly complex for the developer) actions within Cinema 4D. Copying objects, tags, etc., should be a call to use the Cinema 4D interface, not to an all out war trying to replicate the simplest operations.

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

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

            On 12/12/2005 at 17:31, xxxxxxxx wrote:

            Howdy,

            Well, I haven't gone back to trying that, Robert. I used my work around instead because I was really only concerned about not copying a couple of specific tags, and I just search for them and delete them immediately after copying the object.

            It would be interesting to know, though why that flag causes a crash.

            Adios,
            Cactus Dan

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

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

              On 12/12/2005 at 18:56, xxxxxxxx wrote:

              Hi Dan,

              I found the problem - never insert the clones immediately to the document while looping through the document's objects. Instead, an array of BaseObject pointers was needed to store the clones so that they could be inserted after all of the cloning was complete. Again, argh... 😉

              It is possible that there is some sort of interdependency between some of the tags and/or objects in your situation.    I hope that this isn't something that will rear its ugly head since my cloning neither clones animations (unneeded) nor internals (want the baselinks to be unmodified).

              As an aside, I found an odd situation with GetActiveObjects() in 8.012 (not in other versions). As long my AtomArray was filled with valid selections, there was a crash during quit. No selected objects, no crash. As you did, I created a workaround that just scans the document for BaseObjects that are 'active' (BIT_ACTIVE) and away went the crash. Can you say 'unstable'? 😉

              Take care,

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