CFx SDK Documentation  2023 SP0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
OdGeNurbSurface Class Reference

#include <GeNurbSurface.h>

Inheritance diagram for OdGeNurbSurface:
OdGeSurface OdGeEntity3d

Public Types

enum  ConnectionSide { kLowerU = 1 , kUpperU = 2 , kLowerV = 3 , kUpperV = 4 }
 

Public Member Functions

 OdGeNurbSurface ()
 
 OdGeNurbSurface (int degreeInU, int degreeInV, int propsInU, int propsInV, int numControlPointsInU, int numControlPointsInV, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &weights, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots, const OdGeTol &tol=OdGeContext::gTol)
 
 OdGeNurbSurface (const OdGeNurbSurface &source)
 
OdGeNurbSurfaceoperator= (const OdGeNurbSurface &nurb)
 
bool isRationalInU () const
 
bool isPeriodicInU (double &period) const
 
bool isRationalInV () const
 
bool isPeriodicInV (double &period) const
 
int singularityInU () const
 
int singularityInV () const
 
int degreeInU () const
 
int numControlPointsInU () const
 
int degreeInV () const
 
int numControlPointsInV () const
 
void getControlPoints (OdGePoint3dArray &controlPoints) const
 
bool getWeights (OdGeDoubleArray &weights) const
 
int numKnotsInU () const
 
void getUKnots (OdGeKnotVector &uKnots) const
 
int numKnotsInV () const
 
void getVKnots (OdGeKnotVector &vKnots) const
 
void getDefinition (int &degreeInU, int &degreeInV, int &propsInU, int &propsInV, int &numControlPointsInU, int &numControlPointsInV, OdGePoint3dArray &controlPoints, OdGeDoubleArray &weights, OdGeKnotVector &uKnots, OdGeKnotVector &vKnots) const
 
OdGeNurbSurfaceset (int degreeInU, int degreeInV, int propsInU, int propsInV, int numControlPointsInU, int numControlPointsInV, const OdGePoint3dArray &controlPoints, const OdGeDoubleArray &weights, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots, const OdGeTol &tol=OdGeContext::gTol)
 
OdGeNurbSurfacesetFitData (const OdGePoint3dArray &fitPoints, const OdGeVector3dArray &arrTangentsInU, const OdGeVector3dArray &arrTangentsInV, const OdGeVector3dArray &arrMixedDerivs, const OdGeKnotVector &uKnots, const OdGeKnotVector &vKnots, const OdGeTol &tol)
 
void computeVIsoLine (double V, OdGeNurbCurve3d &isoline) const
 
void computeUIsoLine (double U, OdGeNurbCurve3d &isoline) const
 
OdGePoint2d paramOfPrec (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
bool getDerivativesAt (const OdGePoint2d &param, OdUInt32 numDeriv, VectorDerivArray derivatives) const
 
int loc (int i, int j) const
 
OdGeNurbSurfacejoinWith (const OdGeNurbSurface &surface, ConnectionSide thisConnectionSide, ConnectionSide surfaceConnectionSide, const OdGeTol &tol=OdGeContext::gTol)
 
- Public Member Functions inherited from OdGeSurface
OdGePoint2d paramOf (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
 TD_USING (OdGeEntity3d::isOn)
 
bool isOn (const OdGePoint3d &point, OdGePoint2d &paramPoint, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d closestPointTo (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
void getClosestPointTo (const OdGePoint3d &point, OdGePointOnSurface &pntOnSurface, const OdGeTol &tol=OdGeContext::gTol) const
 
double distanceTo (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
bool isNormalReversed () const
 
OdGeSurfacereverseNormal ()
 
void getEnvelope (OdGeInterval &intrvlU, OdGeInterval &intrvlV) const
 
bool isClosedInU (const OdGeTol &tol=OdGeContext::gTol) const
 
bool isClosedInV (const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint3d evalPoint (const OdGePoint2d &param) const
 
OdGePoint3d evalPoint (const OdGePoint2d &param, int numDeriv, OdGeVector3dArray &derivatives) const
 
OdGePoint3d evalPoint (const OdGePoint2d &param, int numDeriv, OdGeVector3dArray &derivatives, OdGeVector3d &normal) const
 
OdGeSurfaceoperator= (const OdGeSurface &surf)
 
bool project (const OdGePoint3d &p, OdGePoint3d &projP, const OdGeTol &tol=OdGeContext::gTol) const
 
bool getReparameterization (bool &swapUV, double &uCoeffA, double &vCoeffA, double &uCoeffB, double &vCoeffB) const
 
void setReparameterization (bool swapUV=false, double uCoeffA=1., double vCoeffA=1., double uCoeffB=0., double vCoeffB=0.)
 
void getImplicitEnvelope (OdGeInterval &implicitIntrvlU, OdGeInterval &implicitIntrvlV) const
 
bool setEnvelope (const OdGeInterval &realIntrvlU, const OdGeInterval &realIntrvlV)
 
void getEnvelope (OdGeUvBox &uvbox) const
 
void evaluate (const OdGePoint2d &param, int numDeriv, OdGeVector3d *values, OdGeVector3d *normal=NULL) const
 
OdGeExtents3d getGeomExtents (const OdGeUvBox &range=OdGeUvBox(), const OdGeMatrix3d *coordSystem=NULL) const
 
OdGePoint2d paramOf (const OdGePoint3d &point, const OdGeUvBox *uvBox, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeCurve3dmakeIsoparamCurve (bool byU, double param) const
 
OdGeCurve3dmakeIsoparamCurve (bool byU, double param, const OdGeInterval &interval) const
 
bool getPoles (OdGeDoubleArray *uParams, OdGeDoubleArray *vParams, OdGePoint3dArray *uPoints, OdGePoint3dArray *vPoints, double tol=1e-13) const
 
- Public Member Functions inherited from OdGeEntity3d
 ODRX_HEAP_OPERATORS ()
 
 ~OdGeEntity3d ()
 
bool isKindOf (OdGe::EntityId entType) const
 
OdGe::EntityId type () const
 
OdGeEntity3dcopy () const
 
OdGeEntity3doperator= (const OdGeEntity3d &entity)
 
bool operator== (const OdGeEntity3d &entity) const
 
bool operator!= (const OdGeEntity3d &entity) const
 
bool isEqualTo (const OdGeEntity3d &object, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeEntity3dtransformBy (const OdGeMatrix3d &xfm)
 
OdGeEntity3dtranslateBy (const OdGeVector3d &translateVec)
 
OdGeEntity3drotateBy (double angle, const OdGeVector3d &vect, const OdGePoint3d &basePoint=OdGePoint3d::kOrigin)
 
OdGeEntity3dmirror (const OdGePlane &plane)
 
OdGeEntity3dscaleBy (double scaleFactor, const OdGePoint3d &basePoint=OdGePoint3d::kOrigin)
 
bool isOn (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 

Static Public Member Functions

static OdGeNurbSurfaceconvertFrom (const OdGeSurface *source, const OdGeTol &tol=OdGeContext::gTol, bool sameParametrization=false)
 

Protected Member Functions

void calculateNURBSProperties ()
 
- Protected Member Functions inherited from OdGeSurface
 OdGeSurface ()
 
 OdGeSurface (const OdGeSurface &surf)
 
- Protected Member Functions inherited from OdGeEntity3d
 OdGeEntity3d ()
 
 OdGeEntity3d (const OdGeEntity3d &)
 
void connectTo (OdGeEntity3dImpl *)
 

Detailed Description

This class represents non-uniform, rational B-Spline (NURBS) surfaces.

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

See also
<link ge_OdGeNurbSurface.html, Working with NURBS Surfaces>

Definition at line 56 of file GeNurbSurface.h.

Member Enumeration Documentation

◆ ConnectionSide

Enumerator
kLowerU 

The object will be connected by lower bound in the U direction

kUpperU 

The object will be connected by upper bound in the U direction

kLowerV 

The object will be connected by lower bound in the V direction

kUpperV 

The object will be connected by upper bound in the V direction

Definition at line 60 of file GeNurbSurface.h.

Constructor & Destructor Documentation

◆ OdGeNurbSurface() [1/3]

OdGeNurbSurface::OdGeNurbSurface ( )
Parameters
degreeInU[in] Degree in the U direction.
degreeInV[in] Degree in the V direction.
propsInU[in] Properties in the U direction.
propsInV[in] Properties in the V direction.
numControlPointsInU[in] Number of control points in the U direction.
numControlPointsInV[in] Number of control points in the V direction.
controlPoints[in] Array of 3D control points.
weights[in] Array of weights
uKnots[in] Knot vector in the U direction.
vKnots[in] Knot vector in the V direction.
tol[in] Geometric tolerance.
source[in] Object to be cloned.
Remarks
propsInU and propsInV utilize OdGe::NurbSurfaceProperties values.

◆ OdGeNurbSurface() [2/3]

OdGeNurbSurface::OdGeNurbSurface ( int  degreeInU,
int  degreeInV,
int  propsInU,
int  propsInV,
int  numControlPointsInU,
int  numControlPointsInV,
const OdGePoint3dArray controlPoints,
const OdGeDoubleArray weights,
const OdGeKnotVector uKnots,
const OdGeKnotVector vKnots,
const OdGeTol tol = OdGeContext::gTol 
)

◆ OdGeNurbSurface() [3/3]

OdGeNurbSurface::OdGeNurbSurface ( const OdGeNurbSurface source)

Member Function Documentation

◆ calculateNURBSProperties()

void OdGeNurbSurface::calculateNURBSProperties ( )
protected

◆ computeUIsoLine()

void OdGeNurbSurface::computeUIsoLine ( double  U,
OdGeNurbCurve3d isoline 
) const

Returns the isoline for the specified value of U. Not implemented for third-party use only.

Parameters
V[in] Value of U.
isoline[out] Receives the isoline for the specified value of U.

◆ computeVIsoLine()

void OdGeNurbSurface::computeVIsoLine ( double  V,
OdGeNurbCurve3d isoline 
) const

Returns the isoline for the specified value of V. Not implemented for third-party use only.

Parameters
V[in] Value of V.
isoline[out] Receives the isoline for the specified value of V.

◆ convertFrom()

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

◆ degreeInU()

int OdGeNurbSurface::degreeInU ( ) const

Desctiption: Returns the degree in the U direction.

◆ degreeInV()

int OdGeNurbSurface::degreeInV ( ) const

Returns the degree in the V direction.

◆ getControlPoints()

void OdGeNurbSurface::getControlPoints ( OdGePoint3dArray controlPoints) const

Returns the array of control points.

Parameters
controlPoints[out] Receives an array of 3D control points.

◆ getDefinition()

void OdGeNurbSurface::getDefinition ( int &  degreeInU,
int &  degreeInV,
int &  propsInU,
int &  propsInV,
int &  numControlPointsInU,
int &  numControlPointsInV,
OdGePoint3dArray controlPoints,
OdGeDoubleArray weights,
OdGeKnotVector uKnots,
OdGeKnotVector vKnots 
) const

Returns the data used to define this surface.

Parameters
degreeInU[out] Receives the Degree in the U direction.
degreeInV[out] Receives the Degree in the V direction.
propsInU[out] Receives the properties in the U direction.
propsInV[out] Receives the properties in the V direction.
numControlPointsInU[out] Receives the number of control points in the U direction.
numControlPointsInV[out] Receives the number of control points in the V direction.
controlPoints[out] Receives an array of 3D control points.
weights[out] Receives an array of weights
uKnots[out] Receives the knot vector in the U direction.
vKnots[out] Receives the knot vector in the V direction.
Remarks
propsInU and propsInV utilize OdGe::NurbSurfaceProperties values.

◆ getDerivativesAt()

bool OdGeNurbSurface::getDerivativesAt ( const OdGePoint2d param,
OdUInt32  numDeriv,
VectorDerivArray  derivatives 
) const

Returns the derivatives at the point specified by param. Not implemented for third-party use only.

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.

◆ getUKnots()

void OdGeNurbSurface::getUKnots ( OdGeKnotVector uKnots) const

Returns the knot vector in the U direction.

Parameters
uKnots[in] Knot vector in the U direction.

◆ getVKnots()

void OdGeNurbSurface::getVKnots ( OdGeKnotVector vKnots) const

Returns the knot vector in the V direction.

Parameters
vKnots[in] Knot vector in the V direction.

◆ getWeights()

bool OdGeNurbSurface::getWeights ( OdGeDoubleArray weights) const

Returns the array of weights.

Parameters
weights[in] Array of weights

◆ isPeriodicInU()

bool OdGeNurbSurface::isPeriodicInU ( double &  period) const

Returns true if and only if this surface is periodic in the U direction, and returns the period.

Parameters
period[in] Period.

◆ isPeriodicInV()

bool OdGeNurbSurface::isPeriodicInV ( double &  period) const

Returns true if and only if this surface is periodic in the U direction, and returns the period.

Parameters
period[in] Period.

◆ isRationalInU()

bool OdGeNurbSurface::isRationalInU ( ) const

Returns true if and only if this surface is rational in the U direction.

Parameters
tol[in] Geometric tolerance.

◆ isRationalInV()

bool OdGeNurbSurface::isRationalInV ( ) const

Returns true if and only if this surface is rational in the V direction.

Parameters
tol[in] Geometric tolerance.

◆ joinWith()

OdGeNurbSurface& OdGeNurbSurface::joinWith ( const OdGeNurbSurface surface,
ConnectionSide  thisConnectionSide,
ConnectionSide  surfaceConnectionSide,
const OdGeTol tol = OdGeContext::gTol 
)

◆ loc()

int OdGeNurbSurface::loc ( int  i,
int  j 
) const

DOM

◆ numControlPointsInU()

int OdGeNurbSurface::numControlPointsInU ( ) const

Returns the number of control points in the U direction.

◆ numControlPointsInV()

int OdGeNurbSurface::numControlPointsInV ( ) const

Returns the number of control points in the V direction.

◆ numKnotsInU()

int OdGeNurbSurface::numKnotsInU ( ) const

Returns the number of knots in the U direction.

◆ numKnotsInV()

int OdGeNurbSurface::numKnotsInV ( ) const

Returns the number of knots in the V direction.

◆ operator=()

OdGeNurbSurface& OdGeNurbSurface::operator= ( const OdGeNurbSurface nurb)

◆ paramOfPrec()

OdGePoint2d OdGeNurbSurface::paramOfPrec ( const OdGePoint3d point,
const OdGeTol tol = OdGeContext::gTol 
) const

Returns the 2D pair of parameter values of a point on this surface.

Parameters
point[in] Point to be evaluated.
tol[in] Geometric tolerance.
Remarks
The returned parameters specify a point within tol of point. If point is not on this surface, the results are unpredictable. If you are not sure the point is on this surface, use isOn() instead of this function. This method is slower than paramOf, but more accurate.

◆ set()

OdGeNurbSurface& OdGeNurbSurface::set ( int  degreeInU,
int  degreeInV,
int  propsInU,
int  propsInV,
int  numControlPointsInU,
int  numControlPointsInV,
const OdGePoint3dArray controlPoints,
const OdGeDoubleArray weights,
const OdGeKnotVector uKnots,
const OdGeKnotVector vKnots,
const OdGeTol tol = OdGeContext::gTol 
)

Sets the parameters for this spline according to the arguments, and returns a reference to this spline.

Parameters
degreeInU[in] Degree in the U direction.
degreeInV[in] Degree in the V direction.
propsInU[in] Properties in the U direction.
propsInV[in] Properties in the V direction.
numControlPointsInU[in] Number of control points in the U direction.
numControlPointsInV[in] Number of control points in the V direction.
controlPoints[in] Array of 3D control points.
weights[in] Array of weights
uKnots[in] Knot vector in the U direction.
vKnots[in] Knot vector in the V direction.
tol[in] Geometric tolerance.
source[in] Object to be cloned.
Remarks
propsInU and propsInV utilize OdGe::NurbSurfaceProperties values.

◆ setFitData()

OdGeNurbSurface& OdGeNurbSurface::setFitData ( const OdGePoint3dArray fitPoints,
const OdGeVector3dArray arrTangentsInU,
const OdGeVector3dArray arrTangentsInV,
const OdGeVector3dArray arrMixedDerivs,
const OdGeKnotVector uKnots,
const OdGeKnotVector vKnots,
const OdGeTol tol 
)

◆ singularityInU()

int OdGeNurbSurface::singularityInU ( ) const

Returns a description of the singularity in the U direction:

Remarks
singularityInU utilizes OdGe::NurbSurfaceProperties values.

◆ singularityInV()

int OdGeNurbSurface::singularityInV ( ) const

Returns a description of the singularity in the V direction:

Remarks
singularityInV utilizes OdGe::NurbSurfaceProperties values.

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