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"
35 interface GEOM_Superv : Engines::Component,SALOMEDS::Driver
37 //-----------------------------------------------------------//
38 // Set current study ID //
39 //-----------------------------------------------------------//
40 void SetStudyID (in long theStudyID) ;
42 //-----------------------------------------------------------//
43 // Create ListOfGO and add items to it //
44 //-----------------------------------------------------------//
45 GEOM_List CreateListOfGO();
46 void AddItemToListOfGO( inout GEOM_List theList,
47 in GEOM_Object theObject);
49 //-----------------------------------------------------------//
50 // Create ListOfLong and add items to it //
51 //-----------------------------------------------------------//
52 GEOM_List CreateListOfLong();
53 void AddItemToListOfLong( inout GEOM_List theList,
56 //-----------------------------------------------------------//
57 // Create ListOfDouble and add items to it //
58 //-----------------------------------------------------------//
59 GEOM_List CreateListOfDouble();
60 void AddItemToListOfDouble( inout GEOM_List theList,
63 //-----------------------------------------------------------//
64 // Primitives Construction : BasicOperations //
65 //-----------------------------------------------------------//
66 GEOM_Object MakePointXYZ (in double theX,
69 GEOM_Object MakePointWithReference (in GEOM_Object theReference,
73 GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
74 in double theParameter) ;
75 GEOM_Object MakeVectorDXDYDZ (in double theDX,
78 GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
79 in GEOM_Object thePnt2) ;
80 GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
81 in GEOM_Object thePnt2) ;
82 GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
83 in GEOM_Object thePnt2,
84 in GEOM_Object thePnt3,
85 in double theTrimSize) ;
86 GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
87 in GEOM_Object theVec,
88 in double theTrimSize) ;
89 GEOM_Object MakePlaneFace (in GEOM_Object theFace,
90 in double theTrimSize) ;
91 GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
92 in double theXDX, in double theXDY, in double theXDZ,
93 in double theYDX, in double theYDY, in double theYDZ) ;
95 //-----------------------------------------------------------//
96 // Primitives Construction : 3DPrimOperations //
97 //-----------------------------------------------------------//
98 GEOM_Object MakeBox (in double theX1,
104 GEOM_Object MakeBoxDXDYDZ (in double theDX,
107 GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1,
108 in GEOM_Object thePnt2) ;
109 GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
110 in GEOM_Object theAxis,
112 in double theHeight) ;
113 GEOM_Object MakeCylinderRH (in double theR,
115 GEOM_Object MakeSphere (in double theX,
118 in double theRadius) ;
119 GEOM_Object MakeSphereR (in double theR) ;
120 GEOM_Object MakeSpherePntR (in GEOM_Object thePnt,
122 GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
123 in GEOM_Object theVec,
125 in double theRMinor) ;
126 GEOM_Object MakeTorusRR (in double theRMajor,
127 in double theRMinor) ;
128 GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
129 in GEOM_Object theAxis,
132 in double theHeight) ;
133 GEOM_Object MakeConeR1R2H (in double theR1,
135 in double theHeight) ;
136 GEOM_Object MakePrismVecH (in GEOM_Object theBase,
137 in GEOM_Object theVec,
139 GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
140 in GEOM_Object thePoint1,
141 in GEOM_Object thePoint2) ;
142 GEOM_Object MakePipe (in GEOM_Object theBase,
143 in GEOM_Object thePath) ;
144 GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
145 in GEOM_Object theAxis,
146 in double theAngle) ;
147 GEOM_Object MakeFilling (in GEOM_Object theShape,
148 in long theMinDeg, in long theMaxDeg,
149 in double theTol2D, in double theTol3D,
152 //-----------------------------------------------------------//
153 // BooleanOperations //
154 //-----------------------------------------------------------//
155 GEOM_Object MakeBoolean (in GEOM_Object theShape1,
156 in GEOM_Object theShape2,
157 in long theOperation) ;
158 GEOM_Object MakeFuse (in GEOM_Object theShape1,
159 in GEOM_Object theShape2) ;
160 GEOM_Object MakePartition (in GEOM_List theShapes,
161 in GEOM_List theTools,
162 in GEOM_List theKeepInside,
163 in GEOM_List theRemoveInside,
165 in boolean theRemoveWebs,
166 in GEOM_List theMaterials) ;
167 GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
168 in GEOM_Object thePlane) ;
170 //-----------------------------------------------------------//
171 // InsertOperations //
172 //-----------------------------------------------------------//
173 GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
174 void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
175 GEOM_Object Import (in string theFileName, in string theFormatName) ;
176 void ImportTranslators (out string_array theFormats,
177 out string_array thePatterns) ;
178 void ExportTranslators (out string_array theFormats,
179 out string_array thePatterns) ;
181 //-----------------------------------------------------------//
182 // TransformOperations //
183 //-----------------------------------------------------------//
184 GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
185 in GEOM_Object thePoint1,
186 in GEOM_Object thePoint2) ;
187 GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
188 in GEOM_Object thePoint1,
189 in GEOM_Object thePoint2) ;
190 GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
194 GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
198 GEOM_Object TranslateVector (in GEOM_Object theObject,
199 in GEOM_Object theVector) ;
200 GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
201 in GEOM_Object theVector) ;
202 GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
203 in GEOM_Object theVector,
205 in long theNbTimes) ;
206 GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
207 in GEOM_Object theVector1,
210 in GEOM_Object theVector2,
212 in long theNbTimes2) ;
213 GEOM_Object Rotate (in GEOM_Object theObject,
214 in GEOM_Object theAxis,
215 in double theAngle) ;
216 GEOM_Object RotateCopy (in GEOM_Object theObject,
217 in GEOM_Object theAxis,
218 in double theAngle) ;
219 GEOM_Object MultiRotate1D (in GEOM_Object theObject,
220 in GEOM_Object theAxis,
221 in long theNbTimes) ;
222 GEOM_Object MultiRotate2D (in GEOM_Object theObject,
223 in GEOM_Object theAxis,
227 in long theNbTimes2) ;
228 GEOM_Object MirrorPlane (in GEOM_Object theObject,
229 in GEOM_Object thePlane) ;
230 GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject,
231 in GEOM_Object thePlane) ;
232 GEOM_Object MirrorAxis (in GEOM_Object theObject,
233 in GEOM_Object theAxis) ;
234 GEOM_Object MirrorAxisCopy (in GEOM_Object theObject,
235 in GEOM_Object theAxis) ;
236 GEOM_Object MirrorPoint (in GEOM_Object theObject,
237 in GEOM_Object thePoint) ;
238 GEOM_Object MirrorPointCopy (in GEOM_Object theObject,
239 in GEOM_Object thePoint) ;
240 GEOM_Object OffsetShape (in GEOM_Object theObject,
241 in double theOffset) ;
242 GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
243 in double theOffset) ;
244 GEOM_Object ScaleShape (in GEOM_Object theObject,
245 in GEOM_Object thePoint,
246 in double theFactor) ;
247 GEOM_Object ScaleShapeCopy (in GEOM_Object theObject,
248 in GEOM_Object thePoint,
249 in double theFactor) ;
250 GEOM_Object PositionShape (in GEOM_Object theObject,
251 in GEOM_Object theStartLCS,
252 in GEOM_Object theEndLCS) ;
253 GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
254 in GEOM_Object theStartLCS,
255 in GEOM_Object theEndLCS) ;
257 //-----------------------------------------------------------//
258 // ShapesOperations //
259 //-----------------------------------------------------------//
260 GEOM_Object MakeEdge (in GEOM_Object thePnt1,
261 in GEOM_Object thePnt2) ;
262 GEOM_Object MakeWire (in GEOM_List theEdgesAndWires) ;
263 GEOM_Object MakeFace (in GEOM_Object theWire,
264 in boolean isPlanarWanted) ;
265 GEOM_Object MakeFaceWires (in GEOM_List theWires,
266 in boolean isPlanarWanted) ;
267 GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
268 GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
269 GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
270 GEOM_Object MakeCompound (in GEOM_List theShapes) ;
271 GEOM_Object MakeGlueFaces (in GEOM_Object theShape,
272 in double theTolerance) ;
273 GEOM_List MakeExplode (in GEOM_Object theShape,
274 in long theShapeType,
275 in boolean isSorted) ;
276 long NumberOfFaces (in GEOM_Object theShape) ;
277 long NumberOfEdges (in GEOM_Object theShape) ;
278 GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
280 //-----------------------------------------------------------//
281 // BlocksOperations //
282 //-----------------------------------------------------------//
283 GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
284 in GEOM_Object thePnt2,
285 in GEOM_Object thePnt3,
286 in GEOM_Object thePnt4) ;
287 GEOM_Object MakeQuad (in GEOM_Object theEdge1,
288 in GEOM_Object theEdge2,
289 in GEOM_Object theEdge3,
290 in GEOM_Object theEdge4) ;
291 GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
292 in GEOM_Object theEdge2) ;
293 GEOM_Object MakeHexa (in GEOM_Object theFace1,
294 in GEOM_Object theFace2,
295 in GEOM_Object theFace3,
296 in GEOM_Object theFace4,
297 in GEOM_Object theFace5,
298 in GEOM_Object theFace6) ;
299 GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
300 in GEOM_Object theFace2) ;
301 GEOM_Object GetPoint (in GEOM_Object theShape,
305 in double theEpsilon) ;
306 GEOM_Object GetEdge (in GEOM_Object theShape,
307 in GEOM_Object thePoint1,
308 in GEOM_Object thePoint2) ;
309 GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
310 in GEOM_Object thePoint) ;
311 GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
312 in GEOM_Object thePoint1,
313 in GEOM_Object thePoint2,
314 in GEOM_Object thePoint3,
315 in GEOM_Object thePoint4) ;
316 GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
317 in GEOM_Object theEdge1,
318 in GEOM_Object theEdge2) ;
319 GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
320 in GEOM_Object theFace) ;
321 GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
322 in GEOM_Object thePoint) ;
323 GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
324 in GEOM_Object theVector) ;
325 boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
326 in long theMinNbFaces,
327 in long theMaxNbFaces,
328 out long theNbBlocks) ;
329 boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
330 out GEOM_IBlocksOperations::BCErrors theErrors) ;
331 string PrintBCErrors (in GEOM_Object theCompound,
332 in GEOM_IBlocksOperations::BCErrors theErrors) ;
333 GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
334 in long theMinNbFaces,
335 in long theMaxNbFaces) ;
336 GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
337 in GEOM_Object thePoint) ;
338 GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
339 in GEOM_List theParts) ;
340 GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
341 in GEOM_List theParts) ;
342 GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
345 in long theNbTimes) ;
346 GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
347 in long theDirFace1U,
348 in long theDirFace2U,
350 in long theDirFace1V,
351 in long theDirFace2V,
352 in long theNbTimesV) ;
354 //-----------------------------------------------------------//
355 // CurvesOperations //
356 //-----------------------------------------------------------//
357 GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
358 in GEOM_Object theVec,
360 GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
361 in GEOM_Object thePnt2,
362 in GEOM_Object thePnt3) ;
363 GEOM_Object MakeEllipse (in GEOM_Object thePnt,
364 in GEOM_Object theVec,
366 in double theRMinor) ;
367 GEOM_Object MakeArc (in GEOM_Object thePnt1,
368 in GEOM_Object thePnt2,
369 in GEOM_Object thePnt3) ;
370 GEOM_Object MakePolyline (in GEOM_List thePoints) ;
371 GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
372 GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
373 GEOM_Object MakeSketcher (in string theCommand,
374 in GEOM_List theWorkingPlane) ;
376 //-----------------------------------------------------------//
377 // LocalOperations //
378 //-----------------------------------------------------------//
379 GEOM_Object MakeFilletAll (in GEOM_Object theShape,
381 GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
383 in GEOM_List theEdges) ;
384 GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
386 in GEOM_List theFaces) ;
387 GEOM_Object MakeChamferAll (in GEOM_Object theShape,
389 GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
390 in double theD1, in double theD2,
391 in long theFace1, in long theFace2) ;
392 GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
393 in double theD1, in double theD2,
394 in GEOM_List theFaces) ;
395 GEOM_Object MakeArchimede (in GEOM_Object theShape,
397 in double theWaterDensity,
398 in double theMeshDeflection) ;
399 long GetSubShapeIndex (in GEOM_Object theShape,
400 in GEOM_Object theSubShape) ;
402 //-----------------------------------------------------------//
403 // GroupOperations //
404 //-----------------------------------------------------------//
405 GEOM_Object CreateGroup (in GEOM_Object theMainShape,
406 in long theShapeType) ;
407 void AddObject (in GEOM_Object theGroup,
408 in long theSubShapeId) ;
409 void RemoveObject (in GEOM_Object theGroup,
410 in long theSubShapeId) ;
411 long GetType (in GEOM_Object theGroup) ;
412 GEOM_Object GetMainShape(in GEOM_Object theGroup) ;
413 GEOM_List GetObjects(in GEOM_Object theGroup) ;