Salome HOME
bb944566caaffe266e09bc0c08dd6b90c4e8ed67
[modules/geom.git] / src / AdvancedEngine / AdvancedEngine_IPipeTShape.hxx
1 // Copyright (C) 2007-2023  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 #ifndef _AdvancedEngine_IPipeTShape_HXX_
21 #define _AdvancedEngine_IPipeTShape_HXX_
22
23 #include "GEOM_Function.hxx"
24
25 #include <TColStd_HArray1OfReal.hxx>
26
27 class AdvancedEngine_IPipeTShape
28 {
29 public:
30   AdvancedEngine_IPipeTShape(Handle(GEOM_Function) theFunction): _func(theFunction) {}
31
32   void SetR1(double theR1) { _func->SetReal(TSHAPE_ARG_R1, theR1); }
33   double GetR1() { return _func->GetReal(TSHAPE_ARG_R1); }
34
35   void SetW1(double theW1) { _func->SetReal(TSHAPE_ARG_W1, theW1); }
36   double GetW1() { return _func->GetReal(TSHAPE_ARG_W1); }
37
38   void SetL1(double theL1) { _func->SetReal(TSHAPE_ARG_L1, theL1); }
39   double GetL1() { return _func->GetReal(TSHAPE_ARG_L1); }
40
41   void SetR2(double theR2) { _func->SetReal(TSHAPE_ARG_R2, theR2); }
42   double GetR2() { return _func->GetReal(TSHAPE_ARG_R2); }
43
44   void SetW2(double theW2) { _func->SetReal(TSHAPE_ARG_W2, theW2); }
45   double GetW2() { return _func->GetReal(TSHAPE_ARG_W2); }
46
47   void SetL2(double theL2) { _func->SetReal(TSHAPE_ARG_L2, theL2); }
48   double GetL2() { return _func->GetReal(TSHAPE_ARG_L2); }
49
50   void SetH(double theH) { _func->SetReal(TSHAPE_ARG_H, theH); }
51   double GetH() { return _func->GetReal(TSHAPE_ARG_H); }
52
53   void SetW(double theW) { _func->SetReal(TSHAPE_ARG_W, theW); }
54   double GetW() { return _func->GetReal(TSHAPE_ARG_W); }
55
56   void SetRF(double theRF) { _func->SetReal(TSHAPE_ARG_RF, theRF); }
57   double GetRF() { return _func->GetReal(TSHAPE_ARG_RF); }
58
59   void SetHexMesh(int theHexMesh) { _func->SetInteger(TSHAPE_ARG_HEXMESH, theHexMesh); }
60   int GetHexMesh() { return _func->GetInteger(TSHAPE_ARG_HEXMESH); }
61
62   void SetP1(const Handle(GEOM_Function)& theP1){_func->SetReference(TSHAPE_ARG_P1, theP1); }
63   Handle(GEOM_Function) GetP1() { return _func->GetReference(TSHAPE_ARG_P1); }
64
65   void SetP2(const Handle(GEOM_Function)& theP2){_func->SetReference(TSHAPE_ARG_P2, theP2); }
66   Handle(GEOM_Function) GetP2() { return _func->GetReference(TSHAPE_ARG_P2); }
67
68   void SetP3(const Handle(GEOM_Function)& theP3){_func->SetReference(TSHAPE_ARG_P3, theP3); }
69   Handle(GEOM_Function) GetP3() { return _func->GetReference(TSHAPE_ARG_P3); }
70
71 private:
72   enum {
73     // main pipe
74     TSHAPE_ARG_R1 = 1,
75     TSHAPE_ARG_W1 = 2,
76     TSHAPE_ARG_L1 = 3,
77
78     // incident pipe
79     TSHAPE_ARG_R2 = 4,
80     TSHAPE_ARG_W2 = 5,
81     TSHAPE_ARG_L2 = 6,
82
83     // chamfer
84     TSHAPE_ARG_H  = 7,
85     TSHAPE_ARG_W  = 8,
86
87     // fillet
88     TSHAPE_ARG_RF = 9,
89
90     // partition
91     TSHAPE_ARG_HEXMESH = 10,
92
93     // junction points
94     TSHAPE_ARG_P1 = 11,
95     TSHAPE_ARG_P2 = 12,
96     TSHAPE_ARG_P3 = 13
97   };
98
99 private:
100   Handle(GEOM_Function) _func;
101 };
102
103 #endif // _AdvancedEngine_IPipeTShape_HXX_