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

#include <GeCylinder.h>

Inheritance diagram for OdGeCylinder:
OdGeSurface OdGeEntity3d

Public Member Functions

 OdGeCylinder ()
 
 OdGeCylinder (double radius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry)
 
 OdGeCylinder (double radius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry, const OdGeVector3d &refAxis, const OdGeInterval &height, double startAng, double endAng)
 
 OdGeCylinder (const OdGeCylinder &cylinder)
 
double radius () const
 
OdGePoint3d origin () const
 
void getAngles (double &startAng, double &endAng) const
 
void getHeight (OdGeInterval &height) const
 
double heightAt (double u) const
 
OdGeVector3d axisOfSymmetry () const
 
OdGeVector3d refAxis () const
 
bool isOuterNormal () const
 
bool isClosed (const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeCylindersetRadius (double radius)
 
OdGeCylindersetAngles (double startAng, double endAng)
 
OdGeCylindersetHeight (const OdGeInterval &height)
 
OdGeCylinderset (double radius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSym)
 
OdGeCylinderset (double radius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry, const OdGeVector3d &refAxis, const OdGeInterval &height, double startAng, double endAng)
 
bool intersectWith (const OdGeLinearEnt3d &linEnt, int &numInt, OdGePoint3d &p1, OdGePoint3d &p2, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeCylinderoperator= (const OdGeCylinder &cylinder)
 
void setIsOuterNormal (bool isOuterNormal)
 
double getUParamScale () const
 
void setUParamScale (double uScale=0.0)
 
- Public Member Functions inherited from OdGeSurface
OdGePoint2d paramOf (const OdGePoint3d &point, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGePoint2d paramOf (const OdGePoint3d &point, const OdGeUvBox *uvBox, 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
 
OdGePoint3d closestPointTo (const OdGePoint3d &point, OdGePoint2d *param, const OdGeUvBox *uvBox, 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
 
bool isLeftHanded () const
 
OdGeSurfacereverseNormal ()
 
void getEnvelope (OdGeInterval &intrvlU, OdGeInterval &intrvlV) const
 
void getEnvelope (OdGeUvBox &uvbox) 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)
 
OdGeExtents3d getGeomExtents (const OdGeUvBox &range=OdGeUvBox(), const OdGeMatrix3d *coordSystem=NULL) const
 
bool project (const OdGePoint3d &p, OdGePoint3d &projP, const OdGeTol &tol=OdGeContext::gTol) const
 
bool setEnvelope (const OdGeInterval &realIntrvlU, const OdGeInterval &realIntrvlV)
 
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
 

Additional Inherited Members

- 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 right circular cylinders.

Remarks
A right circular cylinder is defined by its

radius axis of symmetry origin (a point on the axis) U parameter scale.

It is generated by revolving a line parallel to the axis of symmetry, at a the radius distance.

The height interval of this cylinder is specified relative to its origin. Height is increasing in the direction of the symmetric axis. Height interval can be unbounded.

The cylinder is parameterized as follows:

Parameter V is the angle of revolution measured from the refAxis (an axis perpendicular to the axis of symmetry). For a closed cylinder, it defaults to [-OdaPI, OdaPI). The right hand rule applied along the direction of the axis of symmetry defines the positive direction of V. The surface is periodic in V with a period of Oda2PI.

Parameter U varies along the generating line. U is dimensionless, measured in U parameter scale (which equals to the radius by default). U increases in the direction of the axis of symmetry. However, if U parameter scale is negative, U decreases in the direction of the axis of symmetry. U = 0 corresponds to the base of this cylinder.

[umin, umax] x [vmin, vmax] defines a four sided cylindrical patch bounded by two straight lines (at vmin and vmax), and two circular arcs (at umin and umax). The following constraints apply to the definition of a cylindrical patch:

umin < umax |vmax - vmin| <= Oda2PI. radius > 0.0

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

See also
<link ge_OdGeCylinder, Working with Cylinders>

Definition at line 83 of file GeCylinder.h.

Constructor & Destructor Documentation

◆ OdGeCylinder() [1/4]

OdGeCylinder::OdGeCylinder ( )

Default constructor for the OdGeCylinder class. Constructs a closed cylinder with angles [-OdaPI, OdaPI], a base origin of (0.0, 0.0, 0.0), a base radius of 2.0, an axis of symmetry of (0.0, 1.0, 0.0) and a reference axis of (1.0, 0.0, 0.0).

◆ OdGeCylinder() [2/4]

OdGeCylinder::OdGeCylinder ( double  radius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry 
)

Constructor for the OdGeCylinder class.

Parameters
radius[in] Radius of this cylinder.
origin[in] A point on the axis of symmetry.
axisOfSymmetry[in] Axis of symmetry (rotation).

◆ OdGeCylinder() [3/4]

OdGeCylinder::OdGeCylinder ( double  radius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry,
const OdGeVector3d refAxis,
const OdGeInterval height,
double  startAng,
double  endAng 
)

Constructor for the OdGeCylinder class.

Parameters
radius[in] Radius of this cylinder.
origin[in] A point on the axis of symmetry.
axisOfSymmetry[in] Axis of symmetry (rotation).
refAxis[in] defines thegle 0 of circular end.
height[in] Height interval of this cylinder.
startAng[in] Start angle.
endAng[in] End angle.
Remarks
All angles are expressed in radians.

◆ OdGeCylinder() [4/4]

OdGeCylinder::OdGeCylinder ( const OdGeCylinder cylinder)

Copy constructor for the OdGeCylinder class.

Parameters
cylinder[in] Cylinder to be copied.

Member Function Documentation

◆ axisOfSymmetry()

OdGeVector3d OdGeCylinder::axisOfSymmetry ( ) const

Returns the axis of symmetry of this cylinder.

Returns
The axis of symmetry of this cylinder as an OdGeVector3d instance.

◆ getAngles()

void OdGeCylinder::getAngles ( double &  startAng,
double &  endAng 
) const

Retrieves the starting and ending angles of this cylinder.

Parameters
startAng[out] Receives the start angle.
endAng[out] Receives the end angle.
Remarks
All angles are expressed in radians.

◆ getHeight()

void OdGeCylinder::getHeight ( OdGeInterval height) const

Retrieves the interval of the axis of symmetry.

Parameters
height[out] Receives the interval of the axis of symmetry.

◆ getUParamScale()

double OdGeCylinder::getUParamScale ( ) const

Retrieves U parameter scale.

Returns
U parameter scale of this cylinder as a double value.

◆ heightAt()

double OdGeCylinder::heightAt ( double  u) const

Returns the height of this cylinder corresponding to the specified position on the U-axis.

Remarks
Parameter U varies along the axis of symmetry. U is dimensionless, and increases in the direction of the axis of symmetry.
Parameters
u[in] Position on the U-axis of this cylinder.
Returns
The height as a double value.

◆ intersectWith()

bool OdGeCylinder::intersectWith ( const OdGeLinearEnt3d linEnt,
int &  numInt,
OdGePoint3d p1,
OdGePoint3d p2,
const OdGeTol tol = OdGeContext::gTol 
) const

Checks if this cylinder intersects with a line entity, and retrieves the number of intersections and the points of intersection.

Parameters
linEnt[in] Linear entity.
numInt[out] Receives the number of intersections.
p1[out] Receives the first intersection point.
p2[out] Receives the second intersection point.
tol[in] Geometric tolerance.
Remarks
p1 is valid if and only if numInt >= 1. p2 is valid if and only if numInt = 2.
Returns
true if and only if this cylinder intersects with a line entity.

◆ isClosed()

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

Checks if the base of this cylinder is a full circle within the specified tolerance.

Parameters
tol[in] Geometric tolerance.
Returns
true if and only if the base of this cylinder is a full circle within the specified tolerance.

◆ isOuterNormal()

bool OdGeCylinder::isOuterNormal ( ) const

Checks if the normal to this surface is pointing outward.

Remarks
This method considers the isNormalReversed() flag.
Returns
true if and only if the normal to this surface is pointing outward.

◆ operator=()

OdGeCylinder & OdGeCylinder::operator= ( const OdGeCylinder cylinder)

Assignment operator for the OdGeCylinder object.

Parameters
cylinder[in] Cylinder to be assigned.
Returns
A reference to this OdGeCylinder object.

◆ origin()

OdGePoint3d OdGeCylinder::origin ( ) const

Returns the origin of this cylinder.

Returns
The origin of this cylinder as an OdGePoint3d instance.

◆ radius()

double OdGeCylinder::radius ( ) const

Returns the radius of this cylinder.

Returns
The radius of this cylinder as a double value.

◆ refAxis()

OdGeVector3d OdGeCylinder::refAxis ( ) const

Returns the reference axis of this cylinder.

Returns
The reference axis of this cylinder as an OdGeVector3d instance.

◆ set() [1/2]

OdGeCylinder & OdGeCylinder::set ( double  radius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSym 
)

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

Parameters
radius[in] Radius of this cylinder.
origin[in] Cylinder origin.
axisOfSym[in] Axis of symmetry (rotation).
Returns
A reference to this OdGeCylinder object.

◆ set() [2/2]

OdGeCylinder & OdGeCylinder::set ( double  radius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry,
const OdGeVector3d refAxis,
const OdGeInterval height,
double  startAng,
double  endAng 
)

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

Parameters
radius[in] Radius of this cylinder.
origin[in] Cylinder origin.
axisOfSymmetry[in] Axis of symmetry (rotation).
refAxis[in] defines thegle 0 of circular end.
height[in] Height interval of this cylinder.
startAng[in] Start angle.
endAng[in] End angle.
Remarks
All angles are expressed in radians.
Returns
A reference to this OdGeCylinder object.

◆ setAngles()

OdGeCylinder & OdGeCylinder::setAngles ( double  startAng,
double  endAng 
)

Sets the starting and ending angles of this cylinder.

Parameters
startAng[in] Start angle.
endAng[in] End angle.
Remarks
All angles are expressed in radians.
Returns
A reference to this OdGeCylinder object.

◆ setHeight()

OdGeCylinder & OdGeCylinder::setHeight ( const OdGeInterval height)

Sets the height interval of this cylinder.

Parameters
height[in] Height interval of this cylinder.
Returns
A reference to this OdGeCylinder object.

◆ setIsOuterNormal()

void OdGeCylinder::setIsOuterNormal ( bool  isOuterNormal)

Sets if the cylinder normal is pointing outward.

Remarks
This method ignores the isNormalReversed() flag.
Parameters
isOuterNormal[in] Flag indicating if the cylinder normal is to be set to point outward.

◆ setRadius()

OdGeCylinder & OdGeCylinder::setRadius ( double  radius)

Sets the radius of this cylinder.

Parameters
radius[in] Radius of this cylinder.
Returns
A reference to this OdGeCylinder object.

◆ setUParamScale()

void OdGeCylinder::setUParamScale ( double  uScale = 0.0)

Sets U parameter scale according to the parameter.

Parameters
uScale[in] U parameter scale.
Remarks
U parameter scale can be negative. If uScale is zero, U parameter scale is reset to the radius of this cylinder.

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