CFx SDK Documentation  2020SP3
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
 
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 addControlPointAt (double newKnot, const OdGePoint3d &point, double weight=1.0)
 
bool deleteControlPointAt (int index)
 
bool deleteFitPointAt (int fitPointIndex)
 
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)
 
OdGeSplineEnt3dsetWeightAt (int fitPointIndex, double weight)
 
OdGeNurbCurve3dsetEvalMode (bool evalMode=false)
 
OdGeNurbCurve3djoinWith (const OdGeNurbCurve3d &curve)
 
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
 
void set (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
 
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
 
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
 
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
 
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
 
- 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
 

Protected Member Functions

bool modifyPositionAndTangent (double param, const OdGePoint3d &point, const OdGeVector3d *deriv)
 
void makeClosedFit ()
 
void 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)
 
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.html, Working with NURBS Curves>

Definition at line 48 of file GeNurbCurve3d.h.

Constructor & Destructor Documentation

◆ OdGeNurbCurve3d() [1/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( )
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.
fitPoints[in] Interpolation points.
fitTol[in] Geometric tolerance.
ellipse[in] Any elliptical arc.
numSpans[in] Number of knot spans in the curve.
lineSeg[in] Any 3D line segment.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
startTangentDefined[in] If true, startTangent is used.
endTangentDefined[in] If true, endTangent is used.
source[in] Object to be cloned.
numControlPoints[in] Number of control points.
numWeights[in] Number of weights.
Remarks
If weights is not specified, a non-rational spline is constructed. If weights is specified, then a rational spline is constructed, and controlPoints.length() must equal weights.length() If isPeriodic is true, the constructor forces makeClosed functionality(if the curve is open, it will be closed inside constructor) and the first and last weights (if provided) must be equal. If ellipse is specified, a curve identical to the ellipse is created. If lineSeg is specified, a curve identical to the line segment is created.

◆ OdGeNurbCurve3d() [2/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGeNurbCurve3d source)

◆ OdGeNurbCurve3d() [3/12]

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

◆ OdGeNurbCurve3d() [4/12]

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

◆ OdGeNurbCurve3d() [5/12]

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

◆ OdGeNurbCurve3d() [6/12]

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

◆ 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 
)

◆ OdGeNurbCurve3d() [8/12]

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

◆ OdGeNurbCurve3d() [9/12]

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

◆ 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 
)

◆ OdGeNurbCurve3d() [11/12]

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

◆ OdGeNurbCurve3d() [12/12]

OdGeNurbCurve3d::OdGeNurbCurve3d ( const OdGeLineSeg3d lineSeg)

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.
Remarks
When called for a non-rational spline, weight is ignored.
  \returns
Returns true if the control point has successfully been added and false otherwise.

◆ addFitPointAt()

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

Returns true if and only if this spline was created with fit data, and inserts the fit point at the specified index.

Parameters
fitPointIndex[in] Fit point index.
point[in] Fit point.

◆ addKnot()

OdGeNurbCurve3d& OdGeNurbCurve3d::addKnot ( double  newKnot)

Adds new knot to the spline knot array and returns reference to this spline object.

Parameters
newKnot[in] New knot.

◆ buildFitData()

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

Calculates fit data for the spline constructed by control points.

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

◆ 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
Returns true if the control point has successfully been deleted and false otherwise.

◆ deleteFitPointAt()

bool OdGeNurbCurve3d::deleteFitPointAt ( int  fitPointIndex)

Removes a fit point with the specified index. The index must be greater than or equal to 0 and less than or equal to the number of fit points.

Parameters
index[in] The index of fit point that is to be removed.
Returns
Returns true if the fit point is successfully deleted and false otherwise.

◆ 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.

◆ evalMode()

bool OdGeNurbCurve3d::evalMode ( ) const

Returns the current evaluation mode.

Remarks
Currently not implemented.

◆ evalPoint()

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

DOM

◆ evalPointDivider()

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

DOM

◆ getDefinitionData()

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

Returns 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
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

Returns true if and only if this spline was constructed with fit data, and returns all the fit data used to construct this spline.

Parameters
fitPoints[out] Receives the onterpolation 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.
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

Returns true if and only if this spline was constructed with fit data, and returns all the fit data used to construct this spline.

Parameters
fitPoints[out] Receives the onterpolation 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.
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 and returns true if successful.

Parameters
knotParam[out] Receives the knot parametrization.

◆ getFitPointAt()

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

Returns true if and only if 0 <= index < numFitPoints(), and returns the fit point at the specified index.

Parameters
fitPointIndex[in] Fit point index.
point[out] Receives the fit point.

◆ getFitTangents() [1/2]

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

Descripton: Returns true if and only if this spline was constructed with fit data, and returns the starting and ending tangents.

Parameters
startTangent[out] Receives the starting tangent
endTangent[out] Receives the ending tangent.

◆ getFitTangents() [2/2]

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

Descripton: Returns true if and only if this spline was constructed with fit data, and returns the starting and ending tangents.

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.

◆ getFitTolerance()

bool OdGeNurbCurve3d::getFitTolerance ( OdGeTol fitTolerance) const

Returns true if and only if this spline was constructed with fit points, and gets the fit tolerance that is used to construct this spline.

Parameters
fitTolerance[out] Recieves the geometric tolerance.

◆ getParamsOfC1Discontinuity()

bool OdGeNurbCurve3d::getParamsOfC1Discontinuity ( OdGeDoubleArray params,
const OdGeTol tol = OdGeContext::gTol 
) const
Remarks
Currently not implemented.

◆ getParamsOfG1Discontinuity()

bool OdGeNurbCurve3d::getParamsOfG1Discontinuity ( OdGeDoubleArray params,
const OdGeTol tol = OdGeContext::gTol 
) const
Remarks
Currently not implemented.

◆ hardTrimByParams()

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

Trims the spline by the new start and end parameters, and returns a reference to the recalculated spline.

Parameters
newStartParam[in] New start parameter.
newEndParam[in] New end parameter.

◆ insertKnot()

OdGeNurbCurve3d& OdGeNurbCurve3d::insertKnot ( double  newKnot)

Inserts new knot to the spline knot array and returns reference to this spline object. If there is already such knot, then the multiplicity of the knot is increased by 1.

Parameters
newKnot[in] New knot.

◆ joinWith()

OdGeNurbCurve3d& OdGeNurbCurve3d::joinWith ( const OdGeNurbCurve3d curve)

Joins the specified spline with this spline and returns a reference to the recomputed spline. Both splines must be open and the start point of the input spline must be equal to the endpoint of the initial spline.

Parameters
curve[in] Spline to be joined with this spline.

◆ makeClosed()

OdGeNurbCurve3d& OdGeNurbCurve3d::makeClosed ( )

Makes the opened spline closed, and returns a reference to this spline. Closed spline is made by creating a smooth spline between the first and the end points and joining it with the initial spline.

Remarks
If this spline is already closed, then the method does nothing.

◆ makeClosedFit()

void OdGeNurbCurve3d::makeClosedFit ( )
protected

◆ makeNonPeriodic()

OdGeNurbCurve3d& OdGeNurbCurve3d::makeNonPeriodic ( )

Makes periodic spline non-periodic.

Remarks
Currently not implemented.

◆ makeOpen()

OdGeNurbCurve3d& OdGeNurbCurve3d::makeOpen ( )

Makes closed spline open.

Remarks
Currently not implemented.

◆ makePeriodic()

OdGeNurbCurve3d& OdGeNurbCurve3d::makePeriodic ( )

Makes non-periodic spline periodic.

Remarks
Currently not implemented.

◆ makeRational()

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

Makes this spline rational (if it is not), and returns a reference to this spline.

Parameters
weight[in] Weight to be applied to each control point.
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
Returns true if and only if the point has successfully been adjusted.

◆ numFitPoints()

int OdGeNurbCurve3d::numFitPoints ( ) const

Returns the number of fit points.

◆ numWeights()

int OdGeNurbCurve3d::numWeights ( ) const

Returns the number of weights in the spline.

Remarks
Returns numCurves() if this spline is rational, 0 if it is not.

◆ operator=()

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

◆ purgeFitData()

bool OdGeNurbCurve3d::purgeFitData ( )

Purges the fit data defining this spline.

Remarks
The fit data consists of the fit points, fit tolerance, start tangent, and end tangent.

◆ set()

void 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
Returns a reference to this spline.

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()

void 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

◆ setEvalMode()

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

Sets the evaluation mode.

Remarks
Currently not implemented.

◆ 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
fitPoints[in] Interpolation points.
fitTol[in] Geometric tolerance.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.
fitKnots[in] Fit knots.
Remarks
The signature with fitKnots parameter currently is not implemented.

◆ 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.

◆ 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.
fitTol[in] Geometric tolerance.
startTangent[in] Starting tangent.
endTangent[in] Ending tangent.

◆ setFitData() [4/4]

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

Sets the fit data for this spline.

Parameters
fitPoints[in] Interpolation points.
fitTol[in] Geometric tolerance.

◆ setFitKnotParameterization()

bool OdGeNurbCurve3d::setFitKnotParameterization ( OdGeKnotParameterization  knotParam)

Sets the specified knot parameterization if the spline is created by fit points and returns true if the knot parameterization has successfully been set.

Parameters
knotParam[in] The knot parameterization to be set.

◆ 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
Returns true if the fit point has successfully been set and false otherwise.

◆ 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
Returns true if and only if this spline was constructed with fit data.

◆ 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
Returns true if and only if this spline was constructed with fit data.

◆ 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
Returns true if and only if this spline was constructed with fit data.

◆ setKnotTolerance()

void OdGeNurbCurve3d::setKnotTolerance ( double  tol)
protected

◆ setWeightAt()

OdGeSplineEnt3d& OdGeNurbCurve3d::setWeightAt ( int  fitPointIndex,
double  weight 
)

Sets the weight at the specified index.

Parameters
fitPointIndex[in] Fit point index.
weight[in] Weight at the specified fit 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.

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