CFx SDK Documentation  2022 SP0
Public Member Functions | List of all members
OdGeEllipCylinder Class Reference

#include <GeEllipCylinder.h>

Inheritance diagram for OdGeEllipCylinder:
OdGeSurface OdGeEntity3d

Public Member Functions

 OdGeEllipCylinder ()
 
 OdGeEllipCylinder (const 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)
 
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 &)
 
- 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)
 
- 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 eliptical cylinder is defined by: major and minor radii origin (a point on the axis of symmetry) axis of symmetry major axis height

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

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 axis of symmetry. U is dimensionless and increases in the direction of the axis of symmetry. U = 0 corresponds to the center of the cylinder base, and U = 1 corresponds to the center of the cylinder top.

The surface of the cylinder is perodic 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.html, Working with Cylinders>

Definition at line 88 of file GeEllipCylinder.h.

Constructor & Destructor Documentation

◆ OdGeEllipCylinder() [1/4]

OdGeEllipCylinder::OdGeEllipCylinder ( )
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.

◆ OdGeEllipCylinder() [2/4]

OdGeEllipCylinder::OdGeEllipCylinder ( const OdGeEllipCylinder )

◆ OdGeEllipCylinder() [3/4]

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

◆ OdGeEllipCylinder() [4/4]

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

Member Function Documentation

◆ axisOfSymmetry()

OdGeVector3d OdGeEllipCylinder::axisOfSymmetry ( ) const

Returns the axis of symmetry of the cylinder.

◆ getAngles()

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

Returns the start and end angles of the 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

Returns the interval of the axis of symmetry.

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

◆ 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.

◆ intersectWith()

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

Returns True if the cylinder intersects with the specified line entity, and returns the number of intersections and the points of intersection.

Parameters
lineEnt[in] Any 3D line 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.

◆ isClosed()

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

Returns true if and only if the cylinder is a full ellipse within the specified tolerance.

Parameters
tol[in] Geometric tolerance.

◆ isOuterNormal()

bool OdGeEllipCylinder::isOuterNormal ( ) const

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

◆ majorAxis()

OdGeVector3d OdGeEllipCylinder::majorAxis ( ) const

Returns the major axis of the cylinder.

◆ majorRadius()

double OdGeEllipCylinder::majorRadius ( ) const

Returns the major radius of the cylinder.

◆ minorAxis()

OdGeVector3d OdGeEllipCylinder::minorAxis ( ) const

Returns the minor axis of the cylinder.

◆ minorRadius()

double OdGeEllipCylinder::minorRadius ( ) const

Returns the minor radius of the cylinder.

◆ operator=()

OdGeEllipCylinder& OdGeEllipCylinder::operator= ( const OdGeEllipCylinder )

◆ origin()

OdGePoint3d OdGeEllipCylinder::origin ( ) const

Returns the origin of the cylinder.

◆ radiusRatio()

double OdGeEllipCylinder::radiusRatio ( ) const

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

◆ 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).

◆ 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.

◆ 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.

◆ setHeight()

OdGeEllipCylinder& OdGeEllipCylinder::setHeight ( const OdGeInterval height)

Sets the height of the elliptical cylinder.

Parameters
height[in] Height of the elliptical cylinder.

◆ 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.

◆ setMinorRadius()

OdGeEllipCylinder& OdGeEllipCylinder::setMinorRadius ( double  minorRadius)

Sets the minor radius of the elliptical cylinder.

Parameters
minorRadius[in] The minor radius of the elliptical cylinder.

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