27 #ifndef _SMESHDS_Mesh_HeaderFile
28 #define _SMESHDS_Mesh_HeaderFile
35 #include <TopTools_IndexedMapOfShape.hxx>
36 #include <TopoDS_Shape.hxx>
59 #include <NCollection_DataMap.hxx>
61 typedef std::list<const SMESHDS_Hypothesis*>
THypList;
71 bool IsEmbeddedMode();
72 void SetPersistentId(
int id);
73 int GetPersistentId()
const;
75 void ShapeToMesh(
const TopoDS_Shape & S);
76 TopoDS_Shape ShapeToMesh()
const;
130 int n12,
int n23,
int n31,
int ID);
147 int n12,
int n23,
int n31,
int nCenter,
int ID);
166 int n12,
int n23,
int n34,
int n41,
int ID);
187 int n12,
int n23,
int n34,
int n41,
int nCenter,
int ID);
267 int n7,
int n8,
int n9,
int n10,
int n11,
int n12,
int ID);
296 int n12,
int n23,
int n31,
297 int n14,
int n24,
int n34,
int ID);
322 int n12,
int n23,
int n34,
int n41,
323 int n15,
int n25,
int n35,
int n45,
355 int n4,
int n5,
int n6,
356 int n12,
int n23,
int n31,
357 int n45,
int n56,
int n64,
358 int n14,
int n25,
int n36,
394 int n5,
int n6,
int n7,
int n8,
395 int n12,
int n23,
int n34,
int n41,
396 int n56,
int n67,
int n78,
int n85,
397 int n15,
int n26,
int n37,
int n48,
443 int n5,
int n6,
int n7,
int n8,
444 int n12,
int n23,
int n34,
int n41,
445 int n56,
int n67,
int n78,
int n85,
446 int n15,
int n26,
int n37,
int n48,
447 int n1234,
int n1256,
int n2367,
int n3478,
448 int n1458,
int n5678,
int nCenter,
523 (
const std::vector<int>& nodes_ids,
524 const std::vector<int>& quantities,
528 (
const std::vector<const SMDS_MeshNode*>& nodes,
529 const std::vector<int>& quantities,
533 (
const std::vector<const SMDS_MeshNode*>& nodes,
534 const std::vector<int>& quantities);
553 std::vector<const SMDS_MeshNode*> nodes);
555 std::vector<const SMDS_MeshNode*> nodes,
556 std::vector<int> quantities);
557 bool ModifyCellNodes(
int smdsVolId, std::map<int,int> localClonedNodeIds);
558 void Renumber (
const bool isNodes,
const int startID=1,
const int deltaID=1);
560 void SetNodeInVolume(
const SMDS_MeshNode * aNode,
const TopoDS_Shell & S);
561 void SetNodeInVolume(
const SMDS_MeshNode * aNode,
const TopoDS_Solid & S);
562 void SetNodeOnFace (
const SMDS_MeshNode * aNode,
const TopoDS_Face& S,
double u=0.,
double v=0.);
563 void SetNodeOnEdge (
const SMDS_MeshNode * aNode,
const TopoDS_Edge& S,
double u=0.);
564 void SetNodeOnVertex(
const SMDS_MeshNode * aNode,
const TopoDS_Vertex & S);
566 void SetMeshElementOnShape (
const SMDS_MeshElement * anElt,
const TopoDS_Shape & S);
567 void UnSetMeshElementOnShape(
const SMDS_MeshElement * anElt,
const TopoDS_Shape & S);
568 void SetNodeInVolume(
const SMDS_MeshNode * aNode,
int Index);
569 void SetNodeOnFace (
const SMDS_MeshNode * aNode,
int Index,
double u=0.,
double v=0.);
570 void SetNodeOnEdge (
const SMDS_MeshNode * aNode,
int Index,
double u=0.);
571 void SetNodeOnVertex(
const SMDS_MeshNode * aNode,
int Index);
573 bool HasMeshElements(
const TopoDS_Shape & S)
const;
576 std::list<int> SubMeshIndices()
const;
579 bool HasHypothesis(
const TopoDS_Shape & S);
580 const std::list<const SMESHDS_Hypothesis*>& GetHypothesis(
const TopoDS_Shape & S)
const;
587 int ShapeToIndex(
const TopoDS_Shape & aShape)
const;
588 const TopoDS_Shape& IndexToShape(
int ShapeIndex)
const;
590 int MaxSubMeshIndex()
const;
593 int AddCompoundSubmesh(
const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
599 const std::set<SMESHDS_GroupBase*>&
GetGroups()
const {
return myGroups; }
601 bool IsGroupOfSubShapes (
const TopoDS_Shape& aSubShape)
const;
604 void CleanDownWardConnectivity();
605 void BuildDownWardConnectivity(
bool withEdges);