SALOME - SMESH
SMESHDS_Script.hxx
Go to the documentation of this file.
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines