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

#include <GeEllipCone.h>

Inheritance diagram for OdGeEllipCone:
OdGeSurface OdGeEntity3d

Public Member Functions

 OdGeEllipCone ()
 
 OdGeEllipCone (double cosineAngle, double sineAngle, const OdGePoint3d &origin, double minorRadius, double majorRadius, const OdGeVector3d &axisOfSymmetry)
 
 OdGeEllipCone (double cosineAngle, double sineAngle, const OdGePoint3d &baseOrigin, double minorRadius, double majorRadius, const OdGeVector3d &axisOfSymmetry, const OdGeVector3d &majorAxis, const OdGeInterval &height, double startAng, double endAng)
 
 OdGeEllipCone (const OdGeEllipCone &cone)
 
double radiusRatio () const
 
double minorRadius () const
 
double majorRadius () const
 
OdGePoint3d baseCenter () const
 
void getAngles (double &startAng, double &endAng) const
 
double halfAngle () const
 
void getHalfAngle (double &cosineAngle, double &sineAngle) const
 
void getHeight (OdGeInterval &height) const
 
double heightAt (double u) const
 
OdGeVector3d axisOfSymmetry () const
 
OdGeVector3d majorAxis () const
 
OdGeVector3d minorAxis () const
 
OdGePoint3d apex () const
 
bool isClosed (const OdGeTol &tol=OdGeContext::gTol) const
 
bool isOuterNormal () const
 
OdGeEllipConesetMinorRadius (double minorRadius)
 
OdGeEllipConesetMajorRadius (double majorRadius)
 
OdGeEllipConesetAngles (double startAng, double endAng)
 
OdGeEllipConesetHeight (const OdGeInterval &height)
 
double getPoleParam () const
 
bool intersectWith (const OdGeLinearEnt3d &linEnt, int &numInt, OdGePoint3d &p1, OdGePoint3d &p2, const OdGeTol &tol=OdGeContext::gTol) const
 
OdGeEllipConeset (double cosineAngle, double sineAngle, const OdGePoint3d &center, double minorRadius, double majorRadius, const OdGeVector3d &axisOfSymmetry)
 
OdGeEllipConeset (double cosineAngle, double sineAngle, const OdGePoint3d &center, double minorRadius, double majorRadius, const OdGeVector3d &axisOfSymmetry, const OdGeVector3d &majorAxis, const OdGeInterval &height, double startAng, double endAng)
 
OdGeEllipConeoperator= (const OdGeEllipCone &cone)
 
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 elliptical cones.

Remarks
A elliptical cone is defined by its axis of symmetry height sine and cosine of the half angle origin (a point on the axis of symmetry) major and minor radii at the origin major axis U parameter scale.

The cross section containing the origin is referred to as the base. The radii at the base cannot be zero. This elliptical cone may extend on either side of the base. This elliptical cone extends only on one direction from the apex, i.e. it is not a double elliptical cone.

The half angle is measured from the symmetric axis of this elliptical cone to a point on the major axis. If cosine of the half angle is positive, this elliptical cone is convex. If cosine of the half angle is negative, this elliptical cone is concave. If cosine and sine of the half angle have the same sign, the apex is on the opposite direction of the symmetric axis and radius increases along the symmetric axis. If cosine and sine of the half angle have different signs, the apex is on the direction of the symmetric axis and radius decreases along the symmetric axis. Both cosine and sine of the half angle can't be zeros.

Parameter V is the angle of revolution measured from the major axis to the axis of symmetry. For a closed elliptical cone, 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.

The angle of point on an ellipse is measured by projecting the point on the ellipse perpendicular to major axis onto a circle which lies on the same plane, which center is the center of the ellipse and which radius is the major radius of the 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.

The height interval of this elliptical cone is specified relative to its origin. Height increases in the direction of the symmetric axis. Height interval must be bounded.

Parameter U varies along the generating line. U is dimensionless, measured in U parameter scale (which equals to the major radius by default), multiplied by the absolute value of cosine of the half angle. 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 cone.

If cosine and sine of the half angle have the same sign, U and height are less than zero at the apex. If cosine and sine of the half angle have different signs, U and height are greater than zero at the apex.

[umin, umax] x [vmin, vmax] defines a four sided conical patch bounded by two straight lines (at angles vmin and vmax), and two circular arcs (at umin and umax). The following must be observed when defining an elliptical cone:

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

Corresponding C++ library: TD_Ge

<group OdGe_Classes>

See also
<link ge_OdGeCone, Working with Cones>

Definition at line 118 of file GeEllipCone.h.

Constructor & Destructor Documentation

◆ OdGeEllipCone() [1/4]

OdGeEllipCone::OdGeEllipCone ( )

Default constructor for the OdGeEllipCone class. Constructs an elliptical cone that uses a half angle of 45°, a base origin of (0.0, 0.0, 0.0), a base radii of 1.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).

◆ OdGeEllipCone() [2/4]

OdGeEllipCone::OdGeEllipCone ( double  cosineAngle,
double  sineAngle,
const OdGePoint3d origin,
double  minorRadius,
double  majorRadius,
const OdGeVector3d axisOfSymmetry 
)

Constructor for the OdGeEllipCone class.

Parameters
cosineAngle[in] The cosine of the angle between the generating line passing through the major axis, and the axis of symmetry.
sineAngle[in] The sine of the angle between the generating line passing through the major axis, and the axis of symmetry.
origin[in] The origin point of this elliptical cone.
majorRadius[in] The major radius of this elliptical cone.
minorRadius[in] The minor radius of this elliptical cone.
axisOfSymmetry[in] Axis of symmetry (rotation).

◆ OdGeEllipCone() [3/4]

OdGeEllipCone::OdGeEllipCone ( double  cosineAngle,
double  sineAngle,
const OdGePoint3d baseOrigin,
double  minorRadius,
double  majorRadius,
const OdGeVector3d axisOfSymmetry,
const OdGeVector3d majorAxis,
const OdGeInterval height,
double  startAng,
double  endAng 
)

Constructor for the OdGeEllipCone class.

Parameters
cosineAngle[in] The cosine of the angle between the generating line passing through the major axis, and the axis of symmetry.
sineAngle[in] The sine of the angle between the generating line passing through the major axis, and the axis of symmetry.
baseOrigin[in] The origin of this elliptical cone.
minorRadius[in] The minor radius of this elliptical cone.
majorRadius[in] The major radius of this elliptical cone.
axisOfSymmetry[in] Axis of symmetry (rotation).
majorAxis[in] The major axis of this elliptical cone.
height[in] Height interval of this elliptical cone.
startAng[in] Start angle of this elliptical cone.
endAng[in] End angle of this elliptical cone.
Remarks
All angles are expressed in radians.

◆ OdGeEllipCone() [4/4]

OdGeEllipCone::OdGeEllipCone ( const OdGeEllipCone cone)

Copy constructor for the OdGeEllipCone class.

Parameters
cone[in] Cone to be copied.

Member Function Documentation

◆ apex()

OdGePoint3d OdGeEllipCone::apex ( ) const

Returns the apex of this elliptical cone.

Returns
The apex of this cone as an OdGePoint3d instance.

◆ axisOfSymmetry()

OdGeVector3d OdGeEllipCone::axisOfSymmetry ( ) const

Returns the axis of symmetry of this elliptical cone.

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

◆ baseCenter()

OdGePoint3d OdGeEllipCone::baseCenter ( ) const

Returns the center of the base.

Returns
The center of the base of this cone as an OdGePoint3d instance.

◆ getAngles()

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

Retrieves the starting and ending angles of this elliptical cone.

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

◆ getHalfAngle()

void OdGeEllipCone::getHalfAngle ( double &  cosineAngle,
double &  sineAngle 
) const

Retrieves the angle between the generating line passing through the major axis, and the axis of symmetry.

Remarks
The angle is returned "as is", the signs are preserved.
Parameters
cosineAngle[out] Receives the cosine of the angle.
sineAngle[out] Receives the sine of the angle.

◆ getHeight()

void OdGeEllipCone::getHeight ( OdGeInterval height) const

Retrieves the interval of the axis of symmetry.

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

◆ getPoleParam()

double OdGeEllipCone::getPoleParam ( ) const

Returns U parameter at the pole

Returns
U parameter at the pole of this cone as a double value.

◆ getUParamScale()

double OdGeEllipCone::getUParamScale ( ) const

Retrieves U parameter scale.

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

◆ halfAngle()

double OdGeEllipCone::halfAngle ( ) const

Returns the angle between the generating line passing through the major axis, and the axis of symmetry.

Returns
The half angle of this cone as a double value.

◆ heightAt()

double OdGeEllipCone::heightAt ( double  u) const

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

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

◆ intersectWith()

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

Checks if the cone 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 OdGeEllipCone::isClosed ( const OdGeTol tol = OdGeContext::gTol) const

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

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

◆ isOuterNormal()

bool OdGeEllipCone::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 OdGeEllipCone::majorAxis ( ) const

Returns the major axis of this elliptical cone.

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

◆ majorRadius()

double OdGeEllipCone::majorRadius ( ) const

Returns the major radius of this elliptical cone.

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

◆ minorAxis()

OdGeVector3d OdGeEllipCone::minorAxis ( ) const

Returns the minor axis of this elliptical cone.

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

◆ minorRadius()

double OdGeEllipCone::minorRadius ( ) const

Returns the minor radius of this elliptical cone.

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

◆ operator=()

OdGeEllipCone & OdGeEllipCone::operator= ( const OdGeEllipCone cone)

Assignment operator for the OdGeEllipCone object.

Parameters
cone[in] Elliptical cone to be assigned.
Returns
A reference to this OdGeEllipCone object.

◆ radiusRatio()

double OdGeEllipCone::radiusRatio ( ) const

Returns the ratio of the minor to the major radius of this elliptical cone.

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

◆ set() [1/2]

OdGeEllipCone & OdGeEllipCone::set ( double  cosineAngle,
double  sineAngle,
const OdGePoint3d center,
double  minorRadius,
double  majorRadius,
const OdGeVector3d axisOfSymmetry 
)

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

Parameters
cosineAngle[in] The cosine of the angle between the generating line passing through the major axis, and the axis of symmetry.
sineAngle[in] The sine of the angle between the generating line passing through the major axis, and the axis of symmetry.
majorRadius[in] The major radius of this elliptical cone.
minorRadius[in] The minor radius of this elliptical cone.
center[in] The origin of this elliptical cone.
axisOfSymmetry[in] Axis of symmetry (rotation).
Remarks
All angles are expressed in radians.
Returns
A reference to this OdGeEllipCone object.

◆ set() [2/2]

OdGeEllipCone & OdGeEllipCone::set ( double  cosineAngle,
double  sineAngle,
const OdGePoint3d center,
double  minorRadius,
double  majorRadius,
const OdGeVector3d axisOfSymmetry,
const OdGeVector3d majorAxis,
const OdGeInterval height,
double  startAng,
double  endAng 
)

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

Parameters
cosineAngle[in] The cosine of the angle between the generating line passing through the major axis, and the axis of symmetry.
sineAngle[in] The sine of the angle between the generating line passing through the major axis, and the axis of symmetry.
majorRadius[in] The major radius of this elliptical cone.
minorRadius[in] The minor radius of this elliptical cone.
center[in] The origin of this elliptical cone.
axisOfSymmetry[in] Axis of symmetry (rotation).
majorAxis[in] The major axis of this elliptical cone.
height[in] Height interval of this elliptical cone.
startAng[in] Starting angle of this elliptical cone.
endAng[in] Ending angle of this elliptical cone in.
Returns
A reference to this OdGeEllipCone object.
Remarks
All angles are expressed in radians.

◆ setAngles()

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

Sets the starting and ending angles of this elliptical cone.

Parameters
startAng[in] Start angle in radians.
endAng[in] End angle in radians.
Returns
A reference to this OdGeEllipCone object.

◆ setHeight()

OdGeEllipCone & OdGeEllipCone::setHeight ( const OdGeInterval height)

Sets the height interval of this elliptical cone.

Parameters
height[in] Height interval of this elliptical cone.
Returns
A reference to this OdGeEllipCone object.

◆ setMajorRadius()

OdGeEllipCone & OdGeEllipCone::setMajorRadius ( double  majorRadius)

Sets major radius of this elliptical cone.

Parameters
majorRadius[in] The major radius of this elliptical cone.
Returns
A reference to this OdGeEllipCone object.

◆ setMinorRadius()

OdGeEllipCone & OdGeEllipCone::setMinorRadius ( double  minorRadius)

Sets minor radius of this elliptical cone.

Parameters
minorRadius[in] The minor radius of this elliptical cone.
Returns
A reference to this OdGeEllipCone object.

◆ setUParamScale()

void OdGeEllipCone::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 cone.

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