Go to the documentation of this file.
26 #ifndef _SMESHDS_Mesh_HeaderFile
27 #define _SMESHDS_Mesh_HeaderFile
41 #include <TopTools_IndexedMapOfShape.hxx>
42 #include <TopoDS_Shape.hxx>
43 #include <TopoDS_Solid.hxx>
44 #include <TopoDS_Shell.hxx>
45 #include <TopoDS_Face.hxx>
46 #include <TopoDS_Vertex.hxx>
47 #include <TopoDS_Edge.hxx>
49 #include <NCollection_DataMap.hxx>
115 int n12,
int n23,
int n31,
int ID);
132 int n12,
int n23,
int n34,
int n41,
int ID);
211 int n12,
int n23,
int n31,
212 int n14,
int n24,
int n34,
int ID);
237 int n12,
int n23,
int n34,
int n41,
238 int n15,
int n25,
int n35,
int n45,
270 int n4,
int n5,
int n6,
271 int n12,
int n23,
int n31,
272 int n45,
int n56,
int n64,
273 int n14,
int n25,
int n36,
309 int n5,
int n6,
int n7,
int n8,
310 int n12,
int n23,
int n34,
int n41,
311 int n56,
int n67,
int n78,
int n85,
312 int n15,
int n26,
int n37,
int n48,
365 (std::vector<int> nodes_ids,
366 std::vector<int> quantities,
370 (std::vector<const SMDS_MeshNode*> nodes,
371 std::vector<int> quantities,
375 (std::vector<const SMDS_MeshNode*> nodes,
376 std::vector<int> quantities);
395 std::vector<const SMDS_MeshNode*> nodes);
397 std::vector<const SMDS_MeshNode*> nodes,
398 std::vector<int> quantities);
399 void Renumber (
const bool isNodes,
const int startID=1,
const int deltaID=1);
408 const TopoDS_Shape & S);
410 const TopoDS_Shape & S);
416 {
return myShapeIndexToSubMesh; }
419 const std::list<const SMESHDS_Hypothesis*>&
GetHypothesis(
const TopoDS_Shape & S)
const;
437 const std::set<SMESHDS_GroupBase*>&
GetGroups()
const {
return myGroups; }
447 std::map<int,SMESHDS_SubMesh*>::iterator it = myShapeIndexToSubMesh.find( Index );
448 if ( it == myShapeIndexToSubMesh.end() )
449 it = myShapeIndexToSubMesh.insert( std::make_pair(Index,
new SMESHDS_SubMesh() )).first;
450 it->second->AddNode( aNode );
458 typedef std::list<const SMESHDS_Hypothesis*>
THypList;
virtual SMDS_MeshVolume * AddPolyhedralVolumeWithID(std::vector< const SMDS_MeshNode * > nodes, std::vector< int > quantities, const int ID)
int MaxShapeIndex() const
bool ChangePolyhedronNodes(const SMDS_MeshElement *elem, std::vector< const SMDS_MeshNode * > nodes, std::vector< int > quantities)
virtual SMDS_MeshVolume * AddPolyhedralVolumeWithID(std::vector< int > nodes_ids, std::vector< int > quantities, const int ID)
std::map< int, SMESHDS_SubMesh * > TShapeIndexToSubMesh
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n12, int n23, int n34, int n41, int n15, int n25, int n35, int n45, int ID)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n15, const SMDS_MeshNode *n25, const SMDS_MeshNode *n35, const SMDS_MeshNode *n45)
void RemoveFreeElement(const SMDS_MeshElement *, SMESHDS_SubMesh *, bool fromGroups=true)
ShapeToHypothesis myShapeToHypothesis
virtual SMDS_MeshVolume * AddPolyhedralVolume(std::vector< const SMDS_MeshNode * > nodes, std::vector< int > quantities)
void RemoveFreeNode(const SMDS_MeshNode *, SMESHDS_SubMesh *, bool fromGroups=true)
TShapeIndexToSubMesh myShapeIndexToSubMesh
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n56, const SMDS_MeshNode *n67, const SMDS_MeshNode *n78, const SMDS_MeshNode *n85, const SMDS_MeshNode *n15, const SMDS_MeshNode *n26, const SMDS_MeshNode *n37, const SMDS_MeshNode *n48, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n12, int n23, int n31, int n45, int n56, int n64, int n14, int n25, int n36, int ID)
virtual SMDS_MeshFace * AddPolygonalFaceWithID(std::vector< int > nodes_ids, const int ID)
SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode)
bool HasHypothesis(const TopoDS_Shape &S)
void SetNodeInVolume(SMDS_MeshNode *aNode, const TopoDS_Solid &S)
virtual SMDS_Mesh0DElement * Add0DElementWithID(int nodeID, int ID)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, int ID)
void SetNodeOnVertex(SMDS_MeshNode *aNode, const TopoDS_Vertex &S)
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int n12, int n23, int n31, int ID)
void SetNodeInVolume(SMDS_MeshNode *aNode, const TopoDS_Shell &S)
SMESHDS_SubMesh * NewSubMesh(int Index)
virtual SMDS_MeshNode * AddNodeWithID(double x, double y, double z, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n45, const SMDS_MeshNode *n56, const SMDS_MeshNode *n64, const SMDS_MeshNode *n14, const SMDS_MeshNode *n25, const SMDS_MeshNode *n36, int ID)
virtual SMDS_Mesh0DElement * Add0DElement(const SMDS_MeshNode *node)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int ID)
void SetMeshElementOnShape(const SMDS_MeshElement *anElt, const TopoDS_Shape &S)
void SetNodeOnVertex(SMDS_MeshNode *aNode, int Index)
bool add(const SMDS_MeshElement *elem, SMESHDS_SubMesh *subMesh)
virtual SMDS_MeshEdge * AddEdgeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, int ID)
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int n4, int n12, int n23, int n34, int n41, int ID)
SMESHDS_Script * GetScript()
bool RemoveHypothesis(const TopoDS_Shape &S, const SMESHDS_Hypothesis *H)
virtual SMDS_MeshEdge * AddEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int ID)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n14, const SMDS_MeshNode *n24, const SMDS_MeshNode *n34)
void MoveNode(const SMDS_MeshNode *, double x, double y, double z)
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31)
void SetNodeOnFace(SMDS_MeshNode *aNode, int Index, double u=0., double v=0.)
void SetNodeOnEdge(SMDS_MeshNode *aNode, const TopoDS_Edge &S, double u=0.)
std::set< SMESHDS_GroupBase * > TGroups
void addNodeToSubmesh(const SMDS_MeshNode *aNode, int Index)
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int n4, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, int ID)
NCollection_DataMap< TopoDS_Shape, THypList > ShapeToHypothesis
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n45, const SMDS_MeshNode *n56, const SMDS_MeshNode *n64, const SMDS_MeshNode *n14, const SMDS_MeshNode *n25, const SMDS_MeshNode *n36)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int ID)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8)
TopoDS_Shape ShapeToMesh() const
SMESHDS_Script * myScript
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int ID)
void SetMeshElementOnShape(const SMDS_MeshElement *anElt, int Index)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int ID)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6)
TopoDS_Shape myCurSubShape
TopTools_IndexedMapOfShape myIndexToShape
virtual SMDS_MeshEdge * AddEdgeWithID(int n1, int n2, int n12, int ID)
SMESHDS_SubMesh * getSubmesh(const TopoDS_Shape &shape)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n12, int n23, int n34, int n41, int n56, int n67, int n78, int n85, int n15, int n26, int n37, int n48, int ID)
SMESHDS_SubMesh * myCurSubMesh
void ShapeToMesh(const TopoDS_Shape &S)
void SetNodeInVolume(const SMDS_MeshNode *aNode, int Index)
SMESHDS_SubMesh * MeshElements(const TopoDS_Shape &S) const
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, int ID)
const std::map< int, SMESHDS_SubMesh * > & SubMeshes() const
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, int ID)
bool ChangePolygonNodes(const SMDS_MeshElement *elem, std::vector< const SMDS_MeshNode * > nodes)
void UnSetNodeOnShape(const SMDS_MeshNode *aNode)
SMESHDS_SubMesh * MeshElements(const int Index)
void SetNodeOnEdge(SMDS_MeshNode *aNode, int Index, double u=0.)
const TopoDS_Shape & IndexToShape(int ShapeIndex) const
SMESHDS_SubMesh * getSubmesh(const int Index)
bool ChangeElementNodes(const SMDS_MeshElement *elem, const SMDS_MeshNode *nodes[], const int nbnodes)
bool HasMeshElements(const TopoDS_Shape &S)
bool AddHypothesis(const TopoDS_Shape &SS, const SMESHDS_Hypothesis *H)
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3)
virtual SMDS_MeshEdge * AddEdgeWithID(int n1, int n2, int ID)
virtual SMDS_Mesh0DElement * Add0DElementWithID(const SMDS_MeshNode *node, int ID)
void AddGroup(SMESHDS_GroupBase *theGroup)
void SetNodeOnFace(SMDS_MeshNode *aNode, const TopoDS_Face &S, double u=0., double v=0.)
void RemoveElement(const SMDS_MeshElement *)
virtual SMDS_MeshEdge * AddEdgeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n12, int ID)
void RemoveGroup(SMESHDS_GroupBase *theGroup)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n15, const SMDS_MeshNode *n25, const SMDS_MeshNode *n35, const SMDS_MeshNode *n45, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n14, const SMDS_MeshNode *n24, const SMDS_MeshNode *n34, int ID)
virtual SMDS_MeshFace * AddPolygonalFace(std::vector< const SMDS_MeshNode * > nodes)
int ShapeToIndex(const TopoDS_Shape &aShape) const
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n12, int n23, int n31, int n14, int n24, int n34, int ID)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, int ID)
const std::set< SMESHDS_GroupBase * > & GetGroups() const
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n56, const SMDS_MeshNode *n67, const SMDS_MeshNode *n78, const SMDS_MeshNode *n85, const SMDS_MeshNode *n15, const SMDS_MeshNode *n26, const SMDS_MeshNode *n37, const SMDS_MeshNode *n48)
std::list< const SMESHDS_Hypothesis * > THypList
virtual SMDS_MeshFace * AddPolygonalFaceWithID(std::vector< const SMDS_MeshNode * > nodes, const int ID)
virtual SMDS_MeshNode * AddNode(double x, double y, double z)
int AddCompoundSubmesh(const TopoDS_Shape &S, TopAbs_ShapeEnum type=TopAbs_SHAPE)
void Renumber(const bool isNodes, const int startID=1, const int deltaID=1)
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
virtual void RemoveNode(const SMDS_MeshNode *)
std::list< int > SubMeshIndices()
void UnSetMeshElementOnShape(const SMDS_MeshElement *anElt, const TopoDS_Shape &S)
virtual SMDS_MeshEdge * AddEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n12)
bool IsGroupOfSubShapes(const TopoDS_Shape &aSubShape) const
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41)
const std::list< const SMESHDS_Hypothesis * > & GetHypothesis(const TopoDS_Shape &S) const