CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
OdGeNurbCurve3d Class Reference

#include <GeNurbCurve3d.h>

Inheritance diagram for OdGeNurbCurve3d:
OdGeSplineEnt3d OdGeCurve3d OdGeEntity3d

Public Member Functions

 OdGeNurbCurve3d ()
 
 OdGeNurbCurve3d (const OdGeNurbCurve3d &source)
 
 OdGeNurbCurve3d (int degree, const OdGeKnotVector &knots, const OdGePoint3dArray &controlPoints, bool isPeriodic=false)
 
 OdGeNurbCurve3d (int degree, const OdGeKnotVector &knots, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &weights, bool isPeriodic=false)
 
 OdGeNurbCurve3d (int degree, const OdGeKnotVector &knots, const OdGePoint3d *controlPoints, OdUInt32 numControlPoints, const double *weights, OdUInt32 numWeights, bool isPeriodic=false)
 
 OdGeNurbCurve3d (int degree, const OdGePolyline3d &fitPolyline, bool isPeriodic=false)
 
 OdGeNurbCurve3d (const OdGePoint3dArray &fitPoints, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, bool startTangentDefined=true, bool endTangentDefined=true, const OdGeTol &fitTol=OdGeContext::gTol)
 
 OdGeNurbCurve3d (const OdGePoint3dArray &fitPoints, const OdGeTol &fitTolerance=OdGeContext::gTol)
 
 OdGeNurbCurve3d (const OdGePoint3dArray &fitPoints, const OdGeVector3dArray &fitTangents, const OdGeTol &fitTolerance=OdGeContext::gTol, bool isPeriodic=false)
 
 OdGeNurbCurve3d (const OdGePoint3dArray &fitPoints, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, bool startTangentDefined, bool endTangentDefined, OdGeKnotParameterization knotParam, const OdGeTol &fitTolerance=OdGeContext::gTol)
 
 OdGeNurbCurve3d (const OdGeEllipArc3d &ellipse, int numSpans=0)
 
 OdGeNurbCurve3d (const OdGeLineSeg3d &lineSeg)
 
int numFitPoints () const
 
bool getFitKnotParameterization (OdGeKnotParameterization &knotParam) const
 
bool getFitPointAt (int fitPointIndex, OdGePoint3d &point) const
 
bool getFitTolerance (OdGeTol &fitTolerance) const
 
bool getFitTangents (OdGeVector3d &startTangent, OdGeVector3d &endTangent) const
 
bool getFitTangents (OdGeVector3d &startTangent, OdGeVector3d &endTangent, bool &startTangentDefined, bool &endTangentDefined) const
 
bool getFitData (OdGePoint3dArray &fitPoints, OdGeTol &fitTolerance, bool &tangentsExist, OdGeVector3d &startTangent, OdGeVector3d &endTangent) const
 
bool getFitData (OdGePoint3dArray &fitPoints, OdGeTol &fitTolerance, bool &tangentsExist, OdGeVector3d &startTangent, OdGeVector3d &endTangent, OdGeKnotParameterization &knotParam) const
 
void getDefinitionData (int &degree, bool &rational, bool &periodic, OdGeKnotVector &knots, OdGePoint3dArray &controlPoints, OdGeDoubleArray &weights) const
 
int numWeights () const
 
double weightAt (int weightIndex) const
 
OdGeNurbCurve3dsetWeightAt (int weightIndex, double weight)
 
bool evalMode () const
 
bool getParamsOfC1Discontinuity (OdGeDoubleArray &params, const OdGeTol &tol=OdGeContext::gTol) const
 
bool getParamsOfG1Discontinuity (OdGeDoubleArray &params, const OdGeTol &tol=OdGeContext::gTol) const
 
bool setFitPointAt (int fitPointIndex, const OdGePoint3d &point)
 
bool addFitPointAt (int fitPointIndex, const OdGePoint3d &point)
 
bool deleteFitPointAt (int fitPointIndex)
 
bool addControlPointAt (double newKnot, const OdGePoint3d &point, double weight=1.0)
 
bool deleteControlPointAt (int index)
 
bool setFitKnotParameterization (OdGeKnotParameterization knotParam)
 
bool setFitTolerance (const OdGeTol &fitTol=OdGeContext::gTol)
 
bool setFitTangents (const OdGeVector3d &startTangent, const OdGeVector3d &endTangent)
 
bool setFitTangents (const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, bool startTangentDefined, bool endTangentDefined)
 
OdGeNurbCurve3dsetFitData (const OdGePoint3dArray &fitPoints, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, const OdGeTol &fitTol=OdGeContext::gTol)
 
OdGeNurbCurve3dsetFitData (const OdGeKnotVector &fitKnots, const OdGePoint3dArray &fitPoints, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, const OdGeTol &fitTol=OdGeContext::gTol, bool isPeriodic=false)
 
OdGeNurbCurve3dsetFitData (int degree, const OdGePoint3dArray &fitPoints, const OdGeTol &fitTol=OdGeContext::gTol)
 
OdGeNurbCurve3dsetFitData (const OdGePoint3dArray &fitPoints, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, OdGeKnotParameterization knotParam, const OdGeTol &fitTol=OdGeContext::gTol)
 
bool purgeFitData ()
 
OdGeNurbCurve3daddKnot (double newKnot)
 
OdGeNurbCurve3dinsertKnot (double newKnot)
 
OdGeNurbCurve3dsetEvalMode (bool evalMode=false)
 
OdGeNurbCurve3djoinWith (const OdGeNurbCurve3d &curve, const OdGeTol &iTolerance=OdGeContext::gTol)
 
OdGeNurbCurve3dhardTrimByParams (double newStartParam, double newEndParam)
 
OdGeNurbCurve3dmakeRational (double weight=1.0)
 
OdGeNurbCurve3dmakeClosed ()
 
OdGeNurbCurve3dmakePeriodic ()
 
OdGeNurbCurve3dmakeNonPeriodic ()
 
OdGeNurbCurve3dmakeOpen ()
 
OdGeNurbCurve3delevateDegree (int plusDegree)
 
OdGeNurbCurve3doperator= (const OdGeNurbCurve3d &spline)
 
 TD_USING (OdGeSplineEnt3d::evalPoint)
 
OdGePoint3d evalPoint (double param, int hint) const
 
void evalPointDivider (double param, OdGePoint3d &point, double &divider, int hint) const
 
OdGeNurbCurve3dset (int degree, const OdGeKnotVector &knots, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &weights, bool isPeriodic=false)
 
bool buildFitData (OdGeKnotParameterization knotParam=OdGe::kChord)
 
- Public Member Functions inherited from OdGeSplineEnt3d
bool isRational () const
 
int degree () const
 
int order () const
 
int numKnots () const
 
const OdGeKnotVectorknots () const
 
int numControlPoints () const
 
int continuityAtKnot (int index, const OdGeTol &tol=OdGeContext::gTol) const
 
double startParam () const
 
double endParam () const
 
OdGePoint3d startPoint () const
 
OdGePoint3d endPoint () const
 
bool hasFitData () const
 
double knotAt (int knotIndex) const
 
OdGeSplineEnt3dsetKnotAt (int knotIndex, double val)
 
OdGePoint3d controlPointAt (int controlPointIndex) const
 
OdGeSplineEnt3dsetControlPointAt (int controlPointIndex, const OdGePoint3d &point)
 
OdGeSplineEnt3doperator= (const OdGeSplineEnt3d &spline)
 
- Public Member Functions inherited from OdGeCurve3d
void getInterval (OdGeInterval &interval) const
 
void getInterval (OdGeInterval &interval, OdGePoint3d &start, OdGePoint3d &end) const
 
OdGeCurve3dreverseParam ()
 
OdGeCurve3dsetInterval ()
 
bool setInterval (const OdGeInterval &interval)
 
double distanceTo (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
double distanceTo (const OdGeCurve3d &curve, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d closestPointTo (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d closestPointTo (const OdGeCurve3d &curve, OdGePoint3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d closestPointTo (const OdGePoint3d &point, double &param, const OdGeInterval *range, const OdGeTol &tol=OdGeContext::gTol) const
 
void getClosestPointTo (const OdGePoint3d &point, OdGePointOnCurve3d &pntOnCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
void getClosestPointTo (const OdGeCurve3d &curve, OdGePointOnCurve3d &pntOnThisCrv, OdGePointOnCurve3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d projClosestPointTo (const OdGePoint3d &point, const OdGeVector3d &projectDirection, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d projClosestPointTo (const OdGeCurve3d &curve, const OdGeVector3d &projectDirection, OdGePoint3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
void getProjClosestPointTo (const OdGePoint3d &point, const OdGeVector3d &projectDirection, OdGePointOnCurve3d &pntOnCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
void getProjClosestPointTo (const OdGeCurve3d &curve, const OdGeVector3d &projectDirection, OdGePointOnCurve3d &pntOnThisCrv, OdGePointOnCurve3d &pntOnOtherCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
bool getNormalPoint (const OdGePoint3d &point, OdGePointOnCurve3d &pntOnCrv, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeBoundBlock3d boundBlock () const
 
OdGeBoundBlock3d boundBlock (const OdGeInterval &range) const
 
OdGeBoundBlock3d orthoBoundBlock () const
 
OdGeBoundBlock3d orthoBoundBlock (const OdGeInterval &range) const
 
OdGeExtents3d getGeomExtents (const OdGeInterval &range=OdGeInterval(), const OdGeMatrix3d *coordSystem=NULL) const
 
OdGeEntity3dproject (const OdGePlane &projectionPlane, const OdGeVector3d &projectDirection, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeEntity3dorthoProject (const OdGePlane &projectionPlane, const OdGeTol &tol=OdGeContext::gTol) const
 
 TD_USING (OdGeEntity3d::isOn)
 
bool isOn (const OdGePoint3d &point, double &param, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isOn (double param, const OdGeTol &tol=OdGeContext::gTol) const
 
double paramOf (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
double paramOf (const OdGePoint3d &point, const OdGeInterval *range, const OdGeTol &tol=OdGeContext::gTol) const
 
void getTrimmedOffset (double distance, const OdGeVector3d &planeNormal, OdGeCurve3dPtrArray &offsetCurveList, OdGe::OffsetCrvExtType extensionType=OdGe::kFillet, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isClosed (const OdGeTol &tol=OdGeContext::gTol) const
 
bool isPlanar (OdGePlane &plane, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isLinear (OdGeLine3d &line, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isCoplanarWith (const OdGeCurve3d &curve, OdGePlane &plane, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isPeriodic (double &period) const
 
double length (double fromParam, double toParam, double tol=OdGeContext::gTol.equalPoint()) const
 
double length (double tol=OdGeContext::gTol.equalPoint()) const
 
double paramAtLength (double datumParam, double length, bool posParamDir=true, double tol=OdGeContext::gTol.equalPoint()) const
 
bool area (double startParam, double endParam, double &value, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isDegenerate (OdGe::EntityId &degenerateType, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isDegenerate (OdGeEntity3d *&pConvertedEntity, const OdGeTol &tol=OdGeContext::gTol) const
 
void getSplitCurves (double param, OdGeCurve3d *&piece1, OdGeCurve3d *&piece2) const
 
bool explode (OdGeCurve3dPtrArray &explodedCurves, OdGeIntArray &newExplodedCurves, const OdGeInterval *pInterval=NULL) const
 
void getLocalClosestPoints (const OdGePoint3d &point, OdGePointOnCurve3d &approxPntOnThisCrv, const OdGeInterval *pInterval1=NULL, const OdGeTol &tol=OdGeContext::gTol) const
 
void getLocalClosestPoints (const OdGeCurve3d &curve, OdGePointOnCurve3d &approxPntOnThisCrv, OdGePointOnCurve3d &approxPntOnOtherCrv, const OdGeInterval *pInterval1=NULL, const OdGeInterval *pInterval2=NULL, const OdGeTol &tol=OdGeContext::gTol) const
 
bool hasStartPoint (OdGePoint3d &startPoint) const
 
bool hasEndPoint (OdGePoint3d &endPoint) const
 
bool hasMidPoint (OdGePoint3d &point, double coef=0.5) const
 
OdGePoint3d midPoint (double coef=0.5) const
 
OdGePoint3d evalPoint (double param) const
 
OdGePoint3d evalPoint (double param, int numDeriv, OdGeVector3dArray &derivatives) const
 
void getSamplePoints (double fromParam, double toParam, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray &paramArray, bool forceResampling=false) const
 
void getSamplePoints (int numSample, OdGePoint3dArray &pointArray) const
 
void getSamplePoints (int numSample, OdGePoint3dArray &pointArray, OdGeDoubleArray &paramArray) const
 
OdGeCurve3doperator= (const OdGeCurve3d &curve)
 
void getSamplePoints (double fromParam, double toParam, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *paramArray=NULL) const
 
void getSamplePoints (const OdGeInterval *paramInterval, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
 
void appendSamplePoints (double fromParam, double toParam, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
 
void appendSamplePoints (int numSample, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
 
void appendSamplePoints (const OdGeInterval *paramInterval, double approxEps, OdGePoint3dArray &pointArray, OdGeDoubleArray *pParamArray=NULL) const
 
OdGeCurve2dconvertTo2d (const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false) const
 
- Public Member Functions inherited from OdGeEntity3d
 ODRX_HEAP_OPERATORS ()
 
 ~OdGeEntity3d ()
 
bool isKindOf (OdGe::EntityId entType) const
 
OdGe::EntityId type () const
 
OdGeEntity3dcopy () const
 
OdGeEntity3doperator= (const OdGeEntity3d &entity)
 
bool operator== (const OdGeEntity3d &entity) const
 
bool operator!= (const OdGeEntity3d &entity) const
 
bool isEqualTo (const OdGeEntity3d &object, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeEntity3dtransformBy (const OdGeMatrix3d &xfm)
 
OdGeEntity3dtranslateBy (const OdGeVector3d &translateVec)
 
OdGeEntity3drotateBy (double angle, const OdGeVector3d &vect, const OdGePoint3d &basePoint=OdGePoint3d::kOrigin)
 
OdGeEntity3dmirror (const OdGePlane &plane)
 
OdGeEntity3dscaleBy (double scaleFactor, const OdGePoint3d &basePoint=OdGePoint3d::kOrigin)
 
bool isOn (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 

Static Public Member Functions

static OdGeNurbCurve3dconvertFrom (const OdGeCurve3d *source, const OdGeInterval &domain, const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false)
 
static OdGeNurbCurve3dconvertFrom (const OdGeCurve3d *source, const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false)
 

Protected Member Functions

bool modifyPositionAndTangent (double param, const OdGePoint3d &point, const OdGeVector3d *deriv)
 
void makeClosedFit ()
 
OdGeNurbCurve3dsetData (int degree, const OdGePoint3dArray &controlPoints, const OdGeKnotVector &knots, const OdGeDoubleArray &weights, const OdGePoint3dArray &fitPoints, const OdGeVector3d &startTangent, const OdGeVector3d &endTangent, bool isStartTangentDefined, bool isEndTangentDefined, bool isPeriodic, const OdGeTol &fitTol)
 
void setKnotTolerance (double tol)
 
- Protected Member Functions inherited from OdGeSplineEnt3d
 OdGeSplineEnt3d ()
 
 OdGeSplineEnt3d (const OdGeSplineEnt3d &)
 
- Protected Member Functions inherited from OdGeCurve3d
 OdGeCurve3d ()
 
 OdGeCurve3d (const OdGeCurve3d &source)
 
- Protected Member Functions inherited from OdGeEntity3d
 OdGeEntity3d ()
 
 OdGeEntity3d (const OdGeEntity3d &)
 
void connectTo (OdGeEntity3dImpl *)
 

Detailed Description

This class represents non-uniform rational B-splines (NURBS) in 3D space.

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

See also
<link ge_OdGeNurbCurve3d, Working with NURBS Curves>

Definition at line 47 of file GeNurbCurve3d.h.

Constructor & Destructor Documentation

◆ OdGeNurbCurve3d() [1/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( )

Default constructor for the OdGeNurbCurve3d class. Constructs an empty NURB curve.

◆ OdGeNurbCurve3d() [2/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGeNurbCurve3d source)

Copy constructor for the OdGeNurbCurve3d class.

Parameters
source[in] Object to be copied.

◆ OdGeNurbCurve3d() [3/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( int  degree,
const OdGeKnotVector knots,
const OdGePoint3dArray controlPoints,
bool  isPeriodic = false 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
degree[in] Degree of curve.
knots[in] Knot vector.
controlPoints[in] Array of 3D control points.
isPeriodic[in] true if and only if this spline is to be periodic.
Remarks
High degree values make curve more flexible. For example degree 1 is used to define a polyline, degree 2 is used to define a nurb circle, etc.

A knot vector defines a sequence of parameter values that determine where and how the control points affect the curve curve. The knot vector is a sequence of parameter values and divides the parametric space into intervals, usually called knot spans. Values of knot vector must be provided in ascending order, for example: (0, 0, 0, 1, 2, 3, 3, 3) can be valid while (0, 0, 2, 0, 3, 1, 3, 3) cannot be valid.

The control points specify the placement of the curve and adjust its shape. The quantity of control points must be at least the degree + 1.

If isPeriodic is false, then knots.length() must equal controlPoints.length() + degree + 1 If isPeriodic is true, then knots.length() must equal controlPoints.length(), the first and last controlPoints must be equal.

◆ OdGeNurbCurve3d() [4/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( int  degree,
const OdGeKnotVector knots,
const OdGePoint3dArray controlPoints,
const OdGeDoubleArray weights,
bool  isPeriodic = false 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
degree[in] Degree of curve.
knots[in] Knot vector.
controlPoints[in] Array of 3D control points.
weights[in] Array of 3D control points.
isPeriodic[in] true if and only if the curve is periodic.
Remarks
High degree values make curve more flexible. For example degree 1 is used to define a polyline, degree 2 is used to define a nurb circle, etc.

A knot vector defines a sequence of parameter values that determine where and how the control points affect the curve. The knot vector is a sequence of parameter values and divides the parametric space into intervals, usually called knot spans. Values of knot vector must be provided in ascending order, for example: (0, 0, 0, 1, 2, 3, 3, 3) can be valid while (0, 0, 2, 0, 3, 1, 3, 3) cannot be valid. Knot vector does not affect the form of the nurb curve, it only affects its parameterization.

The control points specify the placement of the curve and adjust its shape. The quantity of control points must be at least the degree + 1.

The closer the weight value is to zero, the closer the curve is to a straight line near the corresponding control point. If the weight increases, the curve pulls toward the corresponding control point. If the weight decreases, the curve pushes from the corresponding control point.

If isPeriodic is false, then knots.length() must equal controlPoints.length() + degree + 1 If isPeriodic is true, then knots.length() must equal controlPoints.length(), the first and last controlPoints must be equal.

◆ OdGeNurbCurve3d() [5/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( int  degree,
const OdGeKnotVector knots,
const OdGePoint3d controlPoints,
OdUInt32  numControlPoints,
const double *  weights,
OdUInt32  numWeights,
bool  isPeriodic = false 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
degree[in] Degree of curve.
knots[in] Knot vector.
controlPoints[in] A pointer to an array of 3D control points.
numControlPoints[in] A number of control points in the passed array.
weights[in] Array of 3D control points.
numWeights[in] A number of weight values in the passed array.
isPeriodic[in] true if and only if the curve is periodic.
Remarks
High degree values make curve more flexible. For example degree 1 is used to define a polyline, degree 2 is used to define a nurb circle, etc.

A knot vector defines a sequence of parameter values that determine where and how the control points affect the curve. The knot vector is a sequence of parameter values and divides the parametric space into intervals, usually called knot spans. Values of knot vector must be provided in ascending order, for example: (0, 0, 0, 1, 2, 3, 3, 3) can be valid while (0, 0, 2, 0, 3, 1, 3, 3) cannot be valid. Knot vector does not affect the form of the nurb curve, it only affects its parameterization.

The control points specify the placement of the curve and adjust its shape. The quantity of control points must be at least the degree + 1.

The closer the weight value is to zero, the closer the curve is to a straight line near the corresponding control point. If the weight increases, the curve pulls toward the corresponding control point. If the weight decreases, the curve pushes from the corresponding control point.

If isPeriodic is false, then knots.length() must equal controlPoints.length() + degree + 1 If isPeriodic is true, then knots.length() must equal controlPoints.length(), the first and last controlPoints must be equal.

◆ OdGeNurbCurve3d() [6/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( int  degree,
const OdGePolyline3d fitPolyline,
bool  isPeriodic = false 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
degree[in] Degree of curve.
fitPolyline[in] Input polyline fit points of which are interpolated by the curve.
isPeriodic[in] true if and only if the curve is periodic.
Remarks

Constructs a 3D spline by a degree and fit points provided by a polyline. If isPeriodic is true then the first and the last fitPoints from fitPolyLine must be identical.

High degree values make curve more flexible. For example degree 1 is used to define a segment, degree 2 is used to define a nurb circle, etc.

◆ OdGeNurbCurve3d() [7/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGePoint3dArray fitPoints,
const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
bool  startTangentDefined = true,
bool  endTangentDefined = true,
const OdGeTol fitTol = OdGeContext::gTol 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
fitPoints[in] Array of points through which to fit the curve.
startTangent[in] Input start tangent vector.
endTangent[in] Input end tangent vector.
startTangentDefined[in] Input flag indicating whether startTangent should be used.
endTangentDefined[in] Input flag indicating whether endTangent should be used.
fitTol[in] Tolerance to which the curve should approximate fitPoints.
Remarks
Constructs a 3D curve interpolating a given array of 3D points within given tolerance and having given derivatives at the start point and endpoint. If startTangentDefined is 0, then startTangent will be ignored and the constructor will compute the start tangent vector. The same is true for endTangentDefined.

◆ OdGeNurbCurve3d() [8/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGePoint3dArray fitPoints,
const OdGeTol fitTolerance = OdGeContext::gTol 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
fitPoints[in] Array of points through which to fit the curve.
fitTolerance[in] Input maximal deviation of the curve from the fitPoints.
Remarks

Constructs a 3D curve interpolating a given array of 3D points within given tolerance.

◆ OdGeNurbCurve3d() [9/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGePoint3dArray fitPoints,
const OdGeVector3dArray fitTangents,
const OdGeTol fitTolerance = OdGeContext::gTol,
bool  isPeriodic = false 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
fitPoints[in] Array of points through which to fit the curve.
fitTangents[in] Input vectors interpolating the curve's derivatives at fitPoints.
fitTolerance[in] Tolerance to which the curve should approximate fitPoints.
isPeriodic[in] true if and only if the curve is periodic.
Remarks
Constructs a 3D curve interpolating a given array of 3D points within given tolerance. If isPeriodic is true, then the first and the last fitPoints must be identical. Same must be true for fitTangents.

◆ OdGeNurbCurve3d() [10/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGePoint3dArray fitPoints,
const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
bool  startTangentDefined,
bool  endTangentDefined,
OdGeKnotParameterization  knotParam,
const OdGeTol fitTolerance = OdGeContext::gTol 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
fitPoints[in] Array of points through which to fit the curve.
startTangent[in] Input start tangent vector.
endTangent[in] Input end tangent vector.
startTangentDefined[in] Input flag indicating whether startTangent should be used.
endTangentDefined[in] Input flag indicating whether endTangent should be used.
knotParam[in] knot parameterization which defines the knot values.
fitTolerance[in] Tolerance to which the curve should approximate fitPoints.
Remarks
Constructs a 3D curve interpolating a given array of 3D points within given tolerance and having given derivatives at the start point and endpoint. If startTangentDefined is 0, then startTangent will be ignored and the constructor will compute the start tangent vector. The same is true for endTangentDefined.

If fitTolerance is not 0, then the constructed spline may not pass through the fit points, but the maximum distance from any fit point to the constructed spline will be no greater than fitTolerance.

◆ OdGeNurbCurve3d() [11/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGeEllipArc3d ellipse,
int  numSpans = 0 
)

Constructor for the OdGeNurbCurve3d class.

Parameters
ellipse[in] Input elliptic arc from which nurb curve is constructed.
numSpans[in] The number of knot spans in nurb curve.
Remarks
Constructs curve geometrically identical to an elliptic arc. If numSpans == 0 (default) it is automatically calculated from the ellipse domain.

◆ OdGeNurbCurve3d() [12/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGeLineSeg3d lineSeg)

Constructor for the OdGeNurbCurve3d class.

Parameters
lineSeg[in] Input line segment from which nurb curve is constructed.
Remarks

Constructs curve geometrically identical to a line segment.

Member Function Documentation

◆ addControlPointAt()

bool OdGeNurbCurve3d::addControlPointAt ( double  newKnot,
const OdGePoint3d point,
double  weight = 1.0 
)

Adds a control point at the specified knot.

Parameters
newKnot[in] The knot parameter to add the control point at.
point[in] Coordinates of the control point to be added.
weight[in] The weight to be assigned to the control point.
Returns
true if and only if the control point is added successfully.
Remarks
If called for a non-rational spline, weight is ignored.

◆ addFitPointAt()

bool OdGeNurbCurve3d::addFitPointAt ( int  fitPointIndex,
const OdGePoint3d point 
)

Inserts the fit point at the specified index.

Parameters
fitPointIndex[in] Fit point index.
point[in] Fit point.
Returns
true if and only if this spline was created with fit data and the fit point is set successfully.

◆ addKnot()

OdGeNurbCurve3d & OdGeNurbCurve3d::addKnot ( double  newKnot)

Adds new knot to the spline knot array.

Parameters
newKnot[in] New knot value.
Returns
Reference to this OdGeNurbCurve3d object.

◆ buildFitData()

bool OdGeNurbCurve3d::buildFitData ( OdGeKnotParameterization  knotParam = OdGe::kChord)

Calculates fit data for the spline constructed by control points.

Returns
true if and only if fit data is calculated successfully.
Remarks
Currently the method calculates fit data only for NURB curves of degree less than or equal to three.

◆ convertFrom() [1/2]

static OdGeNurbCurve3d * OdGeNurbCurve3d::convertFrom ( const OdGeCurve3d source,
const OdGeInterval domain,
const OdGeTol tol = OdGeContext::gTol,
bool  sameParametrization = false 
)
static

Converts source curve to spline with given tolerance and parametrization settings.

Parameters
source[in] Source curve to convert.
domain[in] Interval of source curve to convert.
tol[in] Accuracy of conversion.
sameParametrization[in] Necessity of parametrization preserving during conversion.
Returns
Raw pointer to converted spline or null pointer if conversion failed.
Remarks
If source curve already is spline, a copy is returned. If provided null-pointer to source curve or curve has no analytic representation, a null-pointer is returned

◆ convertFrom() [2/2]

static OdGeNurbCurve3d * OdGeNurbCurve3d::convertFrom ( const OdGeCurve3d source,
const OdGeTol tol = OdGeContext::gTol,
bool  sameParametrization = false 
)
static

Converts source curve to spline with given tolerance and parametrization settings in native range of source curve.

Parameters
source[in] Source curve to convert.
tol[in] Accuracy of conversion.
sameParametrization[in] Necessity of parametrization preserving during conversion.
Returns
Raw pointer to converted spline or null pointer if conversion failed.
Remarks
If source curve already is spline, a copy is returned. If provided null-pointer to source curve or curve has no analytic representation, a null-pointer is returned

◆ deleteControlPointAt()

bool OdGeNurbCurve3d::deleteControlPointAt ( int  index)

Deletes a control point at the specified index.

Parameters
index[in] The index of the control point to be deleted.
  \returns
true if and only if the control point is deleted successfully.

◆ deleteFitPointAt()

bool OdGeNurbCurve3d::deleteFitPointAt ( int  fitPointIndex)

Removes a fit point with the specified index.

Parameters
fitPointIndex[in] The index of fit point that is to be removed.
Returns
true if and only if the fit point is deleted successfully.
Remarks
The index must be greater than or equal to 0 and less than or equal to the number of fit points.

◆ elevateDegree()

OdGeNurbCurve3d & OdGeNurbCurve3d::elevateDegree ( int  plusDegree)

Increases spline degree by the specified value and returns a reference to this spline object.

Parameters
plusDegree[in] Degree increment value.
Returns
Reference to this OdGeNurbCurve3d object.

◆ evalMode()

bool OdGeNurbCurve3d::evalMode ( ) const

Returns the current evaluation mode.

Returns
true if and only if the evaluator optimization is turned on.
Remarks
If the method returns false, there is no optimization of an internal evaluator. This mode generally should be used if only one or two values per interval between two consecutive knots are evaluated.

If the method returns true, then the evaluator optimization is turned on. This provides better performance if three or more values per knot interval are computed.

◆ evalPoint()

OdGePoint3d OdGeNurbCurve3d::evalPoint ( double  param,
int  hint 
) const

◆ evalPointDivider()

void OdGeNurbCurve3d::evalPointDivider ( double  param,
OdGePoint3d point,
double &  divider,
int  hint 
) const

◆ getDefinitionData()

void OdGeNurbCurve3d::getDefinitionData ( int &  degree,
bool &  rational,
bool &  periodic,
OdGeKnotVector knots,
OdGePoint3dArray controlPoints,
OdGeDoubleArray weights 
) const

Retrieves the data used to define this spline.

Parameters
degree[out] Receives the degree of spline.
periodic[out] Receives true if and only if this spline is periodic.
rational[out] Receives true if and only if this spline is rational.
knots[out] Receives the knot vector.
controlPoints[out] Receives an array of 3D control points.
weights[out] Receives an array of weights
Remarks
High degree values represent flexible curves. For example degree 1 is used to define a polyline, degree 2 is used to define a nurb circle, etc.

A knot vector defines a sequence of parameter values that determine where and how the control points affect the curve. The knot vector is a sequence of parameter values and divides the parametric space into intervals, usually called knot spans. Values of knot vector must be provided in ascending order, for example: (0, 0, 0, 1, 2, 3, 3, 3) can be valid while (0, 0, 2, 0, 3, 1, 3, 3) cannot be valid. Knot vector does not affect the form of the nurb curve, it only affects its parameterization.

The control points specify the placement of the curve and adjust its shape. The quantity of control points must be at least the degree + 1.

The closer the weight value is to zero, the closer the curve is to a straight line near the corresponding control point. If the weight increases, the curve pulls toward the corresponding control point. If the weight decreases, the curve pushes from the corresponding control point. The weights array will be empty if the spline is not rational.

◆ getFitData() [1/2]

bool OdGeNurbCurve3d::getFitData ( OdGePoint3dArray fitPoints,
OdGeTol fitTolerance,
bool &  tangentsExist,
OdGeVector3d startTangent,
OdGeVector3d endTangent 
) const

Retrieves all the fit data used to construct this spline if this spline was constructed with fit data.

Parameters
fitPoints[out] Receives the interpolation points.
fitTolerance[out] Receives the geometric tolerance.
tangentsExist[out] Receives true if and only if tangents were used in constructing this spline.
startTangent[out] Receives the starting tangent
endTangent[out] Receives the ending tangent.
Returns
true if and only if this spline was constructed with fit data.
Remarks
startTangent and endTangent are meaningful if and only if tangentsExist == true.

◆ getFitData() [2/2]

bool OdGeNurbCurve3d::getFitData ( OdGePoint3dArray fitPoints,
OdGeTol fitTolerance,
bool &  tangentsExist,
OdGeVector3d startTangent,
OdGeVector3d endTangent,
OdGeKnotParameterization knotParam 
) const

Retrieves all the fit data used to construct this spline if this spline was constructed with fit data.

Parameters
fitPoints[out] Receives the interpolation points.
fitTolerance[out] Receives the geometric tolerance.
tangentsExist[out] Receives true if and only if tangents were used in constructing this spline.
startTangent[out] Receives the starting tangent
endTangent[out] Receives the ending tangent.
knotParam[out] Receives the knot parameterization.
Returns
true if and only if this spline was constructed with fit data.
Remarks
startTangent and endTangent are meaningful if and only if tangentsExist == true.

◆ getFitKnotParameterization()

bool OdGeNurbCurve3d::getFitKnotParameterization ( OdGeKnotParameterization knotParam) const

Gets the knot parametrization of the spline created with fit points.

Parameters
knotParam[out] Receives the knot parametrization.
Returns
true if and only if knot parametrization is retrieved successfully.

◆ getFitPointAt()

bool OdGeNurbCurve3d::getFitPointAt ( int  fitPointIndex,
OdGePoint3d point 
) const

Retrieves the fit point at the specified index.

Parameters
fitPointIndex[in] Fit point index.
point[out] Receives the fit point.
Returns
true if and only if 0 <= fitPointIndex < numFitPoints().

◆ getFitTangents() [1/2]

bool OdGeNurbCurve3d::getFitTangents ( OdGeVector3d startTangent,
OdGeVector3d endTangent 
) const

Retrieves the starting and ending tangents if this spline was constructed with fit data.

Parameters
startTangent[out] Receives the starting tangent
endTangent[out] Receives the ending tangent.
Returns
true if and only if this spline was constructed with fit data.

◆ getFitTangents() [2/2]

bool OdGeNurbCurve3d::getFitTangents ( OdGeVector3d startTangent,
OdGeVector3d endTangent,
bool &  startTangentDefined,
bool &  endTangentDefined 
) const

Retrieves the starting and ending tangents if this spline was constructed with fit data.

Parameters
startTangent[out] Receives the starting tangent
endTangent[out] Receives the ending tangent.
startTangentDefined[out] Receives the if true, startTangent was used.
endTangentDefined[out] Receives the if true, endTangent was used.
Returns
true if and only if this spline was constructed with fit data.

◆ getFitTolerance()

bool OdGeNurbCurve3d::getFitTolerance ( OdGeTol fitTolerance) const

Retrieves the fit tolerance that is used to construct this spline if this spline was constructed with fit points.

Parameters
fitTolerance[out] Receives the geometric tolerance.
Returns
true if and only if this spline was constructed with fit points.

◆ getParamsOfC1Discontinuity()

bool OdGeNurbCurve3d::getParamsOfC1Discontinuity ( OdGeDoubleArray params,
const OdGeTol tol = OdGeContext::gTol 
) const

Gets the parameters of G1 discontinuity.

Parameters
params[out] Parameters of discontinuity.
tol[in] Geometric tolerance.
Returns
true if any parameters are returned; false otherwise.
Remarks
Currently not implemented.

◆ getParamsOfG1Discontinuity()

bool OdGeNurbCurve3d::getParamsOfG1Discontinuity ( OdGeDoubleArray params,
const OdGeTol tol = OdGeContext::gTol 
) const

Gets the parameters of G1 discontinuity.

Parameters
params[out] Parameters of discontinuity.
tol[in] Geometric tolerance.
Returns
true if any parameters are returned; false otherwise.
Remarks
Currently not implemented.

◆ hardTrimByParams()

OdGeNurbCurve3d & OdGeNurbCurve3d::hardTrimByParams ( double  newStartParam,
double  newEndParam 
)

Trims the OdGeNurbCurve3d by the new start and end parameters.

Parameters
newStartParam[in] New start parameter.
newEndParam[in] New end parameter.
Returns
Reference to this OdGeNurbCurve3d object.

◆ insertKnot()

OdGeNurbCurve3d & OdGeNurbCurve3d::insertKnot ( double  newKnot)

Inserts new knot to the spline knot array.

Parameters
newKnot[in] New knot.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
If there is already such knot, then the multiplicity of the knot is increased by 1.

◆ joinWith()

OdGeNurbCurve3d & OdGeNurbCurve3d::joinWith ( const OdGeNurbCurve3d curve,
const OdGeTol iTolerance = OdGeContext::gTol 
)

Joins the specified OdGeNurbCurve3d with this spline and returns a reference to the recomputed spline.

Parameters
curve[in] Spline to be joined with this spline.
iTolerance[in] Geometric tolerance.
Returns
Reference to this recomputed OdGeNurbCurve3d object.
Remarks
Both splines must be open and the start point of the input spline must be equal to the endpoint of the initial spline.

◆ makeClosed()

OdGeNurbCurve3d & OdGeNurbCurve3d::makeClosed ( )

Makes the opened spline closed, and returns a reference to this spline.

Returns
Reference to this OdGeNurbCurve3d object.
Remarks
If this spline is already closed, then the method does nothing. Closed spline is made by creating a smooth spline between the first and the last points and joining it with the initial spline.

◆ makeClosedFit()

void OdGeNurbCurve3d::makeClosedFit ( )
protected

◆ makeNonPeriodic()

OdGeNurbCurve3d & OdGeNurbCurve3d::makeNonPeriodic ( )

Makes periodic spline non-periodic.

Returns
Reference to this OdGeNurbCurve3d object.
Remarks
Currently not implemented.

◆ makeOpen()

OdGeNurbCurve3d & OdGeNurbCurve3d::makeOpen ( )

Makes closed spline open.

Returns
Reference to this OdGeNurbCurve3d object.

◆ makePeriodic()

OdGeNurbCurve3d & OdGeNurbCurve3d::makePeriodic ( )

Makes this spline periodic (if it is not).

Returns
Reference to this OdGeNurbCurve3d object.

◆ makeRational()

OdGeNurbCurve3d & OdGeNurbCurve3d::makeRational ( double  weight = 1.0)

Makes this spline rational (if it is not).

Parameters
weight[in] Weight to be applied to each control point.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
If this spline was already rational, the weight at each control point is multiplied by the specified weight.

◆ modifyPositionAndTangent()

bool OdGeNurbCurve3d::modifyPositionAndTangent ( double  param,
const OdGePoint3d point,
const OdGeVector3d deriv 
)
protected

Modifies the position and tangent of the point with a specified parameter.

Parameters
param[in] Parameter value of the point.
point[in] New position of the point.
deriv[in] New value of the tangent vector at the point.
Returns
true if and only if the point is adjusted successfully.

◆ numFitPoints()

int OdGeNurbCurve3d::numFitPoints ( ) const

Returns the number of fit points.

Returns
Number of fit points as an integer value.

◆ numWeights()

int OdGeNurbCurve3d::numWeights ( ) const

Returns the number of weights in the spline.

Returns
Number of weights in the spline as an integer value.
Remarks
Returns numControlPoints() if this spline is rational, 0 if it is not.

◆ operator=()

OdGeNurbCurve3d & OdGeNurbCurve3d::operator= ( const OdGeNurbCurve3d spline)

Assignment operator for the OdGeNurbCurve3d object.

Parameters
spline[in] Nurb spline to assign.
Returns
Reference to this recomputed OdGeNurbCurve3d object.

◆ purgeFitData()

bool OdGeNurbCurve3d::purgeFitData ( )

Purges the fit data defining this spline.

Returns
true if and only if this spline was constructed with fit data.
Remarks
The fit data consists of the fit points, fit tolerance, start tangent, and end tangent. The definition of the spline is unchanged.

◆ set()

OdGeNurbCurve3d & OdGeNurbCurve3d::set ( int  degree,
const OdGeKnotVector knots,
const OdGePoint3dArray controlPoints,
const OdGeDoubleArray weights,
bool  isPeriodic = false 
)

Sets the parameters for this spline according to the arguments.

Parameters
degree[in] Degree of spline.
knots[in] Knot vector.
controlPoints[in] Array of 3D control points.
weights[in] Array of weights
isPeriodic[in] true if and only if this spline is to be periodic.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
High degree values make curve more flexible. For example degree 1 is used to define a polyline, degree 2 is used to define a nurb circle, etc.

A knot vector defines a sequence of parameter values that determine where and how the control points affect the curve curve. The knot vector is a sequence of parameter values and divides the parametric space into intervals, usually called knot spans. Values of knot vector must be provided in ascending order, for example: (0, 0, 0, 1, 2, 3, 3, 3) can be valid while (0, 0, 2, 0, 3, 1, 3, 3) cannot be valid. Knot vector does not affect the form of the nurb curve, it only affects its parameterization.

The control points specify the placement of the curve and adjust its shape.

A rational spline is constructed, and controlPoints.length() must equal weights.length() If isPeriodic is false, then knots.length() must equal controlPoints.length() + degree + 1 If isPeriodic is true, then knots.length() must equal controlPoints.length(), the first and last controlPoints must be equal and the first and last weights (if provided) must be equal.

◆ setData()

OdGeNurbCurve3d & OdGeNurbCurve3d::setData ( int  degree,
const OdGePoint3dArray controlPoints,
const OdGeKnotVector knots,
const OdGeDoubleArray weights,
const OdGePoint3dArray fitPoints,
const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
bool  isStartTangentDefined,
bool  isEndTangentDefined,
bool  isPeriodic,
const OdGeTol fitTol 
)
protected

Sets the parameters for this spline according to the arguments.

Parameters
degree[in]Degree of spline.
controlPoints[in]Array of 3D control points.
knots[in]Knot vector.
weights[in]Array of weights
fitPoints[in] Interpolation points.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
isStartTangentDefined[in] Defines if the specified value of starting tangent is to be used.
isEndTangentDefined[in] Defines if the specified value of starting tangent is to be used.
isPeriodic[in]true if and only if this spline is to be periodic.
fitTol[in] Geometric tolerance.
Returns
Reference to this OdGeNurbCurve3d object.

◆ setEvalMode()

OdGeNurbCurve3d & OdGeNurbCurve3d::setEvalMode ( bool  evalMode = false)

Sets the evaluation mode.

Parameters
evalMode[in] Input state of the evaluation mode.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
If evalMode is false, there is no optimization of an internal evaluator. This mode generally should be used if only one or two values per interval between two consecutive knots are evaluated.

If evalMode is true, then the evaluator optimization is turned on. This provides better performance if three or more values per knot interval are computed.

◆ setFitData() [1/4]

OdGeNurbCurve3d & OdGeNurbCurve3d::setFitData ( const OdGeKnotVector fitKnots,
const OdGePoint3dArray fitPoints,
const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
const OdGeTol fitTol = OdGeContext::gTol,
bool  isPeriodic = false 
)

Sets the fit data for this spline.

Parameters
fitKnots[in] Fit knots.
fitPoints[in] Interpolation points.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
fitTol[in] Geometric tolerance.
isPeriodic[in] true if and only if this spline is to be periodic.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
Recomputes the spline from the input fit points, start and end tangents, and fit tolerance. The first parameter specifies the knot vector for the new spline. If fitTol is not 0, then the constructed spline may not pass through the fit points but the maximum distance from any fit point to the constructed spline will be no greater than fitTol.

◆ setFitData() [2/4]

OdGeNurbCurve3d & OdGeNurbCurve3d::setFitData ( const OdGePoint3dArray fitPoints,
const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
const OdGeTol fitTol = OdGeContext::gTol 
)

Sets the fit data for this spline.

Parameters
fitPoints[in] Interpolation points.
fitTol[in] Geometric tolerance.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
Recomputes the spline from the input fit points, start and end tangents, and fit tolerance. If fitTol is not 0, then the constructed spline may not pass through the fit points, but the maximum distance from any fit point to the constructed spline will be no greater than fitTol.

◆ setFitData() [3/4]

OdGeNurbCurve3d & OdGeNurbCurve3d::setFitData ( const OdGePoint3dArray fitPoints,
const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
OdGeKnotParameterization  knotParam,
const OdGeTol fitTol = OdGeContext::gTol 
)

Sets the fit data for this spline.

Parameters
fitPoints[in] Interpolation points.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
knotParam[in] The knot parameterization method to be set.
fitTol[in] Geometric tolerance.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
Replaces any existing spline data (fit or NURBS) with the fit data fitPoints, startTangent, endTangent, knot parameterization, fitTolerance. fitPoints must contain 2 or more points.

◆ setFitData() [4/4]

OdGeNurbCurve3d & OdGeNurbCurve3d::setFitData ( int  degree,
const OdGePoint3dArray fitPoints,
const OdGeTol fitTol = OdGeContext::gTol 
)

Sets the fit data for this spline.

Parameters
degree[in] Degree of curve.
fitPoints[in] Interpolation points.
fitTol[in] Geometric tolerance.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
Recomputes the spline from the input fit points and makes it of the specified degree. If fitTol is not 0, then the constructed spline may not pass through the fit points. But the maximum distance from any fit point to the constructed spline will be no greater than fitTol.

High degree values make curve more flexible. For example degree 1 is used to define a polyline, degree 2 is used to define a nurb circle, etc.

◆ setFitKnotParameterization()

bool OdGeNurbCurve3d::setFitKnotParameterization ( OdGeKnotParameterization  knotParam)

Sets the specified knot parameterization if the spline is created by fit points.

Parameters
knotParam[in] The knot parameterization to be set.
Returns
true if and only if the knot parameterization is set successfully.

◆ setFitPointAt()

bool OdGeNurbCurve3d::setFitPointAt ( int  fitPointIndex,
const OdGePoint3d point 
)

Sets the fit point at the specified index.

Parameters
fitPointIndex[in] Fit point index.
point[in] Fit point.
Returns
true if and only if the fit point is set successfully.

◆ setFitTangents() [1/2]

bool OdGeNurbCurve3d::setFitTangents ( const OdGeVector3d startTangent,
const OdGeVector3d endTangent 
)

Sets the fit tangents for this spline.

Parameters
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
Returns
true if and only if this spline was constructed with fit data and fit tangents were successfully set.

◆ setFitTangents() [2/2]

bool OdGeNurbCurve3d::setFitTangents ( const OdGeVector3d startTangent,
const OdGeVector3d endTangent,
bool  startTangentDefined,
bool  endTangentDefined 
)

Sets the fit tangents for this spline.

Parameters
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
startTangentDefined[in] Defines if the specified value of starting tangent is to be used.
endTangentDefined[in] Defines if the specified value of starting tangent is to be used.
Returns
true if and only if this spline was constructed with fit data and fit tangents were successfully set.

◆ setFitTolerance()

bool OdGeNurbCurve3d::setFitTolerance ( const OdGeTol fitTol = OdGeContext::gTol)

Sets the fit tolerance that is used for interpolating fit points.

Parameters
fitTol[in] Geometric tolerance.
Returns
true if and only if this spline was constructed with fit data and tolerance was successfully set.

◆ setKnotTolerance()

void OdGeNurbCurve3d::setKnotTolerance ( double  tol)
protected

Sets the knot tolerance of this spline.

Parameters
tol[in] Knot tolerance.

◆ setWeightAt()

OdGeNurbCurve3d & OdGeNurbCurve3d::setWeightAt ( int  weightIndex,
double  weight 
)

Sets the weight at the specified index.

Parameters
weightIndex[in] Weight index.
weight[in] Weight at the specified fit point.
Returns
Reference to this OdGeNurbCurve3d object.
Remarks
The closer the weight value is to zero, the closer the curve is to a straight line near the corresponding control point. If the weight increases, the curve pulls toward the corresponding control point. If the weight decreases, the curve pushes from the corresponding control point.

◆ TD_USING()

OdGeNurbCurve3d::TD_USING ( OdGeSplineEnt3d::evalPoint  )

◆ weightAt()

double OdGeNurbCurve3d::weightAt ( int  weightIndex) const

Returns the weight at the specified index.

Parameters
weightIndex[in] Weight index.
Returns
Weight at the specified index as a double value.

The documentation for this class was generated from the following file: