Salome HOME
Fix compilation error (conflict of OK name between OCCT Plate_Plate.hxx and GEOM...
[modules/geom.git] / src / CurveCreator / CurveCreator.hxx
index ce574a05a5ed08932d2acda0d6cd1037ebc6db3a..0bbc3df4f2d15b000b630c7d3e2b5058071a5a41 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2013-2024  CEA, EDF, OPEN CASCADE
 //
 // 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.
+// 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
 #define _CurveCreator_HeaderFile
 
 #include <deque>
+#include <map>
+#include <list>
+
+struct CurveCreator_Section;
+struct CurveCreator_PosPoint;
 
 namespace CurveCreator
 {
-
-  //! Dimension of the curve
-  enum Dimension
-  {
-    Dim2d = 2,
-    Dim3d = 3
-  };
-
-  //! Type of the section
-  enum Type
-  {
-    Polyline,
-    BSpline
-  };
-
   //! Points coordinates
-  typedef float TypeCoord;
+  typedef double TypeCoord;
 
+  /** List of coordinates in format depends on section dimension:
+   *  2D: [x1, y1,     x2, y2,     x3, y3,     ..]
+   *  3D: [x1, y1, z1, x2, y2, z2, x3, y3, z3, ..]
+   */
   typedef std::deque<TypeCoord> Coordinates;
 
-};
+  //! List of sections
+  typedef std::deque<CurveCreator_Section *> Sections;
+
+  // List of positioned points (points with coordinates)
+  typedef std::list<CurveCreator_PosPoint*> PosPointsList;
+  //! Map of sections with positioned points
+  typedef std::map<int,PosPointsList> SectionsMap;
+}
 
 #endif