C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
+ Collaboration diagram for Polygonal Objects:

Classes

class  MbMeshProcessorValues
 Parameters of BRep shell construction from polygonal mesh. More...
 
class  MbSurfaceFitToGridParameters
 Parameters of surface fitting. More...
 
class  MbSurfaceFitToGridResults
 Parameters of surface fitting. More...
 
class  MbMeshProcessor
 Class for creating a BRep shell by polygonal mesh. More...
 
struct  MeshInfo
 Diagnostic data of a polygonal object. More...
 
struct  MbCurvature
 Curvature and principal curvature direction data. More...
 
class  MbFloatPoint
 A two-dimensional point. More...
 
class  MbFloatPoint3D
 Three-dimensional point. More...
 
class  MbFloatVector3D
 Three-dimensional vector. More...
 
class  MbFloatAxis3D
 Axis. More...
 
class  MbExactGrid
 Triangulation on double data. More...
 
class  MbFloatGrid
 Triangulation on float data. More...
 
class  MbExactPolygon3D
 Polygon on double data. More...
 
class  MbFloatPolygon3D
 Polygon on float data. More...
 
class  MbPolygon
 Two-dimensional polygon. More...
 
class  MbPrimitive
 Primitive. More...
 
class  MbApex3D
 Apex (point). More...
 
class  MbExactApex3D
 Apex on double data. More...
 
class  MbFloatApex3D
 Apex on float data. More...
 
class  MbPolygon3D
 Polygon. More...
 
class  MbGrid
 Triangulation. More...
 
class  MbTriangle
 Triangle. More...
 
class  MbQuadrangle
 Quadrangle. More...
 
class  MbElement
 Element of tesselation of solid volume. More...
 
class  MbGridLoop
 Border of triangulation. More...
 
class  MbGridSegment
 A polygonal mesh segment (segmentation result). More...
 
class  MbMeshToInstanceParams
 Parameters for the replacement of repetative meshes (MbMesh) into MbInstance. More...
 
class  MbMeshToInstanceResults
 Results of the replacement of repetative meshes (MbMesh) into MbInstance. More...
 
class  MbCurveFitParametersBase
 Base class for curve fitting parameters. More...
 
class  MbCurveFitParameters
 2D curve fitting parameters. More...
 
class  MbCurveFitParameters3D
 3D curve fitting parameters. More...
 
class  MbFitResultsBase
 Base class for fitting results. More...
 
class  MbCurveFitResults
 2D curve fitting results. More...
 
class  MbCurveFitResults3D
 2D curve fitting results. More...
 
class  MbFaceAndGrid
 Mathematical face and its calculated grid. More...
 
struct  MbLumpAndFaces
 A solid with an array of faces and triangulation grids. More...
 

Enumerations

enum  MbeSurfReconstructMode { srm_All = 0 , srm_NoGrids = 1 , srm_CanonicOnly = 2 , srm_Default = srm_NoGrids }
 Surface reconstruction mode. More...
 
enum  MbeCreateBRepMode { cbm_Strict = 0 , cbm_Weak = 1 , cbm_Default = cbm_Strict }
 BRep creation mode. More...
 
enum  MbePrimitiveType {
  pt_Apex3D , pt_ExactApex3D , pt_FloatApex3D , pt_Polygon3D ,
  pt_ExactPolygon3D , pt_FloatPolygon3D , pt_Grid , pt_ExactGrid ,
  pt_FloatGrid
}
 Types of primitives. More...
 
enum  MbeMoveType { mt_Forward = 0 , mt_Backward = 1 }
 Motion direction. More...
 
enum  MbeRejectOutliersType { rot_NoReject = 0 , rot_Sigma = 1 , rot_Percent = 2 , rot_MaxDistance = 3 }
 Outliers rejection mode for surface fitting. More...
 
enum  MbCurveFitParametersBase::MbeCurveFitType { MbCurveFitParametersBase::cft_Undef = 0 , MbCurveFitParametersBase::cft_Line = 1 , MbCurveFitParametersBase::cft_Circle = 2 , MbCurveFitParametersBase::cft_Ellipse = 3 }
 Type of a curve to be fit. More...
 

Functions

bool MbSurfaceFitToGridParameters::AddAxisConstraint (const MbVector3D &direction, double angle=0.)
 Add an axis constraint. More...
 
void MbSurfaceFitToGridParameters::AddCoaxialConstraint (const MbAxis3D &axis)
 Add a coaxial constraint. More...
 
bool MbSurfaceFitToGridParameters::AddCylinderRadiusConstraint (double radius)
 Fix cylinder radius. More...
 
bool MbSurfaceFitToGridParameters::AddSphereRadiusConstraint (double radius)
 Fix sphere radius. More...
 
bool MbSurfaceFitToGridParameters::AddConeAngleConstraint (double angle)
 Fix cone angle. More...
 
bool MbSurfaceFitToGridParameters::AddTorusRadiiConstraint (double majorRadius, double minorRadius)
 Fix torus radii. More...
 
MbResultType MbSurfaceFitToGridParameters::SetFitConstraintXYW (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Set the XYW-constraint. More...
 
MbResultType MbSurfaceFitToGridParameters::SetFitConstraintZ (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Set the Z-constraint. More...
 
MbResultType MbSurfaceFitToGridParameters::SetFitConstraintXYZ (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Set the XYZ-constraint. More...
 
MbResultType MbSurfaceFitToGridParameters::SetFitConstraintZW (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Set the ZW-constraint. More...
 
static MbMeshProcessorMbMeshProcessor::Create (const MbCollection &collection)
 Create mesh processor by collection. More...
 
virtual void MbMeshProcessor::SetRelativeTolerance (double tolerance)=0
 Set relative tolerance. More...
 
virtual void MbMeshProcessor::SetTolerance (double tolerance)=0
 Set tolerance. More...
 
virtual double MbMeshProcessor::GetTolerance () const =0
 Get tolerance. More...
 
virtual void MbMeshProcessor::SetReconstructionMode (MbeSurfReconstructMode mode)=0
 Set the surfaces reconstruction mode. More...
 
virtual void MbMeshProcessor::SetBrepCreationMode (MbeCreateBRepMode mode)=0
 Set the BRep creation mode. More...
 
virtual void MbMeshProcessor::SetUseMeshSmoothing (bool useSmoothing)=0
 Set flag to use smoothing of input mesh. More...
 
virtual const MbCollectionMbMeshProcessor::GetSimplifiedMesh ()=0
 Get fixed (simplified) copy of the input mesh. More...
 
virtual const MbCollectionMbMeshProcessor::GetSegmentedMesh ()=0
 Get segmented copy of the input mesh. More...
 
virtual const std::vector< MbCurvature > & MbMeshProcessor::CalculateCurvatures ()=0
 Calculate the principal curvatures and principal curvature directions at mesh points. More...
 
virtual MbResultType MbMeshProcessor::SegmentMesh (bool createSurfaces=true)=0
 Segment a polygonal mesh. More...
 
virtual MbResultType MbMeshProcessor::CreateBRepShell (MbFaceShell *&pShell, bool smoothBoundaryEdges, double bondThresholdAngle)=0
 Create shell. More...
 
virtual void MbMeshProcessor::FitSurfaceToSegment (size_t idxSegment)=0
 Fit surface to segment . More...
 
virtual void MbMeshProcessor::FitSurfaceToSegment (size_t idxSegment, MbeSpaceType surfaceType)=0
 Fit surface of a given type to a segment. More...
 
virtual const MbSurfaceMbMeshProcessor::GetSegmentSurface (size_t idxSegment) const =0
 Get surface of segment. More...
 
virtual MbSurfaceMbMeshProcessor::SetSegmentSurface (size_t idxSegment)=0
 Set surface of segment. More...
 
virtual void MbMeshProcessor::ResetSegmentation ()=0
 Reset segmentation of the polygonal mesh. More...
 
virtual bool MbMeshProcessor::FindShortestVertexPath (uint v1, uint v2, std::vector< uint > &path)=0
 Find shortest path between two vertices. More...
 
MbResultType ConvertMeshToShell (MbMesh &mesh, MbFaceShell *&shell, const MbMeshProcessorValues &params=MbMeshProcessorValues())
 Create shell from mesh with automatic surface reconstruction. More...
 
MbResultType ConvertCollectionToShell (MbCollection &collection, MbFaceShell *&shell, const MbMeshProcessorValues &params=MbMeshProcessorValues())
 Create shell from collection with automatic surface reconstruction. More...
 
MbResultType FitSurfaceToGrid (const MbGrid &grid, const MbSurfaceFitToGridParameters &params, MbSurfaceFitToGridResults &results)
 Fit the surface into polygon set. More...
 
MbResultType FitCurve (const MbCurveFitParameters &params, MbCurveFitResults &results)
 Fit the curve into point set. More...
 
MbResultType FitCurve (const MbCurveFitParameters3D &params, MbCurveFitResults3D &results)
 Fit the curve into point set. More...
 
void CalculateWire (const MbPlaneItem &obj, const MbPlacement3D &plane, double sag, MbMesh &mesh)
 Create a polygonal two-dimensional object. More...
 
MbResultType CreateIcosahedron (const MbPlacement3D &place, double radius, const MbFormNote &fn, MbMesh *&result)
 Construct an icosahedron mesh. More...
 
MbResultType CreateBoxMesh (const MbMatrix3D &trans, SPtr< MbMesh > &result)
 Construct a parallepiped mesh. More...
 
MbResultType CreateBoxWire (const MbMatrix3D &trans, SPtr< MbMesh > &result)
 Construct an parallepiped wireframe. More...
 
void MakeSpaceWireFrame (const MbItem &item, RPArray< MbCurve3D > &wire, bool isVisibleOnly=false)
 Create a spatial wireframe by a mesh. More...
 
void MakePlaneWireFrame (const MbItem &item, const MbPlacement3D &place, RPArray< MbCurve3D > &wire)
 Create a planar wireframe by a mesh. More...
 
void MakePlaneVistaWireFrame (const MbItem &item, const MbPlacement3D &place, const MbCartPoint3D &vista, RPArray< MbCurve3D > &wire)
 Create a planar wireframe by a mesh in perspective. More...
 
void MakePlaneWireFrame (const MbItem &item, const MbPlacement3D &place, RPArray< MbCurve > &wire)
 Create a planar wireframe by a mesh. More...
 
void MakePlaneVistaWireFrame (const MbItem &item, const MbPlacement3D &place, const MbCartPoint3D &vista, RPArray< MbCurve > &wire)
 Create a planar wireframe by a mesh in perspective. More...
 
MbResultType CreateSpherePolyhedron (const MbPlacement3D &place, double radius, double &epsilon, MbMesh *&result)
 Construct an spherical mesh. More...
 
MbResultType CreateConvexPolyhedron (const SArray< MbFloatPoint3D > &points, MbMesh *&result)
 Calculate a convex hull of a point set. More...
 
MbResultType CreateConvexPolyhedron (const std::vector< MbFloatPoint3D > &points, MbMesh *&result)
 Calculate a convex hull of a point set. More...
 
MbResultType CreateConvexPolyhedron (const SArray< MbCartPoint3D > &points, MbMesh *&result)
 Calculate a convex hull of a point set. More...
 
MbResultType CreateConvexPolyhedron (const std::vector< MbCartPoint3D > &points, MbMesh *&result)
 Calculate a convex hull of a point set. More...
 
MbResultType CreateConvexPolyhedron (const MbMesh &mesh, double offset, MbMesh *&result)
 Construct the convex hull of triangulation grid. More...
 
MbResultType CreateConvexPolygon (const MbConvexHullParams &params, MbConvexHullResults &result)
 Construct the convex hull of 2D points array. More...
 
MbResultType CreateConvexPolyhedron (const MbConvexHullParams3D &params, SPtr< MbMesh > &result)
 Calculate a convex hull of a point set. More...
 
bool AreIntersectConvexPolyhedrons (const MbMesh &mesh1, const MbMesh &mesh2)
 Whether there is intersection of convex grids. More...
 
MbResultType MeshCutting (MbMesh &mesh, MbeCopyMode sameShell, const MbPlacement3D &place, int part, const MbSNameMaker &names, bool onlySection, MbMesh *&result)
 Cut a part of a polygonal object by a plane. More...
 
MbResultType MeshSection (const MbMesh &mesh, const MbPlacement3D &place, c3d::SpaceCurvesSPtrVector &polylines)
 Create a section contour of a polygon figure. More...
 
MbResultType MeshMeshIntersection (const MbMesh &mesh1, const MbMesh &mesh2, c3d::SpaceCurvesSPtrVector &polylines)
 Create an intersection contour of two polygon objects. More...
 
MbResultType CalculateBallPivotingGrid (const MbCollection &collection, double radius, double radiusMin, double angle, MbMesh *&result)
 Build a triangulation by point cloud with Ball Pivoting algorithm. More...
 
MbOrientedBox CalculateBoundingBox (const MbMesh &mesh)
 Calculate a volume-minimized oriented bounding box (OBB) containing a polygonal object. More...
 
MbResultType RepairInconsistentMesh (MbMesh &mesh)
 Repair inconsistent orientation of mesh polygons with respect to each other. More...
 
MbResultType ConvertMeshToInstance (const c3d::ItemsSPtrVector &meshContainer, const MbMeshToInstanceParams &params, MbMeshToInstanceResults &results)
 Search an array of objects to replace repeating polygonal objects (MbMesh) with MbInstance, which are linked to the first in the set. It is recommended to use relative accuracy for large objects which size exceeds ~1e6. More...
 
bool CheckMeshClosure (const MbMesh &mesh, MeshInfo &info)
 Check the object closeness and provide information about the boundary edges. More...
 
bool InspectMeshClosure (const MbMesh &mesh, MeshInfo &info)
 Check the object closeness and provide detailed information about boundaries. More...
 
MbResultType SimplifyTriangularMesh (const MbMesh &mesh, const MbMeshSimplificationParams &params, c3d::MeshesSPtrVector &simplifiedMeshes)
 Simplify triangulation. More...
 
MbResultType SimplifyTriangularMesh (const MbMeshSimplificationParams &params, MbMesh &mesh)
 Simplify triangulation. More...
 
MbResultType UnwrapMesh (const MbMeshUnwrapParams &params, MbMeshUnwrapResult &results)
 Construct a unwrapping the mesh on a plane. More...
 
void CalculateHideMesh (const MbSurface &surf, const MbVector3D &eyeDir, double sag, MbMesh *&mesh, VERSION version=Math::DefaultMathVersion())
 Calculate mesh. More...
 
void TriangulateRegion (const MbRegion &region, double sag, MbPlanarGrid &grid)
 Triangulation of a two-dimensional region. More...
 
MbResultType MbSurfaceFitConstraint::InitializeXYW (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Initialize the XYW-constraint (in case of validity). More...
 
MbResultType MbSurfaceFitConstraint::InitializeZ (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Initialize the Z-constraint (in case of validity). More...
 
MbResultType MbSurfaceFitConstraint::InitializeXYZ (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Initialize the XYZ-constraint (in case of validity). More...
 
MbResultType MbSurfaceFitConstraint::InitializeZW (MbeSpaceType typeSurface, MbeDimensionalConstraintType typeDim, const MbConstraintFixedValues &fixedValues, const MbPlacement3D &place)
 Initialize the ZW-constraint (in case of validity). More...
 

Functions of triangulation.

virtual void MbGrid::AddColor (float r, float g, float b, float a)=0
 Add color as an additional information of point (0 <= r,g,b,a <= 1). More...
 

Position constraints.

bool MbSurfaceFitConstraint::AddAxisConstraint (const MbVector3D &direction, double angle=0.)
 Add an axis constraint. More...
 
void MbSurfaceFitConstraint::AddCoaxialConstraint (const MbAxis3D &axis)
 Add a coaxial constraint. More...
 

Dimensional constraints.

bool MbSurfaceFitConstraint::AddCylinderRadiusConstraint (double radius)
 Fix cylinder radius. More...
 
bool MbSurfaceFitConstraint::AddSphereRadiusConstraint (double radius)
 Fix sphere radius. More...
 
bool MbSurfaceFitConstraint::AddConeAngleConstraint (double angle)
 Fix cone angle. More...
 
bool MbSurfaceFitConstraint::AddTorusRadiiConstraint (double majorRadius, double minorRadius)
 Fix torus radii. More...
 

Detailed Description

Enumeration Type Documentation

◆ MbeSurfReconstructMode

Surface reconstruction mode.

Surface reconstruction mode.

Enumerator
srm_All 

Build all surfaces.

srm_NoGrids 

Not build surfaces based on triangulation.

srm_CanonicOnly 

Build elementary surfaces only.

srm_Default 

Default mode.

◆ MbeCreateBRepMode

BRep creation mode.

BRep creation mode.

Enumerator
cbm_Strict 

Adjancent faces have a common edge.

cbm_Weak 

All edges of each face are a boundary edges.

cbm_Default 

Default mode.

◆ MbePrimitiveType

Types of primitives.

Get type of primitive of polygonal object.

Enumerator
pt_Apex3D 

Apex.

pt_ExactApex3D 

Apex on double data.

pt_FloatApex3D 

Apex on float data.

pt_Polygon3D 

Polygon.

pt_ExactPolygon3D 

Polygon on double data.

pt_FloatPolygon3D 

Polygon on float data.

pt_Grid 

Triangulation.

pt_ExactGrid 

Triangulation on double data.

pt_FloatGrid 

Triangulation on float data.

◆ MbeMoveType

Motion direction.

Enumerator
mt_Forward 

Forward.

mt_Backward 

Backward.

◆ MbeRejectOutliersType

Outliers rejection mode for surface fitting.

Enumerator
rot_NoReject 

No outliers rejection.

rot_Sigma 

Reject outliers by N*sigma criterion.

rot_Percent 

Reject outliers by percent criterion.

rot_MaxDistance 

Reject outliers by maximum distance criterion.

◆ MbeCurveFitType

Type of a curve to be fit.

Enumerator
cft_Undef 

Undefined.

cft_Line 

Line.

cft_Circle 

Circle.

cft_Ellipse 

Ellipse.

Function Documentation

◆ AddAxisConstraint() [1/2]

bool MbSurfaceFitToGridParameters::AddAxisConstraint ( const MbVector3D direction,
double  angle = 0. 
)
inline

Add an axis constraint.

Add an axis constraint to a cylinder, cone, torus or plane. The axis of a primitive or plane normal will be collinear to a given direction by default. Besides there may be given a desired angle between the axis of a primitive or plane normal and a given direction from [0; П/2]. Fitting a plane with a normal, which is perpendicular to a given direction, implies an angle П/2. The function resets all previous axis constraints.

Parameters
[in]direction- Reference direction.
[in]angle- Angle between the axis of a primitive and a given direction.
Returns
Returns true, if an angle is correct, or false otherwise.

◆ AddCoaxialConstraint() [1/2]

void MbSurfaceFitToGridParameters::AddCoaxialConstraint ( const MbAxis3D axis)
inline

Add a coaxial constraint.

Add a coaxial constraint to a cylinder, cone, torus or sphere. A primitive will be fit with a given axis. If a sphere is fit, its center lies on a given axis. The function resets all previous axis constraints.

Parameters
[in]axis- Axis.

◆ AddCylinderRadiusConstraint() [1/2]

bool MbSurfaceFitToGridParameters::AddCylinderRadiusConstraint ( double  radius)
inline

Fix cylinder radius.

Fix cylinder radius. The value has to be positive.

Parameters
[in]radius- Cylinder radius.
Returns
Returns true, if a radius is correct, or false otherwise.

◆ AddSphereRadiusConstraint() [1/2]

bool MbSurfaceFitToGridParameters::AddSphereRadiusConstraint ( double  radius)
inline

Fix sphere radius.

Fix sphere radius. The value has to be positive.

Parameters
[in]radius- Sphere radius.
Returns
Returns true, if a radius is correct, or false otherwise.

◆ AddConeAngleConstraint() [1/2]

bool MbSurfaceFitToGridParameters::AddConeAngleConstraint ( double  angle)
inline

Fix cone angle.

Fix cone angle. The angle has to be from (0; П/2).

Parameters
[in]angle- Cone angle.
Returns
Returns true, if an angle is correct, or false otherwise.

◆ AddTorusRadiiConstraint() [1/2]

bool MbSurfaceFitToGridParameters::AddTorusRadiiConstraint ( double  majorRadius,
double  minorRadius 
)
inline

Fix torus radii.

Fix torus radii. There may be fixed the major radius (_size1) or the minor radius (_size2) of a torus (one or both of them). The values have to be positive (=0 - value is not fixed).

Parameters
[in]majorRadius- Major torus radius.
[in]minorRadius- Minor torus radius.
Returns
Returns true, if radii are correct, or false otherwise.

◆ SetFitConstraintXYW()

MbResultType MbSurfaceFitToGridParameters::SetFitConstraintXYW ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)
inline

Set the XYW-constraint.

Set the XYW-constraint. Translation along the OX и OY axes and rotation about the OZ axis of a local coordinate system are only allowed. For a plane, a cylinder, a cone or a torus there has to be fixed the angle theta between an object's axis and the OZ axis of a given coordinate system. The angle theta has to belong to [0; П/2]. For a sphere there has to be fixed the Z coordinate of its center. For a torus there has to be fixed the Z coordinate of its directrix circle. There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").

Parameters
[in]typeSurface- Surface type.
[in]typeDim- Dimensional constraint type.
[in]fixedValues- Structure with fixed values of surface parameters.
[in]place- Local coordinate system.
Returns
Returns operation result code.

◆ SetFitConstraintZ()

MbResultType MbSurfaceFitToGridParameters::SetFitConstraintZ ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)
inline

Set the Z-constraint.

Set the Z-constraint. Translation along the OZ axis of a local coordinate system is only allowed. For a plane, a cylinder, a cone or a torus there have to be fixed:

  • the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2],
  • the azimuthal angle phi: the angle between the projection of an object's axis onto the OXY plane and the OX axis of a given CS, has to belong to [0; 2П). For a cylinder, a cone or a torus there have to be fixed the X and Y coordinates of a point of an object's axis. For a sphere there have to be fixed the X and Y coordinates of its center. There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").
    Parameters
    [in]typeSurface- Surface type.
    [in]typeDim- Dimensional constraint type.
    [in]fixedValues- Structure with fixed values of surface parameters.
    [in]place- Local coordinate system.
    Returns
    Returns operation result code.

◆ SetFitConstraintXYZ()

MbResultType MbSurfaceFitToGridParameters::SetFitConstraintXYZ ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)
inline

Set the XYZ-constraint.

Set the XYZ-constraint. Translation is only allowed (any rotation is forbidden). For a plane, a cylinder, a cone or a torus there have to be fixed:

  • the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2],
  • the azimuthal angle phi: the angle between the projection of an object's axis onto the OXY plane and the OX axis of a given CS, has to belong to [0; 2П). There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").
    Parameters
    [in]typeSurface- Surface type.
    [in]typeDim- Dimensional constraint type.
    [in]fixedValues- Structure with fixed values of surface parameters.
    [in]place- Local coordinate system.
    Returns
    Returns operation result code.

◆ SetFitConstraintZW()

MbResultType MbSurfaceFitToGridParameters::SetFitConstraintZW ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)
inline

Set the ZW-constraint.

Set the ZW-constraint. Translation along the OZ axis and rotation about the OZ axis of a local coordinate system are only allowed. For a plane, a cylinder, a cone or a torus there have to be fixed:

  • the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2],
  • the initial azimuthal angle phi: the angle between the projection of an object's axis in the initial position onto the OXY plane and the OX axis of a given CS, has to belong to [0; 2П),
  • the distance between an object's axis the OZ axis of a given CS. For a sphere there has to be fixed the distance between its center and the OZ axis of a given CS. There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").
    Parameters
    [in]typeSurface- Surface type.
    [in]typeDim- Dimensional constraint type.
    [in]fixedValues- Structure with fixed values of surface parameters.
    [in]place- Local coordinate system.
    Returns
    Returns operation result code.

◆ Create()

static MbMeshProcessor* MbMeshProcessor::Create ( const MbCollection collection)
static

Create mesh processor by collection.

Create mesh processor by collection. User must delete created object.

Parameters
[in]collection- Input collection containing triangle mesh.
Returns
Returns pointer to created object.

◆ SetRelativeTolerance()

virtual void MbMeshProcessor::SetRelativeTolerance ( double  tolerance)
pure virtual

Set relative tolerance.

Set relative tolerance by current mesh box.

Parameters
[in]tolerance- Relative tolerance to set.

◆ SetTolerance()

virtual void MbMeshProcessor::SetTolerance ( double  tolerance)
pure virtual

Set tolerance.

Set tolerance of surface reconstruction and segments extension. Method should be called before call to SegmentMesh. Default tolerance is 0.1.

Parameters
[in]tolerance- Tolerance to set.

◆ GetTolerance()

virtual double MbMeshProcessor::GetTolerance ( ) const
pure virtual

Get tolerance.

Get current tolerance used in surface reconstruction and segments extension.

Returns
Returns absolute tolerance.

◆ SetReconstructionMode()

virtual void MbMeshProcessor::SetReconstructionMode ( MbeSurfReconstructMode  mode)
pure virtual

Set the surfaces reconstruction mode.

Set types of surfaces which will be generated on segments. The surfaces of unsupoprted type will not be built.

Parameters
[in]mode- Surface reconstruction mode.

◆ SetBrepCreationMode()

virtual void MbMeshProcessor::SetBrepCreationMode ( MbeCreateBRepMode  mode)
pure virtual

Set the BRep creation mode.

Set connectivity type of faces of resultant BRep model.

Parameters
[in]mode- BRep creation mode.

◆ SetUseMeshSmoothing()

virtual void MbMeshProcessor::SetUseMeshSmoothing ( bool  useSmoothing)
pure virtual

Set flag to use smoothing of input mesh.

Set flag to use smoothing of input mesh. If the flag set to true, then run smoothing of input mesh before main segmentation algorithm start. It is recommended to use mesh smoothing on inexact meshes, e.g. meshes obtained by scanning.

Parameters
[in]useSmoothing- The flag to use smoothing of input mesh. Default false.

◆ GetSimplifiedMesh()

virtual const MbCollection& MbMeshProcessor::GetSimplifiedMesh ( )
pure virtual

Get fixed (simplified) copy of the input mesh.

Get fixed copy of the input mesh. All further operations of MbMehsProcessor are performed for simplified mesh: curvature calculation, segmentation, shell creation. All indices in the output of these operations corresponds to indices of vertices and triangles of the simplified mesh returned from this function.

Returns
Returns a fixed version of the input mesh.

◆ GetSegmentedMesh()

virtual const MbCollection& MbMeshProcessor::GetSegmentedMesh ( )
pure virtual

Get segmented copy of the input mesh.

Get segmented copy of the input mesh. All further operations of MbMehsProcessor are performed for simplified mesh: curvature calculation, segmentation, shell creation. Segmentation is stored inside collection.

Returns
Returns a segmented version of the input mesh.

◆ CalculateCurvatures()

virtual const std::vector<MbCurvature>& MbMeshProcessor::CalculateCurvatures ( )
pure virtual

Calculate the principal curvatures and principal curvature directions at mesh points.

Calculate the principal curvatures and principal curvature directions at mesh points.

Returns
Returns principal curvatures and principal curvature directions at mesh points.

◆ SegmentMesh()

virtual MbResultType MbMeshProcessor::SegmentMesh ( bool  createSurfaces = true)
pure virtual

Segment a polygonal mesh.

Perform segmentation of a polygonal mesh.

Returns
Returns operation result code.
Parameters
[in]createSurfaces- Create surfaces on segments or not.

◆ CreateBRepShell()

virtual MbResultType MbMeshProcessor::CreateBRepShell ( MbFaceShell *&  pShell,
bool  smoothBoundaryEdges,
double  bondThresholdAngle 
)
pure virtual

Create shell.

Create BRep shell that represents input mesh model. Current segmentation is used. If segmentation is not computed yet, then automatic segmentation is performed (with default parameters).

Parameters
[out]pShell- The pointer to created shell.
[in]smoothBoundaryEdges- Smoothing flag of boundary edges.
[in]bondThresholdAngle- The treshold value of angle between two adjanced external edges of mesh (in radians).
Returns
Returns operation result code.

◆ FitSurfaceToSegment() [1/2]

virtual void MbMeshProcessor::FitSurfaceToSegment ( size_t  idxSegment)
pure virtual

Fit surface to segment .

Recognize surface for mesh segment with a given index. Recognized surface is available through GetSegmentSurface method.

Parameters
[in]idxSegment- Index of a mesh segment.

◆ FitSurfaceToSegment() [2/2]

virtual void MbMeshProcessor::FitSurfaceToSegment ( size_t  idxSegment,
MbeSpaceType  surfaceType 
)
pure virtual

Fit surface of a given type to a segment.

Find surface of a given type approximating mesh segment with a given index. Recognized surface is available through GetSegmentSurface method.

Parameters
[in]idxSegment- Index of a mesh segment.
[in]surfaceType- Type of fitted surface.

◆ GetSegmentSurface()

virtual const MbSurface* MbMeshProcessor::GetSegmentSurface ( size_t  idxSegment) const
pure virtual

Get surface of segment.

Get surface that approximates segment. To fit surface use corresponding methods SegmentMesh or FitSurfaceToSegment.

Parameters
[in]idxSegment- Index of a mesh segment.
Returns
Returns pointer to segment surface if it exists, else - nullptr.

◆ SetSegmentSurface()

virtual MbSurface* MbMeshProcessor::SetSegmentSurface ( size_t  idxSegment)
pure virtual

Set surface of segment.

Set surface that approximates segment. To fit surface use corresponding methods SegmentMesh or FitSurfaceToSegment.

Parameters
[in]idxSegment- Index of a mesh segment.
Returns
Returns pointer to segment surface if it exists, else - nullptr.

◆ ResetSegmentation()

virtual void MbMeshProcessor::ResetSegmentation ( )
pure virtual

Reset segmentation of the polygonal mesh.

Reset segmentation of the polygonal mesh stored inside MbMeshProcessor.

◆ FindShortestVertexPath()

virtual bool MbMeshProcessor::FindShortestVertexPath ( uint  v1,
uint  v2,
std::vector< uint > &  path 
)
pure virtual

Find shortest path between two vertices.

Find shortest path between two vertices. The path should pass through collection vertices and edges.

Parameters
[in]v1- The index of first vertex.
[in]v2- The index of second vertex.
[out]path- The path from the first vertex to the second one. The array contains successive indices of path vertices.
Returns
Returns operation result code.

◆ ConvertMeshToShell()

MbResultType ConvertMeshToShell ( MbMesh mesh,
MbFaceShell *&  shell,
const MbMeshProcessorValues params = MbMeshProcessorValues() 
)

Create shell from mesh with automatic surface reconstruction.

Create BRep shell that represents input mesh model. Algorithm automatically detect and reconstruct faces based on elementary surfaces (plane, cylinder, sphere, cone, torus).

Parameters
[in]mesh- The input mesh.
[out]shell- The pointer to created shell.
[in]params- Parameters of BRep shell construction.
Returns
Returns operation result code.

◆ ConvertCollectionToShell()

MbResultType ConvertCollectionToShell ( MbCollection collection,
MbFaceShell *&  shell,
const MbMeshProcessorValues params = MbMeshProcessorValues() 
)

Create shell from collection with automatic surface reconstruction.

Create BRep shell that represents input mesh model from collection. Algorithm automatically detect and reconstruct faces based on elementary surfaces (plane, cylinder, sphere, cone, torus).

Parameters
[in]collection- The input collection.
[out]shell- The pointer to created shell.
[in]params- Parameters of BRep shell construction.
Returns
Returns operation result code.

◆ FitSurfaceToGrid()

MbResultType FitSurfaceToGrid ( const MbGrid grid,
const MbSurfaceFitToGridParameters params,
MbSurfaceFitToGridResults results 
)

Fit the surface into polygon set.

Fit a surface of a given type into the polygon set.
If the set of polygons is not specified, all triangulation polygons are used.

Parameters
[in]grid- The initial triangulation.
[in]params- The fitting parameters.
[out]results- Results of surface fitting.
Returns
Returns operation result code.
Warning
Under development.

◆ FitCurve() [1/2]

MbResultType FitCurve ( const MbCurveFitParameters params,
MbCurveFitResults results 
)

Fit the curve into point set.

Fit a curve of a given type into the point set.

Parameters
[in]params- The fitting parameters.
[out]results- Results of curve fitting.
Returns
Returns operation result code.

◆ FitCurve() [2/2]

MbResultType FitCurve ( const MbCurveFitParameters3D params,
MbCurveFitResults3D results 
)

Fit the curve into point set.

Fit a curve of a given type into the point set.

Parameters
[in]params- The fitting parameters.
[out]results- Results of curve fitting.
Returns
Returns operation result code.

◆ CalculateWire()

void CalculateWire ( const MbPlaneItem obj,
const MbPlacement3D plane,
double  sag,
MbMesh mesh 
)

Create a polygonal two-dimensional object.

Create a polygonal object for two-dimensional object in the XOY-plane of the local coordinate system.

Parameters
[in]obj- Two-dimensional object (if nullptr, object isn't created).
[in]plane- A local coordinate system.
[in]sag- The maximum deviation of polygonal object from the original object by sag.
[out]mesh- Polygonal object.

◆ CreateIcosahedron()

MbResultType CreateIcosahedron ( const MbPlacement3D place,
double  radius,
const MbFormNote fn,
MbMesh *&  result 
)

Construct an icosahedron mesh.

Construct an icosahedron mesh.

Parameters
[in]place- Local placement.
[in]radius- The radius of the sphere.
[in]fn- Way for polygonal object constructing.
[out]result- The resulting mesh.
Returns
Returns operation result code.

◆ CreateBoxMesh()

MbResultType CreateBoxMesh ( const MbMatrix3D trans,
SPtr< MbMesh > &  result 
)

Construct a parallepiped mesh.

Construct an oriented box in the mesh representation. If the matrix 'trans' is identity then the result of the call will be an unit cube. In general, the matrix contains a translation and rotation that positions the cube relative to the origin. The sizes of the parallelepiped are specified by the scaling factors of the matrix along the eigen axes of the LCS of the parallelepiped.

Note
The rotational componet of the matrix should be nondegenerate and ortogonal. The scaling component specifies the box sizes.
Parameters
[in]trans- The matrix specifying a postion, orientation and sizes of the box sides.
[out]result- The resulting mesh.
Returns
Returns operation result code.

◆ CreateBoxWire()

MbResultType CreateBoxWire ( const MbMatrix3D trans,
SPtr< MbMesh > &  result 
)

Construct an parallepiped wireframe.

The function makes the wireframe of the oriented box by the same rules as CreateBoxMesh.

◆ MakeSpaceWireFrame()

void MakeSpaceWireFrame ( const MbItem item,
RPArray< MbCurve3D > &  wire,
bool  isVisibleOnly = false 
)

Create a spatial wireframe by a mesh.

Create a spatial wireframe by a mesh.

Parameters
[in]item- The mesh.
[out]wire- A spatial wireframe by a mesh.
[in]isVisibleOnly- If true only visible mesh polygons are processed.

◆ MakePlaneWireFrame() [1/2]

void MakePlaneWireFrame ( const MbItem item,
const MbPlacement3D place,
RPArray< MbCurve3D > &  wire 
)

Create a planar wireframe by a mesh.

Create a planar wireframe by a mesh.

Parameters
[in]item- The mesh.
[in]place- The local coordinate system.
[out]wire- A spatial wireframe by a mesh.

◆ MakePlaneVistaWireFrame() [1/2]

void MakePlaneVistaWireFrame ( const MbItem item,
const MbPlacement3D place,
const MbCartPoint3D vista,
RPArray< MbCurve3D > &  wire 
)

Create a planar wireframe by a mesh in perspective.

Create a planar wireframe by a mesh in perspective.

Parameters
[in]item- The mesh.
[in]place- The local coordinate system.
[in]vista- The observation point .
[out]wire- A spatial wireframe by a mesh.

◆ MakePlaneWireFrame() [2/2]

void MakePlaneWireFrame ( const MbItem item,
const MbPlacement3D place,
RPArray< MbCurve > &  wire 
)

Create a planar wireframe by a mesh.

Create a planar wireframe by a mesh.

Parameters
[in]item- The mesh.
[in]place- The local coordinate system.
[out]wire- A spatial wireframe by a mesh.

◆ MakePlaneVistaWireFrame() [2/2]

void MakePlaneVistaWireFrame ( const MbItem item,
const MbPlacement3D place,
const MbCartPoint3D vista,
RPArray< MbCurve > &  wire 
)

Create a planar wireframe by a mesh in perspective.

Create a planar wireframe by a mesh in perspective.

Parameters
[in]item- The mesh.
[in]place- The local coordinate system.
[in]vista- The observation point .
[out]wire- A spatial wireframe by a mesh.

◆ CreateSpherePolyhedron()

MbResultType CreateSpherePolyhedron ( const MbPlacement3D place,
double  radius,
double &  epsilon,
MbMesh *&  result 
)

Construct an spherical mesh.

Construct an approximation of the sphere by a convex polyhedron.

Parameters
[in]place- Local placement.
[in]radius- The radius of the sphere.
[in]epsilon- The approximation parameter.
[out]result- The resulting mesh.
Returns
Returns operation result code.

◆ CreateConvexPolyhedron() [1/6]

MbResultType CreateConvexPolyhedron ( const SArray< MbFloatPoint3D > &  points,
MbMesh *&  result 
)

Calculate a convex hull of a point set.

Calculate mesh being a convex hull of a point set.

Parameters
[in]points- Point array.
[out]result- The resulting triangulation convex grid.
Returns
Returns operation result code.

◆ CreateConvexPolyhedron() [2/6]

MbResultType CreateConvexPolyhedron ( const std::vector< MbFloatPoint3D > &  points,
MbMesh *&  result 
)

Calculate a convex hull of a point set.

Calculate mesh being a convex hull of a point set.

Parameters
[in]points- Point array.
[out]result- The resulting triangulation convex grid.
Returns
Returns operation result code.

◆ CreateConvexPolyhedron() [3/6]

MbResultType CreateConvexPolyhedron ( const SArray< MbCartPoint3D > &  points,
MbMesh *&  result 
)

Calculate a convex hull of a point set.

Calculate mesh being a convex hull of a point set.

Parameters
[in]points- Point array.
[out]result- The resulting triangulation convex grid.
Returns
Returns operation result code.

◆ CreateConvexPolyhedron() [4/6]

MbResultType CreateConvexPolyhedron ( const std::vector< MbCartPoint3D > &  points,
MbMesh *&  result 
)

Calculate a convex hull of a point set.

Calculate mesh being a convex hull of a point set.

Parameters
[in]points- Point array.
[out]result- The resulting triangulation convex grid.
Returns
Returns operation result code.

◆ CreateConvexPolyhedron() [5/6]

MbResultType CreateConvexPolyhedron ( const MbMesh mesh,
double  offset,
MbMesh *&  result 
)

Construct the convex hull of triangulation grid.

Construct the convex hull of triangulation grid.

Parameters
[in]mesh- Initial triangulated mesh.
[in]offset- The offset along a normal for the resulting grid.
[out]resMesh- The resulting triangulation convex grid.
Returns
Returns operation result code.

◆ CreateConvexPolygon()

MbResultType CreateConvexPolygon ( const MbConvexHullParams params,
MbConvexHullResults result 
)

Construct the convex hull of 2D points array.

Construct the convex hull of 2D points array.

Parameters
[in]params- Operation parameters.
[out]result- Operation result.
Returns
Returns operation result code.

◆ CreateConvexPolyhedron() [6/6]

MbResultType CreateConvexPolyhedron ( const MbConvexHullParams3D params,
SPtr< MbMesh > &  result 
)

Calculate a convex hull of a point set.

Calculate mesh being a convex hull of a point set.

Parameters
[in]params- Operation parameters.
[out]result- The resulting triangulation convex grid.
Returns
Returns operation result code.

◆ AreIntersectConvexPolyhedrons()

bool AreIntersectConvexPolyhedrons ( const MbMesh mesh1,
const MbMesh mesh2 
)

Whether there is intersection of convex grids.

Whether there is intersection of convex grids.

Parameters
[in]mesh1- The first convex grid.
[in]mesh2- The second convex grid.
Returns
true - true - there is an intersection, false - there are no intersections.

◆ MeshCutting()

MbResultType MeshCutting ( MbMesh mesh,
MbeCopyMode  sameShell,
const MbPlacement3D place,
int  part,
const MbSNameMaker names,
bool  onlySection,
MbMesh *&  result 
)

Cut a part of a polygonal object by a plane.

Cut a part of a polygonal object off by a plane XY of local coordinate system.
part = 1 - a part of polygonal object above the XY plane is to be retained.
part = -1 - a part of polygonal object below the XY plane is to be retained.

Parameters
[in]mesh- The source polygonal object.
[in]sameShell- The mode of copying of the source polygonal object.
[in]place- A cutting plane.
[in]part- The direction of cutting off.
[in]names- An object for naming the new objects.
[in]onlySection- The flag of the cutting off mode: false - cut as a solid, true - cut as a shell.
[out]result- The resultant polygonal object.
Returns
Returns operation result code.

◆ MeshSection()

MbResultType MeshSection ( const MbMesh mesh,
const MbPlacement3D place,
c3d::SpaceCurvesSPtrVector &  polylines 
)

Create a section contour of a polygon figure.

Construct curves of the section of the mesh object lying on the XY plane of the local coordinate system.

Parameters
[in]mesh- The source polygonal object.
[in]place- A cutting plane.
[out]polylines- The resultant contours.
Returns
Returns operation result code.

◆ MeshMeshIntersection()

MbResultType MeshMeshIntersection ( const MbMesh mesh1,
const MbMesh mesh2,
c3d::SpaceCurvesSPtrVector &  polylines 
)

Create an intersection contour of two polygon objects.

Create an intersection contour of two polygon objects.

Parameters
[in]mesh1- The source polygonal object.
[in]mesh1- The source polygonal object.
[out]polylines- The result contours.
Returns
Returns operation result code.

◆ CalculateBallPivotingGrid()

MbResultType CalculateBallPivotingGrid ( const MbCollection collection,
double  radius,
double  radiusMin,
double  angle,
MbMesh *&  result 
)

Build a triangulation by point cloud with Ball Pivoting algorithm.

Parameters
[in]collection- Collection of 3d elements.
[in]radius- Radius of the pivoting ball, if radius==0 an autoguess for the ball pivoting radius is attempted
[in]radiusMin- Clusterization radius ( % from radius value).
[in]angle- Max angle between two mesh faces
[out]result- The resultant polygonal object.
Returns
Returns operation result code.

◆ CalculateBoundingBox()

MbOrientedBox CalculateBoundingBox ( const MbMesh mesh)

Calculate a volume-minimized oriented bounding box (OBB) containing a polygonal object.

Parameters
[in]meshA polygonal mesh for witch the bounding volume is calculated.
Returns
Bounding box with orientation chosen for minimum bounding volume.

◆ RepairInconsistentMesh()

MbResultType RepairInconsistentMesh ( MbMesh mesh)

Repair inconsistent orientation of mesh polygons with respect to each other.

Parameters
[out]result- The polygonal object.
Returns
Returns operation result code.
Warning
Under development.

◆ ConvertMeshToInstance()

MbResultType ConvertMeshToInstance ( const c3d::ItemsSPtrVector &  meshContainer,
const MbMeshToInstanceParams params,
MbMeshToInstanceResults results 
)

Search an array of objects to replace repeating polygonal objects (MbMesh) with MbInstance, which are linked to the first in the set. It is recommended to use relative accuracy for large objects which size exceeds ~1e6.

Parameters
[in]meshContainer- The array of objects.
[in]params- Parameters of the operation
[out]results- Results of the operation. Contain the initial array, where instances instances replace repeatative meshes.
Returns
Returns operation result code.

◆ CheckMeshClosure()

bool CheckMeshClosure ( const MbMesh mesh,
MeshInfo info 
)

Check the object closeness and provide information about the boundary edges.

Parameters
[in]mesh- The polygonal object.
[out]info- A struct containing information about boundary edges (if the object is not closed).
Returns
Returns true the object is closed.
Warning
Under development.

◆ InspectMeshClosure()

bool InspectMeshClosure ( const MbMesh mesh,
MeshInfo info 
)

Check the object closeness and provide detailed information about boundaries.

Check the object closeness and provide detailed information about boundaries. An extended version of CheckMeshClosure.

Parameters
[in]mesh- The polygonal object.
[out]info- A struct containing information about boundaries., if the object is not closed.
Returns
Returns true the object is closed.
Warning
Under development.

◆ SimplifyTriangularMesh() [1/2]

MbResultType SimplifyTriangularMesh ( const MbMesh mesh,
const MbMeshSimplificationParams params,
c3d::MeshesSPtrVector &  simplifiedMeshes 
)

Simplify triangulation.

Simplify triangulation.

Parameters
[in]mesh- The polygonal object.
[in]params- Simplifiation parameters.
[out]simplifiedMeshes- Vector of simplified triangulations.

◆ SimplifyTriangularMesh() [2/2]

MbResultType SimplifyTriangularMesh ( const MbMeshSimplificationParams params,
MbMesh mesh 
)

Simplify triangulation.

Simplify triangulation up to the first level from parameters.

Parameters
[in]params- Simplifiation parameters.
[in-out]mesh - The polygonal object.

◆ UnwrapMesh()

MbResultType UnwrapMesh ( const MbMeshUnwrapParams params,
MbMeshUnwrapResult results 
)

Construct a unwrapping the mesh on a plane.

Construct a unwrapping the mesh on a plane.

Parameters
[in]params- The parameters. It is necessary to call method InitBaseMesh and (optionally) InitRemeshedMesh. If remeshed mesh exists, we will work on it, otherwise on base mesh.
[out]results- The operation result. Contains the copy of the mesh from parameters with filled 2D coordinates in according to unwrapped result.
Returns
Returns the operation result code.
Warning
Under development.

◆ CalculateHideMesh()

void CalculateHideMesh ( const MbSurface surf,
const MbVector3D eyeDir,
double  sag,
MbMesh *&  mesh,
VERSION  version = Math::DefaultMathVersion() 
)

Calculate mesh.

Calculate mesh of array of surface silhouette curves.

◆ TriangulateRegion()

void TriangulateRegion ( const MbRegion region,
double  sag,
MbPlanarGrid grid 
)

Triangulation of a two-dimensional region.

Triangulation of a two-dimensional region. 'region' region has to be correct (improper handling of incorrect ones)

◆ AddColor()

virtual void MbGrid::AddColor ( float  r,
float  g,
float  b,
float  a 
)
pure virtual

Add color as an additional information of point (0 <= r,g,b,a <= 1).

Warning
Values of color components should belong to the range [ 0; 1 ].

Implemented in MbFloatGrid, and MbExactGrid.

◆ AddAxisConstraint() [2/2]

bool MbSurfaceFitConstraint::AddAxisConstraint ( const MbVector3D direction,
double  angle = 0. 
)

Add an axis constraint.

Add an axis constraint to a cylinder, cone, torus or plane. The axis of a primitive or plane normal will be collinear to a given direction by default. Besides there may be given a desired angle between the axis of a primitive or plane normal and a given direction from [0; П/2]. Fitting a plane with a normal, which is perpendicular to a given direction, implies an angle П/2. The function resets all previous axis constraints.

Parameters
[in]direction- Reference direction.
[in]angle- Angle between the axis of a primitive and a given direction.
Returns
Returns true, if an angle is correct, or false otherwise.

◆ AddCoaxialConstraint() [2/2]

void MbSurfaceFitConstraint::AddCoaxialConstraint ( const MbAxis3D axis)

Add a coaxial constraint.

Add a coaxial constraint to a cylinder, cone, torus or sphere. A primitive will be fit with a given axis. If a sphere is fit, its center lies on a given axis. The function resets all previous axis constraints.

Parameters
[in]axis- Axis.

◆ AddCylinderRadiusConstraint() [2/2]

bool MbSurfaceFitConstraint::AddCylinderRadiusConstraint ( double  radius)

Fix cylinder radius.

Fix cylinder radius. The value has to be positive.

Parameters
[in]radius- Cylinder radius.
Returns
Returns true, if a radius is correct, or false otherwise.

◆ AddSphereRadiusConstraint() [2/2]

bool MbSurfaceFitConstraint::AddSphereRadiusConstraint ( double  radius)

Fix sphere radius.

Fix sphere radius. The value has to be positive.

Parameters
[in]radius- Sphere radius.
Returns
Returns true, if a radius is correct, or false otherwise.

◆ AddConeAngleConstraint() [2/2]

bool MbSurfaceFitConstraint::AddConeAngleConstraint ( double  angle)

Fix cone angle.

Fix cone angle. The angle has to be from (0; П/2).

Parameters
[in]angle- Cone angle.
Returns
Returns true, if an angle is correct, or false otherwise.

◆ AddTorusRadiiConstraint() [2/2]

bool MbSurfaceFitConstraint::AddTorusRadiiConstraint ( double  majorRadius,
double  minorRadius 
)

Fix torus radii.

Fix torus radii. There may be fixed the major radius (_size1) or the minor radius (_size2) of a torus (one or both of them). The values have to be positive (=0 - value is not fixed).

Parameters
[in]majorRadius- Major torus radius.
[in]minorRadius- Minor torus radius.
Returns
Returns true, if radii are correct, or false otherwise.

◆ InitializeXYW()

MbResultType MbSurfaceFitConstraint::InitializeXYW ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)

Initialize the XYW-constraint (in case of validity).

Initialize the XYW-constraint. Translation along the OX и OY axes and rotation about the OZ axis of a local coordinate system are only allowed. For a plane, a cylinder, a cone or a torus there has to be fixed the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2]. For a sphere there has to be fixed the Z coordinate of its center. For a torus there has to be fixed the Z coordinate of its directrix circle. There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").

Parameters
[in]typeSurface- Surface type.
[in]typeDim- Dimensional constraint type.
[in]fixedValues- Structure with fixed values of surface parameters.
[in]place- Local coordinate system.
Returns
Returns operation result code.

◆ InitializeZ()

MbResultType MbSurfaceFitConstraint::InitializeZ ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)

Initialize the Z-constraint (in case of validity).

Initialize the Z-constraint. Translation along the OZ axis of a local coordinate system is only allowed. For a plane, a cylinder, a cone or a torus there have to be fixed:

  • the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2],
  • the azimuthal angle phi: the angle between the projection of an object's axis onto the OXY plane and the OX axis of a given CS, has to belong to [0; 2П). For a cylinder, a cone or a torus there have to be fixed the X and Y coordinates of a point of an object's axis. For a sphere there have to be fixed the X and Y coordinates of its center. There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").
    Parameters
    [in]typeSurface- Surface type.
    [in]typeDim- Dimensional constraint type.
    [in]fixedValues- Structure with fixed values of surface parameters.
    [in]place- Local coordinate system.
    Returns
    Returns operation result code.

◆ InitializeXYZ()

MbResultType MbSurfaceFitConstraint::InitializeXYZ ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)

Initialize the XYZ-constraint (in case of validity).

Initialize the XYZ-constraint. Translation is only allowed (any rotation is forbidden). For a plane, a cylinder, a cone or a torus there have to be fixed:

  • the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2],
  • the azimuthal angle phi: the angle between the projection of an object's axis onto the OXY plane and the OX axis of a given CS, has to belong to [0; 2П). There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").
    Parameters
    [in]typeSurface- Surface type.
    [in]typeDim- Dimensional constraint type.
    [in]fixedValues- Structure with fixed values of surface parameters.
    [in]place- Local coordinate system.
    Returns
    Returns operation result code.

◆ InitializeZW()

MbResultType MbSurfaceFitConstraint::InitializeZW ( MbeSpaceType  typeSurface,
MbeDimensionalConstraintType  typeDim,
const MbConstraintFixedValues fixedValues,
const MbPlacement3D place 
)

Initialize the ZW-constraint (in case of validity).

Initialize the ZW-constraint. Translation along the OZ axis and rotation about the OZ axis of a local coordinate system are only allowed. For a plane, a cylinder, a cone or a torus there have to be fixed:

  • the zenith angle theta: the angle between an object's axis and the OZ axis of a given CS, has to belong to [0; П/2],
  • the initial azimuthal angle phi: the angle between the projection of an object's axis in the initial position onto the OXY plane and the OX axis of a given CS, has to belong to [0; 2П),
  • the distance between an object's axis the OZ axis of a given CS. For a sphere there has to be fixed the distance between its center and the OZ axis of a given CS. There may be fixed some dimensional parameters of an object if necessary. The function resets all previous constraints (for example, having been set by "Add*Constraint").
    Parameters
    [in]typeSurface- Surface type.
    [in]typeDim- Dimensional constraint type.
    [in]fixedValues- Structure with fixed values of surface parameters.
    [in]place- Local coordinate system.
    Returns
    Returns operation result code.