Back to index

salome-smesh  6.5.0
SMESHDS_Command.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  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 
00023 //  SMESH SMESHDS : management of mesh data and SMESH document
00024 //  File   : SMESHDS_Command.hxx
00025 //  Module : SMESH
00026 //
00027 #ifndef _SMESHDS_Command_HeaderFile
00028 #define _SMESHDS_Command_HeaderFile
00029 
00030 #include "SMESH_SMESHDS.hxx"
00031 
00032 #include "SMESHDS_CommandType.hxx"
00033 #include <list>
00034 #include <vector>
00035 
00036 class SMESHDS_EXPORT SMESHDS_Command
00037 {
00038 
00039   public:
00040         SMESHDS_Command(const SMESHDS_CommandType aType);
00041         void AddNode(int NewNodeID, double x, double y, double z);
00042         void Add0DElement(int New0DElementID, int idnode);
00043         void AddEdge(int NewEdgeID, int idnode1, int idnode2);
00044         void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
00045         void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
00046                 int idnode4);
00047         void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
00048                 int idnode4);
00049         void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
00050                 int idnode4, int idnode5);
00051         void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
00052                 int idnode4, int idnode5, int idnode6);
00053         void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
00054                 int idnode4, int idnode5, int idnode6, int idnode7, int idnode8);
00055         void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
00056                        int idnode4, int idnode5, int idnode6, int idnode7, int idnode8,
00057                        int idnode9, int idnode10, int idnode11, int idnode12);
00058         void AddPolygonalFace (const int        ElementID,
00059                                std::vector<int> nodes_ids);
00060         void AddPolyhedralVolume (const int        ElementID,
00061                                   std::vector<int> nodes_ids,
00062                                   std::vector<int> quantities);
00063         // special methods for quadratic elements
00064         void AddEdge(int NewEdgeID, int n1, int n2, int n12);
00065         void AddFace(int NewFaceID, int n1, int n2, int n3,
00066                      int n12, int n23, int n31);
00067         void AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
00068                      int n12, int n23, int n34, int n41);
00069         void AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
00070                      int n12, int n23, int n34, int n41, int nCenter);
00071         void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
00072                        int n12, int n23, int n31, int n14, int n24, int n34);
00073         void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, int n5,
00074                        int n12, int n23, int n34, int n41,
00075                        int n15, int n25, int n35, int n45);
00076         void AddVolume(int NewVolID, int n1, int n2, int n3,
00077                        int n4, int n5, int n6,
00078                        int n12, int n23, int n31,
00079                        int n45, int n56, int n64,
00080                        int n14, int n25, int n36);
00081         void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
00082                        int n5,  int n6,  int n7,  int n8,
00083                        int n12, int n23, int n34, int n41,
00084                        int n56, int n67, int n78, int n85,
00085                        int n15, int n26, int n37, int n48);
00086         void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
00087                        int n5,  int n6,  int n7,  int n8,
00088                        int n12, int n23, int n34, int n41,
00089                        int n56, int n67, int n78, int n85,
00090                        int n15, int n26, int n37, int n48,
00091                        int n1234,int n1256,int n2367,int n3478,
00092                        int n1458,int n5678,int nCenter);
00093         
00094         void MoveNode(int NewNodeID, double x, double y, double z);
00095         void RemoveNode(int NodeID);
00096         void RemoveElement(int ElementID);
00097         void ChangeElementNodes(int ElementID, int nodes[], int nbnodes);
00098         void ChangePolyhedronNodes(const int ElementID,
00099                                    std::vector<int> nodes_ids,
00100                                    std::vector<int> quantities);
00101         void Renumber (const bool isNodes, const int startID, const int deltaID);
00102         SMESHDS_CommandType GetType();
00103         int GetNumber();
00104         const std::list<int> & GetIndexes();
00105         const std::list<double> & GetCoords();
00106          ~SMESHDS_Command();
00107   private:
00108         SMESHDS_CommandType myType;
00109         int myNumber;
00110         std::list<double> myReals;
00111         std::list<int> myIntegers;
00112 };
00113 #endif