Span: Difference between revisions

From SDK
Jump to navigation Jump to search
(Created page with "Category:SDK right|50px|link=Creating Vectors From Script This object is the base class for spans in a Contour. Spans are either lines, arcs or beziers o...")
 
No edit summary
Line 5: Line 5:
‘point’   
‘point’   


Constructors
==Constructors==


Span( Point3D pt3d)
===Span( Point3D pt3d)===


A new span representing a single point is created within a Lua script using this contructor method   
A new span representing a single point is created within a Lua script using this contructor method   
Line 29: Line 29:
   
   


Properties   
==Properties==  


.EndPoint3D    
===.EndPoint3D===


R/O - Point3D - The 3D end point of the span   
R/O - Point3D - The 3D end point of the span   
Line 37: Line 37:
   
   


.EndPoint2D    
===.EndPoint2D===


R/O - Point3D - The 2D end point of the span   
R/O - Point3D - The 2D end point of the span   
Line 43: Line 43:
   
   


.IsLineType
===.IsLineType===


R/O - bool - true if span is a line       
R/O - bool - true if span is a line       
Line 49: Line 49:
   
   


.IsArcType    
===.IsArcType===


R/O - bool - true if span is an arc   
R/O - bool - true if span is an arc   
Line 55: Line 55:
   
   


.IsBezierType  
===.IsBezierType===


R/O - bool - true if span is a bezier   
R/O - bool - true if span is a bezier   
Line 61: Line 61:
      
      


.IsLeadInType  
===.IsLeadInType===


R/O - bool - true if span is a lead in   
R/O - bool - true if span is a lead in   
Line 67: Line 67:
      
      


.IsLeadOutType
===.IsLeadOutType===


R/O - bool - true if span is a lead out   
R/O - bool - true if span is a lead out   
Line 73: Line 73:
      
      


.IsOvercutType
===.IsOvercutType===


R/O - bool - true if span is part of an overcut   
R/O - bool - true if span is part of an overcut   
Line 79: Line 79:
   
   


.NumberOfControlPoints
===.NumberOfControlPoints===


R/O - integer - number of control points for span (2 for Bezier, 1 for an arc (the mid point), 0 for a line   
R/O - integer - number of control points for span (2 for Bezier, 1 for an arc (the mid point), 0 for a line   
Line 85: Line 85:
   
   


.StartPoint3D  
===.StartPoint3D===


R/O - Point3D - The 3D start point of the span   
R/O - Point3D - The 3D start point of the span   
Line 91: Line 91:
   
   


.StartPoint2D  
===.StartPoint2D===


R/O - Point2D - The 2D start point of the span   
R/O - Point2D - The 2D start point of the span   
Line 97: Line 97:
   
   


.Type          
===.Type===


R/O - integer - enum identifying type of the span   
R/O - integer - enum identifying type of the span   

Revision as of 11:51, 30 August 2024

Back.jpg

This object is the base class for spans in a Contour. Spans are either lines, arcs or beziers or a single

‘point’

Constructors

Span( Point3D pt3d)

A new span representing a single point is created within a Lua script using this contructor method


pt3d - Point3D - 3d position for a point


e.g

local pt = Point3D(0, 0, 0)

local pt_span = Span(pt)


NOTE: most spans are created as either a LineSpan, ArcSpan or BezierSpan.


Properties

.EndPoint3D

R/O - Point3D - The 3D end point of the span


.EndPoint2D

R/O - Point3D - The 2D end point of the span


.IsLineType

R/O - bool - true if span is a line


.IsArcType

R/O - bool - true if span is an arc


.IsBezierType

R/O - bool - true if span is a bezier


.IsLeadInType

R/O - bool - true if span is a lead in


.IsLeadOutType

R/O - bool - true if span is a lead out


.IsOvercutType

R/O - bool - true if span is part of an overcut


.NumberOfControlPoints

R/O - integer - number of control points for span (2 for Bezier, 1 for an arc (the mid point), 0 for a line


.StartPoint3D

R/O - Point3D - The 3D start point of the span


.StartPoint2D

R/O - Point2D - The 2D start point of the span


.Type

R/O - integer - enum identifying type of the span

Usual values are Span.NormalLine, Span.Arc and Span.Bezier



Methods


ChordLength()

Return the straight-line distance between start and end points of the span


EndVector( bool normalise)

Return a Vector2D representing the direction of the span at the end.

normalise - bool - if true, the returned vector is normalised  


GetControlPointPosition( integer index)

Return a Point2D with position of requested control point (use .NumberOfControlPoints to get count). This call is only valid on a Bezier or an Arc. For a Bezier 0 returns first control point, 1 returns the second. For an arc, 0 returns arc mid point.


index - integer - index of control point


GetLength( double tolerance)

Return a double holding the length of the span. The passed tolerance is used for beziers to approximate length to given tolerance.


tolerance - double - tolerance to use when polygonizing beziers to find length


MoveControlPoint( integer index, Point2D pt)

This is only valid for an arc or Bezier and attempts to move the specified control point to the passed position. This call is only valid on a Bezier or an Arc. For a Bezier, index 0 modifies first control point, 1 modifies the second. For an arc, 0 modifies the arc mid point. If the control point can’t be moved to the passed position (e.g would make an invalid arc) returns false, else true.


index - integer - index of control point pt - Point2D - position for control point


PointAtParameter( double param, double tolerance)

Return a Point2D representing the point on the span at passed parameter in range 0 - 1.0. Passed tolerance is used for polygonisation for Bezier spans.


parameter - double - parameter in range 0 - 1.0 to find point on span at tolerance - double - tolerance to use when polygonizing beziers :Reverse()

Reverse the span - swap start and end points and for arcs swap sign of bulge, for beziers swap control points.


StartVector( bool normalise)

Return a Vector2D representing the direction of the span at the start.


normalise - bool - if true, the returned vector is normalized


SetStartPoint3D( Point3D pt)

Set start point for span - be EXTREMELY careful if you call this method on spans in a contour as gaps will open between adjoining spans leading to an invalid contour.


pt - Point3D - 3D position for point


SetStartPoint2D( Point2D pt)

Set start point for span - be EXTREMELY careful if you call this method on spans in a contour as gaps will open between adjoining spans leading to an invalid contour.


pt - Point2D - 2D position for point


SetEndPoint3D( Point3D pt)

Set end point for span - be EXTREMELY careful if you call this method on spans in a contour as gaps will open between adjoining spans leading to an invalid contour.


pt - Point3D - 3D position for point


SetEndPoint2D( Point2D pt)

Set end point for span - be EXTREMELY careful if you call this method on spans in a contour as gaps will open between adjoining spans leading to an invalid contour.

pt - Point2D - 2D position for point


Back.jpg

References

Please Note: The base material for the contents found in this WiKi was sourced from Vectric Lua Interface for Gadgets, version 2.05, published September 12, 2018. by Vectric Ltd. Most current document from Vertric can be downloaded at Vertric Developer Information