Drawing a spline



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

    On 07/02/2011 at 21:30, xxxxxxxx wrote:

    why not use [*code] [/*code](without * ) ?



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

    On 08/02/2011 at 01:08, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    I'm a little surprised that there's no code block formatting option for this forum. To make posting code snippets easier to read.

    There is, please check the BBCodes avaible for the forum:
    http://www.plugincafe.com/forum/BBcodes.asp

    cheers,
    Matthias



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

    On 08/02/2011 at 01:16, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    I looked at the Circle.cpp example. But It's dealing with creating a spline primitive. Not a new spline from scratch. So I'm still not sure how to properly create a spline from scratch

    I was refering to this part of the circle.cpp example. It shows how to set up a Bezier spline.

      
    SplineObject *GenerateCircle(Real rad)  
    {  
      #define TANG 0.415  
      
      Real    sn,cs;  
      LONG    i,sub=4;  
      
      SplineObject *op = SplineObject::Alloc(sub*2,SPLINETYPE_BEZIER);  
      if (!op || !op->MakeVariableTag(Tsegment,2)) { blDelete(op); return NULL; }  
      op->GetDataInstance()->SetBool(SPLINEOBJECT_CLOSED,TRUE);  
      
      Vector  *padr = op->GetPointW();  
      Tangent *hadr = op->GetTangentW();  
      Segment *sadr = op->GetSegmentW();  
      
      if (sadr)  
      {  
          sadr[0].closed = TRUE;  
          sadr[0].cnt    = sub;  
          sadr[1].closed = TRUE;  
          sadr[1].cnt    = sub;  
      }  
      
      if (hadr && padr)  
      {  
          for (i=0; i<sub; i++)  
          {  
              SinCos(2.0*pi*i/Real(sub),sn,cs);  
                
              padr[i]    = Vector(cs*rad,sn*rad,0.0);  
              hadr[i].vl = Vector(sn*rad*TANG,-cs*rad*TANG,0.0);  
              hadr[i].vr = -hadr[i].vl;  
      
              padr[i+sub]    = Vector(cs*rad,sn*rad,0.0)*0.5;  
              hadr[i+sub].vl = Vector(sn*rad*TANG,-cs*rad*TANG,0.0)*0.5;  
              hadr[i+sub].vr = -hadr[i+sub].vl;  
          }  
      }  
      
      op->Message(MSG_UPDATE);  
      
      return op;  
    }  
    

    op- >Message(MSG_UPDATE) is needed to update the object.

    EventAdd() is used to update managers like the Object manager. So only have to call it when you add new objects to the scene for example.

    cheers,
    Matthias



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

    On 08/02/2011 at 03:25, xxxxxxxx wrote:

    Thanks Matthias.. That helped a ton.   I've got it figured out now.  :)



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

    On 08/02/2011 at 08:13, xxxxxxxx wrote:

    Thanks Matthias.

    If it's something that you can easily do. Could you possibly add the code block icon to the top of the message creation window with the other icons?

    If it's a hassle to enable it. Don't sweat it.

    -ScottA



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

    On 08/02/2011 at 09:41, xxxxxxxx wrote:

    When I type in code examples I usually just type [*code] My Code [*/code] without the * as mentioned above.   :)


Log in to reply