Version: 9.12.0
GEOMImpl_I3DPrimOperations.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 #ifndef _GEOMImpl_I3DPrimOperations_HXX_
24 #define _GEOMImpl_I3DPrimOperations_HXX_
25 
26 #include "Utils_SALOME_Exception.hxx"
27 #include "GEOM_IOperations.hxx"
28 #include "GEOM_Engine.hxx"
29 #include "GEOM_Object.hxx"
30 #include <TDocStd_Document.hxx>
31 #include <TColStd_HSequenceOfTransient.hxx>
32 #include <TopTools_IndexedMapOfShape.hxx>
33 
35 class GEOMImpl_IPipe;
36 
38  public:
39  Standard_EXPORT GEOMImpl_I3DPrimOperations(GEOM_Engine* theEngine);
40  Standard_EXPORT ~GEOMImpl_I3DPrimOperations();
41 
42  Standard_EXPORT Handle(GEOM_Object) MakeBoxDXDYDZ (double theDX, double theDY, double theDZ);
43  Standard_EXPORT Handle(GEOM_Object) MakeBoxTwoPnt (Handle(GEOM_Object) thePnt1,
44  Handle(GEOM_Object) thePnt2);
45  Standard_EXPORT Handle(GEOM_Object) MakeFaceHW (double theH, double theW, int theOrientation);
46  Standard_EXPORT Handle(GEOM_Object) MakeFaceObjHW (Handle(GEOM_Object) theObj,
47  double theH, double theW);
48  Standard_EXPORT Handle(GEOM_Object) MakeDiskThreePnt (Handle(GEOM_Object) thePnt1,
49  Handle(GEOM_Object) thePnt2,
50  Handle(GEOM_Object) thePnt3);
51  Standard_EXPORT Handle(GEOM_Object) MakeDiskPntVecR (Handle(GEOM_Object) thePnt1,
52  Handle(GEOM_Object) theVec,
53  double theR);
54  Standard_EXPORT Handle(GEOM_Object) MakeDiskR (double theR, int theOrientation);
55  Standard_EXPORT Handle(GEOM_Object) MakeCylinderRH (double theR, double theH);
56  Standard_EXPORT Handle(GEOM_Object) MakeCylinderPntVecRH (Handle(GEOM_Object) thePnt,
57  Handle(GEOM_Object) theVec,
58  double theR, double theH);
59  Standard_EXPORT Handle(GEOM_Object) MakeCylinderRHA (double theR, double theH, double theA);
60  Standard_EXPORT Handle(GEOM_Object) MakeCylinderPntVecRHA (Handle(GEOM_Object) thePnt,
61  Handle(GEOM_Object) theVec,
62  double theR, double theH, double theA);
63 
64  Standard_EXPORT Handle(GEOM_Object) MakeConeR1R2H (double theR1, double theR2, double theH);
65  Standard_EXPORT Handle(GEOM_Object) MakeConePntVecR1R2H (Handle(GEOM_Object) thePnt,
66  Handle(GEOM_Object) theVec,
67  double theR1, double theR2, double theH);
68 
69  Standard_EXPORT Handle(GEOM_Object) MakeSphereR (double theR);
70  Standard_EXPORT Handle(GEOM_Object) MakeSpherePntR (Handle(GEOM_Object) thePnt, double theR);
71 
72  Standard_EXPORT Handle(GEOM_Object) MakeTorusRR (double theRMajor, double theRMinor);
73 
74  Standard_EXPORT Handle(GEOM_Object) MakeTorusPntVecRR (Handle(GEOM_Object) thePnt,
75  Handle(GEOM_Object) theVec,
76  double theRMajor, double theRMinor);
77 
78  Standard_EXPORT Handle(GEOM_Object) MakePrismVecH (Handle(GEOM_Object) theBase,
79  Handle(GEOM_Object) theVec,
80  double theH,
81  double theScaleFactor = -1.0);
82 
83  Standard_EXPORT Handle(GEOM_Object) MakePrismVecH2Ways (Handle(GEOM_Object) theBase,
84  Handle(GEOM_Object) theVec, double theH);
85 
86  Standard_EXPORT Handle(GEOM_Object) MakePrismTwoPnt (Handle(GEOM_Object) theBase,
87  Handle(GEOM_Object) thePoint1,
88  Handle(GEOM_Object) thePoint2,
89  double theScaleFactor = -1.0);
90 
91  Standard_EXPORT Handle(GEOM_Object) MakePrismTwoPnt2Ways (Handle(GEOM_Object) theBase,
92  Handle(GEOM_Object) thePoint1,
93  Handle(GEOM_Object) thePoint2);
94 
95  Standard_EXPORT Handle(GEOM_Object) MakePrismDXDYDZ (Handle(GEOM_Object) theBase,
96  double theDX, double theDY, double theDZ,
97  double theScaleFactor = -1.0);
98 
99  Standard_EXPORT Handle(GEOM_Object) MakePrismDXDYDZ2Ways (Handle(GEOM_Object) theBase,
100  double theDX, double theDY, double theDZ);
101 
102  Standard_EXPORT Handle(GEOM_Object) MakeDraftPrism (Handle(GEOM_Object) theInitShape, Handle(GEOM_Object) theBase,
103  double theHeight, double theAngle, bool theFuse, bool theInvert = false );
104 
105  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipe
106  (const Handle(GEOM_Object) &theBase,
107  const Handle(GEOM_Object) &thePath,
108  const bool IsGenerateGroups);
109 
110  Standard_EXPORT Handle(GEOM_Object) MakeRevolutionAxisAngle (Handle(GEOM_Object) theBase,
111  Handle(GEOM_Object) theAxis,
112  double theAngle);
113 
114  Standard_EXPORT Handle(GEOM_Object) MakeRevolutionAxisAngle2Ways (Handle(GEOM_Object) theBase,
115  Handle(GEOM_Object) theAxis,
116  double theAngle);
117 
118  Standard_EXPORT Handle(GEOM_Object) MakeFilling (std::list< Handle(GEOM_Object)> & theContours,
119  int theMinDeg, int theMaxDeg,
120  double theTol2D, double theTol3D,
121  int theNbIter, int theMethod,
122  bool isApprox);
123 
124  Standard_EXPORT Handle(GEOM_Object) MakeThruSections
125  (const Handle(TColStd_HSequenceOfTransient)& theSeqSections,
127  double thePreci,
128  bool theRuled);
129 
130  Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
131  MakePipeWithDifferentSections
132  (const Handle(TColStd_HSequenceOfTransient) &theBases,
133  const Handle(TColStd_HSequenceOfTransient) &theLocations,
134  const Handle(GEOM_Object) &thePath,
135  const bool theWithContact,
136  const bool theWithCorrections,
137  const bool IsBySteps,
138  const bool IsGenerateGroups);
139 
140  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeWithShellSections
141  (const Handle(TColStd_HSequenceOfTransient) &theBases,
142  const Handle(TColStd_HSequenceOfTransient) &theSubBases,
143  const Handle(TColStd_HSequenceOfTransient) &theLocations,
144  const Handle(GEOM_Object) &thePath,
145  const bool theWithContact,
146  const bool theWithCorrections,
147  const bool IsGenerateGroups);
148 
149  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeShellsWithoutPath
150  (const Handle(TColStd_HSequenceOfTransient) &theBases,
151  const Handle(TColStd_HSequenceOfTransient) &theLocations,
152  const bool IsGenerateGroups);
153 
154  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeBiNormalAlongVector
155  (const Handle(GEOM_Object) &theBase,
156  const Handle(GEOM_Object) &thePath,
157  const Handle(GEOM_Object) &theVec,
158  const bool IsGenerateGroups);
159 
160  Standard_EXPORT Handle(GEOM_Object) MakeThickening
161  (Handle(GEOM_Object) theObject,
162  const Handle(TColStd_HArray1OfInteger) &theFacesIDs,
163  double theOffset,
164  bool isCopy,
165  bool theInside = false);
166 
167  Standard_EXPORT Handle(GEOM_Object) RestorePath (Handle(GEOM_Object) theShape,
168  Handle(GEOM_Object) theBase1,
169  Handle(GEOM_Object) theBase2);
170 
171  Standard_EXPORT Handle(GEOM_Object) RestorePath (Handle(GEOM_Object) theShape,
172  const Handle(TColStd_HSequenceOfTransient)& theBase1,
173  const Handle(TColStd_HSequenceOfTransient)& theBase2);
174 
175 private:
176 
177  Handle(GEOM_Object) createGroup
178  (const Handle(GEOM_Object) &theBaseObject,
179  const Handle(TColStd_HArray1OfInteger) &theGroupIDs,
180  const TCollection_AsciiString &theName,
181  const TopTools_IndexedMapOfShape &theIndices);
182 
183  void createGroups(const Handle(GEOM_Object) &theBaseObject,
184  GEOMImpl_IPipe *thePipe,
185  Handle(TColStd_HSequenceOfTransient) &theSequence);
186 
187 private:
188 
190 
191 };
192 
193 #endif
Definition: GEOMImpl_I3DPrimOperations.hxx:37
Standard_EXPORT const const Handle(TColStd_HSequenceOfTransient) &theLocations
Standard_EXPORT Handle(GEOM_Object) MakePrismDXDYDZ2Ways(Handle(GEOM_Object) theBase
Standard_EXPORT const double theOffset
Definition: GEOMImpl_I3DPrimOperations.hxx:163
Standard_EXPORT double double theDZ
Definition: GEOMImpl_I3DPrimOperations.hxx:42
Standard_EXPORT Handle(GEOM_Object) MakeConeR1R2H(double theR1
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipe(const Handle(GEOM_Object) &theBase
Standard_EXPORT Handle(GEOM_Object) MakeConePntVecR1R2H(Handle(GEOM_Object) thePnt
GEOMImpl_IGroupOperations * myGroupOperations
Definition: GEOMImpl_I3DPrimOperations.hxx:189
Standard_EXPORT Handle(GEOM_Object) MakeCylinderPntVecRH(Handle(GEOM_Object) thePnt
Standard_EXPORT double theHeight
Definition: GEOMImpl_I3DPrimOperations.hxx:103
Standard_EXPORT Handle(GEOM_Object) MakeFilling(std Standard_EXPORT bool theModeSolid
Definition: GEOMImpl_I3DPrimOperations.hxx:126
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeShellsWithoutPath(const Handle(TColStd_HSequenceOfTransient) &theBases
const const TCollection_AsciiString & theName
Definition: GEOMImpl_I3DPrimOperations.hxx:180
Standard_EXPORT const const Handle(GEOM_Object) &thePath
Standard_EXPORT Handle(GEOM_Object) MakeCylinderPntVecRHA(Handle(GEOM_Object) thePnt
Standard_EXPORT const const const bool theWithContact
Definition: GEOMImpl_I3DPrimOperations.hxx:135
const Handle(TColStd_HArray1OfInteger) &theGroupIDs
Standard_EXPORT Handle(GEOM_Object) MakeRevolutionAxisAngle2Ways(Handle(GEOM_Object) theBase
Standard_EXPORT const double bool isCopy
Definition: GEOMImpl_I3DPrimOperations.hxx:164
Standard_EXPORT Handle(GEOM_Object) thePoint1
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeBiNormalAlongVector(const Handle(GEOM_Object) &theBase
Standard_EXPORT double theR1
Definition: GEOMImpl_I3DPrimOperations.hxx:67
Standard_EXPORT Handle(GEOM_Object) thePnt2)
Standard_EXPORT const const Handle(GEOM_Object) &theVec
Standard_EXPORT Handle(GEOM_Object) MakeFaceHW(double theH
Standard_EXPORT Handle(GEOM_Object) MakeDiskR(double theR
Standard_EXPORT GEOMImpl_I3DPrimOperations(GEOM_Engine *theEngine)
Definition: GEOMImpl_I3DPrimOperations.cxx:85
Standard_EXPORT Handle(GEOM_Object) MakeCylinderRH(double theR
Standard_EXPORT double theR2
Definition: GEOMImpl_I3DPrimOperations.hxx:64
Standard_EXPORT Handle(GEOM_Object) theAxis
Standard_EXPORT const const const Handle(GEOM_Object) &thePath
Standard_EXPORT Handle(GEOM_Object) MakeBoxTwoPnt(Handle(GEOM_Object) thePnt1
Standard_EXPORT const Handle(TColStd_HSequenceOfTransient) &theBase1
Standard_EXPORT Handle(GEOM_Object) MakeRevolutionAxisAngle(Handle(GEOM_Object) theBase
Standard_EXPORT double double bool theFuse
Definition: GEOMImpl_I3DPrimOperations.hxx:103
Standard_EXPORT double theDX
Definition: GEOMImpl_I3DPrimOperations.hxx:96
Standard_EXPORT const const const bool const bool const bool IsBySteps
Definition: GEOMImpl_I3DPrimOperations.hxx:137
Standard_EXPORT double int theOrientation
Definition: GEOMImpl_I3DPrimOperations.hxx:45
Standard_EXPORT double theRMinor
Definition: GEOMImpl_I3DPrimOperations.hxx:72
Standard_EXPORT Handle(GEOM_Object) MakePrismTwoPnt2Ways(Handle(GEOM_Object) theBase
Standard_EXPORT const const bool IsGenerateGroups
Definition: GEOMImpl_I3DPrimOperations.hxx:108
Standard_EXPORT double double theScaleFactor
Definition: GEOMImpl_I3DPrimOperations.hxx:81
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeWithShellSections(const Handle(TColStd_HSequenceOfTransient) &theBases
Standard_EXPORT double double theAngle
Definition: GEOMImpl_I3DPrimOperations.hxx:103
Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakePipeWithDifferentSections(const Handle(TColStd_HSequenceOfTransient) &theBases
Standard_EXPORT Handle(GEOM_Object) MakePrismTwoPnt(Handle(GEOM_Object) theBase
Standard_EXPORT Handle(GEOM_Object) MakeDiskPntVecR(Handle(GEOM_Object) thePnt1
Standard_EXPORT Handle(GEOM_Object) MakeDraftPrism(Handle(GEOM_Object) theInitShape
Standard_EXPORT double double bool bool theInvert
Definition: GEOMImpl_I3DPrimOperations.hxx:103
Standard_EXPORT Handle(GEOM_Object) MakeTorusRR(double theRMajor
Standard_EXPORT const Handle(TColStd_HSequenceOfTransient) &theLocations
Standard_EXPORT Handle(GEOM_Object) thePnt3)
Standard_EXPORT Handle(GEOM_Object) MakeCylinderRHA(double theR
Standard_EXPORT Handle(GEOM_Object) thePnt2
Standard_EXPORT Handle(GEOM_Object) MakeBoxDXDYDZ(double theDX
Standard_EXPORT Handle(GEOM_Object) MakePrismVecH2Ways(Handle(GEOM_Object) theBase
Standard_EXPORT Handle(GEOM_Object) thePoint2
Standard_EXPORT Handle(GEOM_Object) MakeFilling(std Standard_EXPORT bool double bool theRuled
Definition: GEOMImpl_I3DPrimOperations.hxx:128
Standard_EXPORT const Handle(TColStd_HArray1OfInteger) &theFacesIDs
Standard_EXPORT Handle(GEOM_Object) MakeThickening(Handle(GEOM_Object) theObject
Standard_EXPORT double double theA
Definition: GEOMImpl_I3DPrimOperations.hxx:59
Handle(GEOM_Object) createGroup(const Handle(GEOM_Object) &theBaseObject
void createGroups(const Handle(GEOM_Object) &theBaseObject, GEOMImpl_IPipe *thePipe, Handle(TColStd_HSequenceOfTransient) &theSequence)
Definition: GEOMImpl_I3DPrimOperations.cxx:2714
Standard_EXPORT Handle(GEOM_Object) MakeFaceObjHW(Handle(GEOM_Object) theObj
Standard_EXPORT Handle(GEOM_Object) theVec
Standard_EXPORT const Handle(TColStd_HSequenceOfTransient) &theSubBases
Standard_EXPORT Handle(GEOM_Object) MakeFilling(std Standard_EXPORT bool double thePreci
Definition: GEOMImpl_I3DPrimOperations.hxx:127
Standard_EXPORT const const Handle(TColStd_HSequenceOfTransient) &theBase2)
Standard_EXPORT Handle(GEOM_Object) MakeSphereR(double theR)
Standard_EXPORT double theDY
Definition: GEOMImpl_I3DPrimOperations.hxx:42
Standard_EXPORT Handle(GEOM_Object) MakeTorusPntVecRR(Handle(GEOM_Object) thePnt
Standard_EXPORT Handle(GEOM_Object) RestorePath(Handle(GEOM_Object) theShape
Standard_EXPORT double theR
Definition: GEOMImpl_I3DPrimOperations.hxx:53
Standard_EXPORT Handle(GEOM_Object) MakeDiskThreePnt(Handle(GEOM_Object) thePnt1
Standard_EXPORT double theH
Definition: GEOMImpl_I3DPrimOperations.hxx:47
Standard_EXPORT ~GEOMImpl_I3DPrimOperations()
Definition: GEOMImpl_I3DPrimOperations.cxx:97
Standard_EXPORT Handle(GEOM_Object) MakePrismVecH(Handle(GEOM_Object) theBase
Standard_EXPORT const Handle(GEOM_Object) &thePath
Standard_EXPORT double theRMajor
Definition: GEOMImpl_I3DPrimOperations.hxx:76
Standard_EXPORT Handle(GEOM_Object) MakeSpherePntR(Handle(GEOM_Object) thePnt
Standard_EXPORT Handle(GEOM_Object) thePoint2)
Standard_EXPORT double theW
Definition: GEOMImpl_I3DPrimOperations.hxx:45
Standard_EXPORT Handle(GEOM_Object) theBase2)
const const TCollection_AsciiString const TopTools_IndexedMapOfShape & theIndices
Definition: GEOMImpl_I3DPrimOperations.hxx:181
Standard_EXPORT Handle(GEOM_Object) theBase1
Standard_EXPORT const const const bool const bool theWithCorrections
Definition: GEOMImpl_I3DPrimOperations.hxx:136
Standard_EXPORT Handle(GEOM_Object) MakePrismDXDYDZ(Handle(GEOM_Object) theBase
Standard_EXPORT const double bool bool theInside
Definition: GEOMImpl_I3DPrimOperations.hxx:165
Definition: GEOMImpl_IGroupOperations.hxx:35
Definition: GEOMImpl_IPipe.hxx:60
Definition: GEOM_Engine.hxx:91
Definition: GEOM_IOperations.hxx:40