Salome HOME
Bug moteur + ajout cas test
[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    definedBy   (double p1[], double p2[]);
31     bool    isLinear    ()                   { return kind_of == KS_Line ; }
32
33     static bool samePoints (double point1[], double point2[]);
34     virtual EnumKindOfShape kindOf ();
35
36     // void   saveXml (XmlWriter* xml);
37 private :
38     void updateCurve ();
39
40 private :
41     BRepAdaptor_Curve* lin_curve;
42     Real3  lin_start;
43     Real3  lin_end;
44     double lin_length, par_mini, par_maxi;
45     double lin_radius, lin_angle;
46
47     bool  maj_curve;
48     Edges tab_assoc;
49 };
50 END_NAMESPACE_HEXA
51 #endif