1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
22 // File : GEOM_Superv.idl
23 // Author : Lucien PIGNOLONI
25 #ifndef __GEOM_SUPERV__
26 #define __GEOM_SUPERV__
28 #include "GEOM_Gen.idl"
32 interface GEOM_Superv : Engines::Component,SALOMEDS::Driver
34 //-----------------------------------------------------------//
35 // Set current study ID //
36 //-----------------------------------------------------------//
37 void SetStudyID (in long theStudyID) ;
39 //-----------------------------------------------------------//
40 // Primitives Construction : BasicOperations //
41 //-----------------------------------------------------------//
42 GEOM_Object MakePointXYZ (in double theX,
45 GEOM_Object MakePointWithReference (in GEOM_Object theReference,
49 GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
50 in double theParameter) ;
51 GEOM_Object MakeVectorDXDYDZ (in double theDX,
54 GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
55 in GEOM_Object thePnt2) ;
56 GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
57 in GEOM_Object thePnt2) ;
58 GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
59 in GEOM_Object thePnt2,
60 in GEOM_Object thePnt3,
61 in double theTrimSize) ;
62 GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
63 in GEOM_Object theVec,
64 in double theTrimSize) ;
65 GEOM_Object MakePlaneFace (in GEOM_Object theFace,
66 in double theTrimSize) ;
67 GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
68 in double theXDX, in double theXDY, in double theXDZ,
69 in double theYDX, in double theYDY, in double theYDZ) ;
71 //-----------------------------------------------------------//
72 // Primitives Construction : 3DPrimOperations //
73 //-----------------------------------------------------------//
74 GEOM_Object MakeBox (in double theX1,
80 GEOM_Object MakeBoxDXDYDZ (in double theDX,
83 GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1,
84 in GEOM_Object thePnt2) ;
85 GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
86 in GEOM_Object theAxis,
88 in double theHeight) ;
89 GEOM_Object MakeCylinderRH (in double theR,
91 GEOM_Object MakeSphere (in double theX,
94 in double theRadius) ;
95 GEOM_Object MakeSphereR (in double theR) ;
96 GEOM_Object MakeSpherePntR (in GEOM_Object thePnt,
98 GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
99 in GEOM_Object theVec,
101 in double theRMinor) ;
102 GEOM_Object MakeTorusRR (in double theRMajor,
103 in double theRMinor) ;
104 GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
105 in GEOM_Object theAxis,
108 in double theHeight) ;
109 GEOM_Object MakeConeR1R2H (in double theR1,
111 in double theHeight) ;
112 GEOM_Object MakePrismVecH (in GEOM_Object theBase,
113 in GEOM_Object theVec,
115 GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
116 in GEOM_Object thePoint1,
117 in GEOM_Object thePoint2) ;
118 GEOM_Object MakePipe (in GEOM_Object theBase,
119 in GEOM_Object thePath) ;
120 GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
121 in GEOM_Object theAxis,
122 in double theAngle) ;
123 GEOM_Object MakeFilling (in GEOM_Object theShape,
124 in long theMinDeg, in long theMaxDeg,
125 in double theTol2D, in double theTol3D,
128 //-----------------------------------------------------------//
129 // BooleanOperations //
130 //-----------------------------------------------------------//
131 GEOM_Object MakeBoolean (in GEOM_Object theShape1,
132 in GEOM_Object theShape2,
133 in long theOperation) ;
134 GEOM_Object MakeFuse (in GEOM_Object theShape1,
135 in GEOM_Object theShape2) ;
136 GEOM_Object MakePartition (in ListOfGO theShapes,
137 in ListOfGO theTools,
138 in ListOfGO theKeepInside,
139 in ListOfGO theRemoveInside,
141 in boolean theRemoveWebs,
142 in ListOfLong theMaterials) ;
143 GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
144 in GEOM_Object thePlane) ;
146 //-----------------------------------------------------------//
147 // InsertOperations //
148 //-----------------------------------------------------------//
149 GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
150 void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
151 GEOM_Object Import (in string theFileName, in string theFormatName) ;
152 void ImportTranslators (out string_array theFormats,
153 out string_array thePatterns) ;
154 void ExportTranslators (out string_array theFormats,
155 out string_array thePatterns) ;
157 //-----------------------------------------------------------//
158 // TransformOperations //
159 //-----------------------------------------------------------//
160 GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
161 in GEOM_Object thePoint1,
162 in GEOM_Object thePoint2) ;
163 GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
164 in GEOM_Object thePoint1,
165 in GEOM_Object thePoint2) ;
166 GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
170 GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
174 GEOM_Object TranslateVector (in GEOM_Object theObject,
175 in GEOM_Object theVector) ;
176 GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
177 in GEOM_Object theVector) ;
178 GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
179 in GEOM_Object theVector,
181 in long theNbTimes) ;
182 GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
183 in GEOM_Object theVector1,
186 in GEOM_Object theVector2,
188 in long theNbTimes2) ;
189 GEOM_Object Rotate (in GEOM_Object theObject,
190 in GEOM_Object theAxis,
191 in double theAngle) ;
192 GEOM_Object RotateCopy (in GEOM_Object theObject,
193 in GEOM_Object theAxis,
194 in double theAngle) ;
195 GEOM_Object MultiRotate1D (in GEOM_Object theObject,
196 in GEOM_Object theAxis,
197 in long theNbTimes) ;
198 GEOM_Object MultiRotate2D (in GEOM_Object theObject,
199 in GEOM_Object theAxis,
203 in long theNbTimes2) ;
204 GEOM_Object MirrorPlane (in GEOM_Object theObject, in GEOM_Object thePlane) ;
205 GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject, in GEOM_Object thePlane) ;
206 GEOM_Object MirrorAxis (in GEOM_Object theObject, in GEOM_Object theAxis) ;
207 GEOM_Object MirrorAxisCopy (in GEOM_Object theObject, in GEOM_Object theAxis) ;
208 GEOM_Object MirrorPoint (in GEOM_Object theObject, in GEOM_Object thePoint) ;
209 GEOM_Object MirrorPointCopy (in GEOM_Object theObject, in GEOM_Object thePoint) ;
210 GEOM_Object OffsetShape (in GEOM_Object theObject, in double theOffset) ;
211 GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, in double theOffset) ;
212 GEOM_Object ScaleShape (in GEOM_Object theObject, in GEOM_Object thePoint,
213 in double theFactor) ;
214 GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, in GEOM_Object thePoint,
215 in double theFactor) ;
216 GEOM_Object PositionShape (in GEOM_Object theObject,
217 in GEOM_Object theStartLCS,
218 in GEOM_Object theEndLCS) ;
219 GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
220 in GEOM_Object theStartLCS,
221 in GEOM_Object theEndLCS) ;
223 //-----------------------------------------------------------//
224 // ShapesOperations //
225 //-----------------------------------------------------------//
226 GEOM_Object MakeEdge (in GEOM_Object thePnt1, in GEOM_Object thePnt2) ;
227 GEOM_Object MakeWire (in ListOfGO theEdgesAndWires) ;
228 GEOM_Object MakeFace (in GEOM_Object theWire, in boolean isPlanarWanted) ;
229 GEOM_Object MakeFaceWires (in ListOfGO theWires, in boolean isPlanarWanted) ;
230 GEOM_Object MakeShell (in ListOfGO theFacesAndShells) ;
231 GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
232 GEOM_Object MakeSolidShells (in ListOfGO theShells) ;
233 GEOM_Object MakeCompound (in ListOfGO theShapes) ;
234 GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance) ;
235 ListOfGO MakeExplode (in GEOM_Object theShape,
236 in long theShapeType,
237 in boolean isSorted) ;
238 long NumberOfFaces (in GEOM_Object theShape) ;
239 long NumberOfEdges (in GEOM_Object theShape) ;
240 GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
242 //-----------------------------------------------------------//
243 // BlocksOperations //
244 //-----------------------------------------------------------//
245 GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
246 in GEOM_Object thePnt2,
247 in GEOM_Object thePnt3,
248 in GEOM_Object thePnt4) ;
249 GEOM_Object MakeQuad (in GEOM_Object theEdge1,
250 in GEOM_Object theEdge2,
251 in GEOM_Object theEdge3,
252 in GEOM_Object theEdge4) ;
253 GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
254 in GEOM_Object theEdge2) ;
255 GEOM_Object MakeHexa (in GEOM_Object theFace1,
256 in GEOM_Object theFace2,
257 in GEOM_Object theFace3,
258 in GEOM_Object theFace4,
259 in GEOM_Object theFace5,
260 in GEOM_Object theFace6) ;
261 GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
262 in GEOM_Object theFace2) ;
263 GEOM_Object GetPoint (in GEOM_Object theShape,
267 in double theEpsilon) ;
268 GEOM_Object GetEdge (in GEOM_Object theShape,
269 in GEOM_Object thePoint1,
270 in GEOM_Object thePoint2) ;
271 GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
272 in GEOM_Object thePoint) ;
273 GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
274 in GEOM_Object thePoint1,
275 in GEOM_Object thePoint2,
276 in GEOM_Object thePoint3,
277 in GEOM_Object thePoint4) ;
278 GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
279 in GEOM_Object theEdge1,
280 in GEOM_Object theEdge2) ;
281 GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
282 in GEOM_Object theFace) ;
283 GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
284 in GEOM_Object thePoint) ;
285 GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
286 in GEOM_Object theVector) ;
287 boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
288 in long theMinNbFaces,
289 in long theMaxNbFaces,
290 out long theNbBlocks) ;
291 boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
292 out GEOM_IBlocksOperations::BCErrors theErrors) ;
293 string PrintBCErrors (in GEOM_Object theCompound,
294 in GEOM_IBlocksOperations::BCErrors theErrors) ;
295 ListOfGO ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
296 in long theMinNbFaces,
297 in long theMaxNbFaces) ;
298 GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
299 in GEOM_Object thePoint) ;
300 GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
301 in ListOfGO theParts) ;
302 ListOfGO GetBlocksByParts (in GEOM_Object theCompound,
303 in ListOfGO theParts) ;
304 GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
307 in long theNbTimes) ;
308 GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
309 in long theDirFace1U,
310 in long theDirFace2U,
312 in long theDirFace1V,
313 in long theDirFace2V,
314 in long theNbTimesV) ;
316 //-----------------------------------------------------------//
317 // CurvesOperations //
318 //-----------------------------------------------------------//
319 GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
320 in GEOM_Object theVec,
322 GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
323 in GEOM_Object thePnt2,
324 in GEOM_Object thePnt3) ;
325 GEOM_Object MakeEllipse (in GEOM_Object thePnt,
326 in GEOM_Object theVec,
328 in double theRMinor) ;
329 GEOM_Object MakeArc (in GEOM_Object thePnt1,
330 in GEOM_Object thePnt2,
331 in GEOM_Object thePnt3) ;
332 GEOM_Object MakePolyline (in ListOfGO thePoints) ;
333 GEOM_Object MakeSplineBezier (in ListOfGO thePoints) ;
334 GEOM_Object MakeSplineInterpolation (in ListOfGO thePoints) ;
335 GEOM_Object MakeSketcher (in string theCommand, in ListOfDouble theWorkingPlane) ;
337 //-----------------------------------------------------------//
338 // LocalOperations //
339 //-----------------------------------------------------------//
340 GEOM_Object MakeFilletAll (in GEOM_Object theShape,
342 GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
344 in ListOfLong theEdges) ;
345 GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
347 in ListOfLong theFaces) ;
348 GEOM_Object MakeChamferAll (in GEOM_Object theShape,
350 GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
351 in double theD1, in double theD2,
352 in long theFace1, in long theFace2) ;
353 GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
354 in double theD1, in double theD2,
355 in ListOfLong theFaces) ;
356 GEOM_Object MakeArchimede (in GEOM_Object theShape,
358 in double theWaterDensity,
359 in double theMeshDeflection) ;
360 long GetSubShapeIndex (in GEOM_Object theShape, in GEOM_Object theSubShape) ;
362 //-----------------------------------------------------------//
363 // GroupOperations //
364 //-----------------------------------------------------------//
365 GEOM_Object CreateGroup (in GEOM_Object theMainShape, in long theShapeType) ;
366 void AddObject (in GEOM_Object theGroup, in long theSubShapeId) ;
367 void RemoveObject (in GEOM_Object theGroup, in long theSubShapeId) ;
368 long GetType (in GEOM_Object theGroup) ;
369 GEOM_Object GetMainShape(in GEOM_Object theGroup) ;
370 ListOfLong GetObjects(in GEOM_Object theGroup) ;