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

#include <GeCurveBoundary.h>

Public Member Functions

 OdGeCurveBoundary ()
 
 OdGeCurveBoundary (int numCurves, const OdGeEntity3d *const *crv3d, const OdGeCurve2d *const *crv2d, bool *orientation3d, bool *orientation2d, bool makeCopy=true)
 
 OdGeCurveBoundary (const OdGeCurveBoundary &source)
 
 ~OdGeCurveBoundary ()
 
OdGeCurveBoundaryoperator= (const OdGeCurveBoundary &crvBoundary)
 
bool isDegenerate () const
 
bool isDegenerate (OdGePosition3d &degenPoint, OdGeCurve2d **paramCurve) const
 
int numElements () const
 
void getContour (int &numCurves, OdGeEntity3d ***crv3d, OdGeCurve2d ***crv2d, bool **orientation3d, bool **orientation2d) const
 
OdGeCurveBoundaryset (int numCurves, const OdGeEntity3d *const *crv3d, const OdGeCurve2d *const *crv2d, bool *orientation3d, bool *orientation2d, bool makeCopy=true)
 
bool isOwnerOfCurves () const
 
OdGeCurveBoundarysetToOwnCurves ()
 

Protected Attributes

int m_iNumCurves
 
OdGeEntity3d ** m_pArrCrv3d
 
OdGeCurve2d ** m_pArrCrv2d
 
bool * m_bArrOrientation3d
 
bool * m_bArrOrientation2d
 
bool m_bMakeCopy
 

Detailed Description

This class represents the boundary geometry (face loops) on a bounded surface.

Remarks
Each face loop consists of four arrays:

3D curve or position pointers 2D parameter space curve pointers 3D orientations 2D orientations

There is a one-to-one correspondence between elements in the arrays, although certain elements of a given array could be NULL, or meaningless.

Loop degeneracies are represented as follows:

The entire loop degenerates to a single model space point, which is represented by the tuple (numElements = 1, position3d, curve2d). The curve2d may be NULL. The edge sense, and the curve2d sense are irrelevant. isDegenerate() method allows the determination of this condition on a loop. A loop consisting of one or more model space degeneracies is represented as the general case with those edges that are degenerate represented by position3d. This implies that in the general case, model space geometry of a curve boundary may consist of curve3d and/or position3d pointers. Consequently, this geometry is obtained by the user as entity3d pointers. The degeneracy of a constituent edge can be detected by the type of the model space geometry.

This class also supports the ownership of its geometry. Being the owner of its geometry would cause it to remove the geometry on destruction of an instance of the class.

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

See also
<link ge_OdGeCurveBoundary, Working with Curve Boundaries>

Definition at line 76 of file GeCurveBoundary.h.

Constructor & Destructor Documentation

◆ OdGeCurveBoundary() [1/3]

OdGeCurveBoundary::OdGeCurveBoundary ( )

Default constructor for the OdGeCurveBoundary class. Constructs an empty curve boundary.

◆ OdGeCurveBoundary() [2/3]

OdGeCurveBoundary::OdGeCurveBoundary ( int  numCurves,
const OdGeEntity3d *const *  crv3d,
const OdGeCurve2d *const *  crv2d,
bool *  orientation3d,
bool *  orientation2d,
bool  makeCopy = true 
)

Constructor for the OdGeCurveBoundary class. Constructs a curve boundary with the specified parameters.

Parameters
numCurves[in] Number of curves in the curve boundary.
crv3d[in] Array of 3D curves of each element in the curve boundary.
crv2d[in] Array of 2D curves of each element in the curve boundary.
orientation3d[in] Array of orientation flags for each 3D curve element (regular or revesed). Valid only if crv3d is not NULL;
orientation2d[in] Array of orientation flags for each 2D curve element (regular or revesed). Valid only if crv2d is not NULL;
makeCopy[in] If true, makes a copy of 3D and 2D curves (if corresponding arrays are not NULL).

◆ OdGeCurveBoundary() [3/3]

OdGeCurveBoundary::OdGeCurveBoundary ( const OdGeCurveBoundary source)

Copy constructor for the OdGeCurveBoundary class. Copies the specified curve boundary.

Parameters
source[in] Curve boundary to copy.

◆ ~OdGeCurveBoundary()

OdGeCurveBoundary::~OdGeCurveBoundary ( )

Destructor for the OdGeCurveBoundary class. Frees the allocated resources for owned curves (if the option for making curve copies was used).

Member Function Documentation

◆ getContour()

void OdGeCurveBoundary::getContour ( int &  numCurves,
OdGeEntity3d ***  crv3d,
OdGeCurve2d ***  crv2d,
bool **  orientation3d,
bool **  orientation2d 
) const

Returns the paramaters for the curve boundary.

Parameters
numCurves[out] Receives the number of curves in the curve boundary.
crv3d[out] Receives an array of 3D curves for each element in the curve boundary.
crv2d[out] Receives an array of 2D curves for each element in the curve boundary.
orientation3d[out] Receives an array of orientation flags for each 3D curve element. Valid only if crv3d is not NULL; if NULL, the caller must delete allocated memory that was intended for numCurves.
orientation2d[out] Receives an array of orientation flags for each 2D curve element. Valid only if crv2d is not NULL; if NULL, the caller must delete allocated memory that was intended for numCurves.
Remarks
For each array, provide memory for the array or allow getCountour to allocate it, and delete the elements of the array. If an array is NULL, getCountour allocates memory and the caller must also delete the corresponding array.

◆ isDegenerate() [1/2]

bool OdGeCurveBoundary::isDegenerate ( ) const

Checks whether the curve boundary degenerates to a single 3D point. Currently not implemented.

Returns
true if this curve boundary is degenerate, false otherwise.

◆ isDegenerate() [2/2]

bool OdGeCurveBoundary::isDegenerate ( OdGePosition3d degenPoint,
OdGeCurve2d **  paramCurve 
) const

Checks whether the curve boundary degenerates to a single 3D point. Currently not implemented.

Parameters
degenPoint[out] Receives the point to which the boundary degenerates.
paramCurve[out] Receives the paramater curve corresponding to degenPoint.
Remarks
If this method returns true, paramCurve is created with the new operator, and it is the responsibility of the caller to delete it.
Returns
true if this curve boundary is degenerate, false otherwise.

◆ isOwnerOfCurves()

bool OdGeCurveBoundary::isOwnerOfCurves ( ) const

Checks whether the curve boundary is the owner of the curve boundary parameters.

Returns
true if this curve boundary owns the curve boundary parameters, false otherwise.

◆ numElements()

int OdGeCurveBoundary::numElements ( ) const

Returns the number of elements in the curve boundary.

◆ operator=()

OdGeCurveBoundary & OdGeCurveBoundary::operator= ( const OdGeCurveBoundary crvBoundary)

Assignment operator for the OdGeCurveBoundary class. Assigns properties of the specified cubic spline curve. Currently not implemented.

Parameters
crvBoundary[in] Curve boundary to assign.

◆ set()

OdGeCurveBoundary & OdGeCurveBoundary::set ( int  numCurves,
const OdGeEntity3d *const *  crv3d,
const OdGeCurve2d *const *  crv2d,
bool *  orientation3d,
bool *  orientation2d,
bool  makeCopy = true 
)

Sets the parameters for the curve boundary and returns a reference to it.

Parameters
numCurves[in] Number of curves in the curve boundary.
crv3d[in] Array of 3D curves of each element in the curve boundary.
crv2d[in] Array of 2D curves of each element in the curve boundary.
orientation3d[in] Array of orientation flags for each 3D curve element (regular or revesed). Valid only if crv3d is not NULL;
orientation2d[in] Array of orientation flags for each 2D curve element (regular or revesed). Valid only if crv2d is not NULL;
makeCopy[in] If true, makes a copy of each 3D and 2D curve.

◆ setToOwnCurves()

OdGeCurveBoundary & OdGeCurveBoundary::setToOwnCurves ( )

Makes the curve boundary own the curve data and returns a reference to the boundary.

Remarks
If the external boundary owns the data, it will be destroyed when the boundary is destroyed.

Member Data Documentation

◆ m_bArrOrientation2d

bool* OdGeCurveBoundary::m_bArrOrientation2d
protected

Definition at line 222 of file GeCurveBoundary.h.

◆ m_bArrOrientation3d

bool* OdGeCurveBoundary::m_bArrOrientation3d
protected

Definition at line 221 of file GeCurveBoundary.h.

◆ m_bMakeCopy

bool OdGeCurveBoundary::m_bMakeCopy
protected

Definition at line 223 of file GeCurveBoundary.h.

◆ m_iNumCurves

int OdGeCurveBoundary::m_iNumCurves
protected

Definition at line 218 of file GeCurveBoundary.h.

◆ m_pArrCrv2d

OdGeCurve2d** OdGeCurveBoundary::m_pArrCrv2d
protected

Definition at line 220 of file GeCurveBoundary.h.

◆ m_pArrCrv3d

OdGeEntity3d** OdGeCurveBoundary::m_pArrCrv3d
protected

Definition at line 219 of file GeCurveBoundary.h.


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