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

    Document copied for Picture viewer doesnt copy contents of child of a TagData

    Cinema 4D SDK
    c++
    2
    2
    14
    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.
    • E
      ECHekman
      last edited by ECHekman

      I am encountering a problem when rendering to picture viewer.
      I have two plugins, a TagData and a NodeData as its child.
      I also created a link from the TagData to the NodeData for easy access
      However when the document is copied and sent to the picture viewer renderer there are two issues.

      1. The link is not copied
      2. The contents of the NodeData basecontainer are not copied over

      The copied TagData does have a child object with my type, so it does exist

      Here is how I connect the two plugins

      Bool MyTagData::Init(GeListNode* node, Bool isCloneInit)
      {
          BaseTag* tag = (BaseTag*)node;
          BaseContainer *data = tag->GetDataInstance();
          BaseList2D* mynodedata= BaseList2D::Alloc(ID_MY_NODEDATA); // Creating my MyNodeData
          mynodedata->InsertUnderLast(node); //Add as mynodedata as a child to mytagdata
          data->SetLink(MYTAG_NODEDATA_INK, mynodedata); //Add link for easy access
          return true;
      }
      

      This basically works in all situations, except when sending it to the picture viewer for rendering.
      I feel like im missing something, but i cant find what in the documentation

      1 Reply Last reply Reply Quote 0
      • M
        m_adam
        last edited by

        Hey you are not supposed to modify the scene graph during the init function.
        Adding children to a tag while it may be possible is as far as I know not something done in Cinema 4D. so for optimization purpose I would not be surprised that they are never copied at all.

        With that's said I would recommend you to use a custom branch to store your BaseList2D as demonstrated in C++ SDK: Custom Branching Code Example .
        In last case you should implement the CopyTo to properly copy your data when your node is copied. But again modifying the scene Graph during the Init is not the way to got.

        Cheers,
        Maxime.

        MAXON SDK Specialist

        Development Blog, MAXON Registered Developer

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