CFx SDK Documentation  2020SP3
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.html, Working with Curve Boundaries>

Definition at line 76 of file GeCurveBoundary.h.

Constructor & Destructor Documentation

◆ OdGeCurveBoundary() [1/3]

OdGeCurveBoundary::OdGeCurveBoundary ( )
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] Orientation for each 3D curve element.
orientation2d[in] Orientation for each 2D curve element.
makeCopy[in] If true, makes a copy of 3D and 2D curves.
source[in] Object to be cloned.

◆ OdGeCurveBoundary() [2/3]

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

◆ OdGeCurveBoundary() [3/3]

OdGeCurveBoundary::OdGeCurveBoundary ( const OdGeCurveBoundary source)

◆ ~OdGeCurveBoundary()

OdGeCurveBoundary::~OdGeCurveBoundary ( )

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[in/out] Array of 3D curves for each element in the curve boundary.
crv2d[in/out] Array of 2D curves for each element in the curve boundary.
orientation3d[in/out] Orientation 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[in/out] Orientation 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

Returns true if and only if the curve boundary degenerates to a single 3D point.

Remarks
Currently not implemented.

◆ isDegenerate() [2/2]

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

Returns true if and only if the curve boundary degenerates to a single 3D point.

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.
Currently not implemented.

◆ isOwnerOfCurves()

bool OdGeCurveBoundary::isOwnerOfCurves ( ) const

Returns true if and only if the curve boundary is the owner of the curve boundary parameters.

◆ numElements()

int OdGeCurveBoundary::numElements ( ) const

Returns the number of elements in the curve boundary.

◆ operator=()

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

◆ 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] Orientation for each 3D curve element.
orientation2d[in] Orientation for each 2D curve element.
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 195 of file GeCurveBoundary.h.

◆ m_bArrOrientation3d

bool* OdGeCurveBoundary::m_bArrOrientation3d
protected

Definition at line 194 of file GeCurveBoundary.h.

◆ m_bMakeCopy

bool OdGeCurveBoundary::m_bMakeCopy
protected

Definition at line 196 of file GeCurveBoundary.h.

◆ m_iNumCurves

int OdGeCurveBoundary::m_iNumCurves
protected

Definition at line 191 of file GeCurveBoundary.h.

◆ m_pArrCrv2d

OdGeCurve2d** OdGeCurveBoundary::m_pArrCrv2d
protected

Definition at line 193 of file GeCurveBoundary.h.

◆ m_pArrCrv3d

OdGeEntity3d** OdGeCurveBoundary::m_pArrCrv3d
protected

Definition at line 192 of file GeCurveBoundary.h.


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