Version: 9.12.0
SMESHDS_Script.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 // SMESH SMESHDS : management of mesh data and SMESH document
24 // File : SMESHDS_Script.hxx
25 // Module : SMESH
26 //
27 #ifndef _SMESHDS_Script_HeaderFile
28 #define _SMESHDS_Script_HeaderFile
29 
30 #include "SMESH_SMESHDS.hxx"
31 
32 #include "SMESHDS_Command.hxx"
33 
34 #include <smIdType.hxx>
35 
36 #include <list>
37 #include <vector>
38 
39 
41 {
42  public:
43  SMESHDS_Script(bool theIsEmbeddedMode);
44  ~SMESHDS_Script();
45 
46  void SetModified(bool theModified);
47  bool IsModified();
48 
49  void AddNode(smIdType NewNodeID, double x, double y, double z);
50  void Add0DElement(smIdType New0DElementID, smIdType idnode);
51  void AddEdge(smIdType NewEdgeID, smIdType idnode1, smIdType idnode2);
52  void AddFace(smIdType NewFaceID, smIdType idnode1, smIdType idnode2, smIdType idnode3);
53  void AddFace(smIdType NewFaceID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
54  smIdType idnode4);
55  void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
56  smIdType idnode4);
57  void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
58  smIdType idnode4, smIdType idnode5);
59  void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
60  smIdType idnode4, smIdType idnode5, smIdType idnode6);
61  void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
62  smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8);
63  void AddVolume(smIdType NewVolID, smIdType idnode1, smIdType idnode2, smIdType idnode3,
64  smIdType idnode4, smIdType idnode5, smIdType idnode6, smIdType idnode7, smIdType idnode8,
65  smIdType idnode9, smIdType idnode10, smIdType idnode11, smIdType idnode12);
66 
67  void AddPolygonalFace (const smIdType NewFaceID,
68  const std::vector<smIdType>& nodes_ids);
69  void AddQuadPolygonalFace (const smIdType NewFaceID,
70  const std::vector<smIdType>& nodes_ids);
71  void AddPolyhedralVolume (const smIdType NewVolID,
72  const std::vector<smIdType>& nodes_ids,
73  const std::vector<int>& quantities);
74  void AddBall(smIdType NewBallID, smIdType node, double diameter);
75 
76  // special methods for quadratic elements
77  void AddEdge(smIdType NewEdgeID, smIdType n1, smIdType n2, smIdType n12);
78  void AddFace(smIdType NewFaceID, smIdType n1, smIdType n2, smIdType n3,
79  smIdType n12, smIdType n23, smIdType n31);
80  void AddFace(smIdType NewFaceID, smIdType n1, smIdType n2, smIdType n3,
81  smIdType n12, smIdType n23, smIdType n31, smIdType nCenter);
82  void AddFace(smIdType NewFaceID, smIdType n1, smIdType n2, smIdType n3, smIdType n4,
83  smIdType n12, smIdType n23, smIdType n34, smIdType n41);
84  void AddFace(smIdType NewFaceID, smIdType n1, smIdType n2, smIdType n3, smIdType n4,
85  smIdType n12, smIdType n23, smIdType n34, smIdType n41, smIdType nCenter);
86  void AddVolume(smIdType NewVolID, smIdType n1, smIdType n2, smIdType n3, smIdType n4,
87  smIdType n12, smIdType n23, smIdType n31, smIdType n14, smIdType n24, smIdType n34);
88  void AddVolume(smIdType NewVolID, smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5,
89  smIdType n12, smIdType n23, smIdType n34, smIdType n41,
90  smIdType n15, smIdType n25, smIdType n35, smIdType n45);
91  void AddVolume(smIdType NewVolID, smIdType n1, smIdType n2, smIdType n3,
92  smIdType n4, smIdType n5, smIdType n6,
93  smIdType n12, smIdType n23, smIdType n31,
94  smIdType n45, smIdType n56, smIdType n64,
95  smIdType n14, smIdType n25, smIdType n36);
96  void AddVolume(smIdType NewVolID, smIdType n1, smIdType n2, smIdType n3,
97  smIdType n4, smIdType n5, smIdType n6,
98  smIdType n12, smIdType n23, smIdType n31,
99  smIdType n45, smIdType n56, smIdType n64,
100  smIdType n14, smIdType n25, smIdType n36,
101  smIdType n1245, smIdType n2356, smIdType n1346);
102  void AddVolume(smIdType NewVolID, smIdType n1, smIdType n2, smIdType n3, smIdType n4,
103  smIdType n5, smIdType n6, smIdType n7, smIdType n8,
104  smIdType n12, smIdType n23, smIdType n34, smIdType n41,
105  smIdType n56, smIdType n67, smIdType n78, smIdType n85,
106  smIdType n15, smIdType n26, smIdType n37, smIdType n48);
107  void AddVolume(smIdType NewVolID, smIdType n1, smIdType n2, smIdType n3, smIdType n4,
108  smIdType n5, smIdType n6, smIdType n7, smIdType n8,
109  smIdType n12, smIdType n23, smIdType n34, smIdType n41,
110  smIdType n56, smIdType n67, smIdType n78, smIdType n85,
111  smIdType n15, smIdType n26, smIdType n37, smIdType n48,
112  smIdType n1234,smIdType n1256,smIdType n2367,smIdType n3478,
113  smIdType n1458,smIdType n5678,smIdType nCenter);
114  void MoveNode(smIdType NewNodeID, double x, double y, double z);
115  void RemoveNode(smIdType NodeID);
116  void RemoveElement(smIdType ElementID);
117  void ChangeElementNodes(smIdType ElementID, smIdType nodes[], smIdType nbnodes);
118  void ChangePolyhedronNodes(const smIdType ElementID,
119  const std::vector<smIdType>& nodes_ids,
120  const std::vector<int>& quantities);
121  void Renumber (const bool isNodes, const smIdType startID, const smIdType deltaID);
122  void ClearMesh();
123  void Clear();
124  const std::list<SMESHDS_Command*> & GetCommands();
125 
126  private:
127  SMESHDS_Command* getCommand(const SMESHDS_CommandType aType);
128 
129  std::list<SMESHDS_Command*> myCommands;
130 
133 };
134 
135 #endif
SMESHDS_CommandType
Definition: SMESHDS_CommandType.hxx:30
#define SMESHDS_EXPORT
Definition: SMESH_SMESHDS.hxx:37
Definition: SMESHDS_Command.hxx:38
Definition: SMESHDS_Script.hxx:41
bool myIsEmbeddedMode
Definition: SMESHDS_Script.hxx:131
std::list< SMESHDS_Command * > myCommands
Definition: SMESHDS_Script.hxx:129
bool myIsModified
Definition: SMESHDS_Script.hxx:132
long AddNode(SMESH::SMESH_Mesh_ptr theMesh, float x, float y, float z, const QStringList &theParameters)
Definition: SMESHGUI_NodesDlg.cxx:96