Salome HOME
Update copyrights
[modules/hexablock.git] / src / HEXABLOCK / HexEdgeShape.hxx
index e68c38a0c267a65d2a8862349405a2578caeeed5..cf499f9a903d3d06aacd8efbafca562bd2063ee8 100644 (file)
@@ -1,6 +1,25 @@
 
 // class : Gestion des Sous-shapes categorie Edge
 
+// Copyright (C) 2009-2019  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, 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
+//
+
 #ifndef __LIBE_SHAPE_H_
 #define __LIBE_SHAPE_H_
 
 
 BEGIN_NAMESPACE_HEXA
 
-class EdgeShape : public SubShape
+class HexaExport EdgeShape : public SubShape
 {
 public :
     EdgeShape (NewShape* dad, int id);
+    virtual ~EdgeShape () {}
 
     void  addAssociation   (Edge* elt);
     int   countAssociation ()                { return tab_assoc.size(); }
@@ -23,9 +43,14 @@ public :
     int     getPoint  (double param,    double point[]);
     double  getParam  (double point[]);
     double  getLength ();
+    double  getRadius ();
+    double  getAngle  ();
     int     onExtremity (double point[]);
+    bool    definedBy   (double p1[], double p2[]);
+    bool    isLinear    ()                   { return kind_of == KS_Line ; }
 
     static bool samePoints (double point1[], double point2[]);
+    virtual EnumKindOfShape kindOf ();
 
     // void   saveXml (XmlWriter* xml);
 private :
@@ -36,6 +61,7 @@ private :
     Real3  lin_start;
     Real3  lin_end;
     double lin_length, par_mini, par_maxi;
+    double lin_radius, lin_angle;
 
     bool  maj_curve;
     Edges tab_assoc;