C3D Kernel  104598
Functions
Shell Modeling
Geometric Construction Methods
Collaboration diagram for Shell Modeling:

Functions

MbResultType ExtrusionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbVector3D &direction, const ExtrusionValues &params, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result)
 Create a shell by extrusion of planar contours.
MbResultType RevolutionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbAxis3D &axis, const RevolutionValues &params, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result)
 Create a shell by revolution of planar contours.
void CreateExtrusionCutSurfaces (const MbSurface &surface, const std::vector< SPtr< MbContour >> &contours, const MbVector3D &direction, ExtrusionValues &params, VERSION version, MbResultType &resType, std::vector< std::pair< SPtr< MbSurface >, int >> &surfAndDir)
 Create cutter surfaces for extrusion of planar contours.
MbResultType OffsetPhantom (const MbSolid &solid, RPArray< MbFace > &faces, SweptValues &params, const MbSNameMaker &operNames, MbFaceShell *&result, size_t *hpShellFaceInd=NULL)
 Create phantom offset surfaces for faces of a shell.
MbResultType LocalCubePhantom (const MbSolid &solid, const MbPlacement3D &place, bool bScale, const MbSNameMaker &operNames, MbSolid *&result)
 Create a phantom of a bounding box in local coordinate system.
MbResultType PatchShell (const RPArray< MbPatchCurve > &initEdges, const PatchValues &p, const MbSNameMaker &n, MbSolid *&result)
 Create a patch.
MbResultType PatchShell (const RPArray< MbCurve3D > &initCurves, const PatchValues &p, const MbSNameMaker &n, MbSolid *&result)
 Create a patch.
MbResultType LoftedShell (const RPArray< SArray< MbCartPoint3D > > &points, const MbSNameMaker &names, SimpleName name, MbSolid *&result)
 Create an open solid given a set of point groups.
MbResultType LoftedShell (const RPArray< MbCurve3D > &curves, const MbSNameMaker &names, SimpleName name, MbSolid *&result)
 Create an open solid from a set of curves.
MbResultType OffsetShell (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbFace > &initFaces, bool checkFacesConnection, SweptValues &p, const MbSNameMaker &operNames, bool copyFaceAttrs, MbSolid *&result)
 Create an open offset solid.
MbResultType NurbsSurfacesShell (NurbsSurfaceValues &params, const MbSNameMaker &operNames, bool isPhantom, MbSolid *&result, IProgressIndicator *progBar)
 Create an open solid from a point set.
MbResultType MeshShell (MeshSurfaceValues &pars, const MbSNameMaker &operNames, bool isPhantom, MbSolid *&result)
 Create an open solid from a set of curves.
MbResultType TruncateShell (MbSolid &initSolid, SArray< size_t > &selIndices, MbeCopyMode initCopyMode, const MbSNameMaker &operNames, RPArray< MbSpaceItem > &truncatingItems, SArray< bool > &truncatingOrients, bool truncatingSplitMode, MbeCopyMode truncatingCopyMode, const MbMergingFlags &mergeFlags, MbSolid *&result, MbPlacement3D *&resultPlace)
 Truncate an open solid.
MbResultType RuledShell (RuledSurfaceValues &pars, const MbSNameMaker &operNames, bool isPhantom, MbSolid *&result)
 Create an open ruled solid.
void CheckRuledCurve (const MbCurve3D &curve0, const MbCurve3D &curve1, bool &isInverted1, bool &isShifted1, VERSION version)
 Check the curve for a ruled solid creation.
bool CheckRuledParams (const MbCurve3D &curve, SArray< double > &params, bool isAscending)
 Check the curve parameters for creation of a ruled solid.
MbResultType ExtensionShell (MbSolid &solid, MbeCopyMode sameShell, MbFace &face, const RPArray< MbCurveEdge > &edges, const ExtensionValues &params, const MbSNameMaker &operNames, MbSolid *&result)
 Create an extension of an open solid by extrusion.
MbResultType JoinShell (MbSurfaceCurve &curve1, MbSurfaceCurve &curve2, JoinSurfaceValues &parameters, const MbSNameMaker &operNames, MbSolid *&result)
 Create a joint solid from two curves.
MbResultType JoinShell (const RPArray< MbCurveEdge > &edges1, const SArray< bool > &orients1, const RPArray< MbCurveEdge > &edges2, const SArray< bool > &orients2, const MbMatrix3D &matr1, const MbMatrix3D &matr2, JoinSurfaceValues &parameters, const MbSNameMaker &operNames, MbSolid *&result, bool isPhantom=false)
 Create a joint solid from two sets of edges.
MbResultType DivideShell (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbCurveEdge > &edges, const MbSNameMaker &operNames, MbSolid *&result)
 Divide a shell into parts using a given set of edges.
void CheckJoinedCurve (const MbCurve3D &curve1, const MbCurve3D &curve2, bool &isInverted1, bool &isShifted1, VERSION version)
 Check a curve for creation a joint solid.
MbResultType FacesFillet (const MbSolid &solid1, const MbFace &face1, const MbSolid &solid2, const MbFace &face2, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Create a solid of two non-connected faces.
MbResultType ElementaryShell (const MbSurface &surface, const MbSNameMaker &names, MbSolid *&result)
 Create a solid given an elementary surface.
MbResultType SurfaceShell (const MbSurface &surface, const MbSNameMaker &names, MbSolid *&result)
 Create a solid given a surface.
MbResultType CutShellSilhouetteContour (MbSolid &solid, MbeCopyMode sameShell, const MbVector3D &eye, const VERSION version, RPArray< MbCurve3D > &outlineCurves, RPArray< MbSolid > &result)
 Cut a solid by a silhouette contour.
MbeStitchResType StitchToOneSheetSolid (const RPArray< const MbSolid > &initialSolids, const MbSNameMaker &operNames, bool formSolidBody, double stitchPrecision, MbSolid *&resultSolid)
 Stitch faces of several solids into single solid.
MbResultType LatheCurves (const MbSolid &solid, const MbAxis3D *axis, double angle, MbPlacement3D &position, RPArray< MbCurve > &curves)
 Search for lathe axis and construction of lathe elements for the solid.
MbResultType LatheCurve (const MbCurve3D &generatrix, const MbPlacement3D &position, RPArray< MbCurve > &curves)
 Building of curves for lathe section for given curve.
MbResultType MedianShell (MbSolid &solid, MbeCopyMode sameShell, const std::vector< c3d::IndicesPair > &faceIndexes, const MedianShellValues &params, const MbSNameMaker &operNames, MbSolid *&result)
 Create a median shell by solid faces, based on equidistant surfaces.
bool GetSweptValue (const MbSweptData &sweptData, const MbAxis3D &axis, const MbVector3D &direction, const bool rotation, const bool operationDirection, const MbCartPoint3D &point, double &value)
 Compute the extrusion depth or the rotation angle.
void GetSweptImagePosition (const MbCurve3D &generatrix, const MbSurface &surface, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, MbCartPoint &imagePosition, MbResultType &resType)
 Get the initial approximation for image calculation while rotating/extruding.
void GetRangeToSurface (const MbSurface &surface, const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, const bool operationDirection, const MbCartPoint &imagePosition, double range[2], MbRect &rectOnSurface, MbResultType &resType)
 Calculate the distances/angles from generating curve to the surface while rotating/extruding.
void AnalyzeSurfaceRelationToSweptOperation (const MbSurface &cuttingSurface, const MbCartPoint &imagePosition, const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, bool operationDirection, bool &relativeSense, MbResultType &resType)
 Determine the orientation of a cutting surface relative to the extrusion/revolution solid.
void FindPolesAndSeamsInContour (const MbSurface &surface, const MbContour &contour, std::vector< size_t > &seamsAndPoles)
 Find contour segments corresponding to the seams and poles.
MbResultType EvolutionNormalize (const MbSurface &surface, const RPArray< MbContour > &contours, const MbCurve3D &guide, const EvolutionValues &parameters, MbAxis3D &axis, double &angle, VERSION version)
 Determine the orientation for a generating contour and for a guide curve of kinematics (evolution).

Function Documentation

MbResultType ExtrusionShell ( const MbSurface surface,
RPArray< MbContour > &  contours,
const MbVector3D direction,
const ExtrusionValues params,
const MbSNameMaker operNames,
RPArray< MbSNameMaker > &  cNames,
MbFaceShell *&  result 
)

Create a shell by extrusion of planar contours.

Parameters:
[in]surface- A surface that contains the contours.
[in]contours- A set of planar contours.
[in]direction- An extrusion direction.
[in]params- Parameters of a shell creation.
[in]operNames- An object defining a name of the operation.
[in]cNames- A set of objects defining names of the contours.
[out]result- Result of the operation - a shell.
Returns:
Returns operation result code.
MbResultType RevolutionShell ( const MbSurface surface,
RPArray< MbContour > &  contours,
const MbAxis3D axis,
const RevolutionValues params,
const MbSNameMaker operNames,
RPArray< MbSNameMaker > &  cNames,
MbFaceShell *&  result 
)

Create a shell by revolution of planar contours.

Parameters:
[in]surface- A surface that contains the contours.
[in]contours- A set of planar contours.
[in]axis- Rotation axis.
[in]params- Parameters of a shell creation.
[in]operNames- An object defining a name of the operation.
[in]cNames- A set of objects defining names of the contours.
[out]result- Result of the operation - a shell.
Returns:
Returns operation result code.
void CreateExtrusionCutSurfaces ( const MbSurface surface,
const std::vector< SPtr< MbContour >> &  contours,
const MbVector3D direction,
ExtrusionValues params,
VERSION  version,
MbResultType resType,
std::vector< std::pair< SPtr< MbSurface >, int >> &  surfAndDir 
)

Create cutter surfaces for extrusion of planar contours and define directions of extrusions.

Parameters:
[in]surface- A surface that contains the contours.
[in]contours- A set of planar contours.
[in]direction- An extrusion direction.
[in]params- Parameters of a shell creation.
[in]version- The version of construction.
[out]resType- Operation result code.
[out]surfAndDir-Result of the operation - surfaces and directions relative to parameter direction.
MbResultType OffsetPhantom ( const MbSolid solid,
RPArray< MbFace > &  faces,
SweptValues params,
const MbSNameMaker operNames,
MbFaceShell *&  result,
size_t *  hpShellFaceInd = NULL 
)

Create phantom offset surfaces for faces of a shell,
except the faces with specified indices and store them in array 'surfaces'.
After finish working with the surfaces they should be deleted.

Parameters:
[in]solid- The initial solid.
[in]faces- An array of shelling faces of the solid.
[in]params- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The operation result.
[out]hpShellFaceInd- The face number in the initial shell for a hot-point creation.
Returns:
Returns the creation result code.
MbResultType LocalCubePhantom ( const MbSolid solid,
const MbPlacement3D place,
bool  bScale,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Create a phantom of a bounding box in local coordinate system.

Parameters:
[in]solid- The initial solid.
[in]place- A local coordinate system (LCS).
[in]bScale- Whether the LCS is scaling.
[in]operNames- An object for naming the new objects.
[out]result- The phantom of the local bounding box.
Returns:
Returns the creation result code.
MbResultType PatchShell ( const RPArray< MbPatchCurve > &  initEdges,
const PatchValues p,
const MbSNameMaker n,
MbSolid *&  result 
)

Create a patch from the specified edges.

Parameters:
[in]initEdges- A set of edges.
[in]p- The operation parameters.
[in]n- An object for naming the new objects.
[out]result- The required patch.
Returns:
Returns operation result code.
MbResultType PatchShell ( const RPArray< MbCurve3D > &  initCurves,
const PatchValues p,
const MbSNameMaker n,
MbSolid *&  result 
)

Create a patch from the specified curves.

Parameters:
[in]initCurves- A set of curves.
[in]p- The operation parameters.
[in]n- An object for naming the new objects.
[out]result- The required patch.
Returns:
Returns operation result code.
MbResultType LoftedShell ( const RPArray< SArray< MbCartPoint3D > > &  points,
const MbSNameMaker names,
SimpleName  name,
MbSolid *&  result 
)

Create an open lofted solid whose profiles are defined by splines created from the specified groups of points.

Parameters:
[in]points- A point set.
[in]names- An object for naming the new objects.
[in]name- An identifier.
[out]result- The required shell.
Returns:
Returns operation result code.
MbResultType LoftedShell ( const RPArray< MbCurve3D > &  curves,
const MbSNameMaker names,
SimpleName  name,
MbSolid *&  result 
)

Create an open lofted solids whose profiles are defined by the curves.

Parameters:
[in]curves- A set of curves.
[in]names- An object for naming the new objects.
[in]name- An identifier.
[out]result- The required shell.
Returns:
Returns operation result code.
MbResultType OffsetShell ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbFace > &  initFaces,
bool  checkFacesConnection,
SweptValues p,
const MbSNameMaker operNames,
bool  copyFaceAttrs,
MbSolid *&  result 
)

Create an open offset solid on the basis of the faces 'initFaces'.

Parameters:
[in]solid- The initial solid.
[in]sameShell- Whether to copy the solid.
[in]initFaces- Faces of the initial solid for construction.
[in]checkFacesConnection- Whether to check connectivity of the specified faces.
[in]p- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]copyFaceAttrs- Copy attributes of initial faces to offset faces.
[out]result- The offset shell.
Returns:
Returns operation result code.
MbResultType NurbsSurfacesShell ( NurbsSurfaceValues params,
const MbSNameMaker operNames,
bool  isPhantom,
MbSolid *&  result,
IProgressIndicator progBar 
)

Create an open solid from a point set specified in parameters.

Parameters:
[in]params- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]isPhantom- Create in the phantom mode.
[out]result- The required shell.
[in,out]progBar- A progress indicator of the operation.
Returns:
Returns operation result code.
MbResultType MeshShell ( MeshSurfaceValues pars,
const MbSNameMaker operNames,
bool  isPhantom,
MbSolid *&  result 
)

Create an open solid from a set of curves specified in the parameters.

Parameters:
[in]pars- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]isPhantom- Create in the phantom mode.
[out]result- The required shell.
Returns:
Returns operation result code.
MbResultType TruncateShell ( MbSolid initSolid,
SArray< size_t > &  selIndices,
MbeCopyMode  initCopyMode,
const MbSNameMaker operNames,
RPArray< MbSpaceItem > &  truncatingItems,
SArray< bool > &  truncatingOrients,
bool  truncatingSplitMode,
MbeCopyMode  truncatingCopyMode,
const MbMergingFlags mergeFlags,
MbSolid *&  result,
MbPlacement3D *&  resultPlace 
)

Create an open solid by truncation the initial solid.

Parameters:
[in]initSolid- The initial shell.
[in]selIndices- The numbers of selected faces (if the array is empty, the whole shell is selected).
[in]initCopyMode- Whether to copy the initial shells.
[in]operNames- An object for naming the new objects.
[in]truncatingItems- Truncating objects.
[in]truncatingOrients- The truncating objects orientation.
[in]truncatingSplitMode- The curves are used as parting lines.
[in]truncatingCopyMode- Whether to copy the truncating shells.
[in]mergeFlags- Control flags of shell items merging.
[out]result- The truncated shell.
[out]resultPlace- A phantom direction of truncation.
Returns:
Returns operation result code.
MbResultType RuledShell ( RuledSurfaceValues pars,
const MbSNameMaker operNames,
bool  isPhantom,
MbSolid *&  result 
)

Create an open ruled solid from two curves specified in parameters.

Parameters:
[in]pars- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]isPhantom- Create in the phantom mode.
[out]result- The required shell.
Returns:
Returns operation result code.
void CheckRuledCurve ( const MbCurve3D curve0,
const MbCurve3D curve1,
bool &  isInverted1,
bool &  isShifted1,
VERSION  version 
)

Check the second curve for consistency with the first curve for creation of the open ruled solid and make the necessary modification of the second curve.

Parameters:
[in]curve0- The first curve.
[in]curve1- The second curve.
[out]isInverted1- Whether the second curve was inverted.
[out]isShifted1- Whether the beginning of the first curve was shifted.
[in]version- The version of the operation.
Warning:
An auxillary function of operation 'RuledShell'.
bool CheckRuledParams ( const MbCurve3D curve,
SArray< double > &  params,
bool  isAscending 
)

Check the curve parameters and perform the normalization of a closed curve parameters.

Parameters:
[in]curve- The curve.
[in,out]params- An array of the curve parameters.
[in]isAscending- Whether the parameters are specified in the ascending order.
Returns:
Returns true if the parameter array has been successfully normalized.
Warning:
An auxillary function of operation 'RuledShell'.
MbResultType ExtensionShell ( MbSolid solid,
MbeCopyMode  sameShell,
MbFace face,
const RPArray< MbCurveEdge > &  edges,
const ExtensionValues params,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Create an extension of an open solid by extrusion of specified boundary edges of the given face of the solid.

Parameters:
[in]solid- The initial shell.
[in]sameShell- Whether to copy the shell.
[in]face- A face of the initial shell to be extended.
[in]edges- An array of edges through which to extend the face.
[in]params- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns:
Returns operation result code.
MbResultType JoinShell ( MbSurfaceCurve curve1,
MbSurfaceCurve curve2,
JoinSurfaceValues parameters,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Create an open joint solid from two curves on a surface.

Parameters:
[in]curve1- The first curve on a surface.
[in]curve2- The second curve on a surface.
[in]parameters- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns:
Returns operation result code.
MbResultType JoinShell ( const RPArray< MbCurveEdge > &  edges1,
const SArray< bool > &  orients1,
const RPArray< MbCurveEdge > &  edges2,
const SArray< bool > &  orients2,
const MbMatrix3D matr1,
const MbMatrix3D matr2,
JoinSurfaceValues parameters,
const MbSNameMaker operNames,
MbSolid *&  result,
bool  isPhantom = false 
)

Create an open joint solid from two sets of edges.

Parameters:
[in]edges1- The first group of edges.
[in]orients1- The edges senses in the first group.
[in]edges2- The second group of edges.
[in]orients2- The edges senses in the second group.
[in]matr1- The matrix of transformation of the first group of edges to the common coordinate system.
[in]matr2- The matrix of transformation of the second group of edges to the common coordinate system.
[in]parameters- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
[in]isPhantom- The operation phantom mode.
Returns:
Returns operation result code.
MbResultType DivideShell ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbCurveEdge > &  edges,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Divide shell into parts using a given set of edges.

Parameters:
[in]solid- A shell.
[in]sameShell- Whether to copy the shell.
[in]edges- Set of edges.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns:
Returns operation result code.
void CheckJoinedCurve ( const MbCurve3D curve1,
const MbCurve3D curve2,
bool &  isInverted1,
bool &  isShifted1,
VERSION  version 
)

Check the second curve for consistency with the first curve for creation of the open joint solid and make the necessary modification of the second curve.

Parameters:
[in]curve1- The first curve.
[in]curve2- The second curve.
[out]isInverted1- Whether the second curve was inverted.
[out]isShifted1- Whether the beginning of the first curve was shifted.
[in]version- The version of the operation.
Warning:
An auxillary function of operation JoinShell.
MbResultType FacesFillet ( const MbSolid solid1,
const MbFace face1,
const MbSolid solid2,
const MbFace face2,
const SmoothValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Create an open solid that consists of a fillet face between two non-connected faces.

Parameters:
[in]solid1- The first solid.
[in]face1- The first solid face to fillet.
[in]solid2- The second solid.
[in]face2- The second solid face to fillet.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType ElementaryShell ( const MbSurface surface,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid which consists of a face with the specified underlying elementary surface.

Parameters:
[in]surface- The surface.
[in]names- An object for naming the new objects.
[out]result- The resultant shell.
Returns:
Returns operation result code.
MbResultType SurfaceShell ( const MbSurface surface,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid which consists of a face with the specified underlying surface. The surface should have no self-intersections, the bounding curves should be correctly oriented in case of surface MbCurveBoundedSurface.

Parameters:
[in]surface- The surface.
[in]names- An object for naming the new objects.
[out]result- The resultant shell.
Returns:
Returns operation result code.
MbResultType CutShellSilhouetteContour ( MbSolid solid,
MbeCopyMode  sameShell,
const MbVector3D eye,
const VERSION  version,
RPArray< MbCurve3D > &  outlineCurves,
RPArray< MbSolid > &  result 
)

Create solids as a result of cutting a solids by its silhouette contour.

Parameters:
[in]shell- The solid
[in]sameShell- Methods of transferring data while copying shells
[in]eye- Eye's direction.
[out]outlineCurves- Curves of the silhouette contour.
[out]result- The resultant solids.
Returns:
MbeStitchResType StitchToOneSheetSolid ( const RPArray< const MbSolid > &  initialSolids,
const MbSNameMaker operNames,
bool  formSolidBody,
double  stitchPrecision,
MbSolid *&  resultSolid 
)

Stitch faces of several solids with coincident edges into single solid. The faces orientation can be changed.

Parameters:
[in]initialSolids- An array of solids for stitching.
[in]operNames- An object defining a name of the operation.
[in]formSolidBody- Whether to form a solid solid from the resultant shell.
[in]stitchPrecision- Stitching accuracy.
[out]resultSolid- The resultant shell or solid (depends on the flag).
Returns:
Returns operation result code.
MbResultType LatheCurves ( const MbSolid solid,
const MbAxis3D axis,
double  angle,
MbPlacement3D position,
RPArray< MbCurve > &  curves 
)

The function searches for lathe axis of rotation faces and builds the curves of lathe-section in a plane.

Parameters:
[in]solid- Solid.
[in]axis- Lathe axis, may be null.
[in]angle- The angle, managing the construction of segments which perpendicular to the axis, recomended M_PI_4-M_PI.
[out]position- Plane position of section, axis X is a axis of section.
[out]curves- The curves of section located on plane XY of position.
Returns:
Returns operation result code.
MbResultType LatheCurve ( const MbCurve3D generatrix,
const MbPlacement3D position,
RPArray< MbCurve > &  curves 
)

The function builds the generatrix track in the XY plane of the local coordinate system as it rotates around the axis X.

Parameters:
[in]generatrix- Curve
[in]position- Plane position of section, axis X is a axis of section.
[out]curves- The curve on plane XY of position will be added to contaner curves.
Returns:
Returns operation result code.
MbResultType MedianShell ( MbSolid solid,
MbeCopyMode  sameShell,
const std::vector< c3d::IndicesPair > &  faceIndexes,
const MedianShellValues params,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Construct a median shell between pair of faces, based on equidistant surfaces. Pair of faces are selected by user or are found by given distance between faces. The faces must belong to the same body.

Parameters:
[in]solid- The initial solid.
[in]sameShell- Whether to copy the solid.
[in]faceIndexes- Selected face pairs.
[in]params- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns:
Returns operation result code.
Returns operation result code.
bool GetSweptValue ( const MbSweptData sweptData,
const MbAxis3D axis,
const MbVector3D direction,
const bool  rotation,
const bool  operationDirection,
const MbCartPoint3D point,
double &  value 
)

Compute 'value' - the extrusion depth or the rotation angle (0.0 : M_PI2) for the further construction of a solid by extrusion or revolution of the generating curve.

Parameters:
[in]sweptData- The generating curve data.
[in]axis- Rotation axis.
[in]direction- An extrusion direction.
[in]rotation- Rotation or extrusion.
[in]operationDirection- Forward or backward direction.
[in]point- The point to rotate or extrude the surface up to.
[out]value- The extrusion depth or the rotation angle.
Returns:
Returns true if the value has been successfully calculated.
Warning:
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.
void GetSweptImagePosition ( const MbCurve3D generatrix,
const MbSurface surface,
const MbVector3D direction,
const MbAxis3D axis,
const bool  rotation,
MbCartPoint imagePosition,
MbResultType resType 
)

Compute the position of a generating curve point image on a surface for further solid construction by extrusion or revolution of the generating curve up to the specified surface.

Parameters:
[in]generatrix- The curve.
[in]surface- The surface to construct up to.
[in]direction- An extrusion direction.
[in]axis- Rotation axis.
[in]rotation- Rotation (true) or extrusion (false)
[out]imagePosition- The image point on the surface.
[out]resType- Operation result code.
Warning:
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.
void GetRangeToSurface ( const MbSurface surface,
const MbCurve3D curve,
const MbVector3D direction,
const MbAxis3D axis,
const bool  rotation,
const bool  operationDirection,
const MbCartPoint imagePosition,
double  range[2],
MbRect rectOnSurface,
MbResultType resType 
)

Calculate the extrusion depths in forward and backward directions or the rotating angles in forward and backward directions for further solid construction by extrusion or revolution of the generating curve up to the specified surface; and also calculate the bounding box of the curve image.

Parameters:
[in]surface- The surface to construct up to.
[in]curve- The generating curve.
[in]direction- An extrusion direction.
[in]axis- Rotation axis.
[in]rotation- Revolution (true) or extrusion (false).
[in]operationDirection- The motion direction: forward (true) or backward (false).
[out]imagePosition- A point on a surface part that contains the image.
[out]range- The distance to surface in the backward and the forward directions.
[out]rectOnSurface- The bounding box of image on the surface.
[out]resType- Operation result code.
Warning:
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.
void AnalyzeSurfaceRelationToSweptOperation ( const MbSurface cuttingSurface,
const MbCartPoint imagePosition,
const MbCurve3D curve,
const MbVector3D direction,
const MbAxis3D axis,
const bool  rotation,
bool  operationDirection,
bool &  relativeSense,
MbResultType resType 
)

Determine the orientation of a cutting surface relative to the solid which is to be constructed by extrusion or revolution the generation curve up to the specified surface.

Parameters:
[in]cuttingSurface- A surface to analyze.
[in]imagePosition- An image location on the surface.
[in]curve- The generating curve.
[in]direction- An extrusion direction.
[in]axis- Rotation axis.
[in]rotation- Revolution (true) or extrusion (false).
[in]operationDirection- The motion direction: forward (true) or backward (false).
[out]relativeSense- The surface orientation relative to the operation.
[out]resType- Operation result code.
Warning:
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.
void FindPolesAndSeamsInContour ( const MbSurface surface,
const MbContour contour,
std::vector< size_t > &  seamsAndPoles 
)

Find contour segments corresponding to the seams and poles.

Parameters:
[in]surface- Surface.
[in]contour- Contour.
[out]seamsAndPoles- Segment numbers corresponding to the seams and poles.
MbResultType EvolutionNormalize ( const MbSurface surface,
const RPArray< MbContour > &  contours,
const MbCurve3D guide,
const EvolutionValues parameters,
MbAxis3D axis,
double &  angle,
VERSION  version 
)

Orientate the generating contour and the guide curve for a sweeping solid construction.

Parameters:
[in]surface- The surface.
[in]contours- Generating contours.
[in]guide- The spine curve.
[in]parameters- The operation parameters.
[out]axis- The axis for the generating curve additional turn.
[out]angle- The additional turn for generating line.
[in]version- The version of the operation.
Returns:
Returns operation result code.
Warning:
An auxiliary function of operations EvolutionSolid and EvolutionResult.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines