]> SALOME platform Git repositories - modules/hexablock.git/blob - src/HEXABLOCK/HexAssoEdge.hxx
Salome HOME
Merge from V6_main 13/12/2012
[modules/hexablock.git] / src / HEXABLOCK / HexAssoEdge.hxx
1
2 // class : Gestion des formes associees (Hexa 5)
3
4 #ifndef __ASSO_EDGE_H_
5 #define __ASSO_EDGE_H_
6
7 #include "HexEdgeShape.hxx"
8
9 #ifndef NO_CASCADE
10 #include <TopTools_IndexedMapOfShape.hxx>
11 #include <TopoDS_Shape.hxx>
12 #endif
13
14 BEGIN_NAMESPACE_HEXA
15
16 class AssoEdge
17 {
18 public :
19     AssoEdge (EdgeShape* shape, double deb, double fin);
20
21     EdgeShape*         getEdgeShape() { return arc_line; }
22     BRepAdaptor_Curve* getCurve ()   { return arc_curve; }
23     double             getStart ()   { return arc_para1; }
24     double             getEnd   ()   { return arc_para2; }
25     double             length   ();
26     double             getUstart ();                       // for Mesh Plugin
27
28
29     const double*      getOrigin ()  { return arc_start; }
30     const double*      getExtrem ()  { return arc_end;   }
31
32     int onExtremity (AssoEdge* other, int& ext_other);
33     int onExtremity (double* point);
34
35     virtual void dump ();
36     void saveXml (XmlWriter* xml);
37
38     void setStart (double param);
39     void setEnd   (double param);
40
41 private :
42     bool       maj_extrem;
43     double     arc_para1, arc_para2;
44     EdgeShape* arc_line;
45
46     bool    arc_reverse;
47     Real3   arc_start,  arc_end;
48     BRepAdaptor_Curve*  arc_curve;    // Duplication a cause du plugin BP
49 };
50 END_NAMESPACE_HEXA
51 #endif