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

    De-constructing a hierarchy

    General Discussion
    0
    6
    725
    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

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

      On 26/11/2010 at 17:25, xxxxxxxx wrote:

      I need to create an algorithm that goes through a hierarchy of objects and rebuilds the list in a way that is would be able to rebuild the same hierarchy, later. Lets say:

      Cube1
      -Platonic1
      --SweepNURBS1
      ---Spline1
      ---Spline2
      --Cube2
      ---Platonic2
      ----Sphere1

      The order of creation is (I believe) :

      Cube1
      Platonic1 (insert_under Cube1)
      Cube2 ( (insert_under Platonic1)
      Platonic2 ( (insert_under Cube2)
      Sphere1 (insert_under Platonic2)
      SweepNURBS (insert_under Platonic1)
      Spline2 (insert_under SweepNURBS)
      Spline1 (insert_under SweepNURBS)

      This is because each time I InsertUnder, the inserted object ends up being the first child of its parent.
      Is there any algorithm that goes through a hierarchy and returns a list of objects in the correct order so that a new scene could be reconstructed?
      I already tried a few times to code such a thing but I'm having no luck 😞
      Anyone? Please...

      Rui Batsita

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

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

        On 27/11/2010 at 02:29, xxxxxxxx wrote:

        Then why don´t you use InsertAfter instead? 😉 Insert the SweepNurbs with InsertUnder, then user InsertAfter(sweepnurbs) for cube2. Then go through that hierarchy level again and start doing the same to sweep and cube2 for their children.

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

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

          On 27/11/2010 at 06:35, xxxxxxxx wrote:

          I need to automate the process. If I make it by hand, of course I would make it differently.
          But I need to be able to provide any hierarchy to my code and it must create a list in the correct order so that it could all be solved with InsertUnder.
          If there was an algorithm that would do what I need listing the objects in the correct order and having a flag telling that I should insert it with InsertUnder or InsertAfter, that would also be fine.

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

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

            On 27/11/2010 at 06:44, xxxxxxxx wrote:

            I don´t see why you wouldn´t be able to make a recursive function out of my suggestion.

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

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

              On 29/11/2010 at 16:44, xxxxxxxx wrote:

              Me neither 😉

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

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

                On 04/12/2010 at 16:39, xxxxxxxx wrote:

                The problem with InsertAfter is that it doesn't seem to work in Python. For example, the following code doesn't work inside a Python Generator:

                def main() :
                    parent=c4d.BaseObject(c4d.Osweep)
                    profile=c4d.BaseObject(c4d.Osplinecircle)
                    path=c4d.BaseObject(c4d.Osplinestar)
                    profile.InsertUnder(parent)
                    path.InsertAfter(profile)
                    return parent

                However, the following code does work:

                def main() :
                    parent=c4d.BaseObject(c4d.Osweep)
                    profile=c4d.BaseObject(c4d.Osplinecircle)
                    path=c4d.BaseObject(c4d.Osplinestar)
                    path.InsertUnder(parent)
                    profile.InsertUnder(parent)
                    return parent

                But I need to insert the path before and then the profile, to create a sweep. This is harder than I thought 😞

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