CFx SDK Documentation 2024 SP0
|
#include <GeCurve3d.h>
Protected Member Functions | |
OdGeCurve3d () | |
OdGeCurve3d (const OdGeCurve3d &source) | |
Protected Member Functions inherited from OdGeEntity3d | |
OdGeEntity3d () | |
OdGeEntity3d (const OdGeEntity3d &) | |
void | connectTo (OdGeEntity3dImpl *) |
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.
|
protected |
|
protected |
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.
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. |
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.
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. |
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.
numSample | [in] Number of samples. |
pointArray | [out] Receives an array of sample points. |
pParamArray | [out] Receives an array of parameters at each point. |
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.
startParam | [in] Starting parameter value. |
endParam | [in] Ending parameter value. |
value | [out] Receives the area. |
tol | [in] Geometric tolerance. |
OdGeBoundBlock3d OdGeCurve3d::boundBlock | ( | ) | const |
Calculates the oriented bounding box of the curve.
OdGeBoundBlock3d OdGeCurve3d::boundBlock | ( | const OdGeInterval & | range | ) | const |
Calculates the oriented bounding box of curve.
range | [in] Sub-interval of this curve to be bounded. |
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.
curve | [in] Any 3D curve. |
pntOnOtherCrv | [out] Receives the closest point on other curve. |
tol | [in] Geometric tolerance. |
OdGePoint3d OdGeCurve3d::closestPointTo | ( | const OdGePoint3d & | point, |
const OdGeTol & | tol = OdGeContext::gTol |
||
) | const |
Returns the point on this curve closest to the specified point.
point | [in] Any 3D point. |
tol | [in] Geometric tolerance. |
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.
point | [in] Any 3D point. |
param | [out] uv-coord of closest point. |
range | [in] interval of closest point. |
tol | [in] Geometric tolerance. |
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).
tol | [in] Tolerance used in case of interpolation. |
sameParametrization | [in] Necessity of parametrization preserving during conversion. |
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.
curve | [in] Any 3D curve. |
tol | [in] Geometric tolerance. |
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.
point | [in] Any 3D point. |
tol | [in] Geometric tolerance. |
OdGePoint3d OdGeCurve3d::evalPoint | ( | double | param | ) | const |
Returns the point on this curve corresponding to the specified parameter value.
param | [in] Parameter to be evaluated. |
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.
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. |
bool OdGeCurve3d::explode | ( | OdGeCurve3dPtrArray & | explodedCurves, |
OdGeIntArray & | newExplodedCurves, | ||
const OdGeInterval * | pInterval = NULL |
||
) | const |
Explodes this curve over the specified interval.
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. |
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.
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. |
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.
point | [in] Any 3D point. |
pntOnCrv | [out] Receives the closest point on this curve. |
tol | [in] Geometric tolerance. |
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.
range | [in] The part of the curve to be bounded. |
coordSystem | [in] The local coordinate system in which box extents are computed. |
void OdGeCurve3d::getInterval | ( | OdGeInterval & | interval | ) | const |
Gets the parametric interval of this curve.
interval | [out] Receives the parametric interval of this curve. |
void OdGeCurve3d::getInterval | ( | OdGeInterval & | interval, |
OdGePoint3d & | start, | ||
OdGePoint3d & | end | ||
) | const |
Gets the parametric interval of this curve.
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. |
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.
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. |
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.
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. |
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.
point | [in] Any 3D point. |
pntOnCrv | [out] Receives the normal point. |
tol | [in] Geometric tolerance. |
Throws:
eNotImplemented
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.
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. |
Throws:
eNotImplemented
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.
point | [in] Any 3D point. |
projectDirection | [in] Projection Direction. |
pntOnCrv | [out] Receives the closest point on this curve. |
tol | [in] Geometric tolerance. |
Throws:
eNotImplemented
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.
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. |
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.
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. |
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.
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. |
void OdGeCurve3d::getSamplePoints | ( | int | numSample, |
OdGePoint3dArray & | pointArray | ||
) | const |
Gets sample points along this curve and their parameter values in the specified arrays.
numSample | [in] Number of samples. |
pointArray | [out] Receives an array of sample points. |
void OdGeCurve3d::getSamplePoints | ( | int | numSample, |
OdGePoint3dArray & | pointArray, | ||
OdGeDoubleArray & | paramArray | ||
) | const |
Gets sample points along this curve and their parameter values in the specified arrays.
numSample | [in] Number of samples. |
pointArray | [out] Receives an array of sample points. |
paramArray | [out] Receives an array of parameters at each point. |
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.
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. |
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.
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. |
By default this function throws the exception "not Implemented". Should be implemented in derived classes.
Throws:
eNotImplemented eInvalidInput
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.
endPoint | [out] Receives the end point. |
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.
point | [out] Receives the point from the curve interval that corresponds to the coefficient. |
coef | [in] Coefficient from the interval [0; 1]. |
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.
startPoint | [out] Receives the start point. |
bool OdGeCurve3d::isClosed | ( | const OdGeTol & | tol = OdGeContext::gTol | ) | const |
Returns true if and only if this curve is closed within the specified tolerance.
tol | [in] Geometric tolerance. |
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.
curve | [in] Any 3D curve. |
plane | [out] Receives the plane of the curves. |
tol | [in] Geometric tolerance. |
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.
degenerateType | [out] Receives the type of the curve to which this curve degenerates. |
tol | [in] Geometric tolerance. |
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.
pConvertedEntity | [out] Receives a pointer to the object to which this curve degenerates. |
tol | [in] Geometric tolerance. |
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.
line | [out] Receives the line coincident with this curve. |
tol | [in] Geometric tolerance. |
bool OdGeCurve3d::isOn | ( | const OdGePoint3d & | point, |
double & | param, | ||
const OdGeTol & | tol = OdGeContext::gTol |
||
) | const |
Determines whether a point lies on the curve.
point | [in] Input point. |
param | [out] Output parameter value of the point if the point lies on the curve. |
tol | [in] Geometric tolerance. |
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.
param | [in] Input parameter value. |
tol | [in] Geometric tolerance. |
bool OdGeCurve3d::isPeriodic | ( | double & | period | ) | const |
Returns true if and only if this curve is periodic for the specified period.
period | [out] Receives the period of this curve. |
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.
plane | [out] Receives the plane of this curve. |
tol | [in] Geometric tolerance. |
double OdGeCurve3d::length | ( | double | fromParam, |
double | toParam, | ||
double | tol = OdGeContext::gTol.equalPoint() |
||
) | const |
Returns the length of this curve over the specified parameter range.
fromParam | [in] Starting parameter value. |
toParam | [in] Ending parameter value. |
tol | [in] Geometric tolerance. |
double OdGeCurve3d::length | ( | double | tol = OdGeContext::gTol.equalPoint() | ) | const |
Returns the length of this curve.
tol | [in] Geometric tolerance. |
OdGePoint3d OdGeCurve3d::midPoint | ( | double | coef = 0.5 | ) | const |
Calculates a point from the curve interval that corresponds to the specified coefficient.
coef | [in] Coefficient from the interval [0; 1]. |
OdGeCurve3d & OdGeCurve3d::operator= | ( | const OdGeCurve3d & | curve | ) |
The assignment operator for objects the OdGeCurve3d class.
curve | [in] Input 3D curve. |
OdGeBoundBlock3d OdGeCurve3d::orthoBoundBlock | ( | ) | const |
Calculates the bounding box whose edges are aligned with the coordinate axes.
OdGeBoundBlock3d OdGeCurve3d::orthoBoundBlock | ( | const OdGeInterval & | range | ) | const |
Calculates the bounding box whose edges are aligned with the coordinate axes.
range | [in] Interval of this curve to be bounded. |
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.
projectionPlane | [in] Plane on which the curve is to be projected. |
tol | [in] Geometric tolerance. |
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.
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. |
double OdGeCurve3d::paramOf | ( | const OdGePoint3d & | point, |
const OdGeInterval * | range, | ||
const OdGeTol & | tol = OdGeContext::gTol |
||
) | const |
Returns the parameter value of a point.
point | [in] Point to be evaluated. |
range | [in] Interval on the curve. |
tol | [in] Geometric tolerance. |
double OdGeCurve3d::paramOf | ( | const OdGePoint3d & | point, |
const OdGeTol & | tol = OdGeContext::gTol |
||
) | const |
Returns the parameter value of a point.
point | [in] Point to be evaluated. |
tol | [in] Geometric tolerance. |
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.
curve | [in] Any 3D curve. |
projectDirection | [in] Projection Direction. |
pntOnOtherCrv | [out] Receives the closest point on other curve. |
tol | [in] Geometric tolerance. |
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.
point | [in] Any 3D point. |
projectDirection | [in] Projection direction. |
tol | [in] Geometric tolerance. |
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.
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. |
OdGeCurve3d & OdGeCurve3d::reverseParam | ( | ) |
Reverses the parameter direction this curve.
Throws:
eNotImplemented
OdGeCurve3d & OdGeCurve3d::setInterval | ( | ) |
Sets to natural domain of this curve.
Throws:
eNotImplemented
bool OdGeCurve3d::setInterval | ( | const OdGeInterval & | interval | ) |
Sets the parametric interval of this curve.
interval | [in] Parametric interval of this curve. |
Throws:
eNotImplemented
OdGeCurve3d::TD_USING | ( | OdGeEntity3d::isOn | ) |