Hide menu
Loading...
Searching...
No Matches
cadex::Geom::ConicalSurface Class Reference

Defines a conical surface. More...

#include <cadex/Geom/ConicalSurface.hxx>

Inheritance diagram for cadex::Geom::ConicalSurface:
cadex::Geom::ElementarySurface cadex::Geom::Surface cadex::Geom::Geometry cadex::BaseObject

Public Member Functions

 ConicalSurface ()
 Constructor.
 
 ConicalSurface (const Axis3d &thePosition, double theSemiAngle, double theRadius)
 Constructor.
 
double Angle () const
 Returns semi-angle.
 
double SemiAngle () const
 Returns semi-angle.
 
double Radius () const
 Returns reference radius.
 
- Public Member Functions inherited from cadex::Geom::ElementarySurface
 ElementarySurface ()
 Constructor.
 
Geom::Axis3d Position () const
 Returns a surface axis.
 
Geom::Point Location () const
 Returns origin point.
 
Geom::Direction Direction () const
 Returns Z direction of the axis placement.
 
Geom::Point2d Parameter (const Geom::Point &thePoint) const
 Returns UV-point in surface parametric space for a 3D point.
 
- Public Member Functions inherited from cadex::Geom::Surface
 Surface ()
 Constructor.
 
SurfaceType Type () const
 Returns a surface type.
 
Geom::Continuity Continuity () const
 Returns a continuity type of the surface.
 
Point Value (double theParameterU, double theParameterV) const
 Evaluates a point on the surface.
 
Direction Normal (double theParameterU, double theParameterV) const
 Returns the normal direction theNormal at the current point.
 
bool IsUPeriodic () const
 Returns true if the surface is periodic in U direction.
 
bool IsVPeriodic () const
 Returns true if the surface is periodic in V direction.
 
double UMin () const
 Returns a minimum parameter of a definition domain in U direction.
 
double UMax () const
 Returns a maximum parameter of a definition domain in U direction.
 
double VMin () const
 Returns a minimum parameter of a definition domain in V direction.
 
double VMax () const
 Returns a maximum parameter of a definition domain in V direction.
 
void Domain (double &theUMin, double &theUMax, double &theVMin, double &theVMax) const
 Returns a definition domain.
 
bool IsTrimmed () const
 Returns whether surface is trimmed or not.
 
void SetTrim (double theUFirst, double theULast, double theVFirst, double theVLast)
 Trims surface with [theUFirst, theULast] x [theVFirst, theVLast] section.
 
void Transform (const Transformation &theTransformation)
 Applies transformation matrix to this object.
 
Surface Transformed (const Transformation &theTransformation) const
 Returns a copy this object after applying transformation.
 
void D0 (double theParameterU, double theParameterV, Point &theValue) const
 Returns the point theValue of parameter theU, theV on the surface.
 
void D1 (double theParameterU, double theParameterV, Point &theValue, Vector &theD1U, Vector &theD1V) const
 Returns the point theValue and the first derivatives in the directions U theD1U and V theD1V at this point.
 
void D2 (double theParameterU, double theParameterV, Point &theValue, Vector &theD1U, Vector &theD1V, Vector &theD2U, Vector &theD2V, Vector &theD2UV) const
 Returns the point theValue, the first and the second derivatives in the directions U and V at this point.
 
bool DN (double theParameterU, double theParameterV, size_t theDerivativeOrder, Geom::Point &theValue, std::vector< Geom::Vector > &theD) const
 
void Curvature (double theParameterU, double theParameterV, Direction &thePrincipalMaxDirection, Direction &thePrincipalMinDirection) const
 Returns the max and min principal curvature directions multiplied by max and min value of curvature respectively.
 
void Curvature (double theParameterU, double theParameterV, Direction &thePrincipalMaxDirection, Direction &thePrincipalMinDirection, double &theMaxCurvature, double &theMinCurvature) const
 Returns the max and min principal curvature directions and their values.
 
void Mirror (const Point &thePoint)
 
void Mirror (const Axis1d &theAxis)
 
void Mirror (const Axis3d &theAxis)
 
Surface Mirrored (const Point &theRef) const
 
Surface Mirrored (const Axis1d &theAxis) const
 
Surface Mirrored (const Axis3d &theAxis) const
 
void Rotate (const Axis1d &theAxis, double theAngle)
 
Surface Rotated (const Axis1d &theAxis, double theAngle) const
 
void Translate (const Vector &theVector)
 
Surface Translated (const Vector &theVector) const
 
void Scale (const Point &thePoint, double theScale)
 
Surface Scaled (const Point &thePoint, double theScale) const
 
- Public Member Functions inherited from cadex::BaseObject
size_t Id () const
 Return unique identifier of public object.
 
internal::BaseObjectImpl * Impl () const
 
bool IsNull () const
 
 operator bool () const
 
template<typename T >
bool IsOfType () const
 
template<typename T >
T * Impl () const
 Reserved for internal use.
 

Static Public Member Functions

static bool CompareType (const BaseObject &theObject)
 
- Static Public Member Functions inherited from cadex::Geom::ElementarySurface
static bool CompareType (const BaseObject &theObject)
 
- Static Public Member Functions inherited from cadex::Geom::Surface
static bool CompareType (const BaseObject &theObject)
 
- Static Public Member Functions inherited from cadex::Geom::Geometry
static bool CompareType (const BaseObject &theObject)
 

Additional Inherited Members

- Public Types inherited from cadex::BaseObject
typedef std::shared_ptr< internal::BaseObjectImpl > ImplType
 
- Protected Member Functions inherited from cadex::Geom::ElementarySurface
 ElementarySurface (const ImplType &theImpl)
 
- Protected Member Functions inherited from cadex::Geom::Surface
 Surface (const ImplType &theImpl)
 
- Protected Member Functions inherited from cadex::Geom::Geometry
 Geometry (const ImplType &theImpl)
 
- Protected Member Functions inherited from cadex::BaseObject
 BaseObject (const ImplType &theImpl)
 

Detailed Description

Defines a conical surface.

A conical surface is defined by an axis placement, a reference radius and a semi-angle. The following image depicts a conical surface example:

Conical surface

A conical surface is parametrized as follows: \(\mathbf{S}(u,v) = \mathbf{P} + r\cos(u)\mathbf{X} + r\sin(u)\mathbf{Y} + v\cos(\phi)\mathbf{Z}\), where

  • \(\mathbf{P}\) is an origin point,
  • \(\mathbf{X}\), \(\mathbf{Y}\) and \(\mathbf{Y}\) are directions (unit vectors) of X, Y and Z axes respectively,
  • \(\phi\) - semi-angle, i.e. an angle between \(\mathbf{Z}\) and any generatrix,
  • \(r = R + v\sin(\phi)\), i.e. a radius of a circle at respective parameter \(v\),
  • \(u\) belongs to \([0, 2\pi]\),
  • \(v\) belongs to \((-\infty, +\infty)\).

U-parameter is an angle along the circle at a given parameter V and V-parameter is a length along the cone. Thus, U-isolines are lines and V-isoline are circles.

V-isoline at \(v=0\) is a circle of radius \(R\) in the plane defined by an axis placement.

Conical surface contains both halves of mathematical cone.

Conical surface is U-periodical with period \(2\pi\). At a cone apex, \(r=0\), hence at apex \(v=\frac{-R}{\sin(\phi)}\).

If a face lying on a conical surface contains the apex its boundary wire will contain a degenerated edge corresponding to the apex. If the face takes full U-period then the wire will contain a seam-edge. The face may only lie on one half of a cone, i.e. on one side from the apex.

Constructor & Destructor Documentation

◆ ConicalSurface()

cadex::Geom::ConicalSurface::ConicalSurface ( const Axis3d & thePosition,
double theSemiAngle,
double theRadius )

Constructor.

Creates an object from an axis, semi-angle and reference radius.

Semi-angle theAngle must be either positive or negative. theRadius must be positive.

Member Function Documentation

◆ Angle()

double cadex::Geom::ConicalSurface::Angle ( ) const

Returns semi-angle.

Returns the value specified in the constructor.

Deprecated
Kept for binary compatibility. Use SemiAngle() instead.

◆ Radius()

double cadex::Geom::ConicalSurface::Radius ( ) const

Returns reference radius.

Returns the value specified in the constructor.

◆ SemiAngle()

double cadex::Geom::ConicalSurface::SemiAngle ( ) const

Returns semi-angle.

Returns the value specified in the constructor.