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

#include <GeEllipCylinder.h>

Inheritance diagram for OdGeEllipCylinder:
OdGeSurface OdGeEntity3d

Public Member Functions

 OdGeEllipCylinder ()
 
 OdGeEllipCylinder (double minorRadius, double majorRadius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry)
 
 OdGeEllipCylinder (double minorRadius, double majorRadius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry, const OdGeVector3d &majorAxis, const OdGeInterval &height, double startAng, double endAng)
 
 OdGeEllipCylinder (const OdGeEllipCylinder &cylinder)
 
double radiusRatio () const
 
double minorRadius () const
 
double majorRadius () 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 majorAxis () const
 
OdGeVector3d minorAxis () const
 
bool isOuterNormal () const
 
bool isClosed (const OdGeTol &tol=OdGeContext::gTol) const
 
void setIsOuterNormal (bool isOuterNormal)
 
OdGeEllipCylindersetMinorRadius (double minorRadius)
 
OdGeEllipCylindersetMajorRadius (double majorRadius)
 
OdGeEllipCylindersetAngles (double startAng, double endAng)
 
OdGeEllipCylindersetHeight (const OdGeInterval &height)
 
OdGeEllipCylinderset (double minorRadius, double majorRadius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry)
 
OdGeEllipCylinderset (double minorRadius, double majorRadius, const OdGePoint3d &origin, const OdGeVector3d &axisOfSymmetry, const OdGeVector3d &majorAxis, const OdGeInterval &height, double startAng, double endAng)
 
bool intersectWith (const OdGeLinearEnt3d &linEnt, int &numInt, OdGePoint3d &p1, OdGePoint3d &p2, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeEllipCylinderoperator= (const OdGeEllipCylinder &cylinder)
 
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 cylinders with an elliptical cross-section.

Remarks
An elliptical cylinder is defined by: major and minor radii origin (a point on the axis of symmetry) axis of symmetry major axis height U parameter scale.

It is generated by a line parallel to the axis of symmetry, along an elliptical path.

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

Parameter V is the angle of revolution, measured from the major axis to the axis of symmetry. The right hand rule is applied along the direction of the axis of symmetry for positive angles. For a closed cylinder, V defaults to [-OdaPI, OdaPI).

Parameter U varies along the generating line. U is dimensionless, measured in U parameter scale (which equals to the major 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 elliptical cylinder.

The surface of the cylinder is periodic in V with a period of Oda2PI.

[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 majorRadius > 0.0 minorRadius > 0.0

The angle of a point on an ellipse is measured by projecting the point along a vector perpendicular to the major axis onto a circle whose center is the center of this ellipse and whose radius is the major radius of this ellipse.

The angle between the major axis of the ellipse, and a vector from the center of the ellipse to the intersection point with the circle, measured counterclockwise, is the angle of the point on the ellipse.

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

See also
<link ge_OdGeCylinder, Working with Cylinders>

Definition at line 94 of file GeEllipCylinder.h.

Constructor & Destructor Documentation

◆ OdGeEllipCylinder() [1/4]

OdGeEllipCylinder::OdGeEllipCylinder ( )

Default constructor for the OdGeEllipCylinder class. Constructs an elliptical cone with angles [-OdaPI,OdaPI], a base origin of (0.0, 0.0, 0.0), a base radii of 2.0, an axis of symmetry of (0.0, 1.0, 0.0), a major axis of (1.0, 0.0, 0.0), and minor axis of (0.0, 0.0, -1.0).

◆ OdGeEllipCylinder() [2/4]

OdGeEllipCylinder::OdGeEllipCylinder ( double  minorRadius,
double  majorRadius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry 
)

Constructor for the OdGeEllipCylinder class.

Parameters
minorRadius[in] Minor radius of the elliptical cylinder.
majorRadius[in] Major radius of the elliptical cylinder.
origin[in] Origin of the elliptical cylinder.
axisOfSymmetry[in] Axis of symmetry (rotation).

◆ OdGeEllipCylinder() [3/4]

OdGeEllipCylinder::OdGeEllipCylinder ( double  minorRadius,
double  majorRadius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry,
const OdGeVector3d majorAxis,
const OdGeInterval height,
double  startAng,
double  endAng 
)

Constructor for the OdGeEllipCylinder class.

Parameters
minorRadius[in] Minor radius of the elliptical cylinder.
majorRadius[in] Major radius of the elliptical cylinder.
origin[in] Origin of the elliptical cylinder.
axisOfSymmetry[in] Axis of symmetry (rotation).
majorAxis[in] Major axis of the elliptical cylinder.
height[in] Height interval of the cylinder.
startAng[in] Start angle of the elliptical cylinder.
endAng[in] End angle of the elliptical cylinder.
\remarks
All angles are expressed in radians.

◆ OdGeEllipCylinder() [4/4]

OdGeEllipCylinder::OdGeEllipCylinder ( const OdGeEllipCylinder cylinder)

Copy constructor for the OdGeEllipCylinder class.

Parameters
cylinder[in] Elliptical cylinder to be copied.

Member Function Documentation

◆ axisOfSymmetry()

OdGeVector3d OdGeEllipCylinder::axisOfSymmetry ( ) const

Returns the axis of symmetry of this cylinder.

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

◆ getAngles()

void OdGeEllipCylinder::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 OdGeEllipCylinder::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 OdGeEllipCylinder::getUParamScale ( ) const

Retrieves U parameter scale.

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

◆ heightAt()

double OdGeEllipCylinder::heightAt ( double  u) const

Returns the cylinder height that corresponds 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 of the cylinder on the U-axis.
Returns
The height as a double value.

◆ intersectWith()

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

Checks if the cylinder intersects with a line entity, and returns 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 only if numInt > 0. p2 is valid only if numInt > 1.
Returns
true if and only if this cylinder intersects with a line entity.

◆ isClosed()

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

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

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

◆ isOuterNormal()

bool OdGeEllipCylinder::isOuterNormal ( ) const

Checks if the normal to this surface is pointing outward.

Returns
true if and only if the normal to this surface is pointing outward.

◆ majorAxis()

OdGeVector3d OdGeEllipCylinder::majorAxis ( ) const

Returns the major axis of this cylinder.

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

◆ majorRadius()

double OdGeEllipCylinder::majorRadius ( ) const

Returns the major radius of the cylinder.

Returns
The major radius of this cylinder as a double value.

◆ minorAxis()

OdGeVector3d OdGeEllipCylinder::minorAxis ( ) const

Returns the minor axis of this cylinder.

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

◆ minorRadius()

double OdGeEllipCylinder::minorRadius ( ) const

Returns the minor radius of the cylinder.

Returns
The minor radius of this cylinder as a double value.

◆ operator=()

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

Assignment operator for the OdGeEllipCylinder object.

Parameters
cylinder[in] Elliptical cylinder to be assigned.
Returns
A reference to this OdGeEllipCylinder object.

◆ origin()

OdGePoint3d OdGeEllipCylinder::origin ( ) const

Returns the origin of the cylinder.

Returns
The origin of this cylinder as an OdGePoint3d instance.

◆ radiusRatio()

double OdGeEllipCylinder::radiusRatio ( ) const

Returns the ratio of the minor to major radius of the cylinder.

Returns
The ratio of radii of this cylinder as a double value.

◆ set() [1/2]

OdGeEllipCylinder & OdGeEllipCylinder::set ( double  minorRadius,
double  majorRadius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry 
)

Sets the parameters for the cylinder and returns a reference to the cylinder.

Parameters
majorRadius[in] Major radius of the elliptical cylinder.
minorRadius[in] Minor radius of the elliptical cylinder.
origin[in] Origin of the elliptical cylinder.
axisOfSymmetry[in] Axis of symmetry (rotation).
Returns
A reference to this OdGeEllipCylinder object.

◆ set() [2/2]

OdGeEllipCylinder & OdGeEllipCylinder::set ( double  minorRadius,
double  majorRadius,
const OdGePoint3d origin,
const OdGeVector3d axisOfSymmetry,
const OdGeVector3d majorAxis,
const OdGeInterval height,
double  startAng,
double  endAng 
)

Sets the parameters for the cylinder and returns a reference to the cylinder.

Parameters
majorRadius[in] Major radius of the elliptical cylinder.
minorRadius[in] Minor radius of the elliptical cylinder.
origin[in] Origin of the elliptical cylinder.
axisOfSymmetry[in] Axis of symmetry (rotation).
majorAxis[in] Major axis of the elliptical cylinder.
height[in] Height interval of the cylinder.
startAng[in] Start angle of the elliptical cylinder.
endAng[in] End angle of the elliptical cylinder.
\remarks
All angles are expressed in radians.
Returns
A reference to this OdGeEllipCylinder object.

◆ setAngles()

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

Sets the start and end angles of the elliptical cylinder.

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

◆ setHeight()

OdGeEllipCylinder & OdGeEllipCylinder::setHeight ( const OdGeInterval height)

Sets the height of the elliptical cylinder.

Parameters
height[in] Height of the elliptical cylinder.
Returns
A reference to this OdGeEllipCylinder object.

◆ setIsOuterNormal()

void OdGeEllipCylinder::setIsOuterNormal ( bool  isOuterNormal)

Sets OuterNormal according to the parameter.

Parameters
isOuterNormal[in] Sets OuterNormal.

◆ setMajorRadius()

OdGeEllipCylinder & OdGeEllipCylinder::setMajorRadius ( double  majorRadius)

Sets the major radius of the elliptical cylinder.

Parameters
majorRadius[in] The major radius of the elliptical cylinder.
Remarks
This method doesn't change state returned by isOuterNormal(). To chenge outer normal state you should use setIsOuterNormal.
Returns
A reference to this OdGeEllipCylinder object.

◆ setMinorRadius()

OdGeEllipCylinder & OdGeEllipCylinder::setMinorRadius ( double  minorRadius)

Sets the minor radius of the elliptical cylinder.

Parameters
minorRadius[in] The minor radius of the elliptical cylinder.
Returns
A reference to this OdGeEllipCylinder object.

◆ setUParamScale()

void OdGeEllipCylinder::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 major radius of this elliptical cylinder.

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