Container of xD mesh elements substituting other ones in the input mesh of an (x+1)D algorithm. More...
#include <SMESH_ProxyMesh.hxx>
Data Structures | |
class | SubMesh |
Proxy sub-mesh. More... | |
Public Types | |
typedef boost::shared_ptr < SMESH_ProxyMesh > | Ptr |
typedef std::map< const SMDS_MeshNode *, const SMDS_MeshNode *, TIDCompare > | TN2NMap |
Public Member Functions | |
SMESH_ProxyMesh () | |
Constructor; mesh must be set by a descendant class. More... | |
SMESH_ProxyMesh (std::vector< SMESH_ProxyMesh::Ptr > &components) | |
Make a proxy mesh from components. More... | |
SMESH_ProxyMesh (const SMESH_Mesh &mesh) | |
virtual | ~SMESH_ProxyMesh () |
Destructor deletes proxy submeshes and tmp elemens. More... | |
const SMESHDS_SubMesh * | GetSubMesh (const TopoDS_Shape &shape) const |
Returns the submesh of a shape; it can be a proxy sub-mesh. More... | |
const SubMesh * | GetProxySubMesh (const TopoDS_Shape &shape) const |
Returns the proxy sub-mesh of a shape; it can be NULL. More... | |
const SMDS_MeshNode * | GetProxyNode (const SMDS_MeshNode *node) const |
Returns the proxy node of a node; the input node is returned if no proxy exists. More... | |
int | NbProxySubMeshes () const |
Returns number of proxy sub-meshes. More... | |
SMDS_ElemIteratorPtr | GetFaces () const |
Returns iterator on all faces of the mesh taking into account substitutions To be used in case of mesh without shape. More... | |
SMDS_ElemIteratorPtr | GetFaces (const TopoDS_Shape &face) const |
Returns iterator on all faces on the shape taking into account substitutions. More... | |
int | NbFaces () const |
Return total nb of faces taking into account substitutions. More... | |
bool | IsTemporary (const SMDS_MeshElement *elem) const |
Return true if the element is a temporary one. More... | |
SMESH_Mesh * | GetMesh () const |
SMESHDS_Mesh * | GetMeshDS () const |
Returns mesh DS. More... | |
Protected Member Functions | |
void | setMesh (const SMESH_Mesh &mesh) |
int | shapeIndex (const TopoDS_Shape &shape) const |
Returns index of a shape. More... | |
virtual SubMesh * | newSubmesh (int index=0) const |
SubMesh * | findProxySubMesh (int shapeIndex=0) const |
Returns a proxy sub-mesh. More... | |
SubMesh * | getProxySubMesh (int shapeIndex) |
Returns a proxy sub-mesh; it is created if not yet exists. More... | |
SubMesh * | getProxySubMesh (const TopoDS_Shape &shape=TopoDS_Shape()) |
Returns a proxy sub-mesh; it is created if not yet exists. More... | |
bool | takeProxySubMesh (const TopoDS_Shape &shape, SMESH_ProxyMesh *proxyMesh) |
Move proxy sub-mesh from other proxy mesh to this, returns true if sub-mesh found. More... | |
void | takeTmpElemsInMesh (SMESH_ProxyMesh *proxyMesh) |
Move tmp elements residing the _mesh from other proxy mesh to this. More... | |
void | removeTmpElement (const SMDS_MeshElement *elem) |
Removes tmp elements from the _mesh. More... | |
void | storeTmpElement (const SMDS_MeshElement *elem) |
Stores tmp element residing the _mesh. More... | |
void | setNode2Node (const SMDS_MeshNode *srcNode, const SMDS_MeshNode *proxyNode, const SubMesh *subMesh) |
Set node-node correspondence. More... | |
Protected Attributes | |
std::vector< SMDSAbs_EntityType > | _allowedTypes |
Private Attributes | |
const SMESH_Mesh * | _mesh |
std::vector< SubMesh * > | _subMeshes |
std::set< const SMDS_MeshElement * > | _elemsInMesh |
SubMesh | _subContainer |
Container of xD mesh elements substituting other ones in the input mesh of an (x+1)D algorithm.
typedef boost::shared_ptr<SMESH_ProxyMesh> SMESH_ProxyMesh::Ptr |
typedef std::map<const SMDS_MeshNode*, const SMDS_MeshNode*, TIDCompare > SMESH_ProxyMesh::TN2NMap |
SMESH_ProxyMesh::SMESH_ProxyMesh | ( | ) |
Constructor; mesh must be set by a descendant class.
SMESH_ProxyMesh::SMESH_ProxyMesh | ( | std::vector< SMESH_ProxyMesh::Ptr > & | components | ) |
Make a proxy mesh from components.
Components become empty
References _allowedTypes, _mesh, _subMeshes, if(), and takeTmpElemsInMesh().
SMESH_ProxyMesh::SMESH_ProxyMesh | ( | const SMESH_Mesh & | mesh | ) |
References _mesh.
|
virtual |
Destructor deletes proxy submeshes and tmp elemens.
References _elemsInMesh, _subMeshes, GetMeshDS(), and SMESHDS_Mesh::RemoveFreeElement().
|
protected |
Returns a proxy sub-mesh.
References _subMeshes.
Referenced by StdMeshers_QuadToTriaAdaptor::Compute2ndPart(), GetProxyNode(), and takeProxySubMesh().
SMDS_ElemIteratorPtr SMESH_ProxyMesh::GetFaces | ( | ) | const |
Returns iterator on all faces of the mesh taking into account substitutions To be used in case of mesh without shape.
References _allowedTypes, _mesh, _subContainer, _subMeshes, SMESHDS_SubMesh::AddSubMesh(), SMDS_Mesh::elementsIterator(), GetMeshDS(), SMESH_Mesh::HasShapeToMesh(), NbFaces(), SMESH_Mesh::NbFaces(), SMESHDS_SubMesh::NbSubMeshes(), SMESHDS_SubMesh::RemoveAllSubmeshes(), and SMDSAbs_Face.
Referenced by StdMeshers_QuadToTriaAdaptor::Compute(), VISCOUS_3D::_ViscousBuilder::computeGeomSize(), and VISCOUS_3D::_ViscousBuilder::smoothAndCheck().
SMDS_ElemIteratorPtr SMESH_ProxyMesh::GetFaces | ( | const TopoDS_Shape & | face | ) | const |
Returns iterator on all faces on the shape taking into account substitutions.
References _mesh, _subContainer, SMESHDS_SubMesh::AddSubMesh(), GetSubMesh(), SMESH_Mesh::HasShapeToMesh(), and SMESHDS_SubMesh::RemoveAllSubmeshes().
SMESH_Mesh* SMESH_ProxyMesh::GetMesh | ( | ) | const |
References _mesh.
Referenced by SMESH_2D_Algo::FixInternalNodes(), VISCOUS_3D::_SolidData::GetShapeEdges(), and VISCOUS_3D::_SolidData::PrepareEdgesToSmoothOnFace().
SMESHDS_Mesh * SMESH_ProxyMesh::GetMeshDS | ( | ) | const |
Returns mesh DS.
References _mesh, and SMESH_Mesh::GetMeshDS().
Referenced by StdMeshers_QuadToTriaAdaptor::Compute2ndPart(), SMESH_2D_Algo::FixInternalNodes(), GetFaces(), GetProxyNode(), GetSubMesh(), VISCOUS_3D::_ViscousBuilder::MakeN2NMap(), NbFaces(), removeTmpElement(), shapeIndex(), and ~SMESH_ProxyMesh().
const SMDS_MeshNode * SMESH_ProxyMesh::GetProxyNode | ( | const SMDS_MeshNode * | node | ) | const |
Returns the proxy node of a node; the input node is returned if no proxy exists.
References _mesh, findProxySubMesh(), SMESH_Mesh::GetAncestors(), GetMeshDS(), SMDS_MeshNode::GetPosition(), SMDS_MeshElement::getshapeId(), SMESH_MesherHelper::GetSubShapeByNode(), SMDS_Position::GetTypeOfPosition(), shapeIndex(), and SMDS_TOP_FACE.
Referenced by SMESH_MesherHelper::LoadNodeColumns().
const SMESH_ProxyMesh::SubMesh * SMESH_ProxyMesh::GetProxySubMesh | ( | const TopoDS_Shape & | shape | ) | const |
Returns the proxy sub-mesh of a shape; it can be NULL.
References _subMeshes, and shapeIndex().
Referenced by VISCOUS_3D::_ViscousBuilder::MakeN2NMap().
|
protected |
Returns a proxy sub-mesh; it is created if not yet exists.
References _subMeshes, and newSubmesh().
Referenced by StdMeshers_QuadToTriaAdaptor::Compute(), VISCOUS_3D::_MeshOfSolid::getFaceSubM(), and getProxySubMesh().
|
protected |
Returns a proxy sub-mesh; it is created if not yet exists.
References getProxySubMesh(), and shapeIndex().
const SMESHDS_SubMesh * SMESH_ProxyMesh::GetSubMesh | ( | const TopoDS_Shape & | shape | ) | const |
Returns the submesh of a shape; it can be a proxy sub-mesh.
References _subMeshes, GetMeshDS(), SMESHDS_Mesh::MeshElements(), and shapeIndex().
Referenced by StdMeshers_QuadToTriaAdaptor::Compute(), SMESH_2D_Algo::FixInternalNodes(), GetFaces(), VISCOUS_3D::_ViscousListener::GetSolidMesh(), SMESH_MesherHelper::LoadNodeColumns(), NbFaces(), and VISCOUS_3D::_ViscousListener::RemoveSolidMesh().
bool SMESH_ProxyMesh::IsTemporary | ( | const SMDS_MeshElement * | elem | ) | const |
Return true if the element is a temporary one.
References _elemsInMesh, and SMDS_MeshElement::GetID().
Referenced by SMESH_MesherHelper::LoadNodeColumns().
int SMESH_ProxyMesh::NbFaces | ( | ) | const |
Return total nb of faces taking into account substitutions.
References _allowedTypes, _mesh, _subMeshes, GetMeshDS(), SMDS_Mesh::GetMeshInfo(), SMESH_Mesh::GetShapeToMesh(), GetSubMesh(), SMESH_Mesh::HasShapeToMesh(), SMDS_MeshInfo::NbEntities(), SMDS_Mesh::NbFaces(), SMDSEntity_Quad_Quadrangle, and SMDSEntity_Triangle.
Referenced by GetFaces().
int SMESH_ProxyMesh::NbProxySubMeshes | ( | ) | const |
Returns number of proxy sub-meshes.
References _subMeshes.
Reimplemented in VISCOUS_2D::_ProxyMeshOfFace.
Referenced by getProxySubMesh().
|
protected |
Removes tmp elements from the _mesh.
References _elemsInMesh, SMDS_MeshElement::GetID(), GetMeshDS(), and SMESHDS_Mesh::RemoveFreeElement().
Referenced by StdMeshers_QuadToTriaAdaptor::Compute().
|
protected |
References _mesh.
Referenced by VISCOUS_3D::_MeshOfSolid::_MeshOfSolid(), and StdMeshers_QuadToTriaAdaptor::Compute().
|
protected |
Set node-node correspondence.
References SMESH_ProxyMesh::SubMesh::_n2n.
Referenced by VISCOUS_3D::_MeshOfSolid::setNode2Node().
|
protected |
Returns index of a shape.
References _mesh, GetMeshDS(), SMESH_Mesh::HasShapeToMesh(), and SMESHDS_Mesh::ShapeToIndex().
Referenced by VISCOUS_3D::_MeshOfSolid::getFaceSubM(), GetProxyNode(), GetProxySubMesh(), getProxySubMesh(), GetSubMesh(), and takeProxySubMesh().
|
protected |
Stores tmp element residing the _mesh.
References _elemsInMesh.
Referenced by StdMeshers_QuadToTriaAdaptor::Compute().
|
protected |
Move proxy sub-mesh from other proxy mesh to this, returns true if sub-mesh found.
References _mesh, _subMeshes, findProxySubMesh(), and shapeIndex().
Referenced by StdMeshers_QuadToTriaAdaptor::Compute().
|
protected |
Move tmp elements residing the _mesh from other proxy mesh to this.
References _elemsInMesh.
Referenced by StdMeshers_QuadToTriaAdaptor::Compute(), and SMESH_ProxyMesh().
|
protected |
Referenced by StdMeshers_QuadToTriaAdaptor::Compute(), GetFaces(), NbFaces(), and SMESH_ProxyMesh().
|
private |
Referenced by IsTemporary(), removeTmpElement(), storeTmpElement(), takeTmpElemsInMesh(), and ~SMESH_ProxyMesh().
|
private |
Referenced by GetFaces(), GetMesh(), GetMeshDS(), GetProxyNode(), NbFaces(), setMesh(), shapeIndex(), SMESH_ProxyMesh(), and takeProxySubMesh().
|
mutableprivate |
Referenced by GetFaces().
|
private |