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

#include <GeCurve3d.h>

Inheritance diagram for OdGeCurve3d:
OdGeEntity3d OdGeCircArc3d OdGeCompositeCurve3d OdGeEllipArc3d OdGeExternalCurve3d OdGeLinearEnt3d OdGeOffsetCurve3d OdGeSplineEnt3d OdGeSurfaceCurve2dTo3d

Public Member Functions

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
 

Protected Member Functions

 OdGeCurve3d ()
 
 OdGeCurve3d (const OdGeCurve3d &source)
 
- Protected Member Functions inherited from OdGeEntity3d
 OdGeEntity3d ()
 
 OdGeEntity3d (const OdGeEntity3d &)
 
void connectTo (OdGeEntity3dImpl *)
 

Detailed Description

This class is the base class for all OdGe 3D curves.

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

Definition at line 55 of file GeCurve3d.h.

Constructor & Destructor Documentation

◆ OdGeCurve3d() [1/2]

OdGeCurve3d::OdGeCurve3d ( )
protected

◆ OdGeCurve3d() [2/2]

OdGeCurve3d::OdGeCurve3d ( const OdGeCurve3d source)
protected

Member Function Documentation

◆ appendSamplePoints() [1/3]

void OdGeCurve3d::appendSamplePoints ( const OdGeInterval paramInterval,
double  approxEps,
OdGePoint3dArray pointArray,
OdGeDoubleArray pParamArray = NULL 
) const

Appends sample points along this curve and their parameter values to the specified arrays.

Parameters
paramInterval[in] Pointer to the parametric interval.
approxEps[in] Approximate spacing along a curve.
pointArray[out] Receives an array of sample points.
pParamArray[out] Receives an array of parameters at each point.
Remarks
If paramInterval is NULL, the current curve interval will be used.

◆ appendSamplePoints() [2/3]

void OdGeCurve3d::appendSamplePoints ( double  fromParam,
double  toParam,
double  approxEps,
OdGePoint3dArray pointArray,
OdGeDoubleArray pParamArray = NULL 
) const

Appends sample points along this curve and their parameter values to the specified arrays.

Parameters
fromParam[in] Starting parameter value.
toParam[in] Ending parameter value.
approxEps[in] Approximate spacing along a curve.
pointArray[out] Receives an array of sample points.
pParamArray[out] Receives an array of parameters at each point.
Remarks
The signature appendSamplePoints(double, double, double, OdGePoint3dArray&, OdGeDoubleArray*) is currently not implemented.

◆ appendSamplePoints() [3/3]

void OdGeCurve3d::appendSamplePoints ( int  numSample,
OdGePoint3dArray pointArray,
OdGeDoubleArray pParamArray = NULL 
) const

Appends sample points along this curve and their parameter values to the specified arrays.

Parameters
numSample[in] Number of samples.
pointArray[out] Receives an array of sample points.
pParamArray[out] Receives an array of parameters at each point.

◆ area()

bool OdGeCurve3d::area ( double  startParam,
double  endParam,
double &  value,
const OdGeTol tol = OdGeContext::gTol 
) const

Determines the area of this curve between the specified parameters.

Parameters
startParam[in] Starting parameter value.
endParam[in] Ending parameter value.
value[out] Receives the area.
tol[in] Geometric tolerance.
Returns
true (and a value) if and only if this curve is planar.

◆ boundBlock() [1/2]

OdGeBoundBlock3d OdGeCurve3d::boundBlock ( ) const

Calculates the oriented bounding box of the curve.

Returns
Bounding box as an OdGeBoundBlock2d entity.

◆ boundBlock() [2/2]

OdGeBoundBlock3d OdGeCurve3d::boundBlock ( const OdGeInterval range) const

Calculates the oriented bounding box of curve.

Parameters
range[in] Sub-interval of this curve to be bounded.
Returns
Bounding box as a OdGeBoundBlock3d entity.

◆ closestPointTo() [1/3]

OdGePoint3d OdGeCurve3d::closestPointTo ( const OdGeCurve3d curve,
OdGePoint3d pntOnOtherCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified curve, and the point on the other curve closest to this curve.

Parameters
curve[in] Any 3D curve.
pntOnOtherCrv[out] Receives the closest point on other curve.
tol[in] Geometric tolerance.

◆ closestPointTo() [2/3]

OdGePoint3d OdGeCurve3d::closestPointTo ( const OdGePoint3d point,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified point.

Parameters
point[in] Any 3D point.
tol[in] Geometric tolerance.

◆ closestPointTo() [3/3]

OdGePoint3d OdGeCurve3d::closestPointTo ( const OdGePoint3d point,
double &  param,
const OdGeInterval range,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified point.

Parameters
point[in] Any 3D point.
param[out] uv-coord of closest point.
range[in] interval of closest point.
tol[in] Geometric tolerance.
Remarks
Native interval is not considered. If projection of the point does not lie in range-interval, the closest bound of the interval is returned. In case of uvBox == NULL closestPointTo(point, range, tol) is called where range is a native curves interval. An unbounded interval should not be used here.

◆ convertTo2d()

OdGeCurve2d * OdGeCurve3d::convertTo2d ( const OdGeTol tol = OdGeContext::gTol,
bool  sameParametrization = false 
) const

Returns a pointer to the 2D variant of the curve (z-coordinate will be ignored).

Parameters
tol[in] Tolerance used in case of interpolation.
sameParametrization[in] Necessity of parametrization preserving during conversion.
Remarks
If it is possible, than the curve will be converted analytically (i.e. 3D line segment becomes a 2D line segment, etc), otherwise it will be projected onto an XY-plane.

◆ distanceTo() [1/2]

double OdGeCurve3d::distanceTo ( const OdGeCurve3d curve,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the distance to the point on this curve closest to the specified curve.

Parameters
curve[in] Any 3D curve.
tol[in] Geometric tolerance.

◆ distanceTo() [2/2]

double OdGeCurve3d::distanceTo ( const OdGePoint3d point,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the distance to the point on this curve closest to the specified point.

Parameters
point[in] Any 3D point.
tol[in] Geometric tolerance.

◆ evalPoint() [1/2]

OdGePoint3d OdGeCurve3d::evalPoint ( double  param) const

Returns the point on this curve corresponding to the specified parameter value.

Parameters
param[in] Parameter to be evaluated.

◆ evalPoint() [2/2]

OdGePoint3d OdGeCurve3d::evalPoint ( double  param,
int  numDeriv,
OdGeVector3dArray derivatives 
) const

Returns the point on this curve corresponding to the specified parameter value, and the derivatives at that point.

Parameters
param[in] Parameter to be evaluated.
numDeriv[in] Number of derivatives to be computed.
derivatives[out] Receives an array of derivatives at the point corresponding to param.

◆ explode()

bool OdGeCurve3d::explode ( OdGeCurve3dPtrArray explodedCurves,
OdGeIntArray newExplodedCurves,
const OdGeInterval pInterval = NULL 
) const

Explodes this curve over the specified interval.

Parameters
explodedCurves[out] Receives an array of pointers to the subcurves from the explosion.
newExplodedCurves[out] Receives an array of flags which, if true, correspond to those explodedCurves the caller must delete.
pInterval[in] Pointer to the interval to be exploded. Defaults to entire curve.
Returns
true if the operation is successful; false otherwise.
Remarks
The original curve is not changed.

◆ getClosestPointTo() [1/2]

void OdGeCurve3d::getClosestPointTo ( const OdGeCurve3d curve,
OdGePointOnCurve3d pntOnThisCrv,
OdGePointOnCurve3d pntOnOtherCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified curve, and the point on the other curve closest to this curve.

Parameters
curve[in] Any 3D curve.
pntOnThisCrv[out] Receives the closest point on this curve.
pntOnOtherCrv[out] Receives the closest point on other curve.
tol[in] Geometric tolerance.

◆ getClosestPointTo() [2/2]

void OdGeCurve3d::getClosestPointTo ( const OdGePoint3d point,
OdGePointOnCurve3d pntOnCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified point.

Parameters
point[in] Any 3D point.
pntOnCrv[out] Receives the closest point on this curve.
tol[in] Geometric tolerance.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ getGeomExtents()

OdGeExtents3d OdGeCurve3d::getGeomExtents ( const OdGeInterval range = OdGeInterval(),
const OdGeMatrix3d coordSystem = NULL 
) const

Returns the bounding box of the whole curve or a part of it. The box is axis-aligned in the specified local coordinate system. It is guaranteed to enclose the curve, but not guaranteed to be tight/minimal.

Parameters
range[in] The part of the curve to be bounded.
coordSystem[in] The local coordinate system in which box extents are computed.
Remarks
If the range is unbounded (e.g. by default), then the bounding box of the whole curve (which range can be obtained by getInterval method) is computed. Otherwise the bounding box is computed only for the set of points with parameter in the specified range. If coordSystem is NULL (e.g. by default), than the bounding box is aligned with global coordinate axes. Otherwise, the box will be axis-aligned in the local coordinate system specified by the coordSystem matrix.

◆ getInterval() [1/2]

void OdGeCurve3d::getInterval ( OdGeInterval interval) const

Gets the parametric interval of this curve.

Parameters
interval[out] Receives the parametric interval of this curve.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ getInterval() [2/2]

void OdGeCurve3d::getInterval ( OdGeInterval interval,
OdGePoint3d start,
OdGePoint3d end 
) const

Gets the parametric interval of this curve.

Parameters
interval[out] Receives the parametric interval of this curve.
start[out] Receives the start point of the interval.
end[out] Receives the end point of the interval.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ getLocalClosestPoints() [1/2]

void OdGeCurve3d::getLocalClosestPoints ( const OdGeCurve3d curve,
OdGePointOnCurve3d approxPntOnThisCrv,
OdGePointOnCurve3d approxPntOnOtherCrv,
const OdGeInterval pInterval1 = NULL,
const OdGeInterval pInterval2 = NULL,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve locally closest to the specified curve, and the point on the other curve locally closest to this curve.

Parameters
curve[in] Any 3D curve.
approxPntOnThisCrv[in/out] Approximate point on this curve.
approxPntOnOtherCrv[in/out] Approximate point on other curve.
pInterval1[in] Pointer to the interval in which the point on this curve must lie.
pInterval2[in] Pointer to the interval in which the point on the other curve must lie.
tol[in] Geometric tolerance.

◆ getLocalClosestPoints() [2/2]

void OdGeCurve3d::getLocalClosestPoints ( const OdGePoint3d point,
OdGePointOnCurve3d approxPntOnThisCrv,
const OdGeInterval pInterval1 = NULL,
const OdGeTol tol = OdGeContext::gTol 
) const

Gets the point on this curve locally closest to the specified point.

Parameters
point[in] Any 3D point.
approxPntOnThisCrv[in/out] Approximate point on this curve.
pInterval1[in] Pointer to the interval in which the point on this curve must lie.
tol[in] Geometric tolerance.

◆ getNormalPoint()

bool OdGeCurve3d::getNormalPoint ( const OdGePoint3d point,
OdGePointOnCurve3d pntOnCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns true, and the point on this curve whose normal vector passes through the specified point, if and only if a normal point was found.

Parameters
point[in] Any 3D point.
pntOnCrv[out] Receives the normal point.
tol[in] Geometric tolerance.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented

◆ getProjClosestPointTo() [1/2]

void OdGeCurve3d::getProjClosestPointTo ( const OdGeCurve3d curve,
const OdGeVector3d projectDirection,
OdGePointOnCurve3d pntOnThisCrv,
OdGePointOnCurve3d pntOnOtherCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified curve, and the point on the other curve closest to this curve, when this curve is projected in the specified direction.

Parameters
curve[in] Any 3D curve.
projectDirection[in] Projection Direction.
pntOnThisCrv[out] Receives the closest point on this curve.
pntOnOtherCrv[out] Receives the closest point on other curve.
tol[in] Geometric tolerance.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented

◆ getProjClosestPointTo() [2/2]

void OdGeCurve3d::getProjClosestPointTo ( const OdGePoint3d point,
const OdGeVector3d projectDirection,
OdGePointOnCurve3d pntOnCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified point when this curve is projected in the specified direction.

Parameters
point[in] Any 3D point.
projectDirection[in] Projection Direction.
pntOnCrv[out] Receives the closest point on this curve.
tol[in] Geometric tolerance.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented

◆ getSamplePoints() [1/5]

void OdGeCurve3d::getSamplePoints ( const OdGeInterval paramInterval,
double  approxEps,
OdGePoint3dArray pointArray,
OdGeDoubleArray pParamArray = NULL 
) const

Gets sample points along this curve and their parameter values in the specified arrays.

Parameters
paramInterval[in] Pointer to the parametric interval.
approxEps[in] Approximate spacing along a curve.
pointArray[out] Receives an array of sample points.
pParamArray[out] (Optional) Receives an array of parameters at each point.
Remarks
If paramInterval is null, the current curve interval will be used.

◆ getSamplePoints() [2/5]

void OdGeCurve3d::getSamplePoints ( double  fromParam,
double  toParam,
double  approxEps,
OdGePoint3dArray pointArray,
OdGeDoubleArray paramArray,
bool  forceResampling = false 
) const

Returns sample points along this curve and their parameter values in the specified arrays.

Parameters
fromParam[in] Starting parameter value.
toParam[in] Ending parameter value.
approxEps[in] Approximate spacing along a curve.
pointArray[out] Receives an array of sample points.
paramArray[out] Receives an array of parameters at each point.
forceResampling[in] sample points are forced to be regenerated.

◆ getSamplePoints() [3/5]

void OdGeCurve3d::getSamplePoints ( double  fromParam,
double  toParam,
double  approxEps,
OdGePoint3dArray pointArray,
OdGeDoubleArray paramArray = NULL 
) const

Returns sample points along this curve and their parameter values in the specified arrays.

Parameters
fromParam[in] Starting parameter value.
toParam[in] Ending parameter value.
approxEps[in] Approximate spacing along a curve.
pointArray[out] Receives an array of sample points.
paramArray[out] Receives an array of parameters at each point.

◆ getSamplePoints() [4/5]

void OdGeCurve3d::getSamplePoints ( int  numSample,
OdGePoint3dArray pointArray 
) const

Gets sample points along this curve and their parameter values in the specified arrays.

Parameters
numSample[in] Number of samples.
pointArray[out] Receives an array of sample points.

◆ getSamplePoints() [5/5]

void OdGeCurve3d::getSamplePoints ( int  numSample,
OdGePoint3dArray pointArray,
OdGeDoubleArray paramArray 
) const

Gets sample points along this curve and their parameter values in the specified arrays.

Parameters
numSample[in] Number of samples.
pointArray[out] Receives an array of sample points.
paramArray[out] Receives an array of parameters at each point.

◆ getSplitCurves()

void OdGeCurve3d::getSplitCurves ( double  param,
OdGeCurve3d *&  piece1,
OdGeCurve3d *&  piece2 
) const

Returns pointers to the two curves that result from splitting this curve at the point corresponding to param.

Parameters
param[in] Parameter value corresponding to the split point.
piece1[out] Receives a pointer to the first curve.
piece2[out] Receives a pointer to the second curve.
Remarks
If param corresponds to a point not on this curve, or to the start point or end point of this curve, piece1 and piece2 are set to NULL. The curves pointed to by piece1 and piece2 are created with the new command, and must be deleted by the caller.

◆ getTrimmedOffset()

void OdGeCurve3d::getTrimmedOffset ( double  distance,
const OdGeVector3d planeNormal,
OdGeCurve3dPtrArray offsetCurveList,
OdGe::OffsetCrvExtType  extensionType = OdGe::kFillet,
const OdGeTol tol = OdGeContext::gTol 
) const

Retrieves one or more trimmed offset curves.

Parameters
distance[in] Offset distance.
planeNormal[in] A normal to the plane of this curve.
offsetCurveList[out] Receives an array of trimmed offset curves.
extensionType[in] How curves will be extended at discontinuities of type C1.
tol[in] Geometric tolerance.
Remarks
The curve must be planar, and planeNomal must be perpendicular to the curve plane. The direction of the positive offset at any point on this curve is along the cross product of planeNormal and the tangent to the curve at that point. The offsets are trimmed to eliminate self-intersecting loops. If this curve has discontinuities of type C1 and offset curve is disjoint (e.g., polyline), then offset curve's parts will be closed with lines or arcs or they will be extended (depending on extensionType).

By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented eInvalidInput

◆ hasEndPoint()

bool OdGeCurve3d::hasEndPoint ( OdGePoint3d endPoint) const

Returns true, and the end point, if and only if the parametric interval of this curve has an upper bound.

Parameters
endPoint[out] Receives the end point.

◆ hasMidPoint()

bool OdGeCurve3d::hasMidPoint ( OdGePoint3d point,
double  coef = 0.5 
) const

Checks the boundaries of the curve interval and calculates a point from the curve interval that corresponds to the specified coefficient.

Parameters
point[out] Receives the point from the curve interval that corresponds to the coefficient.
coef[in] Coefficient from the interval [0; 1].
Returns
true if and only if the parametric interval of the curve is bounded and the value of the coef variable lies within [0; 1].
Remarks
The value of the coef variable must be within [0; 1], where: 0 is the beginning of the curve interval 0.5 is the middle of the curve interval 1 is the end of the curve interval

◆ hasStartPoint()

bool OdGeCurve3d::hasStartPoint ( OdGePoint3d startPoint) const

Returns true, and the start point, if and only if the parametric interval of this curve has a lower bound.

Parameters
startPoint[out] Receives the start point.

◆ isClosed()

bool OdGeCurve3d::isClosed ( const OdGeTol tol = OdGeContext::gTol) const

Returns true if and only if this curve is closed within the specified tolerance.

Parameters
tol[in] Geometric tolerance.

◆ isCoplanarWith()

bool OdGeCurve3d::isCoplanarWith ( const OdGeCurve3d curve,
OdGePlane plane,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns true if the specified curve entity is coplanar with this curve and returns the common plane.

Parameters
curve[in] Any 3D curve.
plane[out] Receives the plane of the curves.
tol[in] Geometric tolerance.

◆ isDegenerate() [1/2]

bool OdGeCurve3d::isDegenerate ( OdGe::EntityId degenerateType,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns true if and only if this curve degenerates, and returns the type of entity to which this curve degenerates.

Parameters
degenerateType[out] Receives the type of the curve to which this curve degenerates.
tol[in] Geometric tolerance.
Remarks
If isDegenerate returns true, the returned object was created with the new operator, and it is the responsibility of the caller to delete it.

◆ isDegenerate() [2/2]

bool OdGeCurve3d::isDegenerate ( OdGeEntity3d *&  pConvertedEntity,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns true if and only if this curve degenerates, and returns the entity to which this curve degenerates.

Parameters
pConvertedEntity[out] Receives a pointer to the object to which this curve degenerates.
tol[in] Geometric tolerance.
Remarks
If isDegenerate returns true, the returned object was created with the new operator, and it is the responsibility of the caller to delete it.

◆ isLinear()

bool OdGeCurve3d::isLinear ( OdGeLine3d line,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns true, and a linear entity coincident with this curve, if and only if this curve is linear.

Parameters
line[out] Receives the line coincident with this curve.
tol[in] Geometric tolerance.
Remarks
An infinite line is returned, even if this curve is bounded.
As implemented, this function does nothing but returns false. It will be fully implemented in future releases.

◆ isOn() [1/2]

bool OdGeCurve3d::isOn ( const OdGePoint3d point,
double &  param,
const OdGeTol tol = OdGeContext::gTol 
) const

Determines whether a point lies on the curve.

Parameters
point[in] Input point.
param[out] Output parameter value of the point if the point lies on the curve.
tol[in] Geometric tolerance.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ isOn() [2/2]

bool OdGeCurve3d::isOn ( double  param,
const OdGeTol tol = OdGeContext::gTol 
) const

Determines whether an input parameter value is within a valid parametric range of the curve.

Parameters
param[in] Input parameter value.
tol[in] Geometric tolerance.
Returns
true if the input parameter value is within a valid parametric range of the curve; false otherwise.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ isPeriodic()

bool OdGeCurve3d::isPeriodic ( double &  period) const

Returns true if and only if this curve is periodic for the specified period.

Parameters
period[out] Receives the period of this curve.

◆ isPlanar()

bool OdGeCurve3d::isPlanar ( OdGePlane plane,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns true if and only if this curve is planar, and returns the plane of this curve.

Parameters
plane[out] Receives the plane of this curve.
tol[in] Geometric tolerance.
Remarks
Lines are considered to be planar; the returned plane is an arbitrary plane containing the line.

◆ length() [1/2]

double OdGeCurve3d::length ( double  fromParam,
double  toParam,
double  tol = OdGeContext::gTol.equalPoint() 
) const

Returns the length of this curve over the specified parameter range.

Parameters
fromParam[in] Starting parameter value.
toParam[in] Ending parameter value.
tol[in] Geometric tolerance.

◆ length() [2/2]

double OdGeCurve3d::length ( double  tol = OdGeContext::gTol.equalPoint()) const

Returns the length of this curve.

Parameters
tol[in] Geometric tolerance.

◆ midPoint()

OdGePoint3d OdGeCurve3d::midPoint ( double  coef = 0.5) const

Calculates a point from the curve interval that corresponds to the specified coefficient.

Parameters
coef[in] Coefficient from the interval [0; 1].
Returns
Point from the curve interval that corresponds to the coefficient parameter.
Remarks
The value of the coef variable must be within [0; 1], where: 0 is the beginning of the curve interval 0.5 is the middle of the curve interval 1 is the end of the curve interval Otherwise, an exception eNotApplicable will be thrown.
The curve must have a bounded interval; otherwise, an exception eCurveEndsMissed will be thrown.

◆ operator=()

OdGeCurve3d & OdGeCurve3d::operator= ( const OdGeCurve3d curve)

The assignment operator for objects the OdGeCurve3d class.

Parameters
curve[in] Input 3D curve.
Returns
Reference to this curve.
Remarks
Assigns input 3D curve to this curve.

◆ orthoBoundBlock() [1/2]

OdGeBoundBlock3d OdGeCurve3d::orthoBoundBlock ( ) const

Calculates the bounding box whose edges are aligned with the coordinate axes.

Returns
Bounding box as a OdGeBoundBlock3d entity.

◆ orthoBoundBlock() [2/2]

OdGeBoundBlock3d OdGeCurve3d::orthoBoundBlock ( const OdGeInterval range) const

Calculates the bounding box whose edges are aligned with the coordinate axes.

Parameters
range[in] Interval of this curve to be bounded.
Returns
Bounding box as an OdGeBoundBlock3d entity.

◆ orthoProject()

OdGeEntity3d * OdGeCurve3d::orthoProject ( const OdGePlane projectionPlane,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the entity that is the orthogonal projection of the curve onto the projection plane.

Parameters
projectionPlane[in] Plane on which the curve is to be projected.
tol[in] Geometric tolerance.
Remarks
The returned entity can be a different type than the original curve and can even not be a curve. By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ paramAtLength()

double OdGeCurve3d::paramAtLength ( double  datumParam,
double  length,
bool  posParamDir = true,
double  tol = OdGeContext::gTol.equalPoint() 
) const

Returns the parameter of the point at a specified distance from the starting point corresponding to datumParam.

Parameters
datumParam[in] Parameter corresponding to the start point.
length[in] Distance along curve from the start point.
posParamDir[in] true if and only if returned parameter is to be greater than dataParam.
tol[in] Geometric tolerance.

◆ paramOf() [1/2]

double OdGeCurve3d::paramOf ( const OdGePoint3d point,
const OdGeInterval range,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the parameter value of a point.

Parameters
point[in] Point to be evaluated.
range[in] Interval on the curve.
tol[in] Geometric tolerance.
Remarks
The returned parameter specifies a point within the tolerance of the point. If the point is not on this curve, end or start of the interval will be set. In case of uvBox == NULL paramOf(point, rng, tol) is called in which range - native range of the curve. If you are not sure whether the point is on this curve, use isOn() instead of this function.

◆ paramOf() [2/2]

double OdGeCurve3d::paramOf ( const OdGePoint3d point,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the parameter value of a point.

Parameters
point[in] Point to be evaluated.
tol[in] Geometric tolerance.
Returns
Parameter value of the point.
Remarks
The returned parameter specifies a point within the tolerance of the point. If the point is not on this curve, the results are unpredictable. If you are not sure whether the point is on this curve, use isOn() instead of this function.
If projection of the point does not lie in range-interval, the closest bound of the interval is returned. In case of uvBox == NULL paramOf(point, tol) is called.

◆ projClosestPointTo() [1/2]

OdGePoint3d OdGeCurve3d::projClosestPointTo ( const OdGeCurve3d curve,
const OdGeVector3d projectDirection,
OdGePoint3d pntOnOtherCrv,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified curve, and the point on the other curve closest to this curve, when this curve is projected in the specified direction.

Parameters
curve[in] Any 3D curve.
projectDirection[in] Projection Direction.
pntOnOtherCrv[out] Receives the closest point on other curve.
tol[in] Geometric tolerance.

◆ projClosestPointTo() [2/2]

OdGePoint3d OdGeCurve3d::projClosestPointTo ( const OdGePoint3d point,
const OdGeVector3d projectDirection,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the point on this curve closest to the specified point when this curve is projected in the specified direction.

Parameters
point[in] Any 3D point.
projectDirection[in] Projection direction.
tol[in] Geometric tolerance.

◆ project()

OdGeEntity3d * OdGeCurve3d::project ( const OdGePlane projectionPlane,
const OdGeVector3d projectDirection,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the entity that is the projection of the curve onto the projection plane in the specified direction.

Parameters
projectionPlane[in] Plane on which the curve is to be projected.
projectDirection[in] Direction in which the curve is to be projected.
tol[in] Geometric tolerance.
Remarks
The projectDirection vector must not be parallel to the projection plane. The returned entity can be a different type than the original curve and can even not be a curve. By default this function throws the exception "not Implemented". Should be implemented in derived classes.

◆ reverseParam()

OdGeCurve3d & OdGeCurve3d::reverseParam ( )

Reverses the parameter direction this curve.

Returns
Curve with the reversed direction parameter.
Remarks
The point set of this curve is unchanged.
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented

◆ setInterval() [1/2]

OdGeCurve3d & OdGeCurve3d::setInterval ( )

Sets to natural domain of this curve.

Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented

◆ setInterval() [2/2]

bool OdGeCurve3d::setInterval ( const OdGeInterval interval)

Sets the parametric interval of this curve.

Parameters
interval[in] Parametric interval of this curve.
Remarks
By default this function throws the exception "not Implemented". Should be implemented in derived classes.

Throws:

eNotImplemented

Returns
true if interval is successfully set, false otherwise.

◆ TD_USING()

OdGeCurve3d::TD_USING ( OdGeEntity3d::isOn  )

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