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

    Using DrawPoly()

    Scheduled Pinned Locked Moved SDK Help
    4 Posts 0 Posters 345 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

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

      On 13/10/2009 at 15:53, xxxxxxxx wrote:

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

      ---------
      Hello I am currently using Polygon3D to create a visual aid in my plugin. I was wondering if someone could tell me how I would use DrawPoly to accomplish the same task?

      Here is the code I use that uses Polygon3D()

      Here's the declarations and such.

      > `

        
      \>      BaseContainer *bc=((BaseList2D* )tag)->GetDataInstance();  
      \>      LONG lngMySymPlane =tag->GetDataInstance()->GetLong (SYMMETRY_PLANE);  
      \>       LONG lngMirroredSide = tag->GetDataInstance()->GetLong(MIRRORED_SIDE);  
      \>      LONG trans = 100;  
      \>       LONG boxTrans     = 200;  
      \>      Vector color = bc->GetVector(PLANE_COLOR);  
      \>       Vector boxColor = bc->GetVector(BOX_COLOR);  
      \>       Real size;  
      \>       size = .60;  
      \>         
      \>      //Matrix for determining scale, rotation, and position.   
      \>       Matrix m = op->GetMg();  
      \>      Vector rad = op->GetRad();  
      \>    
      \>      m.v1 *= rad.x+rad.x;  
      \>      m.v2 *= rad.y+rad.y;  
      \>      m.v3 *= rad.z+rad.z;  
      \>    
      \>  
      

      `

      Here is one of the times that Polygon3D is called.

      > `

        
      \>    
      \>              if (tag->GetDataInstance()->GetBool(SHOW_PLANE)) // If SHOW_PLANE is checked, then draw the polygon.  
      \>              {  
      \>                   
      \>                      Vector p[4];  
      \>    
      \>                      p[0] = Vector(-1,1,0);  
      \>                      p[1] = Vector(1,1,0);  
      \>                      p[2] = Vector(1,-1,0);  
      \>                      p[3] = Vector(-1,-1,0);  
      \>                        
      \>                        
      \>                      p[0] = p[0] * m;  
      \>                      p[1] = p[1] * m;  
      \>                      p[2] = p[2] * m;  
      \>                      p[3] = p[3] * m;  
      \>    
      \>                      Vector f[3] = { Vector(color),Vector(color),Vector(color)};  
      \>    
      \>                      bd->SetLightList(BDRAW_SETLIGHTLIST_NOLIGHTS);  
      \>                      bd->SetTransparency(trans);  
      \>                      bd->Polygon3D(p,f,TRUE);  
      \>                        
      \>    
      \>    
      \>                      return true;  
      \>              }  
      \>    
      \>    
      \>  
      

      `

      I would like to try to use DrawPoly fo this because the results I get from Polygon3D are not quite as good as I had hoped.. There are a lot of shading issues.

      Any help would be greatly appreciated.

      Thanks,

      ~Shawn

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

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

        On 14/10/2009 at 03:19, xxxxxxxx wrote:

        Anyone know how I would accomplish this with DrawPoly()?

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

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

          On 14/10/2009 at 04:01, xxxxxxxx wrote:

          Here is a simple example how to draw for instance a shaded triangle.

          > \> Bool LookAtCamera::Draw(PluginTag \*tag, BaseObject \*op, BaseDraw \*bd, BaseDrawHelp \*bh) \> { \>      //use scene lights for shading \>      bd->SetLightList(BDRAW_SETLIGHTLIST_SCENELIGHTS); \> \>      //set the drawing space; in this case it's the object space of the tag's parent object \>      bd->SetMatrix_Matrix(NULL, op->GetMg(), 0); \> \>      //create arrays for the vertex postions, colors and normals \>      Vector vp[3] = { Vector(0.0), Vector(0.0,100.0,0.0), Vector(100.0,0.0,0.0) }; \>      Vector vf[3] = { Vector(1.0), Vector(1.0), Vector(1.0) }; \>      Vector vn[3] = { Vector(0.0,0.0,-1.0), Vector(0.0,0.0,-1.0), Vector(0.0,0.0,-1.0) }; \> \>      bd->DrawPoly(vp, vf, vn, 3, 0); \> \>      return TRUE; \> } \>

          cheers,
          Matthias

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

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

            On 14/10/2009 at 06:41, xxxxxxxx wrote:

            Thanks Matthias, That helps immensely.

            ~Shawn

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