]> SALOME platform Git repositories - modules/hexablock.git/blob - src/HEXABLOCK/HexEdgeShape.hxx
Salome HOME
Evol Hexa 7
[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 "Hex_defines.hxx"
8 #include "HexSubShape.hxx"
9
10 BEGIN_NAMESPACE_HEXA
11
12 class HEXABLOCKENGINE_EXPORT EdgeShape : public SubShape
13 {
14 public :
15     EdgeShape (NewShape* dad, int id);
16     virtual ~EdgeShape () {}
17
18     void  addAssociation   (Edge* elt);
19     int   countAssociation ()                { return tab_assoc.size(); }
20     Edge* getAssociation   (int nro);
21
22     BRepAdaptor_Curve* getCurve ();
23     BRepAdaptor_Curve* makeCurve ();
24     void    getCoords (double pstart[], double pend[]);
25     int     getPoint  (double param,    double point[]);
26     double  getParam  (double point[]);
27     double  getLength ();
28     int     onExtremity (double point[]);
29     bool    isLinear    ()                   { return kind_of == KS_Line ; }
30
31     static bool samePoints (double point1[], double point2[]);
32
33     // void   saveXml (XmlWriter* xml);
34 private :
35     void updateCurve ();
36
37 private :
38     BRepAdaptor_Curve* lin_curve;
39     Real3  lin_start;
40     Real3  lin_end;
41     double lin_length, par_mini, par_maxi;
42
43     bool  maj_curve;
44     Edges tab_assoc;
45 };
46 END_NAMESPACE_HEXA
47 #endif