Version: 9.16.0
GEOMImpl_I3DPrimOperations.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 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
35class 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,
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,
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
175private:
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
187private:
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(TColStd_HSequenceOfTransient) MakePipeShellsWithoutPath(const Handle(TColStd_HSequenceOfTransient) &theBases
Standard_EXPORT Handle(GEOM_Object) MakeFilling(std Standard_EXPORT bool theModeSolid
Definition: GEOMImpl_I3DPrimOperations.hxx:126
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) MakeFilling(std Standard_EXPORT bool double bool theRuled
Definition: GEOMImpl_I3DPrimOperations.hxx:128
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
Handle(GEOM_Object) createGroup(const Handle(GEOM_Object) &theBaseObject
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) MakeFilling(std Standard_EXPORT Handle(GEOM_Object) MakeThruSections(const Handle(TColStd_HSequenceOfTransient) &theSeqSections
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 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
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 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) MakeFilling(std Standard_EXPORT bool double thePreci
Definition: GEOMImpl_I3DPrimOperations.hxx:127
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