C3D Kernel  104598
Classes | Enumerations | Functions
Surfaces
Geometric Objects
Collaboration diagram for Surfaces:

Classes

class  MbChamferSurface
 Chamfer surface. More...
class  MbChannelSurface
 Fillet surface with variable radius is normal or with preservation of edges. More...
class  MbConeSurface
 Conical surface. More...
class  MbCoonsPatchSurface
 Coons surface on four curves. More...
class  MbCornerSurface
 Triangular surface on curves. More...
class  MbCoverSurface
 Quadrangular surface on curves. More...
class  MbCurveBoundedSurface
 The surface bounded by curves. More...
class  MbCylinderSurface
 The cylindrical surface. More...
class  MbElementarySurface
 An elementary surface. More...
class  MbElevationSurface
 Lofted surface with guide curve. More...
class  MbEvolutionSurface
 The swept surface. More...
class  MbExactionSurface
 Sweep with guide curve surface with rotating ends. More...
class  MbExpansionSurface
 Motion surface (plane-parallel swept surface). More...
class  MbExplorationSurface
 The swept surface with scaling and winding of generation curve. More...
class  MbExtrusionSurface
 Extrusion surface. More...
class  MbFilletSurface
 Fillet surface of constant radii, ordinary or with preservation of fillet. More...
class  MbGregorySurface
 The surface on the bounding contour. More...
class  MbGridSurface
 Surface based on triangulation. More...
class  MbJoinSurface
 The surface of the joint. More...
class  MbLoftedSurface
 Lofted surface passing through given family of curves. More...
class  MbMeshSurface
 The surface constructed by the grid curves. More...
class  MbOffsetSurface
 Offset surface. More...
class  MbPlane
 A plane. More...
class  MbPolySurface
 A surface specified by rectangular matrix of points. More...
class  MbRevolutionSurface
 Revolution surface. More...
class  MbRuledSurface
 Ruled surface. More...
class  MbSectorSurface
 Sectorial surface. More...
class  MbSmoothSurface
 Smooth surface. More...
class  MbSphereSurface
 Spherical surface. More...
class  MbSpiralSurface
 Spiral surface. More...
class  MbSplineSurface
 NURBS surface. More...
class  MbSweptSurface
 Swept surface. More...
class  MbTorusSurface
 Toroidal surface. More...
class  MbSurface
 Surface in three-dimensional space. More...

Enumerations

enum  MbeCoonsSurfaceCalcType { mcsv_DefaultType = 0, mcsv_LoftSurfType }
 Type of calculation of Coons surface. More...
enum  MbeMeshSurfaceVersion { msv_Ver0 = 0, msv_Ver1, msv_Ver2, msv_Count }
 Version of implementation of surface constructed by the grid curves. More...

Functions

MbeNewtonResult NearestPoints (const MbSurface &surface, bool ext0, const MbCurve3D &curve, bool ext1, double &u0, double &v0, double &t0, double &dmin, bool t0Calculated=false)
 Calculate parameters of the nearest points of surface and curve.
MbeNewtonResult NearestPoints (const MbSurface &surface0, bool ext0, const MbSurface &surface1, bool ext1, double &u0, double &v0, double &u1, double &v1, double &dmin, bool checkCurvilinearBounds)
 Calculate parameters of the nearest points of surfaces.
DEPRECATE_DECLARE MbeNewtonResult NearestPoints (const MbSurface &surface0, bool ext0, const MbSurface &surface1, bool ext1, double &u0, double &v0, double &u1, double &v1, double &dmin)
 Calculate parameters of the nearest points of surfaces.

Functions for working at surface domain

Functions PointOn, Derive... correct parameters when getting out of rectangular domain bounds.
Exceptions:
1. MbPlane (plane)
Functions PointOn, Derive... of plane don't correct parameters when getting out of rectangular domain bounds.
2. MbSmoothSurface and its inheritors (fillet of chamfer surfaces)
Functions PointOn and Derive... of smooth surfaces don't correct the first parameter when getting out of domain bounds.

virtual void MbSurface::PointOn (double &u, double &v, MbCartPoint3D &p) const =0
 Calculate a point on the surface.
virtual void MbSurface::DeriveU (double &u, double &v, MbVector3D &) const =0
 Calculate first derivative with respect to u.
virtual void MbSurface::DeriveV (double &u, double &v, MbVector3D &) const =0
 Calculate first derivative with respect to v.
virtual void MbSurface::DeriveUU (double &u, double &v, MbVector3D &) const =0
 Calculate second derivative with respect to u.
virtual void MbSurface::DeriveVV (double &u, double &v, MbVector3D &) const =0
 Calculate second derivative with respect to v.
virtual void MbSurface::DeriveUV (double &u, double &v, MbVector3D &) const =0
 Calculate second derivative.
virtual void MbSurface::DeriveUUU (double &u, double &v, MbVector3D &) const =0
 Calculate third derivative.
virtual void MbSurface::DeriveUUV (double &u, double &v, MbVector3D &) const =0
 Calculate third derivative.
virtual void MbSurface::DeriveUVV (double &u, double &v, MbVector3D &) const =0
 Calculate third derivative.
virtual void MbSurface::DeriveVVV (double &u, double &v, MbVector3D &) const =0
 Calculate third derivative.
virtual void MbSurface::TangentU (double &u, double &v, MbVector3D &) const
 Calculate tangent vector in u.
virtual void MbSurface::TangentV (double &u, double &v, MbVector3D &) const
 Calculate tangent vector in v.
virtual void MbSurface::Normal (double &u, double &v, MbVector3D &) const
 Calculate normal.
virtual void MbSurface::NormalU (double &u, double &v, MbVector3D &) const
 Calculate derivative of normal with respect to U.
virtual void MbSurface::NormalV (double &u, double &v, MbVector3D &) const
 Calculate derivative of normal with respect to V.

Functions for working inside and outside the surface domain.

functions _PointOn, _Derive... of surfaces don't correct parameters when getting out of rectangular domain bounds.

virtual void MbSurface::_PointOn (double u, double v, MbCartPoint3D &p) const
 Calculate a point on the surface.
virtual void MbSurface::Explore (double &u, double &v, bool ext, MbCartPoint3D &pnt, MbVector3D &uDer, MbVector3D &vDer, MbVector3D *uuDer, MbVector3D *vvDer, MbVector3D *uvDer, MbVector3D *nor) const
 Calculate point and derivatives of object for given parameters.
virtual void MbSurface::_PointNormal (double u, double v, MbCartPoint3D &pnt, MbVector3D &deru, MbVector3D &derv, MbVector3D &norm, MbVector3D &noru, MbVector3D &norv, MbVector3D &deruu, MbVector3D &dervv, MbVector3D &deruv) const
 Calculate all derivatives at point.
virtual void MbSurface::_DeriveU (double u, double v, MbVector3D &) const
 Calculate first derivative with respect to u on extended surface.
virtual void MbSurface::_DeriveV (double u, double v, MbVector3D &) const
 Calculate first derivative with respect to v on extended surface.
virtual void MbSurface::_DeriveUU (double u, double v, MbVector3D &) const
 Calculate second derivative with respect to u on extended surface.
virtual void MbSurface::_DeriveVV (double u, double v, MbVector3D &) const
 Calculate second derivative with respect to v on extended surface.
virtual void MbSurface::_DeriveUV (double u, double v, MbVector3D &) const
 Calculate second derivative on extended surface.
virtual void MbSurface::_DeriveUUU (double u, double v, MbVector3D &) const
 Calculate third derivative on extended surface.
virtual void MbSurface::_DeriveUUV (double u, double v, MbVector3D &) const
 Calculate third derivative on extended surface.
virtual void MbSurface::_DeriveUVV (double u, double v, MbVector3D &) const
 Calculate third derivative on extended surface.
virtual void MbSurface::_DeriveVVV (double u, double v, MbVector3D &) const
 Calculate third derivative on extended surface.
virtual void MbSurface::_TangentU (double u, double v, MbVector3D &) const
 Calculate tangent vector in u direction on extended surface.
virtual void MbSurface::_TangentV (double u, double v, MbVector3D &) const
 Calculate tangent vector in v direction on extended surface.
virtual void MbSurface::_Normal (double u, double v, MbVector3D &) const
 Calculate a normal on extended surface.
virtual void MbSurface::_NormalU (double u, double v, MbVector3D &) const
 Calculate derivative of normal vector on extended surface.
virtual void MbSurface::_NormalV (double u, double v, MbVector3D &) const
 Calculate derivative of normal vector on extended surface.
virtual void MbSurface::_NormalUU (double u, double v, MbVector3D &) const
 Calculate second derivative of normal vector on extended surface.
virtual void MbSurface::_NormalUV (double u, double v, MbVector3D &) const
 Calculate second derivative of normal vector on extended surface.
virtual void MbSurface::_NormalVV (double u, double v, MbVector3D &) const
 Calculate second derivative of normal vector on extended surface.
virtual void MbSurface::_NormalD (double u, double v, double du, double dv, MbVector3D &der) const
 Calculate derivative of normal vector at the point with the given parameters u and v along the line with the given direction (du,dv).

Functions of moving on surface

virtual double MbSurface::StepU (double u, double v, double sag) const
 Calculate parameter step.
virtual double MbSurface::StepV (double u, double v, double sag) const
 Calculate parameter step.
virtual double MbSurface::DeviationStepU (double u, double v, double angle) const
 Calculate parameter step.
virtual double MbSurface::DeviationStepV (double u, double v, double angle) const
 Calculate parameter step.
virtual double MbSurface::MetricStepU (double u, double v, double length) const
 Calculate parameter step.
virtual double MbSurface::MetricStepV (double u, double v, double length) const
 Calculate parameter step.
double MbSurface::SurfaceStep (const double &u, const double &v, bool alongU, const MbStepData &stepData) const
 Calculate parameter step.
virtual size_t MbSurface::GetUCount () const
 The number of splittings by u-parameter for a check of events.
virtual size_t MbSurface::GetVCount () const
 The number of splittings by v-parameter for a check of events.

Enumeration Type Documentation

Type of calculation of Coons surface.

Enumerator:
mcsv_DefaultType 

Default type.

mcsv_LoftSurfType 

Type for the construction of the lofted surface.

Version of implementation of surface constructed by the grid curves.

Enumerator:
msv_Ver0 

The first version.

msv_Ver1 

The second version.

msv_Ver2 

The third version.

msv_Count 

Count of versions.


Function Documentation

virtual void MbSurface::PointOn ( double &  u,
double &  v,
MbCartPoint3D p 
) const [pure virtual]
virtual void MbSurface::_PointOn ( double  u,
double  v,
MbCartPoint3D p 
) const [virtual]

Calculate a point on the surface including the outside area determination parameters.

Parameters:
[in]u- First surface parameter.
[in]v- Second surface parameter.
[out]p- A point on the surface or on extended surface.

Reimplemented in MbChamferSurface, MbConeSurface, MbCoonsPatchSurface, MbCornerSurface, MbCoverSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElevationSurface, MbEvolutionSurface, MbExactionSurface, MbExpansionSurface, MbExplorationSurface, MbExtrusionSurface, MbFilletSurface, MbGregorySurface, MbGridSurface, MbJoinSurface, MbLoftedSurface, MbMeshSurface, MbOffsetSurface, MbPlane, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSphereSurface, MbSpiralSurface, MbSplineSurface, and MbTorusSurface.

virtual void MbSurface::Explore ( double &  u,
double &  v,
bool  ext,
MbCartPoint3D pnt,
MbVector3D uDer,
MbVector3D vDer,
MbVector3D uuDer,
MbVector3D vvDer,
MbVector3D uvDer,
MbVector3D nor 
) const [virtual]

Values of point and derivatives are calculated on parameters area and on extended surface.

Parameters:
[in]u- Parameter.
[in]v- Parameter.
[in]ext- On parameters area (false), on extended surface (true).
[out]pnt- Point.
[out]uDer- Derivative with respect to u.
[out]vDer- Derivative with respect to v.
[out]uuDer- Second derivative with respect to u, if not NULL.
[out]vvDer- Second derivative with respect to v, if not NULL.
[out]uvDer- Second derivative with respect to u and v, if not NULL.

Reimplemented in MbChamferSurface, MbConeSurface, MbCoonsPatchSurface, MbCornerSurface, MbCoverSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbElevationSurface, MbEvolutionSurface, MbExactionSurface, MbExpansionSurface, MbExplorationSurface, MbExtrusionSurface, MbFilletSurface, MbGregorySurface, MbGridSurface, MbJoinSurface, MbLoftedSurface, MbMeshSurface, MbOffsetSurface, MbPlane, MbPolySurface, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSmoothSurface, MbSphereSurface, MbSpiralSurface, MbSplineSurface, MbSweptSurface, and MbTorusSurface.

virtual void MbSurface::_PointNormal ( double  u,
double  v,
MbCartPoint3D pnt,
MbVector3D deru,
MbVector3D derv,
MbVector3D norm,
MbVector3D noru,
MbVector3D norv,
MbVector3D deruu,
MbVector3D dervv,
MbVector3D deruv 
) const [virtual]

Values of point and derivatives are calculated an extended surface.

Parameters:
[in]u- Parameter.
[in]v- Parameter.
[out]pnt- Point.
[out]deru- Derivative with respect to u.
[out]derv- Derivative with respect to v.
[out]norm- Normal.
[out]noru- Derivative of normal vector with respect to u.
[out]norv- Derivative of normal vector with respect to v.
[out]deruu- Second derivative with respect to u.
[out]dervv- Second derivative with respect to v.
[out]deruv- Second derivative with respect to u and v.

Reimplemented in MbConeSurface, MbCurveBoundedSurface, MbCylinderSurface, MbFilletSurface, MbOffsetSurface, MbPlane, MbSphereSurface, and MbTorusSurface.

virtual double MbSurface::StepU ( double  u,
double  v,
double  sag 
) const [virtual]

Calculate parameter step for the surface approximation by its sag value along a line with a constant value of v. Calculation of the step is performed with consideration of curvature radius. A step of surface approximation along a curve is chosen in such way, that the deviation from its polygon does not exceed the given value of sag.

Parameters:
[in]u- A parameter defining a point on the surface.
[in]v- A parameter defining a point on the surface.
[in]sag- Maximum feasible sag value.
Returns:
A sag value by parameter at given point.

Reimplemented in MbChamferSurface, MbConeSurface, MbCornerSurface, MbCoverSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbEvolutionSurface, MbExpansionSurface, MbExplorationSurface, MbExtrusionSurface, MbFilletSurface, MbGregorySurface, MbGridSurface, MbJoinSurface, MbLoftedSurface, MbMeshSurface, MbOffsetSurface, MbPlane, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSphereSurface, MbSpiralSurface, MbSplineSurface, and MbTorusSurface.

virtual double MbSurface::StepV ( double  u,
double  v,
double  sag 
) const [virtual]

Calculate parameter step for the surface approximation by its sag value along a line with a constant value of u. Calculation of the step is performed with consideration of curvature radius. A step of surface approximation along a curve is chosen in such way, that the deviation from its polygon does not exceed the given value of sag.

Parameters:
[in]u- A parameter defining a point on the surface.
[in]v- A parameter defining a point on the surface.
[in]sag- Maximum feasible sag value.
Returns:
A sag value by parameter at given point.

Reimplemented in MbChamferSurface, MbConeSurface, MbCornerSurface, MbCoverSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbElevationSurface, MbEvolutionSurface, MbExpansionSurface, MbExplorationSurface, MbExtrusionSurface, MbFilletSurface, MbGridSurface, MbJoinSurface, MbLoftedSurface, MbMeshSurface, MbOffsetSurface, MbPlane, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSphereSurface, MbSpiralSurface, MbSplineSurface, and MbTorusSurface.

virtual double MbSurface::DeviationStepU ( double  u,
double  v,
double  angle 
) const [virtual]

Calculate parameter step for the surface approximation by the deviation angle of the tangent vector along a line with a constant value of u. A step of surface approximation along a curve is chosen in such way, that angular deviation of the tangent to the curve at the next point does not exceed the given value ang.

Parameters:
[in]u- A parameter defining a point on the surface.
[in]v- A parameter defining a point on the surface.
[in]ang- The maximum feasible deviation angle of tangent.
Returns:
A sag value by parameter at given point.

Reimplemented in MbChamferSurface, MbConeSurface, MbCornerSurface, MbCoverSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbEvolutionSurface, MbExpansionSurface, MbExplorationSurface, MbExtrusionSurface, MbFilletSurface, MbGregorySurface, MbGridSurface, MbJoinSurface, MbLoftedSurface, MbMeshSurface, MbOffsetSurface, MbPlane, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSphereSurface, MbSpiralSurface, MbSplineSurface, and MbTorusSurface.

virtual double MbSurface::DeviationStepV ( double  u,
double  v,
double  angle 
) const [virtual]

Calculate parameter step for the surface approximation by the deviation angle of the tangent vector along a line with a constant value of v. A step of surface approximation along a curve is chosen in such way, that angular deviation of the tangent to the curve at the next point does not exceed the given value ang.

Parameters:
[in]u- A parameter defining a point on the surface.
[in]v- A parameter defining a point on the surface.
[in]ang- The maximum feasible deviation angle of tangent.
Returns:
A sag value by parameter at given point.

Reimplemented in MbChamferSurface, MbConeSurface, MbCornerSurface, MbCoverSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbElevationSurface, MbEvolutionSurface, MbExpansionSurface, MbExplorationSurface, MbExtrusionSurface, MbFilletSurface, MbGridSurface, MbJoinSurface, MbLoftedSurface, MbMeshSurface, MbOffsetSurface, MbPlane, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSphereSurface, MbSpiralSurface, MbSplineSurface, and MbTorusSurface.

virtual double MbSurface::MetricStepU ( double  u,
double  v,
double  length 
) const [virtual]

Calculate the parameter step for approximation of a surface by the given metric length of a step along a line with a constant value of u.

Parameters:
[in]u- A parameter defining a point on the surface.
[in]v- A parameter defining a point on the surface.
[in]len- The given metric length.
Returns:
A sag value by parameter at given point.

Reimplemented in MbConeSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbEvolutionSurface, MbExtrusionSurface, MbJoinSurface, MbPlane, MbRevolutionSurface, MbSphereSurface, MbSpiralSurface, and MbTorusSurface.

virtual double MbSurface::MetricStepV ( double  u,
double  v,
double  length 
) const [virtual]

Calculate the parameter step for approximation of a surface by the given metric length of a step along a line with a constant value of v.

Parameters:
[in]u- A parameter defining a point on the surface.
[in]v- A parameter defining a point on the surface.
[in]len- The given metric length.
Returns:
A sag value by parameter at given point.

Reimplemented in MbChamferSurface, MbConeSurface, MbCurveBoundedSurface, MbCylinderSurface, MbElementarySurface, MbEvolutionSurface, MbExtrusionSurface, MbFilletSurface, MbPlane, MbRevolutionSurface, MbRuledSurface, MbSectorSurface, MbSphereSurface, MbSpiralSurface, and MbTorusSurface.

double MbSurface::SurfaceStep ( const double &  u,
const double &  v,
bool  alongU,
const MbStepData stepData 
) const

Calculate parameter step for the surface approximation: by diviation sngle of normal; or by its sag value; or by the metric length.

Parameters:
[in]u- First surface parameter.
[in]v- Second surface parameter.
[in]alongU- Along the first (true) or second (false) surface parameter.
[in]stepData- Data for step calculation.
Returns:
A sag value by parameter at given point.
MbeNewtonResult NearestPoints ( const MbSurface surface,
bool  ext0,
const MbCurve3D curve,
bool  ext1,
double &  u0,
double &  v0,
double &  t0,
double &  dmin,
bool  t0Calculated = false 
)

Calculate parameters of the nearest points of surface and curve and the distance between these points.

Parameters:
[in]surface- Surface.
[in]ext0- An attribute of search at the extension of surface.
[in]curve- A curve.
[in]ext1- An attribute of search at the extension of curve.
[in,out]u0- U-parameter of surface point.
[in,out]v0- V-parameter of surface point.
[in,out]t0- A curve point parameter.
[out]dmin- The distance between points.
[in]tCalc- The initialization flag t0
if true, then the output parameters u0, v0 and t0 are considered as initial approximations.
Returns:
Return nr_Success (+1) or nr_Special(0) in a case of successful defining, return nr_Failure(-1) in a case of failure.
MbeNewtonResult NearestPoints ( const MbSurface surface0,
bool  ext0,
const MbSurface surface1,
bool  ext1,
double &  u0,
double &  v0,
double &  u1,
double &  v1,
double &  dmin,
bool  checkCurvilinearBounds 
)

Calculate parameters of the nearest points of surfaces and the distance between these points.

Parameters:
[in]surface0- Surface.
[in]ext0- An attribute of search at the extension of a surface 'surface0'.
[in]surface1- Surface.
[in]ext1- An attribute of search at the extension of a surface 'surface1'.
[out]u0- U-parameter of a point on the surface 'surface0'.
[out]v0- V-parameter of a point on the surface 'surface0'.
[out]u1- U-parameter of a point on the surface 'surface1'.
[out]v1- V-parameter of a point on the surface 'surface1'.
[out]dmin- The distance between points on surfaces.
[in]checkCurvilinearBounds- Check for curvilinear boundaries (if they are).
Returns:
Return nr_Success (+1) or nr_Special(0) in a case of successful defining, return nr_Failure(-1) in a case of failure.
DEPRECATE_DECLARE MbeNewtonResult NearestPoints ( const MbSurface surface0,
bool  ext0,
const MbSurface surface1,
bool  ext1,
double &  u0,
double &  v0,
double &  u1,
double &  v1,
double &  dmin 
) [inline]

Calculate parameters of the nearest points of surfaces and the distance between these points. Curvilinear boundaries of surfaces are not taken into account.

Parameters:
[in]surface0- Surface.
[in]ext0- An attribute of search at the extension of a surface 'surface0'.
[in]surface1- Surface.
[in]ext1- An attribute of search at the extension of a surface 'surface1'.
[out]u0- U-parameter of a point on the surface 'surface0'.
[out]v0- V-parameter of a point on the surface 'surface0'.
[out]u1- U-parameter of a point on the surface 'surface1'.
[out]v1- V-parameter of a point on the surface 'surface1'.
[out]dmin- The distance between points on surfaces.
[in]checkCurvilinearBounds- Check for curvilinear boundaries (if they are).
Returns:
Return nr_Success (+1) or nr_Special(0) in a case of successful defining, return nr_Failure(-1) in a case of failure.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines