Version: 8.3.0
SMESH::Controls::ManifoldPart Class Reference

#include <SMESH_ControlsDef.hxx>

Inheritance diagram for SMESH::Controls::ManifoldPart:

Data Structures

class  Link
 

Public Types

typedef std::set
< ManifoldPart::Link
TMapOfLink
 
typedef std::vector
< SMDS_MeshFace * > 
TVectorOfFacePtr
 
typedef std::vector
< ManifoldPart::Link
TVectorOfLink
 
typedef std::map
< SMDS_MeshFace *, int
TDataMapFacePtrInt
 
typedef std::map
< ManifoldPart::Link,
SMDS_MeshFace * > 
TDataMapOfLinkFacePtr
 

Public Member Functions

bool IsEqual (const ManifoldPart::Link &theLink1, const ManifoldPart::Link &theLink2)
 
 ManifoldPart ()
 
 ~ManifoldPart ()
 
virtual void SetMesh (const SMDS_Mesh *theMesh)
 
virtual bool IsSatisfy (long theElementId)
 
virtual SMDSAbs_ElementType GetType () const
 
void SetAngleTolerance (const double theAngToler)
 
double GetAngleTolerance () const
 
void SetIsOnlyManifold (const bool theIsOnly)
 
void SetStartElem (const long theStartElemId)
 
virtual Predicateclone () const
 

Private Member Functions

bool process ()
 
bool findConnected (const TDataMapFacePtrInt &theAllFacePtrInt, SMDS_MeshFace *theStartFace, TMapOfLink &theNonManifold, TColStd_MapOfInteger &theResFaces)
 
bool isInPlane (const SMDS_MeshFace *theFace1, const SMDS_MeshFace *theFace2)
 
void expandBoundary (TMapOfLink &theMapOfBoundary, TVectorOfLink &theSeqOfBoundary, TDataMapOfLinkFacePtr &theDMapLinkFacePtr, TMapOfLink &theNonManifold, SMDS_MeshFace *theNextFace) const
 
void getFacesByLink (const Link &theLink, TVectorOfFacePtr &theFaces) const
 

Private Attributes

const SMDS_MeshmyMesh
 
TColStd_MapOfInteger myMapIds
 
TColStd_MapOfInteger myMapBadGeomIds
 
TVectorOfFacePtr myAllFacePtr
 
TDataMapFacePtrInt myAllFacePtrIntDMap
 
double myAngToler
 
bool myIsOnlyManifold
 
long myStartElemId
 

Member Typedef Documentation

Constructor & Destructor Documentation

ManifoldPart::ManifoldPart ( )

References myAngToler, myIsOnlyManifold, and myMesh.

ManifoldPart::~ManifoldPart ( )

References myMesh.

Member Function Documentation

void ManifoldPart::expandBoundary ( ManifoldPart::TMapOfLink theMapOfBoundary,
ManifoldPart::TVectorOfLink theSeqOfBoundary,
ManifoldPart::TDataMapOfLinkFacePtr theDMapLinkFacePtr,
ManifoldPart::TMapOfLink theNonManifold,
SMDS_MeshFace theNextFace 
) const
private
bool ManifoldPart::findConnected ( const TDataMapFacePtrInt theAllFacePtrInt,
SMDS_MeshFace theStartFace,
ManifoldPart::TMapOfLink theNonManifold,
TColStd_MapOfInteger &  theResFaces 
)
private
double ManifoldPart::GetAngleTolerance ( ) const

References myAngToler.

void ManifoldPart::getFacesByLink ( const Link theLink,
ManifoldPart::TVectorOfFacePtr theFaces 
) const
private
SMDSAbs_ElementType ManifoldPart::GetType ( ) const
virtual

Implements SMESH::Controls::Predicate.

References SMDSAbs_Face.

bool ManifoldPart::IsEqual ( const ManifoldPart::Link theLink1,
const ManifoldPart::Link theLink2 
)
bool ManifoldPart::isInPlane ( const SMDS_MeshFace theFace1,
const SMDS_MeshFace theFace2 
)
private
bool ManifoldPart::IsSatisfy ( long  theElementId)
virtual

Implements SMESH::Controls::Predicate.

References myMapIds.

void ManifoldPart::SetAngleTolerance ( const double  theAngToler)

References myAngToler.

void ManifoldPart::SetIsOnlyManifold ( const bool  theIsOnly)

References myIsOnlyManifold.

void ManifoldPart::SetMesh ( const SMDS_Mesh theMesh)
virtual

Implements SMESH::Controls::Functor.

References myMesh, and process().

void ManifoldPart::SetStartElem ( const long  theStartElemId)

References myStartElemId.

Field Documentation

TVectorOfFacePtr SMESH::Controls::ManifoldPart::myAllFacePtr
private

Referenced by process().

TDataMapFacePtrInt SMESH::Controls::ManifoldPart::myAllFacePtrIntDMap
private

Referenced by findConnected(), and process().

double SMESH::Controls::ManifoldPart::myAngToler
private
bool SMESH::Controls::ManifoldPart::myIsOnlyManifold
private
TColStd_MapOfInteger SMESH::Controls::ManifoldPart::myMapBadGeomIds
private

Referenced by findConnected(), isInPlane(), and process().

TColStd_MapOfInteger SMESH::Controls::ManifoldPart::myMapIds
private

Referenced by IsSatisfy(), and process().

const SMDS_Mesh* SMESH::Controls::ManifoldPart::myMesh
private
long SMESH::Controls::ManifoldPart::myStartElemId
private

Referenced by process(), and SetStartElem().