[mxcad_3d API Document](../README. md)/Mx3dGeomBSpline Curve
Class: Mx3dGeomBSplineCurve
Represents a B-spline curve. This class inherits from Mx3dGeomBoundedCurve and encapsulates the operations and properties of B-spline curves.
Hierarchy
↳
Mx3dGeomBSplineCurve
Table of contents
Constructors
Methods
- Continuity
- Copy
- D0
- D1
- D2
- D3
- DN
- Degree
- DynamicType
- Edge
- EndPoint
- FirstParameter
- FirstUKnotIndex
- IncreaseDegree
- IncreaseMultiplicity
- IncrementMultiplicity
- InsertKnot
- InsertKnots
- IsCN
- IsClosed
- IsEqual
- IsG1
- IsPeriodic
- IsRational
- Knot
- Knots
- LastParameter
- LastUKnotIndex
- LocalD0
- LocalD1
- LocalD2
- LocalD3
- LocalDN
- LocalValue
- MirrorByAxis
- MirrorByCSYSR
- MirrorByPoint
- MirroredByAxis
- MirroredByCSYSR
- MirroredByPoint
- Multiplicities
- Multiplicity
- NbKnots
- NbPoles
- OffsetCurve
- Period
- Pole
- Poles
- RemoveKnot
- Reverse
- Reversed
- ReversedParameter
- Rotate
- Rotated
- Scale
- Scaled
- Segment
- SetKnot
- SetKnots
- SetNotPeriodic
- SetOrigin
- SetPeriodic
- SetPole
- SetWeight
- StartPoint
- Transform
- Transformed
- TranslateBy2Points
- TranslateByVec
- TranslatedBy2Points
- TranslatedByVec
- Value
- Weight
- Weights
- Wire
- DownCast
Constructors
constructor
• new Mx3dGeomBSplineCurve(Poles, Knots, Multiplicities, Degree)
The constructor is used to create a B-spline curve.
Parameters
| Name | Type | Description |
|---|---|---|
| Poles | [Mx3dGePoint] (Mx3dGePoint. md) [] | Array of control points |
| Knots | number [] | Array of node sequences |
| Multiplicity | Number [] | The multiplicity of nodes |
| Degree | number | The order of the curve |
Overrides
Mx3dGeomBoundedCurve.constructor
• new Mx3dGeomBSplineCurve(Poles, Weights, Knots, Multiplicities, Degree)
The constructor is used to create a weighted B-spline curve.
Parameters
| Name | Type | Description |
|---|---|---|
| Poles | [Mx3dGePoint] (Mx3dGePoint. md) [] | Array of control points |
| Weights | number [] | Weight array of control points |
| Knots | number [] | Array of node sequences |
| Multiplicity | Number [] | The multiplicity of nodes |
| Degree | number | The order of the curve |
Overrides
Mx3dGeomBoundedCurve.constructor
Methods
Continuity
▸ Continuity(): MxGAShapeEnum
Obtain the continuity of the curve.
Returns
The continuity of the curve.
Copy
▸ Copy(): Mx3dGeomObject
Create a copy of the current B-spline curve.
Returns
Return a new B-spline curve object.
D0
▸ D0(U, P): void
Calculate the points of the curve at the given parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
Returns
void
D1
▸ D1(U, P, V1): void
Calculate the points and first derivative of the curve at the given parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
| V1 | [Mx3dGeVec] (Mx3dGeVec. md) | First derivative |
Returns
void
D2
▸ D2(U, P, V1, V2): void
Calculate the points, first derivative, and second derivative of the curve at the given parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
| V1 | [Mx3dGeVec] (Mx3dGeVec. md) | First derivative |
| V2 | [Mx3dGeVec] (Mx3dGeVec. md) | Second derivative |
Returns
void
D3
▸ D3(U, P, V1, V2, V3): void
Calculate the points, first derivative, second derivative, and third derivative of the curve at the given parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
| V1 | [Mx3dGeVec] (Mx3dGeVec. md) | First derivative |
| V2 | [Mx3dGeVec] (Mx3dGeVec. md) | Second derivative |
| V3 | [Mx3dGeVec] (Mx3dGeVec. md) | Third derivative |
Returns
void
DN
▸ DN(U, N): Mx3dGeVec
Calculate the Nth derivative of the curve at the given parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| N | number | order |
Returns
Nth derivative.
Degree
▸ Degree(): number
Obtain the order of the curve.
Returns
number
The order of the curve.
DynamicType
▸ DynamicType(): string
Return the dynamic type of the object.
Returns
string
A dynamically typed string.
Overrides
Mx3dGeomBoundedCurve.DynamicType
Edge
▸ Edge(p1, p2): Mx3dShapeEdge
Obtain the edges of the curve.
Parameters
| Name | Type | Description |
|---|---|---|
| P1 | Number | The starting point parameter of the edge |
| P2 | number | End point parameter of the edge |
Returns
Return the curve edges within the specified parameter range.
EndPoint
▸ EndPoint(): Mx3dGePoint
Obtain the endpoint of the curve.
Returns
The endpoint of the curve.
FirstParameter
▸ FirstParameter(): number
Return the first parameter value of the curve. Usually used to determine the starting point of a curve.
Returns
number
The first parameter value.
FirstUKnotIndex
▸ FirstUKnotIndex(): number
Retrieve the first node index of the curve.
Returns
number
The first node index.
IncreaseDegree
▸ IncreaseDegree(Degree): void
Increase the order of the curve.
Parameters
| Name | Type | Description |
|---|---|---|
| Degree | number | New order |
Returns
void
IncreaseMultiplicity
▸ IncreaseMultiplicity(Index, M): void
Improve the node multiplicity at the specified index.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | The index of a node |
| M | number | New multiplicity |
Returns
void
▸ IncreaseMultiplicity(I1, I2, M): void
Increase the multiplicity of nodes within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| I1 | number | range starting index |
| I2 | number | End of range index |
| M | number | New multiplicity |
Returns
void
IncrementMultiplicity
▸ IncrementMultiplicity(I1, I2, M): void
Incremental increase in node multiplicity within a specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| I1 | number | Starting index |
| I2 | number | End index |
| The increased multiplicity value of 'M' | 'number' |
Returns
void
InsertKnot
▸ InsertKnot(U, M?, ParametricTolerance?, Add?): void
Insert a new node.
Parameters
| Name | Type | Description |
|---|---|---|
| U | number | The location of the new node |
M? | Number | The multiplicity of new nodes (optional) |
ParametricTolerance? | Number | Parameter tolerance (optional) |
Add? | ` Boolean | Whether to add nodes instead of replacing them (optional) |
Returns
void
InsertKnots
▸ InsertKnots(Knots, Mults, ParametricTolerance?, Add?): void
Insert multiple new nodes.
Parameters
| Name | Type | Description |
|---|---|---|
| Knots | number [] | Array of new node positions |
| Mults | number [] | Multiplicity array of new nodes |
ParametricTolerance? | Number | Parameter tolerance (optional) |
Add? | ` Boolean | Whether to add nodes instead of replacing them (optional) |
Returns
void
IsCN
▸ IsCN(N): boolean
Check if the curve is continuous at the specified order.
Parameters
| Name | Type | Description |
|---|---|---|
| N | number | order |
Returns
boolean
If the curve is continuous at a specified order, return true; Otherwise, return false.
IsClosed
▸ IsClosed(): boolean
Check if the curve is closed.
Returns
boolean
If the curve is closed, return true; Otherwise, return false.
IsEqual
▸ IsEqual(theOther, thePreci): boolean
Compare the equality between the current curve and another curve.
Parameters
| Name | Type | Description |
|---|---|---|
theOther | [Mx3dGeomBSpline Curve] (Mx3dGeomBSpline Curve. md) | Another B-spline curve object |
| ThePreci | Number | Compare accuracy |
Returns
boolean
If two curves are equal at the specified precision, return true; Otherwise, return false.
IsG1
▸ IsG1(theTf, theTl, theAngTol): boolean
Check if the curve meets G1 continuity within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The Tf | number | starting parameter |
| TheTl | Number | End parameter |
| TheAngTol | Number | Angle tolerance |
Returns
boolean
If the curve satisfies G1 continuity within the specified range, return true; Otherwise, return false.
IsPeriodic
▸ IsPeriodic(): boolean
Check if the curve is periodic.
Returns
boolean
If the curve is periodic, return true; Otherwise, return false.
IsRational
▸ IsRational(): boolean
Check if the curve is reasonable.
Returns
boolean
If the curve is rational, return true; Otherwise, return false.
Knot
▸ Knot(Index): number
Retrieve the nodes of the curve at the specified index.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | The index of a node |
Returns
number
Nodes.
Knots
▸ Knots(): number[]
Obtain the node sequence of the curve.
Returns
number[]
An array of node sequences.
LastParameter
▸ LastParameter(): number
Return the last parameter value of the curve. Usually used to determine the endpoint of a curve.
Returns
number
The last parameter value.
LastUKnotIndex
▸ LastUKnotIndex(): number
Retrieve the index of the last node of the curve.
Returns
number
The last node index.
LocalD0
▸ LocalD0(U, FromK1, ToK2, P): void
Calculate the points of local parameters within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| FromK1 | number | Starting node index |
| ToK2 | number | End node index |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
Returns
void
LocalD1
▸ LocalD1(U, FromK1, ToK2, P, V1): void
Calculate the points and first derivative of local parameters within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| FromK1 | number | Starting node index |
| ToK2 | number | End node index |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
| V1 | [Mx3dGeVec] (Mx3dGeVec. md) | First derivative |
Returns
void
LocalD2
▸ LocalD2(U, FromK1, ToK2, P, V1, V2): void
Calculate the points, first derivative, and second derivative of local parameters within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| FromK1 | number | Starting node index |
| ToK2 | number | End node index |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
| V1 | [Mx3dGeVec] (Mx3dGeVec. md) | First derivative |
| V2 | [Mx3dGeVec] (Mx3dGeVec. md) | Second derivative |
Returns
void
LocalD3
▸ LocalD3(U, FromK1, ToK2, P, V1, V2, V3): void
Calculate the points, first derivative, second derivative, and third derivative of local parameters within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| FromK1 | number | Starting node index |
| ToK2 | number | End node index |
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Result point |
| V1 | [Mx3dGeVec] (Mx3dGeVec. md) | First derivative |
| V2 | [Mx3dGeVec] (Mx3dGeVec. md) | Second derivative |
| V3 | [Mx3dGeVec] (Mx3dGeVec. md) | Third derivative |
Returns
void
LocalDN
▸ LocalDN(U, FromK1, ToK2, N): Mx3dGeVec
Calculate the Nth derivative of local parameters within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| FromK1 | number | Starting node index |
| ToK2 | number | End node index |
| N | number | order |
Returns
Nth derivative.
LocalValue
▸ LocalValue(U, FromK1, ToK2): Mx3dGePoint
Calculate the points of local parameters within the specified range.
Parameters
| Name | Type | Description |
|---|---|---|
| The 'U' | 'number' | parameter |
| FromK1 | number | Starting node index |
| ToK2 | number | End node index |
Returns
Points of local parameters.
MirrorByAxis
▸ MirrorByAxis(A1): void
Mirror transform geometric objects through axes.
Parameters
| Name | Type | Description |
|---|---|---|
| A1 | [Mx3dGeAxis] (Mx3dGeAxis. md) | Axis object |
Returns
void
Inherited from
Mx3dGeomBoundedCurve.MirrorByAxis
MirrorByCSYSR
▸ MirrorByCSYSR(A2): void
Mirror transform geometric objects using a right-handed coordinate system.
Parameters
| Name | Type | Description |
|---|---|---|
| A2 | [Mx3dGeCSYSR] (Mx3dGeCSYSR. md) | Right hand coordinate system object |
Returns
void
Inherited from
Mx3dGeomBoundedCurve.MirrorByCSYSR
MirrorByPoint
▸ MirrorByPoint(P): void
Mirror transform geometric objects through points.
Parameters
| Name | Type | Description |
|---|---|---|
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Point object |
Returns
void
Inherited from
Mx3dGeomBoundedCurve.MirrorByPoint
MirroredByAxis
▸ MirroredByAxis(A1): Mx3dGeomBSplineCurve
Return the new geometric object transformed through axis mirroring.
Parameters
| Name | Type | Description |
|---|---|---|
| A1 | [Mx3dGeAxis] (Mx3dGeAxis. md) | Axis object |
Returns
New geometric objects.
Inherited from
Mx3dGeomBoundedCurve.MirroredByAxis
MirroredByCSYSR
▸ MirroredByCSYSR(A2): Mx3dGeomBSplineCurve
Return the new geometric object after mirror transformation through the right-handed coordinate system.
Parameters
| Name | Type | Description |
|---|---|---|
| A2 | [Mx3dGeCSYSR] (Mx3dGeCSYSR. md) | Right hand coordinate system object |
Returns
New geometric objects.
Inherited from
Mx3dGeomBoundedCurve.MirroredByCSYSR
MirroredByPoint
▸ MirroredByPoint(P): Mx3dGeomBSplineCurve
Return the new geometric object after point mirror transformation.
Parameters
| Name | Type | Description |
|---|---|---|
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Point object |
Returns
New geometric objects.
Inherited from
Mx3dGeomBoundedCurve.MirroredByPoint
Multiplicities
▸ Multiplicities(): number[]
Return the multiplicity values of all nodes on the curve. Node multiplicity is used to define the degree of repetition of a curve at specific parameter values.
Returns
number[]
An array of node multiplicity values.
Multiplicity
▸ Multiplicity(Index): number
Retrieve the node multiplicity at the specified index. Node multiplicity is used to define the degree of repetition of a curve at specific parameter values.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | Node Index |
Returns
number
The multiplicity value of nodes.
NbKnots
▸ NbKnots(): number
Obtain the number of nodes on the curve.
Returns
number
Number of nodes.
NbPoles
▸ NbPoles(): number
Obtain the number of control points for the curve.
Returns
number
Control the number of points.
OffsetCurve
▸ OffsetCurve(Offset, V, isNotCheckC0): Mx3dShapeEdge
Create an offset copy of the curve.
Parameters
| Name | Type | Description |
|---|---|---|
| Offset | Number | Offset |
| The offset direction is perpendicular to the offset direction | ||
| IsNotCheckC0 | boolean | Do not check C0 continuity |
Returns
Return the offset curve edge object.
Period
▸ Period(): number
Return the period of the curve.
Returns
number
The period of the curve.
Inherited from
Pole
▸ Pole(Index): Mx3dGePoint
Retrieve the control point at the specified index. The control points define the shape and position of the curve.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | The index of the control point |
Returns
Specify the control point object at the index.
Poles
▸ Poles(): Mx3dGePoint[]
Obtain the sequence of control points for the curve.
Returns
An array of control point sequences.
RemoveKnot
▸ RemoveKnot(Index, M, Tolerance): boolean
Remove a node.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | The index of a node |
| The multiplicity of M | number | nodes |
| Tolerance | number | Tolerance |
Returns
boolean
Whether the node has been successfully removed.
Reverse
▸ Reverse(): void
Reverse the curve.
Returns
void
Reversed
▸ Reversed(): Mx3dGeomBSplineCurve
Return the new geometric curve object in reverse.
Returns
New geometric curve object.
Inherited from
ReversedParameter
▸ ReversedParameter(U): number
Get the reverse parameter value.
Parameters
| Name | Type | Description |
|---|---|---|
| U | number | Original parameter value |
Returns
number
Inverted parameter values.
Rotate
▸ Rotate(A1, Ang): void
Rotate geometric objects.
Parameters
| Name | Type | Description |
|---|---|---|
| A1 | [Mx3dGeAxis] (Mx3dGeAxis. md) | Axis object |
| Ang | number | Rotation angle |
Returns
void
Inherited from
Rotated
▸ Rotated(A1, Ang): Mx3dGeomBSplineCurve
Return the rotated new geometric object.
Parameters
| Name | Type | Description |
|---|---|---|
| A1 | [Mx3dGeAxis] (Mx3dGeAxis. md) | Axis object |
| Ang | number | Rotation angle |
Returns
New geometric objects.
Inherited from
Scale
▸ Scale(P, S): void
Scale geometric objects.
Parameters
| Name | Type | Description |
|---|---|---|
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Point object |
| S | number | scaling ratio |
Returns
void
Inherited from
Scaled
▸ Scaled(P, S): Mx3dGeomBSplineCurve
Return the scaled new geometric object.
Parameters
| Name | Type | Description |
|---|---|---|
| P | [Mx3dGePoint] (Mx3dGePoint. md) | Point object |
| S | number | scaling ratio |
Returns
New geometric objects.
Inherited from
Segment
▸ Segment(U1, U2): void
Cut a segment of the curve.
Parameters
| Name | Type | Description |
|---|---|---|
| The starting parameter value of the U1 | number | segment |
| The end parameter value of the U2 | number | segment |
Returns
void
SetKnot
▸ SetKnot(Index, K): void
Set up nodes.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | Node Index |
| K | number | New node value |
Returns
void
▸ SetKnot(Index, K, M): void
Set nodes and specify their multiplicity.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | Node Index |
| K | number | New node value |
| The multiplicity of M | number | nodes |
Returns
void
SetKnots
▸ SetKnots(dK): void
Set up all nodes.
Parameters
| Name | Type | Description |
|---|---|---|
| DK | number [] | Node value array |
Returns
void
SetNotPeriodic
▸ SetNotPeriodic(): void
Set the curve to non periodic.
Returns
void
SetOrigin
▸ SetOrigin(Index): void
Set the origin point.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | Origin Index |
Returns
void
▸ SetOrigin(U, Tol): void
Set the origin and specify the tolerance.
Parameters
| Name | Type | Description |
|---|---|---|
| U | number | Origin parameter value |
| Tol | number | tolerance |
Returns
void
SetPeriodic
▸ SetPeriodic(): void
Set the curve to be periodic.
Returns
void
SetPole
▸ SetPole(Index, P): void
Set the control point at the specified index.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | The index of the control point |
| P | UniPoint | Control point |
Returns
void
▸ SetPole(Index, P, Weight): void
Set control points and weights at the specified index.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | The index of the control point |
| P | UniPoint | Control point |
| Weight | Number | Weight |
Returns
void
SetWeight
▸ SetWeight(Index, Weight): void
Set the weight at the specified index.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | Index of weights |
| Weight | Number | Weight |
Returns
void
StartPoint
▸ StartPoint(): Mx3dGePoint
Obtain the starting point of the curve.
Returns
The starting point of the curve.
Transform
▸ Transform(T): void
Apply the given transformation matrix to transform the curve.
Parameters
| Name | Type | Description |
|---|---|---|
| T | [Mx3dGetStrf] (Mx3dGetStrf. md) | Transform matrix |
Returns
void
Transformed
▸ Transformed(T): Mx3dGeomBSplineCurve
Return the transformed new geometric object.
Parameters
| Name | Type | Description |
|---|---|---|
| T | [Mx3dGetStrf] (Mx3dGetStrf. md) | Transform the object |
Returns
New geometric objects.
Inherited from
Mx3dGeomBoundedCurve.Transformed
TranslateBy2Points
▸ TranslateBy2Points(P1, P2): void
Translate geometric objects through two points.
Parameters
| Name | Type | Description |
|---|---|---|
| P1 | [Mx3dGePoint] (Mx3dGePoint. md) | Starting point object |
| P2 | [Mx3dGePoint] (Mx3dGePoint. md) | End point object |
Returns
void
Inherited from
Mx3dGeomBoundedCurve.TranslateBy2Points
TranslateByVec
▸ TranslateByVec(V): void
Translate geometric objects through vectors.
Parameters
| Name | Type | Description |
|---|---|---|
| V | [Mx3dGeVec] (Mx3dGeVec. md) | Vector object |
Returns
void
Inherited from
Mx3dGeomBoundedCurve.TranslateByVec
TranslatedBy2Points
▸ TranslatedBy2Points(P1, P2): Mx3dGeomBSplineCurve
Return the new geometric object after translating through two points.
Parameters
| Name | Type | Description |
|---|---|---|
| P1 | [Mx3dGePoint] (Mx3dGePoint. md) | Starting point object |
| P2 | [Mx3dGePoint] (Mx3dGePoint. md) | End point object |
Returns
New geometric objects.
Inherited from
Mx3dGeomBoundedCurve.TranslatedBy2Points
TranslatedByVec
▸ TranslatedByVec(V): Mx3dGeomBSplineCurve
Return the new geometric object after vector translation.
Parameters
| Name | Type | Description |
|---|---|---|
| V | [Mx3dGeVec] (Mx3dGeVec. md) | Vector object |
Returns
New geometric objects.
Inherited from
Mx3dGeomBoundedCurve.TranslatedByVec
Value
▸ Value(U): Mx3dGePoint
Return the point at the given parameter U.
Parameters
| Name | Type | Description |
|---|---|---|
| The parameter value of 'U' | 'number' |
Returns
The point object at the given parameter.
Inherited from
Weight
▸ Weight(Index): number
Retrieve the weight value at the specified index. Weight values are used to define the local shape and importance of B-spline curves.
Parameters
| Name | Type | Description |
|---|---|---|
| Index | Number | Index of weight values |
Returns
number
Specify the weight value at the index.
Weights
▸ Weights(): number[]
Obtain the weight sequence of the curve.
Returns
number[]
An array of weight sequences.
Wire
▸ Wire(): Mx3dShapeWire
Obtain the wire of the curve.
Returns
Return the Wire object representing the curve.
DownCast
▸ Static DownCast(theObject): Mx3dGeomBSplineCurve
Convert parent object to Mx3dGeomBSpline Curve object
Parameters
| Name | Type | Description |
|---|---|---|
| TheObject | [Mx3dGeomObject] (Mx3dGeomObject. md) | Parent class object |
Returns
Mx3dGeomBSpline Curve class object