Salome HOME
Copyright update 2022
[modules/homard.git] / src / HOMARD / HOMARD_Zone.hxx
index 1adcfa8d1bb1981667d5f861d1818565a42d8679..5770862f3c71d9d5bcdc6b7f889ed345f43b0234 100644 (file)
@@ -1,72 +1,94 @@
-//  HOMARD HOMARD : implementaion of HOMARD idl descriptions
+//  HOMARD HOMARD : implementation of HOMARD idl descriptions
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// Copyright (C) 2011-2022  CEA/DEN, EDF R&D
 //
-//  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.
+// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// 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
 //
 //  File   : HOMARD_Zone.hxx
-//  Author : Paul RASCLE, EDF
+//  Author : Gerald NICOLAS, EDF
 //  Module : HOMARD
+//
+// Remarques :
+// L'ordre de description des fonctions est le meme dans tous les fichiers
+// HOMARD_aaaa.idl, HOMARD_aaaa.hxx, HOMARD_aaaa.cxx, HOMARD_aaaa_i.hxx, HOMARD_aaaa_i.cxx :
+// 1. Les generalites : Name, Delete, DumpPython, Dump, Restore
+// 2. Les caracteristiques
+// 3. Le lien avec les autres structures
+//
+// Quand les 2 fonctions Setxxx et Getxxx sont presentes, Setxxx est decrit en premier
 
 #ifndef _HOMARD_Zone_HXX_
 #define _HOMARD_Zone_HXX_
 
+#include "HOMARD.hxx"
+
 #include <vector>
 #include <string>
 #include <list>
 
-class HOMARD_Zone
+#if defined WIN32
+#pragma warning ( disable: 4251 )
+#endif
+
+class HOMARDIMPL_EXPORT HOMARD_Zone
 {
 public:
   HOMARD_Zone();
   ~HOMARD_Zone();
 
-  void                          SetName( const char* NomZone );
+// Generalites
+  void                          SetName( const char* Name );
   std::string                   GetName() const;
+
   std::string                   GetDumpPython() const;
-  
-  void                          SetBox( double X0, double X1, double X2, 
-                                       double X3, double X4, double X5 );
-  std::vector<double>           GetBox() const;
 
-  void                          SetSphere( double X0, double X1,
-                                          double X2, double X3 );
-  std::vector<double>           GetSphere() const;
+// Caracteristiques
+  void                          SetType( int Type );
+  int                           GetType() const;
+
+  void                          SetBox( double X0, double X1, double X2,
+                                        double X3, double X4, double X5 );
+
+  void                          SetCylinder( double X0, double X1, double X2, double X3,
+                                             double X4, double X5, double X6, double X7 );
+
+  void                          SetPipe( double X0, double X1, double X2, double X3,
+                                         double X4, double X5, double X6, double X7, double X8 );
+
+  void                          SetSphere( double X0, double X1, double X2, double X3 );
+
+  std::vector<double>           GetCoords() const;
 
   void                          SetLimit( double X0, double X1, double X2 );
   std::vector<double>           GetLimit() const;
-  
-  void                          SetZoneType( int ZoneType );
-  int                           GetZoneType() const;
-  
+
+// Liens avec les autres structures
   void                          AddHypo( const char* NomHypo );
-  void                          SupprHypo( const char* NomHypo );
   const std::list<std::string>& GetHypo() const;
+  void                          SupprHypo( const char* NomHypo );
   void                          SupprHypos();
 
 private:
-  std::string                   _NomZone;
-  int                           _ZoneType;
+  std::string                   _Name;
+  int                           _Type;
   std::list<std::string>        _ListHypo;
   double                        _Xmin, _Xmax, _Ymin, _Ymax, _Zmin, _Zmax;
-  double                        _Xcentre, _Ycentre, _Zcentre, _rayon;
+  double                        _Xcentre, _Ycentre, _Zcentre, _Rayon, _Rayonint;
+  double                        _Xaxe, _Yaxe, _Zaxe, _Haut;
   double                        _Xincr, _Yincr, _Zincr;
 };