C3D Kernel  104598
Classes | Enumerations | Functions
Polygonal Objects
Geometric Computations Methods
Collaboration diagram for Polygonal Objects:

Classes

class  MbMeshProcessor
 Class for creating a BRep solid by polygonal mesh. 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  MbFaceAndGrid
 Mathematical face and its calculated grid. More...
struct  MbLumpAndFaces
 A solid with an array of faces and triangulation grids. More...

Enumerations

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

Functions

void CalculateWire (const MbPlaneItem &obj, const MbPlacement3D &plane, double sag, MbMesh &mesh)
 Create a polygonal two-dimensional object.
MbResultType CreateIcosahedron (const MbPlacement3D &place, double radius, const MbFormNote &fn, MbMesh *&result)
 Construct an icosahedron mesh.
MbResultType CreateSpherePolyhedron (const MbPlacement3D &place, double radius, double &epsilon, MbMesh *&result)
 Construct an spherical mesh.
MbResultType CreateConvexPolyhedron (const SArray< MbFloatPoint3D > &points, MbMesh *&result)
 Calculate a convex hull of a point set.
MbResultType CreateConvexPolyhedron (const MbMesh &mesh, double offset, MbMesh *&result)
 Construct the convex hull of triangulation grid.
bool AreIntersectConvexPolyhedrons (const MbMesh &mesh1, const MbMesh &mesh2)
 Whether there is intersection of convex grids.
MbResultType MeshCutting (MbMesh &mesh, MbeCopyMode sameShell, const MbPlacement3D &place, int part, const MbSNameMaker &names, bool closed, MbMesh *&result)
 Cut a part of a polygonal object by a plane.
MbResultType CalculateBallPivotingGrid (const MbCollection &collection, double radius, double radiusMin, double angle, MbMesh *&result)
 Build a triangulation by point cloud with Ball Pivoting algorithm.
static MbMeshProcessorMbMeshProcessor::Create (const MbCollection &collection)
 Create mesh processor by collection.
virtual void MbMeshProcessor::SetRelativeTolerance (double tolerance)=0
 Set relative tolerance.
virtual void MbMeshProcessor::SetTolerance (double tolerance)=0
 Set tolerance.
virtual double MbMeshProcessor::GetTolerance () const =0
 Get tolerance.
virtual const MbCollectionMbMeshProcessor::GetSimplifiedMesh ()=0
 Get fixed (simplified) copy of the input mesh.
virtual const MbCollectionMbMeshProcessor::GetSegmentedMesh ()=0
 Get segmented copy of the input mesh.
virtual const std::vector
< MbCurvature > & 
MbMeshProcessor::CalculateCurvatures ()=0
 Calculate the principal curvatures and principal curvature directions at mesh points.
virtual MbResultType MbMeshProcessor::SegmentMesh (bool createSurfaces=true)=0
 Segment a polygonal mesh.
virtual MbResultType MbMeshProcessor::CreateBRepShell (MbFaceShell *&pShell)=0
 Create shell.
virtual void MbMeshProcessor::FitSurfaceToSegment (size_t idxSegment)=0
 Fit surface to segment .
virtual void MbMeshProcessor::FitSurfaceToSegment (size_t idxSegment, MbeSpaceType surfaceType)=0
 Fit surface of a given type to a segment.
virtual const MbSurfaceMbMeshProcessor::GetSegmentSurface (size_t idxSegment) const =0
 Get surface of segment.
virtual void MbMeshProcessor::ResetSegmentation ()=0
 Reset segmentation of the polygonal mesh.
virtual bool MbMeshProcessor::FindShortestVertexPath (uint v1, uint v2, std::vector< uint > &path)=0
 Find shortest path between two vertices.
MbResultType ConvertMeshToShell (MbMesh &mesh, MbFaceShell *&shell, double tolerance=0.1)
 Create shell from mesh with automatic surface reconstruction.
MbResultType ConvertCollectionToShell (MbCollection &collection, MbFaceShell *&shell, double tolerance=0.1)
 Create shell from collection with automatic surface reconstruction.
void CalculateHideMesh (const MbSurface &surf, const MbVector3D &eyeDir, double sag, MbMesh *&mesh)
 Calculate mesh.
void TriangulateRegion (const MbRegion &region, double sag, MbPlanarGrid &grid)
 Triangulation of a two-dimensional region.

Enumeration Type Documentation

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.

Enumerator:
mt_Forward 

Forward.

mt_Backward 

Backward.


Function Documentation

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

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

Parameters:
[in]obj- Two-dimensional object (if NULL, 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.
MbResultType CreateIcosahedron ( const MbPlacement3D place,
double  radius,
const MbFormNote fn,
MbMesh *&  result 
)

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.
MbResultType CreateSpherePolyhedron ( const MbPlacement3D place,
double  radius,
double &  epsilon,
MbMesh *&  result 
)

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.
MbResultType CreateConvexPolyhedron ( const SArray< MbFloatPoint3D > &  points,
MbMesh *&  result 
)

Calculate mesh being a convex hull of a point set.

Returns:
Returns operation result code.
MbResultType CreateConvexPolyhedron ( const MbMesh mesh,
double  offset,
MbMesh *&  result 
)

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.
bool AreIntersectConvexPolyhedrons ( const MbMesh mesh1,
const MbMesh mesh2 
)

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.
MbResultType MeshCutting ( MbMesh mesh,
MbeCopyMode  sameShell,
const MbPlacement3D place,
int  part,
const MbSNameMaker names,
bool  closed,
MbMesh *&  result 
)

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]solid- The source polygonal object.
[in]sameShell- The mode of copying of the source polygonal object.
[in]surface- A cutting plane.
[in]part- The direction of cutting off.
[in]names- An object for naming the new objects.
[in]closed- The flag of the cutting off mode: true - cut as a solid, false - cut as a shell.
[out]result- The resultant polygonal object.
Returns:
Returns operation result code.
MbResultType CalculateBallPivotingGrid ( const MbCollection collection,
double  radius,
double  radiusMin,
double  angle,
MbMesh *&  result 
)
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.
static MbMeshProcessor* MbMeshProcessor::Create ( const MbCollection collection) [static]

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

Parameters:
[in]collection- Input collection containing triangle mesh.
Returns:
Returns pointer to created object.
virtual void MbMeshProcessor::SetRelativeTolerance ( double  tolerance) [pure virtual]

Set relative tolerance by current mesh box.

Parameters:
[in]tolerance- Relative tolerance to set.
virtual void MbMeshProcessor::SetTolerance ( double  tolerance) [pure virtual]

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.
virtual double MbMeshProcessor::GetTolerance ( ) const [pure virtual]

Get current tolerance used in surface reconstruction and segments extension.

Returns:
Returns absolute tolerance.
virtual const MbCollection& MbMeshProcessor::GetSimplifiedMesh ( ) [pure virtual]

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.
virtual const MbCollection& MbMeshProcessor::GetSegmentedMesh ( ) [pure virtual]

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.
virtual const std::vector<MbCurvature>& MbMeshProcessor::CalculateCurvatures ( ) [pure virtual]

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

Returns:
Returns principal curvatures and principal curvature directions at mesh points.
virtual MbResultType MbMeshProcessor::SegmentMesh ( bool  createSurfaces = true) [pure virtual]

Perform segmentation of a polygonal mesh.

Returns:
Returns operation result code.
Parameters:
[in]createSurfaces- Create surfaces on segments or not.
virtual MbResultType MbMeshProcessor::CreateBRepShell ( MbFaceShell *&  pShell) [pure virtual]

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 paramters).

Parameters:
[out]pShell- The pointer to created shell.
Returns:
Returns operation result code.
virtual void MbMeshProcessor::FitSurfaceToSegment ( size_t  idxSegment) [pure virtual]

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

Parameters:
[in]idxSegment- Index of a mesh segment.
virtual void MbMeshProcessor::FitSurfaceToSegment ( size_t  idxSegment,
MbeSpaceType  surfaceType 
) [pure virtual]

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.
virtual const MbSurface* MbMeshProcessor::GetSegmentSurface ( size_t  idxSegment) const [pure virtual]

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 - NULL.
virtual void MbMeshProcessor::ResetSegmentation ( ) [pure virtual]

Reset segmentation of the polygonal mesh stored inside MbMeshProcessor.

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

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.
MbResultType ConvertMeshToShell ( MbMesh mesh,
MbFaceShell *&  shell,
double  tolerance = 0.1 
)

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]tolerance- Surface reconstruction tolerance (default 0.1).
Returns:
Returns operation result code.
MbResultType ConvertCollectionToShell ( MbCollection collection,
MbFaceShell *&  shell,
double  tolerance = 0.1 
)

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]tolerance- Surface reconstruction tolerance (default 0.1).
Returns:
Returns operation result code.
void CalculateHideMesh ( const MbSurface surf,
const MbVector3D eyeDir,
double  sag,
MbMesh *&  mesh 
)

Calculate mesh of array of surface silhouette curves.

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

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines