Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GEOMImpl_I3DPrimOperations.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, 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, int theDocID);
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