SALOME - SMESH
|
00001 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE 00002 // 00003 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, 00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 00005 // 00006 // This library is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU Lesser General Public 00008 // License as published by the Free Software Foundation; either 00009 // version 2.1 of the License. 00010 // 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // Lesser General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public 00017 // License along with this library; if not, write to the Free Software 00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 // 00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com 00021 // 00022 // SMESH SMESHDS : management of mesh data and SMESH document 00023 // File : SMESHDS_Script.hxx 00024 // Module : SMESH 00025 // 00026 #ifndef _SMESHDS_Script_HeaderFile 00027 #define _SMESHDS_Script_HeaderFile 00028 00029 #include "SMESH_SMESHDS.hxx" 00030 00031 #include "SMESHDS_Command.hxx" 00032 00033 #include <list> 00034 #include <vector> 00035 00036 00037 class SMESHDS_EXPORT SMESHDS_Script 00038 { 00039 public: 00040 SMESHDS_Script(bool theIsEmbeddedMode); 00041 ~SMESHDS_Script(); 00042 00043 void SetModified(bool theModified); 00044 bool IsModified(); 00045 00046 void AddNode(int NewNodeID, double x, double y, double z); 00047 void Add0DElement(int New0DElementID, int idnode); 00048 void AddEdge(int NewEdgeID, int idnode1, int idnode2); 00049 void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3); 00050 void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3, 00051 int idnode4); 00052 void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3, 00053 int idnode4); 00054 void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3, 00055 int idnode4, int idnode5); 00056 void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3, 00057 int idnode4, int idnode5, int idnode6); 00058 void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3, 00059 int idnode4, int idnode5, int idnode6, int idnode7, int idnode8); 00060 00061 void AddPolygonalFace (const int NewFaceID, 00062 std::vector<int> nodes_ids); 00063 void AddPolyhedralVolume (const int NewVolID, 00064 std::vector<int> nodes_ids, 00065 std::vector<int> quantities); 00066 00067 // special methods for quadratic elements 00068 void AddEdge(int NewEdgeID, int n1, int n2, int n12); 00069 void AddFace(int NewFaceID, int n1, int n2, int n3, 00070 int n12, int n23, int n31); 00071 void AddFace(int NewFaceID, int n1, int n2, int n3, int n4, 00072 int n12, int n23, int n34, int n41); 00073 void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, 00074 int n12, int n23, int n31, int n14, int n24, int n34); 00075 void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, int n5, 00076 int n12, int n23, int n34, int n41, 00077 int n15, int n25, int n35, int n45); 00078 void AddVolume(int NewVolID, int n1, int n2, int n3, 00079 int n4, int n5, int n6, 00080 int n12, int n23, int n31, 00081 int n45, int n56, int n64, 00082 int n14, int n25, int n36); 00083 void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, 00084 int n5, int n6, int n7, int n8, 00085 int n12, int n23, int n34, int n41, 00086 int n56, int n67, int n78, int n85, 00087 int n15, int n26, int n37, int n48); 00088 void MoveNode(int NewNodeID, double x, double y, double z); 00089 void RemoveNode(int NodeID); 00090 void RemoveElement(int ElementID); 00091 void ChangeElementNodes(int ElementID, int nodes[], int nbnodes); 00092 void ChangePolyhedronNodes(const int ElementID, 00093 std::vector<int> nodes_ids, 00094 std::vector<int> quantities); 00095 void Renumber (const bool isNodes, const int startID, const int deltaID); 00096 void ClearMesh(); 00097 void Clear(); 00098 const std::list<SMESHDS_Command*> & GetCommands(); 00099 00100 private: 00101 SMESHDS_Command* getCommand(const SMESHDS_CommandType aType); 00102 00103 std::list<SMESHDS_Command*> myCommands; 00104 00105 bool myIsEmbeddedMode; 00106 bool myIsModified; 00107 }; 00108 00109 #endif