Version: 9.12.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::LinkTMapOfLink
 
typedef std::vector< SMDS_MeshFace * > TVectorOfFacePtr
 
typedef std::vector< ManifoldPart::LinkTVectorOfLink
 
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, 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_MeshmyMesh
 
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().