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

    How Visibility Tag work

    Scheduled Pinned Locked Moved PYTHON Development
    3 Posts 0 Posters 383 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

      On 16/03/2017 at 08:20, xxxxxxxx wrote:

      I would like to know how exactly the visibility tag work.
      Basicly I want to make something that modify only the viewport aspect of an object like the visibility tag does. I starting diving into point cloud, and have really succesfull test with it and result look promising.
      http://img4.hostingpics.net/pics/289496pointCloud.jpg

      My first idea was simply to set visibility viewport on the attached mesh and then make my own stuff.
      But in this case I will have no control if I want to hide an object.

      About the pointcould impentation for the moment it's only TP particles, but good things with TP is I just have to emit particle and set them into the world position.
      But I was thinking to moving to BaseDraw only for speed since it do not have to handle all the TP things. wich is way more cleaner and maybe faster. But I have to redraw everythings on each camera move since point are only 2D and in top of that I must send a ray from the (3d)points to the camera for checking if any object is beetween and if yes don't display the 2d dots. So does it will be really faster? I doubt.

      But is There any other way for managing particles instead of TP (cause for now I must allocate a Tp-group, hide it, allow X numbers of particles to be viewed and so on)
      Or any other class for making 3d point with a color.
      Again if it's not possible in python it's ok 🙂
      Thanks in advance.

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

        On 17/03/2017 at 02:52, xxxxxxxx wrote:

        Hello,

        there is no "Visibility" tag. Do you mean the "Display" tag?

        The "Display" tag actually doesn't do anything. It is just some data container that stores several settings. It is the job of the renderer or the viewport to handle these settings and to display objects accordingly.

        If you want to define a point cloud with colors you could create a point object and store the colors per point in an VertexColorTag.

        best wishes,
        Sebastian

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

          On 17/03/2017 at 03:57, xxxxxxxx wrote:

          Thanks you S_Bach for your reply.

          Yes sorry I mean the Display tag.
          Then for exemple I set the visbility to 0% how to do the same things in my tag?

          About VertexColor tag is not a working solution for me since I want them to display everytime. Not only when I'm on point mode, I also select the object and I also select the Vertex Color Tag.
          Or maybe I have missed something. here is my code

          import c4d
            
          def main() :
              p_obj = c4d.BaseObject(5100)
              list_pt = [c4d.Vector(0,0,0), c4d.Vector(250, 250, 250)]
              p_obj.ResizeObject(len(list_pt))
              p_obj.SetAllPoints(list_pt)
              p_obj.Message(c4d.MSG_UPDATE)
              doc.InsertObject(p_obj)
              
              point_count = p_obj.GetPointCount()
              t_color = p_obj.GetTag(c4d.Tvertexcolor)
              if not t_color:
                  t_color = c4d.VertexColorTag(point_count)
                  p_obj.InsertTag(t_color)
              
              data = t_color.GetDataAddressW()
              for idx in xrange(point_count) :
                  t_color.SetPoint(data, None, None, idx, c4d.Vector4d(1.0, 1.0, 1.0, 1.0))
            
              c4d.EventAdd()
              
          if __name__=='__main__':
              main()
          

          Then it's not a working solution for me. It's why for me only 2 solutions are Particles or manual drawing.
          Basicly I don't want any PointObject I just want a display 😉 User won't be able to interact with.

          Anyway thanks you 🙂

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