]> SALOME platform Git repositories - modules/hexablock.git/blob - src/HEXABLOCK/HexEdgeShape.hxx
Salome HOME
Livraison C-S du 28/11/2013
[modules/hexablock.git] / src / HEXABLOCK / HexEdgeShape.hxx
1
2 // class : Gestion des Sous-shapes categorie Edge
3
4 #ifndef __LIBE_SHAPE_H_
5 #define __LIBE_SHAPE_H_
6
7 #include "HexSubShape.hxx"
8
9 BEGIN_NAMESPACE_HEXA
10
11 class HexaExport EdgeShape : public SubShape
12 {
13 public :
14     EdgeShape (NewShape* dad, int id);
15     virtual ~EdgeShape () {}
16
17     void  addAssociation   (Edge* elt);
18     int   countAssociation ()                { return tab_assoc.size(); }
19     Edge* getAssociation   (int nro);
20
21     BRepAdaptor_Curve* getCurve ();
22     BRepAdaptor_Curve* makeCurve ();
23     void    getCoords (double pstart[], double pend[]);
24     int     getPoint  (double param,    double point[]);
25     double  getParam  (double point[]);
26     double  getLength ();
27     double  getRadius ();
28     double  getAngle  ();
29     int     onExtremity (double point[]);
30     bool    isLinear    ()                   { return kind_of == KS_Line ; }
31
32     static bool samePoints (double point1[], double point2[]);
33     virtual EnumKindOfShape kindOf ();
34
35     // void   saveXml (XmlWriter* xml);
36 private :
37     void updateCurve ();
38
39 private :
40     BRepAdaptor_Curve* lin_curve;
41     Real3  lin_start;
42     Real3  lin_end;
43     double lin_length, par_mini, par_maxi;
44     double lin_radius, lin_angle;
45
46     bool  maj_curve;
47     Edges tab_assoc;
48 };
49 END_NAMESPACE_HEXA
50 #endif