Version: 9.16.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 Predicate * clone () const
 

Private Member Functions

bool process ()
 
bool findConnected (const TDataMapFacePtrInt &theAllFacePtrInt, SMDS_MeshFace *theStartFace, TMapOfLink &theNonManifold, TIDsMap &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_Mesh * myMesh
 
TIDsMap myMapIds
 
TIDsMap myMapBadGeomIds
 
TVectorOfFacePtr myAllFacePtr
 
TDataMapFacePtrInt myAllFacePtrIntDMap
 
double myAngToler
 
bool myIsOnlyManifold
 
long myStartElemId
 

Member Typedef Documentation

◆ TDataMapFacePtrInt

◆ TDataMapOfLinkFacePtr

◆ TMapOfLink

◆ TVectorOfFacePtr

◆ TVectorOfLink

Constructor & Destructor Documentation

◆ ManifoldPart()

ManifoldPart::ManifoldPart ( )

References myAngToler, myIsOnlyManifold, and myMesh.

◆ ~ManifoldPart()

ManifoldPart::~ManifoldPart ( )

References myMesh.

Member Function Documentation

◆ clone()

◆ expandBoundary()

void ManifoldPart::expandBoundary ( ManifoldPart::TMapOfLink &  theMapOfBoundary,
ManifoldPart::TVectorOfLink &  theSeqOfBoundary,
ManifoldPart::TDataMapOfLinkFacePtr &  theDMapLinkFacePtr,
ManifoldPart::TMapOfLink &  theNonManifold,
SMDS_MeshFace *  theNextFace 
) const
private

◆ findConnected()

bool ManifoldPart::findConnected ( const TDataMapFacePtrInt &  theAllFacePtrInt,
SMDS_MeshFace *  theStartFace,
ManifoldPart::TMapOfLink &  theNonManifold,
TIDsMap &  theResFaces 
)
private

◆ GetAngleTolerance()

double ManifoldPart::GetAngleTolerance ( ) const

References myAngToler.

◆ getFacesByLink()

void ManifoldPart::getFacesByLink ( const Link &  theLink,
ManifoldPart::TVectorOfFacePtr &  theFaces 
) const
private

◆ GetType()

SMDSAbs_ElementType ManifoldPart::GetType ( ) const
virtual

Implements SMESH::Controls::Predicate.

References SMDSAbs_Face.

◆ IsEqual()

bool ManifoldPart::IsEqual ( const ManifoldPart::Link &  theLink1,
const ManifoldPart::Link &  theLink2 
)

◆ isInPlane()

bool ManifoldPart::isInPlane ( const SMDS_MeshFace *  theFace1,
const SMDS_MeshFace *  theFace2 
)
private

◆ IsSatisfy()

bool ManifoldPart::IsSatisfy ( long  theElementId)
virtual

Implements SMESH::Controls::Predicate.

References myMapIds.

◆ process()

◆ SetAngleTolerance()

void ManifoldPart::SetAngleTolerance ( const double  theAngToler)

References myAngToler.

◆ SetIsOnlyManifold()

void ManifoldPart::SetIsOnlyManifold ( const bool  theIsOnly)

References myIsOnlyManifold.

◆ SetMesh()

void ManifoldPart::SetMesh ( const SMDS_Mesh *  theMesh)
virtual

Implements SMESH::Controls::Functor.

References myMesh, and process().

◆ SetStartElem()

void ManifoldPart::SetStartElem ( const long  theStartElemId)

References myStartElemId.

Field Documentation

◆ myAllFacePtr

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

Referenced by process().

◆ myAllFacePtrIntDMap

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

Referenced by findConnected(), and process().

◆ myAngToler

double SMESH::Controls::ManifoldPart::myAngToler
private

◆ myIsOnlyManifold

bool SMESH::Controls::ManifoldPart::myIsOnlyManifold
private

◆ myMapBadGeomIds

TIDsMap SMESH::Controls::ManifoldPart::myMapBadGeomIds
private

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

◆ myMapIds

TIDsMap SMESH::Controls::ManifoldPart::myMapIds
private

Referenced by IsSatisfy(), and process().

◆ myMesh

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

◆ myStartElemId

long SMESH::Controls::ManifoldPart::myStartElemId
private

Referenced by process(), and SetStartElem().