Salome HOME
new implementation for channels creation
[modules/hydro.git] / src / HYDROData / HYDROData_Pipes.h
1
2 #ifndef HYDROData_Pipes_HeaderFile
3 #define HYDROData_Pipes_HeaderFile
4
5 #include <TopoDS_Vertex.hxx>
6 #include <TopoDS_Wire.hxx>
7 #include <gp_Pnt.hxx>
8
9 class BRepOffsetAPI_MakePipeShell;
10
11 class HYDROData_Canal3dAnd2d
12 {
13 public:
14   HYDROData_Canal3dAnd2d( const TopoDS_Wire& Profile,
15                           const TopoDS_Wire& Guideline );
16   
17   Standard_Boolean Create3dPresentation();
18
19   Standard_Boolean Create2dPresentation();
20
21   Standard_Boolean ProjectWireOntoXOY(const TopoDS_Wire& aWire,
22                                       TopoDS_Wire& ProjectedWire);
23
24   void Make2dProfile();
25
26   TopoDS_Vertex ProjectVertexOntoXOY(const TopoDS_Vertex& aVertex);
27
28   void SetMiddlePoint2d();
29
30   void SetMiddlePoint3d();
31
32   TopoDS_Wire SetTransformedProfile(const TopoDS_Wire& aProfile,
33                                     const TopoDS_Wire& aGuideline,
34                                     const gp_Pnt& aMiddlePoint);
35
36   TopoDS_Wire GetBank(const TopoDS_Vertex& aFreeVertex);
37
38   //Queries
39   TopoDS_Shape Get3dPresentation();
40   TopoDS_Shape Get2dPresentation();
41   TopoDS_Wire GetLeftBank();
42   TopoDS_Wire GetRightBank();
43   TopoDS_Wire GetInlet();
44   TopoDS_Wire GetOutlet();
45
46 private:
47
48   TopoDS_Wire myProfile;
49   TopoDS_Wire myGuideline;
50   TopoDS_Vertex myLeftVertex;
51   TopoDS_Vertex myRightVertex;
52   TopoDS_Vertex myLeftVertex2d;
53   TopoDS_Vertex myRightVertex2d;
54   gp_Pnt myMiddlePoint2d;
55   gp_Pnt myMiddlePoint3d;
56
57   TopoDS_Wire myProjectedProfile;
58   TopoDS_Wire myProjectedGuideline;
59   TopoDS_Wire myTransformedProfile3d;
60   TopoDS_Wire myTransformedProfile2d;
61   BRepOffsetAPI_MakePipeShell* mySweep3d;
62   BRepOffsetAPI_MakePipeShell* mySweep2d;
63
64   TopoDS_Shape myPipe3d;
65   TopoDS_Shape myPipe2d;
66   TopoDS_Wire myInlet;
67   TopoDS_Wire myOutlet;
68   //TopoDS_Shape myLeftBank;
69   //TopoDS_Shape myRightBank;
70 };
71
72 #endif