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
    • Login

    BaseDraw.DrawPoint2D

    Scheduled Pinned Locked Moved PYTHON Development
    4 Posts 0 Posters 403 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/12/2013 at 04:05, xxxxxxxx wrote:

      ok, i'm doing and object plugin.
      Everything that i draw which is 2D, like DrawPoint2D and other objects that are drawn in screen space, are drawn behind/overlapped by the objects in the scene. I'm drawing in the c4d.DRAWPASS_OBJECT pass.

      for example:

        
      def Draw(self, op, drawpass, bd, bh) :  
            if drawpass==c4d.DRAWPASS_HIGHLIGHTS:  
                return c4d.DRAWRESULT_SKIP  
            elif drawpass == c4d.DRAWPASS_OBJECT:  
                bd.SetMatrix_Screen()  
                posList = [Vector(500,500,500),  
                           Vector(480,480,500),  
                           Vector(470,470,500),  
                           Vector(460,460,500),  
                           Vector(450,450,500),  
                           Vector(440,440,500),  
                           Vector(430,430,500),  
                           Vector(420,420,500),  
                           Vector(410,410,500),  
                           Vector(400,400,500)]  
                for point in posList:  
                    bd.DrawPoint2D(point)  
                bd.SetMatrix_Matrix(None,bh.GetMg(),0)  
      
      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        On 16/12/2013 at 07:39, xxxxxxxx wrote:

        If you use a SceneHook plugin to draw 2D stuff to the screen it won't get hidden by the objects.
        Take a look at this: http://c4dprogramming.wordpress.com/2012/11/15/2d-drawing-using-a-scenehook/

        However,
        I found another way to get around the problem (I call it a bug) by creating a dummy 2d object at the top of my code where I'm drawing things.
        The dummy object I use is just a 2D line with no length.
        This pushes the drawn 2D stuff out one layer and prevents objects from covering it up.

        -ScottA

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

          On 16/12/2013 at 12:19, xxxxxxxx wrote:

          Hm, I can't get to exploit your bug suggestion 🙂 The result is the same, and if i don't fix the matrix after that it messes up the 3d draws following in the code. I found that post with the scene hook before posting here, but I have no C++ experience at all. Looking at that code, i can't understand how to register a scene hook plugin via pythoh. Any hints ?

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

            On 16/12/2013 at 13:25, xxxxxxxx wrote:

            I don't happen to have a Python example of drawing 2D things to the screen in an Object plugin.
            But I do have one for a Tag type of plugin.

            If you like.
            Send an e-mail to: [email protected] with your e-mail address. And I'll send you the plugin and the code.

            -ScottA

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