Defines a conical surface. More...

## Public Member Functions

ModelData_ConicalSurface ()
Constructor. More...

ModelData_ConicalSurface (const ModelData_Axis3Placement &thePosition, double theSemiAngle, double theRadius)
Constructor. More...

ModelData_ConicalSurface (const Handle_C &)
Constructor.

double Angle () const
Returns semi-angle. More...

double SemiAngle () const
Returns semi-angle. More...

Public Member Functions inherited from cadex::ModelData_ElementarySurface
ModelData_ElementarySurface ()
Constructor. More...

const ModelData_Axis3PlacementPosition () const
Returns a surface axis. More...

const ModelData_PointLocation () const
Returns origin point. More...

const ModelData_DirectionDirection () const
Returns Z direction of the axis placement. More...

ModelData_Point2d Parameter (const ModelData_Point &thePoint) const
Returns UV-point in surface parametric space for a 3D point. More...

Public Member Functions inherited from cadex::ModelData_Surface
ModelData_Surface ()
Constructor.

ModelData_Surface (const ModelData_Surface &theOther)
Constructor.

ModelData_Surface (ModelData_Surface &&theOther)
Constructor.

~ModelData_Surface ()
Destructor.

ModelData_Surfaceoperator= (const ModelData_Surface &theOther)
Assignment operator.

ModelData_Surfaceoperator= (ModelData_Surface &&theOther)
Move assignment operator.

ModelData_SurfaceType Type () const
Returns a surface type.

bool IsNull () const
Returns true if the object has not been initialized yet. More...

void Nullify ()
Resets the object. More...

operator bool () const

bool IsUPeriodic () const
Returns true if the surface is periodic in U direction. More...

bool IsVPeriodic () const
Returns true if the surface is periodic in V direction. More...

double UMin () const
Returns a minimum parameter of a definition domain in U direction. More...

double UMax () const
Returns a maximum parameter of a definition domain in U direction. More...

double VMin () const
Returns a minimum parameter of a definition domain in V direction. More...

double VMax () const
Returns a maximum parameter of a definition domain in V direction. More...

void Domain (double &theUMin, double &theUMax, double &theVMin, double &theVMax) const
Returns a definition domain. More...

ModelData_Point Value (double theParameterU, double theParameterV) const
Evaluates a point on the surface. More...

void Transform (const ModelData_Transformation &theTransformation)
Applies transformation matrix to this object. More...

ModelData_Surface Transformed (const ModelData_Transformation &theTransformation) const
Returns a copy this object after applying transformation. More...

ModelData_Continuity Continuity () const
Returns a continuity type of the surface.

void D0 (double theParameterU, double theParameterV, ModelData_Point &theValue) const
Returns the point theValue of parameter theU, theV on the surface. More...

void D1 (double theParameterU, double theParameterV, ModelData_Point &theValue, ModelData_Vector &theD1U, ModelData_Vector &theD1V) const
Returns the point theValue and the first derivatives in the directions U theD1U and V theD1V at this point. More...

void D2 (double theParameterU, double theParameterV, ModelData_Point &theValue, ModelData_Vector &theD1U, ModelData_Vector &theD1V, ModelData_Vector &theD2U, ModelData_Vector &theD2V, ModelData_Vector &theD2UV) const
Returns the point theValue, the first and the second derivatives in the directions U and V at this point. More...

bool DN (double theParameterU, double theParameterV, size_t theDerivativeOrder, ModelData_Point &theValue, ModelData_Vector theD[]) const

void Curvature (double theParameterU, double theParameterV, ModelData_Vector &thePrincipalMaxDirection, ModelData_Vector &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, ModelData_Direction &thePrincipalMaxDirection, ModelData_Direction &thePrincipalMinDirection, double &theMaxCurvature, double &theMinCurvature) const
Returns the max and min principal curvature directions and their values.

void Normal (double theParameterU, double theParameterV, ModelData_Direction &theNormal) const
Returns the normal direction theNormal at the current point.

void Mirror (const ModelData_Point &thePoint)
Mirrors the surface relative to the point.

void Mirror (const ModelData_Axis1Placement &theAxis)
Mirrors the surface relative to the axis placement.

void Mirror (const ModelData_Axis2Placement &theAxis)
Mirrors the surface relative to the axis placement.

ModelData_Surface Mirrored (const ModelData_Point &theRef) const
Returns a copy this surface mirrored along the object. More...

ModelData_Surface Mirrored (const ModelData_Axis1Placement &theAxis) const
Returns a copy this surface mirrored along the object. More...

ModelData_Surface Mirrored (const ModelData_Axis2Placement &theAxis) const
Returns a copy this surface mirrored along the object. More...

void Rotate (const ModelData_Axis1Placement &theAxis, double theAngle)
Rotates the surface around the axis.

ModelData_Surface Rotated (const ModelData_Axis1Placement &theAxis, double theAngle) const
Returns a copy this surface rotated along the axis. More...

void Translate (const ModelData_Vector &theVector)
Translates the surface along the vector.

ModelData_Surface Translated (const ModelData_Vector &theVector) const
Returns a copy this surface translated along the vector. More...

void Scale (const ModelData_Point &thePoint, double theScale)
Scales the surface with respect to the point.

ModelData_Surface Scaled (const ModelData_Point &thePoint, double theScale) const
Returns a copy this surface scaled with respect to the point. More...

## Public Attributes

operator Handle_C const

operator Handle_C const

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

Examples
exploring/brepgeometry/main.cxx, and modeling/brep/main.cxx.

## ◆ ModelData_ConicalSurface() [1/2]

inline

Constructor.

Empty constructor.

## ◆ ModelData_ConicalSurface() [2/2]

Constructor.

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

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

## ◆ Angle()

Returns semi-angle.

Returns the value specified in the constructor.

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

Returns the value specified in the constructor.

Examples
exploring/brepgeometry/main.cxx.