How does InsertObject work [SOLVED]

  • On 17/07/2015 at 16:03, xxxxxxxx wrote:

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


    I'm getting crazy. I want to cut an object and insert it as an child to an null object. Here's my code:

    BaseObject* op = doc->GetFirstObject();  
    BaseObject* wallsNull = BaseObject::Alloc(Onull);  

    After executing this, my whole objects of the scene are inside the "wallsNull" and not only the first one. Also cinema freezes.
    What I'm doing wrong?

    Edit: Cinema doesn't freeze but I can't close it.


  • On 17/07/2015 at 16:20, xxxxxxxx wrote:

    You can only insert a new object once into the document.  If you want it to be at the root, use the first doc->ObjectInsert() call.  The second call is gibberish. You cannot insert op underneath the object your are inserting.  If you want that then you have to remove op and insert under it:

    doc->InsertObject(wallsNull, nullprt, nullptr);
    doc->InsertObject(op, wallsNull, nullptr);

    So, removing op frees it from the document's hierarchical chain so that you can then reinsert it into the document where you want in that hierarchy.  Understand?

  • On 17/07/2015 at 16:30, xxxxxxxx wrote:

    Thank you so much!!! I understand and it works now :)

Log in to reply