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.salome-platform.org/ or email : webmaster.salome@opencascade.com
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) ;
76 GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
77 in double theParameter);
79 GEOM_Object MakeVectorDXDYDZ (in double theDX,
82 GEOM_Object MakeVectorTwoPnt (in GEOM_Object thePnt1,
83 in GEOM_Object thePnt2) ;
84 GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
85 in GEOM_Object thePnt2) ;
86 GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1,
87 in GEOM_Object theFace2) ;
88 GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
89 in GEOM_Object thePnt2,
90 in GEOM_Object thePnt3,
91 in double theTrimSize) ;
92 GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
93 in GEOM_Object theVec,
94 in double theTrimSize) ;
95 GEOM_Object MakePlaneFace (in GEOM_Object theFace,
96 in double theTrimSize) ;
97 GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
98 in double theXDX, in double theXDY, in double theXDZ,
99 in double theYDX, in double theYDY, in double theYDZ) ;
102 * Create a tangent plane to specified face in the point with specified parameters.
103 * Values of parameters should be between 0. and 1.0
104 * \param theFace - face for which tangent plane shuold be built.
105 * \param theParameterU - value of parameter by U
106 * \param theParameterV - value of parameter Vthe
107 * \param theTrimSize - defines sizes of created face
108 * \return New GEOM_Object, containing the face built on tangent plane.
110 GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
111 in double theParameterU,
112 in double theParameterV,
113 in double theTrimSize);
115 //-----------------------------------------------------------//
116 // Primitives Construction : 3DPrimOperations //
117 //-----------------------------------------------------------//
118 GEOM_Object MakeBox (in double theX1,
124 GEOM_Object MakeBoxDXDYDZ (in double theDX,
127 GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1,
128 in GEOM_Object thePnt2) ;
129 GEOM_Object MakeFaceHW (in double theH,
131 GEOM_Object MakeFacePlaneHW (in GEOM_Object theFace,
134 GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt,
135 in GEOM_Object theVec,
137 GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1,
138 in GEOM_Object thePnt2,
139 in GEOM_Object thePnt3) ;
140 GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
141 in GEOM_Object theAxis,
143 in double theHeight) ;
144 GEOM_Object MakeCylinderRH (in double theR,
146 GEOM_Object MakeSphere (in double theX,
149 in double theRadius) ;
150 GEOM_Object MakeSphereR (in double theR) ;
151 GEOM_Object MakeSpherePntR (in GEOM_Object thePnt,
153 GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
154 in GEOM_Object theVec,
156 in double theRMinor) ;
157 GEOM_Object MakeTorusRR (in double theRMajor,
158 in double theRMinor) ;
159 GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
160 in GEOM_Object theAxis,
163 in double theHeight) ;
164 GEOM_Object MakeConeR1R2H (in double theR1,
166 in double theHeight) ;
167 GEOM_Object MakePrismVecH (in GEOM_Object theBase,
168 in GEOM_Object theVec,
170 GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
171 in GEOM_Object theVec,
173 GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
174 in GEOM_Object thePoint1,
175 in GEOM_Object thePoint2) ;
176 GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
177 in GEOM_Object thePoint1,
178 in GEOM_Object thePoint2) ;
179 GEOM_Object MakePipe (in GEOM_Object theBase,
180 in GEOM_Object thePath) ;
181 GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
182 in GEOM_Object theAxis,
183 in double theAngle) ;
184 GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
185 in GEOM_Object theAxis,
186 in double theAngle) ;
187 GEOM_Object MakeFilling (in GEOM_Object theShape,
188 in long theMinDeg, in long theMaxDeg,
189 in double theTol2D, in double theTol3D,
190 in long theNbIter, in boolean theApprox) ;
191 GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
192 in boolean theModeSolid,
194 in boolean theRuled);
196 GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
197 in ListOfGO theLocations,
198 in GEOM_Object thePath,
199 in boolean theWithContact ,
200 in boolean theWithCorrection );
202 GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
203 in ListOfGO theSeqSubBases,
204 in ListOfGO theLocations,
205 in GEOM_Object thePath,
206 in boolean theWithContact ,
207 in boolean theWithCorrection );
209 GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
210 in ListOfGO theLocations );
212 //-----------------------------------------------------------//
213 // BooleanOperations //
214 //-----------------------------------------------------------//
215 GEOM_Object MakeBoolean (in GEOM_Object theShape1,
216 in GEOM_Object theShape2,
217 in long theOperation) ;
218 GEOM_Object MakeFuse (in GEOM_Object theShape1,
219 in GEOM_Object theShape2) ;
220 GEOM_Object MakePartition (in GEOM_List theShapes,
221 in GEOM_List theTools,
222 in GEOM_List theKeepInside,
223 in GEOM_List theRemoveInside,
225 in boolean theRemoveWebs,
226 in GEOM_List theMaterials,
227 in short theKeepNonlimitShapes);
228 GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
229 in GEOM_Object thePlane) ;
231 //-----------------------------------------------------------//
232 // InsertOperations //
233 //-----------------------------------------------------------//
234 GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
235 void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
236 GEOM_Object Import (in string theFileName, in string theFormatName) ;
237 void ImportTranslators (out string_array theFormats,
238 out string_array thePatterns) ;
239 void ExportTranslators (out string_array theFormats,
240 out string_array thePatterns) ;
242 //-----------------------------------------------------------//
243 // TransformOperations //
244 //-----------------------------------------------------------//
245 GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
246 in GEOM_Object thePoint1,
247 in GEOM_Object thePoint2) ;
248 GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
249 in GEOM_Object thePoint1,
250 in GEOM_Object thePoint2) ;
251 GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
255 GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
259 GEOM_Object TranslateVector (in GEOM_Object theObject,
260 in GEOM_Object theVector) ;
261 GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
262 in GEOM_Object theVector) ;
263 GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
264 in GEOM_Object theVector,
265 in double theDistance,
266 in boolean theCopy) ;
267 GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
268 in GEOM_Object theVector,
270 in long theNbTimes) ;
271 GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
272 in GEOM_Object theVector1,
275 in GEOM_Object theVector2,
277 in long theNbTimes2) ;
278 GEOM_Object Rotate (in GEOM_Object theObject,
279 in GEOM_Object theAxis,
280 in double theAngle) ;
281 GEOM_Object RotateCopy (in GEOM_Object theObject,
282 in GEOM_Object theAxis,
283 in double theAngle) ;
284 GEOM_Object RotateThreePoints (in GEOM_Object theObject,
285 in GEOM_Object theCentPoint,
286 in GEOM_Object thePoint1,
287 in GEOM_Object thePoint2);
288 GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
289 in GEOM_Object theCentPoint,
290 in GEOM_Object thePoint1,
291 in GEOM_Object thePoint2);
292 GEOM_Object MultiRotate1D (in GEOM_Object theObject,
293 in GEOM_Object theAxis,
294 in long theNbTimes) ;
295 GEOM_Object MultiRotate2D (in GEOM_Object theObject,
296 in GEOM_Object theAxis,
300 in long theNbTimes2) ;
301 GEOM_Object MirrorPlane (in GEOM_Object theObject,
302 in GEOM_Object thePlane) ;
303 GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject,
304 in GEOM_Object thePlane) ;
305 GEOM_Object MirrorAxis (in GEOM_Object theObject,
306 in GEOM_Object theAxis) ;
307 GEOM_Object MirrorAxisCopy (in GEOM_Object theObject,
308 in GEOM_Object theAxis) ;
309 GEOM_Object MirrorPoint (in GEOM_Object theObject,
310 in GEOM_Object thePoint) ;
311 GEOM_Object MirrorPointCopy (in GEOM_Object theObject,
312 in GEOM_Object thePoint) ;
313 GEOM_Object OffsetShape (in GEOM_Object theObject,
314 in double theOffset) ;
315 GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
316 in double theOffset) ;
317 GEOM_Object ScaleShape (in GEOM_Object theObject,
318 in GEOM_Object thePoint,
319 in double theFactor) ;
320 GEOM_Object ScaleShapeCopy (in GEOM_Object theObject,
321 in GEOM_Object thePoint,
322 in double theFactor) ;
323 GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject,
324 in GEOM_Object thePoint,
325 in double theFactorX,
326 in double theFactorY,
327 in double theFactorZ);
328 GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject,
329 in GEOM_Object thePoint,
330 in double theFactorX,
331 in double theFactorY,
332 in double theFactorZ);
333 GEOM_Object PositionShape (in GEOM_Object theObject,
334 in GEOM_Object theStartLCS,
335 in GEOM_Object theEndLCS) ;
336 GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
337 in GEOM_Object theStartLCS,
338 in GEOM_Object theEndLCS) ;
340 //-----------------------------------------------------------//
341 // ShapesOperations //
342 //-----------------------------------------------------------//
343 GEOM_Object MakeEdge (in GEOM_Object thePnt1,
344 in GEOM_Object thePnt2) ;
345 GEOM_Object MakeWire (in GEOM_List theEdgesAndWires) ;
346 GEOM_Object MakeFace (in GEOM_Object theWire,
347 in boolean isPlanarWanted) ;
348 GEOM_Object MakeFaceWires (in GEOM_List theWires,
349 in boolean isPlanarWanted) ;
350 GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
351 GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
352 GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
353 GEOM_Object MakeCompound (in GEOM_List theShapes) ;
354 GEOM_Object MakeGlueFaces (in GEOM_Object theShape,
355 in double theTolerance,
356 in boolean doKeepNonSolids);
357 GEOM_List GetGlueFaces (in GEOM_Object theShape,
358 in double theTolerance);
359 GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape,
360 in double theTolerance,
361 in ListOfGO theFaces,
362 in boolean doKeepNonSolids);
363 GEOM_List MakeExplode (in GEOM_Object theShape,
364 in long theShapeType,
365 in boolean isSorted) ;
366 long NumberOfFaces (in GEOM_Object theShape) ;
367 long NumberOfEdges (in GEOM_Object theShape) ;
368 GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
370 GEOM_List GetShapesOnShape (in GEOM_Object theCheckShape,
371 in GEOM_Object theShape,
372 in short theShapeType,
373 in shape_state theState);
374 GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
375 in GEOM_Object theShape,
376 in short theShapeType,
377 in shape_state theState);
379 //-----------------------------------------------------------//
380 // BlocksOperations //
381 //-----------------------------------------------------------//
382 GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
383 in GEOM_Object thePnt2,
384 in GEOM_Object thePnt3,
385 in GEOM_Object thePnt4) ;
386 GEOM_Object MakeQuad (in GEOM_Object theEdge1,
387 in GEOM_Object theEdge2,
388 in GEOM_Object theEdge3,
389 in GEOM_Object theEdge4) ;
390 GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
391 in GEOM_Object theEdge2) ;
392 GEOM_Object MakeHexa (in GEOM_Object theFace1,
393 in GEOM_Object theFace2,
394 in GEOM_Object theFace3,
395 in GEOM_Object theFace4,
396 in GEOM_Object theFace5,
397 in GEOM_Object theFace6) ;
398 GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
399 in GEOM_Object theFace2) ;
400 GEOM_Object GetPoint (in GEOM_Object theShape,
404 in double theEpsilon) ;
405 GEOM_Object GetEdge (in GEOM_Object theShape,
406 in GEOM_Object thePoint1,
407 in GEOM_Object thePoint2) ;
408 GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
409 in GEOM_Object thePoint) ;
410 GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
411 in GEOM_Object thePoint1,
412 in GEOM_Object thePoint2,
413 in GEOM_Object thePoint3,
414 in GEOM_Object thePoint4) ;
415 GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
416 in GEOM_Object theEdge1,
417 in GEOM_Object theEdge2) ;
418 GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
419 in GEOM_Object theFace) ;
420 GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
421 in GEOM_Object thePoint) ;
422 GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
423 in GEOM_Object theVector) ;
424 boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
425 in long theMinNbFaces,
426 in long theMaxNbFaces,
427 out long theNbBlocks) ;
428 boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
429 out GEOM_IBlocksOperations::BCErrors theErrors) ;
430 string PrintBCErrors (in GEOM_Object theCompound,
431 in GEOM_IBlocksOperations::BCErrors theErrors) ;
432 GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
433 in long theMinNbFaces,
434 in long theMaxNbFaces) ;
435 GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
436 in GEOM_Object thePoint) ;
437 GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
438 in GEOM_List theParts) ;
439 GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
440 in GEOM_List theParts) ;
441 GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
444 in long theNbTimes) ;
445 GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
446 in long theDirFace1U,
447 in long theDirFace2U,
449 in long theDirFace1V,
450 in long theDirFace2V,
451 in long theNbTimesV) ;
453 //-----------------------------------------------------------//
454 // CurvesOperations //
455 //-----------------------------------------------------------//
456 GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
457 in GEOM_Object theVec,
459 GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
460 in GEOM_Object thePnt2,
461 in GEOM_Object thePnt3) ;
462 GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
463 in GEOM_Object thePnt2,
464 in GEOM_Object thePnt3) ;
465 GEOM_Object MakeEllipse (in GEOM_Object thePnt,
466 in GEOM_Object theVec,
468 in double theRMinor) ;
469 GEOM_Object MakeArc (in GEOM_Object thePnt1,
470 in GEOM_Object thePnt2,
471 in GEOM_Object thePnt3) ;
472 GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
473 in GEOM_Object thePnt1,
474 in GEOM_Object thePnt2,
475 in boolean theSense) ;
476 GEOM_Object MakePolyline (in GEOM_List thePoints) ;
477 GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
478 GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
479 GEOM_Object MakeSketcher (in string theCommand,
480 in GEOM_List theWorkingPlane) ;
482 //-----------------------------------------------------------//
483 // LocalOperations //
484 //-----------------------------------------------------------//
485 GEOM_Object MakeFilletAll (in GEOM_Object theShape,
487 GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
489 in GEOM_List theEdges) ;
490 GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
493 in GEOM_List theEdges) ;
494 GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
496 in GEOM_List theFaces) ;
497 GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
500 in GEOM_List theFaces) ;
501 GEOM_Object MakeChamferAll (in GEOM_Object theShape,
503 GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
504 in double theD1, in double theD2,
505 in long theFace1, in long theFace2) ;
506 GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
507 in double theD, in double theAngle,
508 in long theFace1, in long theFace2) ;
509 GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
510 in double theD1, in double theD2,
511 in GEOM_List theFaces) ;
512 GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
513 in double theD, in double theAngle,
514 in GEOM_List theFaces) ;
515 GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
516 in double theD1, in double theD2,
517 in GEOM_List theEdges) ;
518 GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
519 in double theD, in double theAngle,
520 in GEOM_List theEdges) ;
521 GEOM_Object MakeArchimede (in GEOM_Object theShape,
523 in double theWaterDensity,
524 in double theMeshDeflection) ;
525 long GetSubShapeIndex (in GEOM_Object theShape,
526 in GEOM_Object theSubShape) ;
528 //-----------------------------------------------------------//
529 // GroupOperations //
530 //-----------------------------------------------------------//
531 GEOM_Object CreateGroup (in GEOM_Object theMainShape,
532 in long theShapeType) ;
533 void AddObject (in GEOM_Object theGroup,
534 in long theSubShapeId) ;
535 void RemoveObject (in GEOM_Object theGroup,
536 in long theSubShapeId) ;
537 long GetType (in GEOM_Object theGroup) ;
538 GEOM_Object GetMainShape(in GEOM_Object theGroup) ;
539 GEOM_List GetObjects(in GEOM_Object theGroup) ;