C3D Kernel  104598
Classes | Functions
Construction of Surfaces
Geometric Construction Methods
Collaboration diagram for Construction of Surfaces:

Classes

class  MbSpine
 Curvilinear spine for sweep surface. More...
struct  SpineData
 A spine curve and its neighborhood. More...

Functions

MbResultType OctaLattice (const MbCartPoint3D &point_0, const MbCartPoint3D &point_1, const MbCartPoint3D &point_2, double xRadius, double yRadius, double zRadius, size_t xCount, size_t yCount, size_t zCount, const MbSNameMaker &names, MbSolid *&result)
 Create a lattice shell.
MbResultType ElementarySurface (const MbCartPoint3D &point0, const MbCartPoint3D &point1, const MbCartPoint3D &point2, MbeSpaceType surfaceType, MbSurface *&result)
 Create an elementary surface.
MbResultType SplineSurface (const MbCartPoint3D &pUMinVMin, const MbCartPoint3D &pUMaxVMin, const MbCartPoint3D &pUMaxVMax, const MbCartPoint3D &pUMinVMax, size_t uCount, size_t vCount, size_t uDegree, size_t vDegree, MbSurface *&result)
 Create a planar NURBS - surface.
MbResultType SplineSurface (const SArray< MbCartPoint3D > &pointList, const SArray< double > &weightList, size_t uCount, size_t vCount, size_t uDegree, const SArray< double > &uKnotList, bool uClosed, size_t vDegree, const SArray< double > &vKnotList, bool vClosed, MbSurface *&result)
 Create a NURBS - surface.
MbResultType ExtrusionSurface (MbCurve3D &curve, const MbVector3D &direction, bool simplify, MbSurface *&result)
 Create an extrusion surface.
MbResultType RevolutionSurface (MbCurve3D &curve, const MbCartPoint3D &origin, const MbVector3D &axis, double angle, bool simplify, MbSurface *&result)
 Create a revolution surface.
MbResultType ExpansionSurface (MbCurve3D &curve, MbCurve3D &spine, MbCurve3D *curve1, MbSurface *&result)
 Create an expansion surface.
MbResultType EvolutionSurface (MbCurve3D &curve, MbCurve3D &spine, MbSurface *&result)
 Create an evolution surface.
MbResultType SpiralSurface (MbCurve3D &curve, const MbCartPoint3D &p0, const MbCartPoint3D &p1, const MbCartPoint3D &p2, double step, MbSurface *&result)
 Create a spiral surface.
MbResultType SectorSurface (MbCurve3D &curve, const MbCartPoint3D &point, MbSurface *&result)
 Create a sectorial surface.
MbResultType RuledSurface (MbCurve3D &curve1, MbCurve3D &curve2, bool simplify, MbSurface *&result)
 Create a ruled surface.
MbResultType CornerSurface (MbCurve3D &curve1, MbCurve3D &curve2, MbCurve3D &curve3, MbSurface *&result)
 Create a triangular surface.
MbResultType CoverSurface (MbCurve3D &curve1, MbCurve3D &curve2, MbCurve3D &curve3, MbCurve3D &curve4, MbSurface *&result)
 Create a bilinear surface.
MbResultType LoftedSurface (const RPArray< MbCurve3D > &curveList, bool closed, const MbVector3D &begDirection, const MbVector3D &endDirection, MbSurface *&result)
 Create a surface by a set of curves.
MbResultType LoftedSurface (const RPArray< MbCurve3D > &curveList, MbCurve3D &spine, MbSurface *&result, bool isSimToEvol=true)
 Create a surface from a set of curves and a spine curve.
MbResultType MeshSurface (const RPArray< MbCurve3D > &uCurveList, const RPArray< MbCurve3D > &vCurveList, MbSurface *&result)
 Create a surface constructed by the grid curves.
MbResultType OffsetSurface (MbSurface &surface, double distance, MbSurface *&result)
 Create an offset surface.
MbResultType DeformedSurface (MbSurface &surface, size_t uCount, size_t vCount, size_t uDegree, size_t vDegree, double dist, MbSurface *&result)
 Create a deformed surface.
MbResultType ExtendedSurface (MbSurface &surface, double uMin, double uMax, double vMin, double vMax, MbSurface *&result)
 Create an extended surface.
MbResultType BoundedSurface (MbSurface &surface, const RPArray< MbCurve > &boundList, MbSurface *&result)
 Create a surface with the given boundary.
MbResultType BoundedSurface (const MbPlacement3D &place, const MbRegion &region, MbSurface *&result)
 Create a surface with the given boundary.
MbResultType NurbsSurface (const MbSurface &surf, VERSION version, MbSurface *&resSurface)
 Create a NURBS surface copy with two-dimensional boundaries.
MbResultType SimplexSplineSurface (SArray< MbCartPoint3D > &pList, MbSurface *&resSurface)
 Create a simplex spline surface.
MbResultType TriBezierSurface (ptrdiff_t k, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p3, MbSurface *&resSurface)
 Create a triangular Bezier surface.
MbResultType TriSplineSurface (const MbCartPoint3D &p0, const MbCartPoint3D &p1, const MbCartPoint3D &p2, const MbCartPoint3D &p3, ptrdiff_t d, ptrdiff_t count, MbSurface *&resSurface)
 Create a triangular B-spline surface.
MbResultType GridSurface (MbGrid &grid, MbSurface *&result)
 Create a surface from a points grid.
MbResultType MiddlePlaces (const MbCurve3D &curve1, const MbCurve3D &curve2, std::vector< MbPlacement3D > &places)
 Create median planes.
MbSurfaceCreateEvolutionSurface (const MbCurve3D &curve, const MbSpine &spine, bool samec, bool sames=false)
 Create an evolution surface.
MbSurfaceCreateEvolutionSurface (const MbCurve3D &curve, const MbCurve3D &spine, bool samec, bool sames)
 Create an evolution surface.
MbSurfaceCreatePipeSurface (const MbCurve3D &curve, const MbCurve3D &spine, const MbCurve3D &spineDirection, bool samec, bool sames, bool samed)
 Create an evolution surface.
MbSmoothSurfaceCreateKerbSurface (const MbSurface &surface1, SArray< MbCartPoint > &points1, const MbSurface &surface2, SArray< MbCartPoint > &points2, MbeSmoothForm form, double distance1, double distance2, double conic, const MbSurfaceIntersectionCurve &curve, SArray< double > &params, bool byFirstSurface, bool even)
 Create the fillet surface.

Common functions of surface

static MbSurfaceMbExplorationSurface::Create (const MbCurve3D &curve, const MbSpine &spine, bool samec, bool sames, MbFunction &_scaling, MbFunction &_winding)
 Create an evolution surface.

Function Documentation

MbResultType OctaLattice ( const MbCartPoint3D point_0,
const MbCartPoint3D point_1,
const MbCartPoint3D point_2,
double  xRadius,
double  yRadius,
double  zRadius,
size_t  xCount,
size_t  yCount,
size_t  zCount,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a lattice shell on the three control points of the lattice parameters and the number of elements.

Parameters:
[in]point0- The origin of the surface local coordinate system.
[in]point1- A point specifying the direction of X-axis of the local system and the size of element.
[in]point2- A point specifying the direction of Y-axis of the local system.
[in]xRadius- The step along the first axis of the local coordinate system.
[in]yRadius- The step along the second axis of the local coordinate system.
[in]zRadius- The step along the third axis of the local coordinate system.
[in]xCount- The number of cells along a first axis of the local coordinate system.
[in]yCount- The number of cells along a second axis of the local coordinate system.
[in]zCount- The number of cells along a third axis of the local coordinate system.
[out]result- The constructed solid.
Returns:
Returns operation result code.
MbResultType ElementarySurface ( const MbCartPoint3D point0,
const MbCartPoint3D point1,
const MbCartPoint3D point2,
MbeSpaceType  surfaceType,
MbSurface *&  result 
)

Create one of elementary surfaces from three points and a type:
surfaceType == st_Plane - a plane
surfaceType == st_ConeSurface - a conical surface
surfaceType == st_CylinderSurface - a cylindrical surface
surfaceType == st_SphereSurface - a spherical surface
surfaceType == st_TorusSurface - a torus surface

Parameters:
[in]point0- The origin of the surface local coordinate system.
[in]point1- A point specifying the direction of X-axis of the local system and the surface radius.
[in]point2- A point specifying the direction of Y-axis of the local system.
[in]surfaceType- The surface type.
[out]result- The constructed surface.
Returns:
Returns operation result code.
MbResultType SplineSurface ( const MbCartPoint3D pUMinVMin,
const MbCartPoint3D pUMaxVMin,
const MbCartPoint3D pUMaxVMax,
const MbCartPoint3D pUMinVMax,
size_t  uCount,
size_t  vCount,
size_t  uDegree,
size_t  vDegree,
MbSurface *&  result 
)

Create a planar NURBS - surface given the corner points.

Parameters:
[in]pUMinVMin- A corner point of a surface.
[in]pUMaxVMin- A corner point of a surface.
[in]pUMaxVMax- A corner point of a surface.
[in]pUMinVMax- A corner point of a surface.
[in]uCount- A number of points by U direction.
[in]vCount- A number of points by V direction.
[in]uDegree- Splines degree by U.
[in]vDegree- Splines degree by V.
[out]result- The spline surface.
Returns:
Returns operation result code.
MbResultType SplineSurface ( const SArray< MbCartPoint3D > &  pointList,
const SArray< double > &  weightList,
size_t  uCount,
size_t  vCount,
size_t  uDegree,
const SArray< double > &  uKnotList,
bool  uClosed,
size_t  vDegree,
const SArray< double > &  vKnotList,
bool  vClosed,
MbSurface *&  result 
)

Create a NURBS - surface given arrays of points and weights.
container 'weightList' can be empty.
container 'uKnotList' can be empty.
container 'vKnotList' can be empty.

Parameters:
[in]pointList- An array of points.
[in]weightList- An array of weights.
[in]uCount- The size of point array by U.
[in]vCount- The size of point array by V.
[in]uDegree- Splines degree by U.
[in]uKnotList- A knot vector by U.
[in]uClosed- Closedness by U.
[in]vDegree- Splines degree by V.
[in]vKnotList- A knot vector by V.
[in]vClosed- Closedness by V.
[out]result- The spline surface.
Returns:
Returns operation result code.
MbResultType ExtrusionSurface ( MbCurve3D curve,
const MbVector3D direction,
bool  simplify,
MbSurface *&  result 
)

Create a surface of a curve extrusion.

Parameters:
[in]curve- The generating curve.
[in]direction- An extrusion vector.
[in]simplify- Simplify a surface if it's possible.
[out]result- An extrusion surface.
Returns:
Returns operation result code.
MbResultType RevolutionSurface ( MbCurve3D curve,
const MbCartPoint3D origin,
const MbVector3D axis,
double  angle,
bool  simplify,
MbSurface *&  result 
)

Create a curve revolution surface.

Parameters:
[in]curve- The generating curve.
[in]origin- The rotation axis origin.
[in]axis- The rotation axis direction.
[in]angle- A rotation angle.
[in]simplify- Simplify a surface if it's possible.
[out]result- The revolution surface.
Returns:
Returns operation result code.
MbResultType ExpansionSurface ( MbCurve3D curve,
MbCurve3D spine,
MbCurve3D curve1,
MbSurface *&  result 
)

Create a surface of a curve sweeping.

Parameters:
[in]curve- The generating curve.
[in]spine- The spine curve.
[out]result- The expansion surface.
Returns:
Returns operation result code.
MbResultType EvolutionSurface ( MbCurve3D curve,
MbCurve3D spine,
MbSurface *&  result 
)

Create an evolution surface from the generating curve and the guide curve.
If 'spine' has type st_ConeSpiral, the result of the construction is a spiral surface.

Parameters:
[in]curve- The generating curve.
[in]spine- The spine curve.
[out]result- The evolution surface or a spiral surface.
Returns:
Returns operation result code.
MbResultType SpiralSurface ( MbCurve3D curve,
const MbCartPoint3D p0,
const MbCartPoint3D p1,
const MbCartPoint3D p2,
double  step,
MbSurface *&  result 
)

Create a spiral surface from a generating line and three points.

Parameters:
[in]curve- The generating curve of a spiral.
[in]p0- The origin of local coordinate system (LCS).
[in]p1- A point specifying Z-axis of LCS.
[in]p2- A point specifying X-axis of LCS.
[in]step- A pitch.
[out]result- A spiral surface.
Returns:
Returns operation result code.
MbResultType SectorSurface ( MbCurve3D curve,
const MbCartPoint3D point,
MbSurface *&  result 
)

Create a sectorial surface from a curve and a point.

Parameters:
[in]curve- The generating curve.
[in]point- A point.
[out]result- The ruled surface in a form of a sector.
Returns:
Returns operation result code.
MbResultType RuledSurface ( MbCurve3D curve1,
MbCurve3D curve2,
bool  simplify,
MbSurface *&  result 
)

Create a ruled surface from two curves.

Parameters:
[in]curve1- The first generating curve.
[in]curve2- The second generating curve.
[in]simplify- Simplify a surface if it's possible.
[out]result- The ruled surface.
Returns:
Returns operation result code.
MbResultType CornerSurface ( MbCurve3D curve1,
MbCurve3D curve2,
MbCurve3D curve3,
MbSurface *&  result 
)

Create a triangular surface from three curves.

Parameters:
[in]curve1- The first curve.
[in]curve2- The second curve.
[in]curve3- The third curve.
[out]result- The triangular surface by three curves.
Returns:
Returns operation result code.
MbResultType CoverSurface ( MbCurve3D curve1,
MbCurve3D curve2,
MbCurve3D curve3,
MbCurve3D curve4,
MbSurface *&  result 
)

Create a bilinear surface from four curves.

Parameters:
[in]curve1- The first curve.
[in]curve2- The second curve.
[in]curve3- The third curve.
[in]curve4- The fourth curve.
[out]result- The bilinear surface from four curves.
Returns:
Returns operation result code.
MbResultType LoftedSurface ( const RPArray< MbCurve3D > &  curveList,
bool  closed,
const MbVector3D begDirection,
const MbVector3D endDirection,
MbSurface *&  result 
)

Create a surface by a set of curves.
begDirection direction at the begining of the surface can be of zero length.
endDirection direction at the end of the surface can be of zero length.

Parameters:
[in]curveList- A set of generating curves along U direction.
[in]closed- Closedness by V direction.
[in]begDirection- The vector of direction at the beginning of the surface.
[in]endDirection- The vector of direction at the end of the surface.
[out]result- The surface from the set of curves.
Returns:
Returns operation result code.
MbResultType LoftedSurface ( const RPArray< MbCurve3D > &  curveList,
MbCurve3D spine,
MbSurface *&  result,
bool  isSimToEvol = true 
)

Create a surface from a set of curves and a spine curve.

Parameters:
[in]curveList- A set of generating curves along U direction.
[in]spine- The spine curve.
[out]result- The surface from a set of curves and a spine curve.
Returns:
Returns operation result code.
MbResultType MeshSurface ( const RPArray< MbCurve3D > &  uCurveList,
const RPArray< MbCurve3D > &  vCurveList,
MbSurface *&  result 
)

Create a surface constructed by the grid curves given two sets of curves.

Parameters:
[in]uCurveList- A curve set along U direction.
[in]vCurveList- A curve set along V direction.
[out]result- The surface constructed by the grid curves.
Returns:
Returns operation result code.
MbResultType OffsetSurface ( MbSurface surface,
double  distance,
MbSurface *&  result 
)

Create an offset surface to a given surface.

Parameters:
[in]surface- The initial surface.
[in]distance- The offset distance (signed).
Returns:
Returns operation result code.
Parameters:
[out]result- The offset surface.
MbResultType DeformedSurface ( MbSurface surface,
size_t  uCount,
size_t  vCount,
size_t  uDegree,
size_t  vDegree,
double  dist,
MbSurface *&  result 
)

Create a deformed surface from the initial surface.

Parameters:
[in]surface- The initial surface.
[in]uCount- A number of points by U direction.
[in]vCount- A number of points by V direction.
[in]uDegree- Splines degree by U.
[in]vDegree- Splines degree by V.
[in]dist- Shift along the normal.
[out]result- The deformed surface.
Returns:
Returns operation result code.
MbResultType ExtendedSurface ( MbSurface surface,
double  uMin,
double  uMax,
double  vMin,
double  vMax,
MbSurface *&  result 
)

Create an extended surface from the initial surface.

Parameters:
[in]surface- The initial surface.
[in]uMin- The minimal parameter value by U.
[in]uMax- The maximal parameter value by U.
[in]vMin- The minimal parameter value by V.
[in]vMax- The maximal parameter value by V.
[out]result- The extended surface.
Returns:
Returns operation result code.
MbResultType BoundedSurface ( MbSurface surface,
const RPArray< MbCurve > &  boundList,
MbSurface *&  result 
)

Create a surface with the given boundary from an array of two-dimensional curves.
Container 'boundList' can be empty.

Parameters:
[in]surface- The initial surface.
[in]boundList- An array of two-dimensional boundaries in the form of curves (the first curve is an outer contour).
[out]result- The surface bounded by the curves.
Returns:
Returns operation result code.
MbResultType BoundedSurface ( const MbPlacement3D place,
const MbRegion region,
MbSurface *&  result 
)

Create a surface with the given boundary from an array of two-dimensional curves.

Parameters:
[in]place- The local coordinate system of a plane.
[in]region- An array of two-dimensional boundaries in the form of region (the first contour is outer).
[out]result- The surface bounded by the curves.
Returns:
Returns operation result code.
MbResultType NurbsSurface ( const MbSurface surf,
VERSION  version,
MbSurface *&  resSurface 
)

Create a NURBS surface copy with two-dimensional boundaries by projecting of the spatial boundaries
(the boundary space curves are considered to belong to the surface)

Parameters:
[in]surf- The initial surface.
[in]version- The version.
[out]resSurface- The spline surface (bounded by the curves).
Returns:
Returns operation result code.
MbResultType SimplexSplineSurface ( SArray< MbCartPoint3D > &  pList,
MbSurface *&  resSurface 
)

Create a simplex spline surface from a point array.

Parameters:
[in]pList- An array of points.
[out]resSurface- The simplex spline surface.
Returns:
Returns operation result code.
MbResultType TriBezierSurface ( ptrdiff_t  k,
MbCartPoint3D p1,
MbCartPoint3D p2,
MbCartPoint3D p3,
MbSurface *&  resSurface 
)

Create a triangular Bezier surface from three points.

Parameters:
[in]k- The surface order.
[in]p1- The first point.
[in]p2- The second point.
[in]p3- The third point.
[out]resSurface- The triangular Bezier surface.
Returns:
Returns operation result code.
MbResultType TriSplineSurface ( const MbCartPoint3D p0,
const MbCartPoint3D p1,
const MbCartPoint3D p2,
const MbCartPoint3D p3,
ptrdiff_t  d,
ptrdiff_t  count,
MbSurface *&  resSurface 
)

Create a triangular B-spline surface from three points.

Parameters:
[in]p0- The first point.
[in]p1- The second point.
[in]p2- The third point.
[in]d- The surface order.
[out]resSurface- The triangular B-spline surface.
Returns:
Returns operation result code.
MbResultType GridSurface ( MbGrid grid,
MbSurface *&  result 
)

Create a surface from a points grid and triangulation.
The triangles array should form a regular triangulation.

Parameters:
[in]grid- A triangulation.
[out]result- The surface on a point set.
Returns:
Returns operation result code.
MbResultType MiddlePlaces ( const MbCurve3D curve1,
const MbCurve3D curve2,
std::vector< MbPlacement3D > &  places 
)

Create median planes from two curves.

Parameters:
[in]curve1- The first curve.
[in]curve2- The second curve.
[out]places- The set of coordinate systems which determine the planes.
Returns:
Returns operation result code.
Warning:
Under development.
MbSurface& CreateEvolutionSurface ( const MbCurve3D curve,
const MbSpine spine,
bool  samec,
bool  sames = false 
)

Create an evolution surface.

Parameters:
[in]curve- Generating curve
[in]spine- Guide curve
[in]samec- Attribute of usage of original of generating curve, not a copy.
[in]sames- Attribute of usage of original of guide curve (spine), not a copy.
Returns:
Return the created surface.
MbSurface& CreateEvolutionSurface ( const MbCurve3D curve,
const MbCurve3D spine,
bool  samec,
bool  sames 
)

Create an evolution surface.

Parameters:
[in]curve- Generating curve
[in]spine- Guide curve
[in]samec- Attribute of usage of original of generating curve, not a copy
[in]sames- Attribute of usage of original of guide curve, not a copy
Returns:
Return the created surface.
MbSurface& CreatePipeSurface ( const MbCurve3D curve,
const MbCurve3D spine,
const MbCurve3D spineDirection,
bool  samec,
bool  sames,
bool  samed 
)

Create an evolution surface.

Parameters:
[in]curve- Generating curve
[in]spine- Guide curve
[in]spineDirection- Guide curve for guide curve
[in]samec- Attribute of usage of original of generating curve, not a copy
[in]sames- Attribute of usage of original of guide curve, not a copy
[in]samed- Attribute of usage of original of spineDirection curve, not a copy
Returns:
Return the created surface.
static MbSurface* MbExplorationSurface::Create ( const MbCurve3D curve,
const MbSpine spine,
bool  samec,
bool  sames,
MbFunction _scaling,
MbFunction _winding 
) [static]

Create an evolution surface.

Parameters:
[in]curve- Generating curve
[in]spine- Guide curve
[in]samec- Attribute of usage of original of generating curve, not a copy
[in]sFunc- The function of curve scaling.
[in]rFunc- The function of curve rotation.
Returns:
Return the created surface.
MbSmoothSurface* CreateKerbSurface ( const MbSurface surface1,
SArray< MbCartPoint > &  points1,
const MbSurface surface2,
SArray< MbCartPoint > &  points2,
MbeSmoothForm  form,
double  distance1,
double  distance2,
double  conic,
const MbSurfaceIntersectionCurve curve,
SArray< double > &  params,
bool  byFirstSurface,
bool  even 
)

Create the fillet surface with the edge.

Parameters:
[in]surface1- The conjugate surface.
[in]points1- Points for curve on the conjugated surface.
[in]surface2- The conjugate surface.
[in]points2- Points for curve on the conjugated surface.
[in]form- The surface type
[in]distance1- Fillet radius with sign for surface of crve1 curve
[in]distance2- Fillet radius with sign for surface of crve2 curve
[in]conic- Coefficient of shape is changed from 0.05 to 0.95 (if 0.5 - circular arc)
[in]curve- The edge curve
[in]params- The parameters of new the surface by first direction (u)
[in]byFirstSurface- Is the first or second conjugate surface smooth with the new surface.
[in]even- Uniform parametrization by arc (v) or not
Returns:
Return the created surface.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines