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 smIdType n12,smIdType n23,smIdType n31, smIdType ID);
147 smIdType n12,smIdType n23,smIdType n31, smIdType nCenter, smIdType ID);
166 smIdType n12,smIdType n23,smIdType n34,smIdType n41, smIdType ID);
187 smIdType n12,smIdType n23,smIdType n34,smIdType n41, smIdType nCenter, smIdType ID);
247 virtual SMDS_MeshVolume*
AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType n6, smIdType n7, smIdType n8, smIdType ID);
267 smIdType n7, smIdType n8, smIdType n9, smIdType n10, smIdType n11, smIdType n12, smIdType ID);
296 smIdType n12,smIdType n23,smIdType n31,
297 smIdType n14,smIdType n24,smIdType n34, smIdType ID);
322 smIdType n12,smIdType n23,smIdType n34,smIdType n41,
323 smIdType n15,smIdType n25,smIdType n35,smIdType n45,
355 smIdType n4, smIdType n5, smIdType n6,
356 smIdType n12,smIdType n23,smIdType n31,
357 smIdType n45,smIdType n56,smIdType n64,
358 smIdType n14,smIdType n25,smIdType n36,
394 smIdType n4, smIdType n5, smIdType n6,
395 smIdType n12,smIdType n23,smIdType n31,
396 smIdType n45,smIdType n56,smIdType n64,
397 smIdType n14,smIdType n25,smIdType n36,
398 smIdType n1245, smIdType n2356, smIdType n1346,
440 smIdType n5, smIdType n6, smIdType n7, smIdType n8,
441 smIdType n12,smIdType n23,smIdType n34,smIdType n41,
442 smIdType n56,smIdType n67,smIdType n78,smIdType n85,
443 smIdType n15,smIdType n26,smIdType n37,smIdType n48,
489 smIdType n5, smIdType n6, smIdType n7, smIdType n8,
490 smIdType n12,smIdType n23,smIdType n34,smIdType n41,
491 smIdType n56,smIdType n67,smIdType n78,smIdType n85,
492 smIdType n15,smIdType n26,smIdType n37,smIdType n48,
493 smIdType n1234,smIdType n1256,smIdType n2367,smIdType n3478,
494 smIdType n1458,smIdType n5678,smIdType nCenter,
569 (
const std::vector<smIdType>& nodes_ids,
570 const std::vector<int>& quantities,
574 (
const std::vector<const SMDS_MeshNode*>& nodes,
575 const std::vector<int>& quantities,
579 (
const std::vector<const SMDS_MeshNode*>& nodes,
580 const std::vector<int>& quantities);
599 std::vector<const SMDS_MeshNode*>& nodes);
601 const std::vector<const SMDS_MeshNode*>& nodes,
602 const std::vector<int>& quantities);
603 bool ModifyCellNodes(vtkIdType smdsVolId, std::map<int,int> localClonedNodeIds);
604 void Renumber (
const bool isNodes,
const smIdType startID=1,
const smIdType deltaID=1);
606 void SetNodeInVolume(
const SMDS_MeshNode * aNode,
const TopoDS_Shell & S);
607 void SetNodeInVolume(
const SMDS_MeshNode * aNode,
const TopoDS_Solid & S);
608 void SetNodeOnFace (
const SMDS_MeshNode * aNode,
const TopoDS_Face& S,
double u=0.,
double v=0.);
609 void SetNodeOnEdge (
const SMDS_MeshNode * aNode,
const TopoDS_Edge& S,
double u=0.);
610 void SetNodeOnVertex(
const SMDS_MeshNode * aNode,
const TopoDS_Vertex & S);
613 void SetMeshElementOnShape (
const SMDS_MeshElement * anElt,
const TopoDS_Shape & S);
614 void UnSetMeshElementOnShape(
const SMDS_MeshElement * anElt,
const TopoDS_Shape & S);
615 void SetNodeInVolume(
const SMDS_MeshNode * aNode,
int Index);
616 void SetNodeOnFace (
const SMDS_MeshNode * aNode,
int Index,
double u=0.,
double v=0.);
617 void SetNodeOnEdge (
const SMDS_MeshNode * aNode,
int Index,
double u=0.);
618 void SetNodeOnVertex(
const SMDS_MeshNode * aNode,
int Index);
620 bool HasMeshElements(
const TopoDS_Shape & S)
const;
623 std::list<int> SubMeshIndices()
const;
626 bool HasHypothesis(
const TopoDS_Shape & S);
627 const std::list<const SMESHDS_Hypothesis*>& GetHypothesis(
const TopoDS_Shape & S)
const;
634 int ShapeToIndex(
const TopoDS_Shape & aShape)
const;
635 const TopoDS_Shape& IndexToShape(
int ShapeIndex)
const;
637 int MaxSubMeshIndex()
const;
640 int AddCompoundSubmesh(
const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
646 const std::set<SMESHDS_GroupBase*>&
GetGroups()
const {
return myGroups; }
648 bool IsGroupOfSubShapes (
const TopoDS_Shape& aSubShape)
const;
651 void CleanDownWardConnectivity();
652 void BuildDownWardConnectivity(
bool withEdges);
NCollection_DataMap< TopoDS_Shape, THypList, SMESHDS_Hasher > ShapeToHypothesis
Definition: SMESHDS_Mesh.hxx:62
std::list< const SMESHDS_Hypothesis * > THypList
Definition: SMESHDS_Mesh.hxx:53
boost::shared_ptr< SMESHDS_SubMeshIterator > SMESHDS_SubMeshIteratorPtr
Definition: SMESHDS_SubMesh.hxx:43
#define SMESHDS_EXPORT
Definition: SMESH_SMESHDS.hxx:37
Definition: SMDS_Downward.hxx:46
Ball element.
Definition: SMDS_BallElement.hxx:36
0D mesh element.
Definition: SMDS_Mesh0DElement.hxx:36
Edge mesh element.
Definition: SMDS_MeshEdge.hxx:36
Base class for elements.
Definition: SMDS_MeshElement.hxx:56
Mesh face.
Definition: SMDS_MeshFace.hxx:41
Definition: SMDS_MeshNode.hxx:36
Mesh volume.
Definition: SMDS_MeshVolume.hxx:40
Definition: SMDS_Mesh.hxx:53
virtual void MoveNode(const SMDS_MeshNode *n, double x, double y, double z)
Definition: SMDS_Mesh.cxx:985
bool ChangeElementNodes(const SMDS_MeshElement *elem, const SMDS_MeshNode *nodes[], const int nbnodes)
Definition: SMDS_Mesh.cxx:1116
virtual SMDS_BallElement * AddBallWithID(smIdType n, double diameter, smIdType ID)
create a Ball and add it to the current Mesh
Definition: SMDS_Mesh.cxx:248
bool ChangePolyhedronNodes(const SMDS_MeshElement *elem, const std::vector< const SMDS_MeshNode * > &nodes, const std::vector< int > &quantities)
Definition: SMDS_Mesh.cxx:1080
virtual SMDS_Mesh0DElement * Add0DElementWithID(smIdType n, smIdType ID)
create a Mesh0DElement and add it to the current Mesh
Definition: SMDS_Mesh.cxx:205
virtual SMDS_MeshFace * AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType ID)
Add a triangle defined by its nodes IDs.
Definition: SMDS_Mesh.cxx:351
virtual void RemoveNode(const SMDS_MeshNode *node)
Remove a node and all the elements which own this node.
Definition: SMDS_Mesh.cxx:1016
virtual void RemoveElement(const SMDS_MeshElement *elem, std::vector< const SMDS_MeshElement * > &removedElems, std::vector< const SMDS_MeshElement * > &removedNodes, const bool removenodes=false)
Definition: SMDS_Mesh.cxx:1855
virtual SMDS_MeshFace * AddPolygonalFaceWithID(const std::vector< smIdType > &nodes_ids, const smIdType ID)
Add a polygon defined by its nodes IDs.
Definition: SMDS_Mesh.cxx:816
virtual SMDS_MeshFace * AddPolygonalFace(const std::vector< const SMDS_MeshNode * > &nodes)
Add a polygon defined by its nodes.
Definition: SMDS_Mesh.cxx:854
virtual SMDS_MeshNode * AddNodeWithID(double x, double y, double z, smIdType ID)
create a MeshNode and add it to the current Mesh
Definition: SMDS_Mesh.cxx:187
virtual SMDS_MeshVolume * AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType ID)
Create a new tetrahedron and add it to the mesh.
Definition: SMDS_Mesh.cxx:458
virtual SMDS_MeshVolume * AddPolyhedralVolume(const std::vector< const SMDS_MeshNode * > &nodes, const std::vector< int > &quantities)
Create a new polyhedral volume and add it to the mesh.
Definition: SMDS_Mesh.cxx:955
virtual SMDS_BallElement * AddBall(const SMDS_MeshNode *n, double diameter)
create a Ball and add it to the current Mesh
Definition: SMDS_Mesh.cxx:259
virtual SMDS_MeshFace * AddQuadPolygonalFaceWithID(const std::vector< smIdType > &nodes_ids, const smIdType ID)
Add a quadratic polygon defined by its nodes IDs.
Definition: SMDS_Mesh.cxx:863
virtual SMDS_MeshFace * AddQuadPolygonalFace(const std::vector< const SMDS_MeshNode * > &nodes)
Add a quadratic polygon defined by its nodes.
Definition: SMDS_Mesh.cxx:899
virtual void CompactMesh()
Definition: SMDS_Mesh.cxx:2997
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3)
Add a triangle defined by its nodes.
Definition: SMDS_Mesh.cxx:340
virtual SMDS_MeshVolume * AddPolyhedralVolumeWithID(const std::vector< smIdType > &nodes_ids, const std::vector< int > &quantities, const smIdType ID)
Create a new polyhedral volume and add it to the mesh.
Definition: SMDS_Mesh.cxx:911
virtual SMDS_MeshEdge * AddEdgeWithID(smIdType n1, smIdType n2, smIdType ID)
create a MeshEdge and add it to the current Mesh
Definition: SMDS_Mesh.cxx:292
virtual SMDS_MeshNode * AddNode(double x, double y, double z)
create a MeshNode and add it to the current Mesh An ID is automatically assigned to the node.
Definition: SMDS_Mesh.cxx:177
virtual SMDS_MeshEdge * AddEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
create a MeshEdge and add it to the current Mesh
Definition: SMDS_Mesh.cxx:305
virtual void RemoveFreeElement(const SMDS_MeshElement *elem)
Remove only the given element and only if it is free.
Definition: SMDS_Mesh.cxx:1952
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
Create a new tetrahedron and add it to the mesh.
Definition: SMDS_Mesh.cxx:443
virtual SMDS_Mesh0DElement * Add0DElement(const SMDS_MeshNode *n)
create a Mesh0DElement and add it to the current Mesh
Definition: SMDS_Mesh.cxx:216
Definition: SMESHDS_GroupBase.hxx:42
Definition: SMESHDS_Hypothesis.hxx:37
Definition: SMESHDS_Mesh.cxx:54
Definition: SMESHDS_Mesh.hxx:68
ShapeToHypothesis myShapeToHypothesis
Definition: SMESHDS_Mesh.hxx:658
void RemoveGroup(SMESHDS_GroupBase *theGroup)
Definition: SMESHDS_Mesh.hxx:644
std::set< SMESHDS_GroupBase * > TGroups
Definition: SMESHDS_Mesh.hxx:668
const ShapeToHypothesis & GetHypotheses() const
Definition: SMESHDS_Mesh.hxx:629
int myPersistentID
Definition: SMESHDS_Mesh.hxx:660
TGroups myGroups
Definition: SMESHDS_Mesh.hxx:669
TopoDS_Shape myShape
Definition: SMESHDS_Mesh.hxx:661
SubMeshHolder * mySubMeshHolder
Definition: SMESHDS_Mesh.hxx:663
const std::set< SMESHDS_GroupBase * > & GetGroups() const
Definition: SMESHDS_Mesh.hxx:646
int MaxShapeIndex() const
Definition: SMESHDS_Mesh.hxx:636
bool myIsEmbeddedMode
Definition: SMESHDS_Mesh.hxx:672
SMESHDS_Script * myScript
Definition: SMESHDS_Mesh.hxx:671
size_t GetNbGroups() const
Definition: SMESHDS_Mesh.hxx:645
void AddGroup(SMESHDS_GroupBase *theGroup)
Definition: SMESHDS_Mesh.hxx:643
TopTools_IndexedMapOfShape myIndexToShape
Definition: SMESHDS_Mesh.hxx:666
Definition: SMESHDS_Script.hxx:41
Definition: SMESHDS_SubMesh.hxx:48