Salome HOME
Copyright update 2020
[modules/smesh.git] / src / SMESHDS / SMESHDS_Command.hxx
index edfe89a2bf4efdc5a3c15a656369b8eeb1285671..8c0c3a81b264b844264c606b3b67e98d761308d2 100644 (file)
-// File generated by CPPExt (Transient)
+// Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//                     Copyright (C) 1991,1995 by
-//  
-//                      MATRA DATAVISION, FRANCE
-//  
-// This software is furnished in accordance with the terms and conditions
-// of the contract and with the inclusion of the above copyright notice.
-// This software or any other copy thereof may not be provided or otherwise
-// be made available to any other person. No title to an ownership of the
-// software is hereby transferred.
-//  
-// At the termination of the contract, the software and all copies of this
-// software must be deleted.
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//  SMESH SMESHDS : management of mesh data and SMESH document
+//  File   : SMESHDS_Command.hxx
+//  Module : SMESH
 //
 #ifndef _SMESHDS_Command_HeaderFile
 #define _SMESHDS_Command_HeaderFile
 
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Handle_SMESHDS_Command_HeaderFile
-#include "Handle_SMESHDS_Command.hxx"
-#endif
+#include "SMESH_SMESHDS.hxx"
 
-#ifndef _SMESHDS_CommandType_HeaderFile
 #include "SMESHDS_CommandType.hxx"
-#endif
-#ifndef _Standard_Integer_HeaderFile
-#include <Standard_Integer.hxx>
-#endif
-#ifndef _TColStd_ListOfReal_HeaderFile
-#include <TColStd_ListOfReal.hxx>
-#endif
-#ifndef _TColStd_ListOfInteger_HeaderFile
-#include <TColStd_ListOfInteger.hxx>
-#endif
-#ifndef _MMgt_TShared_HeaderFile
-#include <MMgt_TShared.hxx>
-#endif
-#ifndef _Standard_Real_HeaderFile
-#include <Standard_Real.hxx>
-#endif
-class TColStd_ListOfInteger;
-class TColStd_ListOfReal;
-
-
-class SMESHDS_Command : public MMgt_TShared {
-
-public:
-
-    inline void* operator new(size_t,void* anAddress) 
-      {
-        return anAddress;
-      }
-    inline void* operator new(size_t size) 
-      { 
-        return Standard::Allocate(size); 
-      }
-    inline void  operator delete(void *anAddress) 
-      { 
-        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
-      }
-//    inline void  operator delete(void *anAddress, size_t size) 
-//      { 
-//        if (anAddress) Standard::Free((Standard_Address&)anAddress,size); 
-//      }
- // Methods PUBLIC
- // 
-Standard_EXPORT SMESHDS_Command(const SMESHDS_CommandType aType);
-Standard_EXPORT   void AddNode(const Standard_Integer NewNodeID,const Standard_Real x,const Standard_Real y,const Standard_Real z) ;
-Standard_EXPORT   void AddEdge(const Standard_Integer NewEdgeID,const Standard_Integer idnode1,const Standard_Integer idnode2) ;
-Standard_EXPORT   void AddFace(const Standard_Integer NewFaceID,const Standard_Integer idnode1,const Standard_Integer idnode2,const Standard_Integer idnode3) ;
-Standard_EXPORT   void AddFace(const Standard_Integer NewFaceID,const Standard_Integer idnode1,const Standard_Integer idnode2,const Standard_Integer idnode3,const Standard_Integer idnode4) ;
-Standard_EXPORT   void AddVolume(const Standard_Integer NewVolID,const Standard_Integer idnode1,const Standard_Integer idnode2,const Standard_Integer idnode3,const Standard_Integer idnode4) ;
-Standard_EXPORT   void AddVolume(const Standard_Integer NewVolID,const Standard_Integer idnode1,const Standard_Integer idnode2,const Standard_Integer idnode3,const Standard_Integer idnode4,const Standard_Integer idnode5) ;
-Standard_EXPORT   void AddVolume(const Standard_Integer NewVolID,const Standard_Integer idnode1,const Standard_Integer idnode2,const Standard_Integer idnode3,const Standard_Integer idnode4,const Standard_Integer idnode5,const Standard_Integer idnode6) ;
-Standard_EXPORT   void AddVolume(const Standard_Integer NewVolID,const Standard_Integer idnode1,const Standard_Integer idnode2,const Standard_Integer idnode3,const Standard_Integer idnode4,const Standard_Integer idnode5,const Standard_Integer idnode6,const Standard_Integer idnode7,const Standard_Integer idnode8) ;
-Standard_EXPORT   void MoveNode(const Standard_Integer NewNodeID,const Standard_Real x,const Standard_Real y,const Standard_Real z) ;
-Standard_EXPORT   void RemoveNode(const Standard_Integer NodeID) ;
-Standard_EXPORT   void RemoveElement(const Standard_Integer ElementID) ;
-Standard_EXPORT   SMESHDS_CommandType GetType() ;
-Standard_EXPORT   Standard_Integer GetNumber() ;
-Standard_EXPORT  const TColStd_ListOfInteger& GetIndexes() ;
-Standard_EXPORT  const TColStd_ListOfReal& GetCoords() ;
-Standard_EXPORT ~SMESHDS_Command();
-
-
-
-
- // Type management
- //
- Standard_EXPORT friend Handle_Standard_Type& SMESHDS_Command_Type_();
- Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
- Standard_EXPORT Standard_Boolean             IsKind(const Handle(Standard_Type)&) const;
-
-protected:
-
- // Methods PROTECTED
- // 
-
-
- // Fields PROTECTED
- //
-
-
-private: 
-
- // Methods PRIVATE
- // 
-
-
- // Fields PRIVATE
- //
-SMESHDS_CommandType myType;
-Standard_Integer myNumber;
-TColStd_ListOfReal myReals;
-TColStd_ListOfInteger myIntegers;
-
-
+#include <list>
+#include <vector>
+
+class SMESHDS_EXPORT SMESHDS_Command
+{
+
+  public:
+        SMESHDS_Command(const SMESHDS_CommandType aType);
+        void AddNode(int NewNodeID, double x, double y, double z);
+        void Add0DElement(int New0DElementID, int idnode);
+        void AddEdge(int NewEdgeID, int idnode1, int idnode2);
+        void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
+        void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3,
+                     int idnode4);
+        void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
+                       int idnode4);
+        void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
+                       int idnode4, int idnode5);
+        void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
+                       int idnode4, int idnode5, int idnode6);
+        void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
+                       int idnode4, int idnode5, int idnode6, int idnode7, int idnode8);
+        void AddVolume(int NewVolID, int idnode1, int idnode2, int idnode3,
+                       int idnode4, int idnode5, int idnode6, int idnode7, int idnode8,
+                       int idnode9, int idnode10, int idnode11, int idnode12);
+        void AddPolygonalFace (const int               ElementID,
+                               const std::vector<int>& nodes_ids);
+        void AddQuadPolygonalFace (const int               ElementID,
+                                   const std::vector<int>& nodes_ids);
+        void AddPolyhedralVolume (const int               ElementID,
+                                  const std::vector<int>& nodes_ids,
+                                  const std::vector<int>& quantities);
+        void AddBall(int NewBallID, int node, double diameter);
+        // special methods for quadratic elements
+        void AddEdge(int NewEdgeID, int n1, int n2, int n12);
+        void AddFace(int NewFaceID, int n1, int n2, int n3,
+                     int n12, int n23, int n31);
+        void AddFace(int NewFaceID, int n1, int n2, int n3,
+                     int n12, int n23, int n31, int nCenter);
+        void AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
+                     int n12, int n23, int n34, int n41);
+        void AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
+                     int n12, int n23, int n34, int n41, int nCenter);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n12, int n23, int n31, int n14, int n24, int n34);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, int n5,
+                       int n12, int n23, int n34, int n41,
+                       int n15, int n25, int n35, int n45);
+        void AddVolume(int NewVolID, int n1, int n2, int n3,
+                       int n4, int n5, int n6,
+                       int n12, int n23, int n31,
+                       int n45, int n56, int n64,
+                       int n14, int n25, int n36);
+        void AddVolume(int NewVolID, int n1, int n2, int n3,
+                       int n4, int n5, int n6,
+                       int n12, int n23, int n31,
+                       int n45, int n56, int n64,
+                       int n14, int n25, int n36,
+                       int n1245, int n2356, int n1346);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n5,  int n6,  int n7,  int n8,
+                       int n12, int n23, int n34, int n41,
+                       int n56, int n67, int n78, int n85,
+                       int n15, int n26, int n37, int n48);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n5,  int n6,  int n7,  int n8,
+                       int n12, int n23, int n34, int n41,
+                       int n56, int n67, int n78, int n85,
+                       int n15, int n26, int n37, int n48,
+                       int n1234,int n1256,int n2367,int n3478,
+                       int n1458,int n5678,int nCenter);
+        
+        void MoveNode(int NewNodeID, double x, double y, double z);
+        void RemoveNode(int NodeID);
+        void RemoveElement(int ElementID);
+        void ChangeElementNodes(int ElementID, int nodes[], int nbnodes);
+        void ChangePolyhedronNodes(const int               ElementID,
+                                   const std::vector<int>& nodes_ids,
+                                   const std::vector<int>& quantities);
+        void Renumber (const bool isNodes, const int startID, const int deltaID);
+        SMESHDS_CommandType GetType();
+        int GetNumber();
+        const std::list<int> & GetIndexes();
+        const std::list<double> & GetCoords();
+         ~SMESHDS_Command();
+  private:
+        SMESHDS_CommandType myType;
+        int myNumber;
+        std::list<double> myReals;
+        std::list<int> myIntegers;
 };
-
-
-
-
-
-// other inline functions and methods (like "C++: function call" methods)
-//
-
-
 #endif