Class: BSpline
Base class for all cubic splines
Extends
Constructors
new BSpline()
new BSpline(
props
?):BSpline
Parameters
• props?: SplineProps
Returns
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:36
Accessors
aabb
get
aabb():AABB2
Axis-aligned bounding box (minX, minY, maxX, maxY)
Returns
AABB2
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:100
closed
get
closed():boolean
Flag that is set to true when the curve is already closed
set
closed(closed
):void
Set the curve as closed which connects the last to the first point
Parameters
• closed: boolean
Returns
boolean
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:85
controlPoints
get
protected
controlPoints():Point2
[]
Return the control points array
Any external access should be done through getControlPoints because it clones the points to make sure the data will not get changed by the caller
Returns
Point2
[]
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:50
fixedResolution
get
fixedResolution():boolean
Fixed resolution
Linar spline is one of the splines that does not allow changing the resolution for better performance otherwise it would calculate and render 20 line segments instead of a single one..
Returns
boolean
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:80
invalidated
get
invalidated():boolean
Flag that is set to true when the spline needs to be updated. The update runs automaticaly when needed (eg: getPolylinePoints).
set
invalidated(invalidated
):void
Sets the spline as invalid when curve segments need to be recalculated or as valid after recomputing the curves
Parameters
• invalidated: boolean
Returns
boolean
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:115
length
get
length():number
Length of the spline curve in pixels
Returns
number
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:106
numControlPoints
get
numControlPoints():number
Number of control points
Returns
number
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:55
resolution
get
resolution():number
Resolution of the spline curve (greater than or equal to 0)
set
resolution(resolution
):void
Set the resolution of the spline curve
Parameters
• resolution: number
Returns
number
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:60
Methods
addControlPoint()
addControlPoint(
point
):void
Add a control point to the end of the array
Parameters
• point: Point2
Control point (2D)
Returns
void
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:139
addControlPointAtU()
addControlPointAtU(
u
):ControlPointInfo
Add a control point specifying its u
value in Parameter Space which is a number from 0 to N
where N is the number of curve segments. The integer part is the curve segment index and the
decimal part is the t
value on that curve segment.
Parameters
• u: number
u
value in Parameter Space
Returns
Inherited from
CubicSpline
.addControlPointAtU
Defined in
tools/src/tools/annotation/splines/Spline.ts:158
addControlPoints()
addControlPoints(
points
):void
Add a list of control poits to the end of the array
Parameters
• points: Point2
[]
Control points to be added
Returns
void
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:148
clearControlPoints()
clearControlPoints():
void
Remove all control points
Returns
void
Inherited from
CubicSpline
.clearControlPoints
Defined in
tools/src/tools/annotation/splines/Spline.ts:206
containsPoint()
containsPoint(
point
):boolean
Checks if a 2D point is inside the spline curve.
A point is inside a curve/polygon if the number of intersections between the horizontal ray emanating from the given point and to the right and the line segments is odd. https://www.eecs.umich.edu/courses/eecs380/HANDOUTS/PROJ2/InsidePoly.html
Parameters
• point: Point2
2D Point
Returns
boolean
True is the point is inside the spline curve or false otherwise
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:502
deleteControlPointByIndex()
deleteControlPointByIndex(
index
):boolean
Delete a control point given its index
Parameters
• index: number
Control point index to be removed
Returns
boolean
True if the control point is removed or false otherwise
Inherited from
CubicSpline
.deleteControlPointByIndex
Defined in
tools/src/tools/annotation/splines/Spline.ts:186
getClosestControlPoint()
getClosestControlPoint(
point
):ClosestControlPoint
Finds the closest control point given a 2D point
Parameters
• point: Point2
Reference point
Returns
Closest control point
Inherited from
CubicSpline
.getClosestControlPoint
Defined in
tools/src/tools/annotation/splines/Spline.ts:254
getClosestControlPointWithinDistance()
getClosestControlPointWithinDistance(
point
,maxDist
):ClosestControlPoint
Finds the closest control point given a 2D point and a maximum distance
Parameters
• point: Point2
Reference 2D point
• maxDist: number
Maximum distance
Returns
Closest control point that is within the given range or undefined otherwise
Inherited from
CubicSpline
.getClosestControlPointWithinDistance
Defined in
tools/src/tools/annotation/splines/Spline.ts:287
getClosestPoint()
getClosestPoint(
point
):ClosestSplinePoint
Finds the closest point on the spline curve given 2D point
Parameters
• point: Point2
Reference 2D point
Returns
Closest point on the spline curve
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:303
getClosestPointOnControlPointLines()
getClosestPointOnControlPointLines(
point
):ClosestPoint
Finds the closest point on the straight line that connects all control points given a 2D point
Parameters
• point: Point2
Reference point
Returns
Closest point on the straight line that connects all control points
Inherited from
CubicSpline
.getClosestPointOnControlPointLines
Defined in
tools/src/tools/annotation/splines/Spline.ts:376
getControlPoints()
getControlPoints():
Point2
[]
Get a list with all control points. The control points are cloned to prevent any caller from changing them resulting in unexpected behaviors
Returns
Point2
[]
- List of all control points
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:242
getPolylinePoints()
getPolylinePoints():
Point2
[]
Get all points necessary to draw a spline curve
Returns
Point2
[]
Array with all points necessary to draw a spline curve
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:418
getPreviewCurveSegments()
protected
getPreviewCurveSegments(controlPointPreview
,closeSpline
):SplineCurveSegment
[]
Parameters
• controlPointPreview: Point2
• closeSpline: boolean
Returns
Inherited from
CubicSpline
.getPreviewCurveSegments
Defined in
tools/src/tools/annotation/splines/CubicSpline.ts:17
getPreviewPolylinePoints()
getPreviewPolylinePoints(
controlPointPreview
,closeDistance
):Point2
[]
Get all points necessary to draw the preview of the changes that shall be made to the spline if a new control point is added to it
Parameters
• controlPointPreview: Point2
New control point preview
• closeDistance: number
Distance to the first control point to consider it a closed spline
Returns
Point2
[]
Array with all points necessary to draw a spline curve preview
Inherited from
CubicSpline
.getPreviewPolylinePoints
Defined in
tools/src/tools/annotation/splines/Spline.ts:431
getSplineCurves()
protected
getSplineCurves():SplineCurveSegment
[]
Returns
Inherited from
Defined in
tools/src/tools/annotation/splines/CubicSpline.ts:48
getTransformMatrix()
protected
getTransformMatrix():number
[]
Returns
number
[]
Overrides
CubicSpline
.getTransformMatrix
Defined in
tools/src/tools/annotation/splines/BSpline.ts:17
hasTangentPoints()
hasTangentPoints():
boolean
Bézier curves have tangent points connected to control points
Returns
boolean
True if the spline has tangent point or false otherwise
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:131
isPointNearCurve()
isPointNearCurve(
point
,maxDist
):boolean
Checks if a point is near to the spline curve
Parameters
• point: Point2
Reference point
• maxDist: number
Maximum allowed distance
Returns
boolean
True if the point is close to the spline curve or false otherwise
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:465
setControlPoints()
setControlPoints(
points
):void
Replace all control points by some new ones
Parameters
• points: Point2
[]
Control points to be added to the array
Returns
void
Inherited from
Defined in
tools/src/tools/annotation/splines/Spline.ts:215
updateControlPoint()
updateControlPoint(
index
,newControlPoint
):void
Update the coordinate of a control point given its index
Parameters
• index: number
Control point index
• newControlPoint: Point2
New control point
Returns
void
Inherited from
CubicSpline
.updateControlPoint