Version: 9.16.0
AdvancedEngine_IOperations.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, 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// File : AdvancedEngine_IOperations.hxx
20// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
21
22#ifndef _AdvancedEngine_IOperations_HXX_
23#define _AdvancedEngine_IOperations_HXX_
24
25#include "AdvancedEngine.hxx"
26
27#include "GEOM_IOperations.hxx"
28#include "GEOM_Engine.hxx"
29#include "GEOM_Object.hxx"
30
31#include <TopTools_ListOfShape.hxx>
32#include <Geom_Surface.hxx>
33
34#include <list>
35#include <gp_Ax2.hxx>
36
46
48{
49private:
50 bool MakePipeTShapePartition(Handle(GEOM_Object) theShape,
51 double theR1, double theW1, double theL1,
52 double theR2, double theW2, double theL2,
53 double theH = 0, double theW = 0,
54 double theRF = 0, bool isNormal = true);
55
56 bool MakePipeTShapeMirrorAndGlue(Handle(GEOM_Object) theShape,
57 double theR1, double theW1, double theL1,
58 double theR2, double theW2, double theL2);
59
60 bool MakePipeTShapeThicknessReduction (Handle(GEOM_Object) theShape,
61 double theR1, double theW1, double theL1,
62 double theR2, double theW2, double theL2,
63 double theRL, double theWL, double theLtransL, double theLthinL,
64 double theRR, double theWR, double theLtransR, double theLthinR,
65 double theRI, double theWI, double theLtransI, double theLthinI);
66
67 bool MakeGroups(Handle(GEOM_Object) theShape, int shapType,
68 double theR1, double theW1, double theL1,
69 double theR2, double theW2, double theL2,
70 double theH, double theW, double theRF,
71 Handle(TColStd_HSequenceOfTransient) theSeq,
72 gp_Trsf aTrsf);
73
74 bool GetFacesOnSurf(const TopoDS_Shape &theShape,
75 const Handle(Geom_Surface)& theSurface,
76 const Standard_Real theTolerance,
77 TopTools_ListOfShape &theFaces);
78
79 TopoDS_Shape MakeConicalFace(const gp_Ax2 &theAxis,
80 const double theRadius,
81 const double theRadiusThin,
82 const double theHeight,
83 const gp_Trsf &theTrsf);
84
85 bool MakeInternalGroup(const Handle(GEOM_Object) &theShape,
86 const double theR1, const double theLen1,
87 const double theR2, const double theLen2,
88 const double theRL, const double theTransLenL,
89 const double theRR, const double theTransLenR,
90 const double theRI, const double theTransLenI,
91 const Handle(TColStd_HSequenceOfTransient) &theSeq,
92 const gp_Trsf &theTrsf);
93
94 gp_Trsf GetPositionTrsf(double theL1, double theL2,
95 Handle(GEOM_Object) P1 = 0,
96 Handle(GEOM_Object) P2 = 0,
97 Handle(GEOM_Object) P3 = 0);
98
99 bool CheckCompatiblePosition(double& theL1, double& theL2,
100 Handle(GEOM_Object) theP1,
101 Handle(GEOM_Object) theP2,
102 Handle(GEOM_Object) theP3,
103 double theTolerance);
104
105private:
115
116public:
117
135 static TopoDS_Shape MakePipeTShapeThicknessReduction
136 (TopoDS_Shape theShape,
137 double r1, double w1, double l1,
138 double r2, double w2, double l2,
139 double rL, double wL, double ltransL, double lthinL,
140 double rR, double wR, double ltransR, double lthinR,
141 double rI, double wI, double ltransI, double lthinI,
142 bool fuseReductions);
143
161 static TopoDS_Shape MakeThicknessReduction (gp_Ax2 theAxes,
162 const double R, const double W,
163 const double Rthin, const double Wthin,
164 const double Ltrans, const double Lthin,
165 bool fuse);
166
167public:
170
171 Handle(TColStd_HSequenceOfTransient)
172 MakePipeTShape(double theR1, double theW1, double theL1,
173 double theR2, double theW2, double theL2,
174 double theRL, double theWL, double theLtransL, double theLthinL,
175 double theRR, double theWR, double theLtransR, double theLthinR,
176 double theRI, double theWI, double theLtransI, double theLthinI,
177 bool theHexMesh = true);
178
179 Handle(TColStd_HSequenceOfTransient)
180 MakePipeTShapeWithPosition(double theR1, double theW1, double theL1,
181 double theR2, double theW2, double theL2,
182 double theRL, double theWL, double theLtransL, double theLthinL,
183 double theRR, double theWR, double theLtransR, double theLthinR,
184 double theRI, double theWI, double theLtransI, double theLthinI,
185 bool theHexMesh = true,
186 Handle(GEOM_Object) P1 = 0,
187 Handle(GEOM_Object) P2 = 0,
188 Handle(GEOM_Object) P3 = 0);
189
190 Handle(TColStd_HSequenceOfTransient)
191 MakePipeTShapeChamfer(double theR1, double theW1, double theL1,
192 double theR2, double theW2, double theL2,
193 double theRL, double theWL, double theLtransL, double theLthinL,
194 double theRR, double theWR, double theLtransR, double theLthinR,
195 double theRI, double theWI, double theLtransI, double theLthinI,
196 double theH, double theW,
197 bool theHexMesh = true);
198
199 Handle(TColStd_HSequenceOfTransient)
200 MakePipeTShapeChamferWithPosition(double theR1, double theW1, double theL1,
201 double theR2, double theW2, double theL2,
202 double theH, double theW,
203 double theRL, double theWL, double theLtransL, double theLthinL,
204 double theRR, double theWR, double theLtransR, double theLthinR,
205 double theRI, double theWI, double theLtransI, double theLthinI,
206 bool theHexMesh = true,
207 Handle(GEOM_Object) P1 = 0,
208 Handle(GEOM_Object) P2 = 0,
209 Handle(GEOM_Object) P3 = 0);
210
211 Handle(TColStd_HSequenceOfTransient)
212 MakePipeTShapeFillet(double theR1, double theW1, double theL1,
213 double theR2, double theW2, double theL2,
214 double theRL, double theWL, double theLtransL, double theLthinL,
215 double theRR, double theWR, double theLtransR, double theLthinR,
216 double theRI, double theWI, double theLtransI, double theLthinI,
217 double theRF, bool theHexMesh = true);
218
219 Handle(TColStd_HSequenceOfTransient)
220 MakePipeTShapeFilletWithPosition(double theR1, double theW1, double theL1,
221 double theR2, double theW2, double theL2,
222 double theRL, double theWL, double theLtransL, double theLthinL,
223 double theRR, double theWR, double theLtransR, double theLthinR,
224 double theRI, double theWI, double theLtransI, double theLthinI,
225 double theRF, bool theHexMesh = true,
226 Handle(GEOM_Object) P1 = 0,
227 Handle(GEOM_Object) P2 = 0,
228 Handle(GEOM_Object) P3 = 0);
229
230 Handle(GEOM_Object) MakeDividedDisk (double theR, double theRatio,
231 int theOrientation, int thePattern);
232 Handle(GEOM_Object) MakeDividedDiskPntVecR (Handle(GEOM_Object) thePnt,
233 Handle(GEOM_Object) theVec,
234 double theR,
235 double theRatio,
236 int thePattern);
237
238 Handle(GEOM_Object) MakeDividedCylinder (double theR,
239 double theH,
240 int thePattern);
241
242 Handle(GEOM_Object) MakeSmoothingSurface (std::list<Handle(GEOM_Object)> thelPoints,
243 int theNbMax,
244 int theDegMax,
245 double theDMax);
246};
247
248#endif
#define ADVANCEDENGINE_EXPORT
Definition: AdvancedEngine.hxx:33
Handle(TColStd_HSequenceOfTransient) AdvancedEngine_IOperations
Create a T-shape object with specified caracteristics for the main and the incident pipes (radius,...
Definition: AdvancedEngine_IOperations.cxx:1907
Definition: AdvancedEngine_IOperations.hxx:48
GEOMImpl_IBasicOperations * myBasicOperations
Definition: AdvancedEngine_IOperations.hxx:106
GEOMImpl_ILocalOperations * myLocalOperations
Definition: AdvancedEngine_IOperations.hxx:112
GEOMImpl_IGroupOperations * myGroupOperations
Definition: AdvancedEngine_IOperations.hxx:114
GEOMImpl_IBlocksOperations * myBlocksOperations
Definition: AdvancedEngine_IOperations.hxx:110
GEOMImpl_IHealingOperations * myHealingOperations
Definition: AdvancedEngine_IOperations.hxx:113
GEOMImpl_I3DPrimOperations * my3DPrimOperations
Definition: AdvancedEngine_IOperations.hxx:111
Handle(TColStd_HSequenceOfTransient) MakePipeTShape(double theR1
GEOMImpl_IBooleanOperations * myBooleanOperations
Definition: AdvancedEngine_IOperations.hxx:107
bool MakePipeTShapeThicknessReduction(Handle(GEOM_Object) theShape, double theR1, double theW1, double theL1, double theR2, double theW2, double theL2, double theRL, double theWL, double theLtransL, double theLthinL, double theRR, double theWR, double theLtransR, double theLthinR, double theRI, double theWI, double theLtransI, double theLthinI)
GEOMImpl_ITransformOperations * myTransformOperations
Definition: AdvancedEngine_IOperations.hxx:109
GEOMImpl_IShapesOperations * myShapesOperations
Definition: AdvancedEngine_IOperations.hxx:108
Definition: GEOMImpl_I3DPrimOperations.hxx:37
Definition: GEOMImpl_IBasicOperations.hxx:32
Definition: GEOMImpl_IBlocksOperations.hxx:37
Definition: GEOMImpl_IBooleanOperations.hxx:34
Definition: GEOMImpl_IGroupOperations.hxx:35
Definition: GEOMImpl_IHealingOperations.hxx:38
Definition: GEOMImpl_ILocalOperations.hxx:34
Definition: GEOMImpl_IShapesOperations.hxx:58
Definition: GEOMImpl_ITransformOperations.hxx:38
Definition: GEOM_Engine.hxx:91
Definition: GEOM_IOperations.hxx:40