1 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // 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 MakePlane2Vec (in GEOM_Object theVec1,
98 in GEOM_Object theVec2,
99 in double theTrimSize) ;
100 GEOM_Object MakePlaneLCS (in GEOM_Object theLCS,
101 in double theTrimSize,
102 in double theOrientation) ;
103 GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
104 in double theXDX, in double theXDY, in double theXDZ,
105 in double theYDX, in double theYDY, in double theYDZ) ;
108 * Create a tangent plane to specified face in the point with specified parameters.
109 * Values of parameters should be between 0. and 1.0
110 * \param theFace - face for which tangent plane shuold be built.
111 * \param theParameterU - value of parameter by U
112 * \param theParameterV - value of parameter Vthe
113 * \param theTrimSize - defines sizes of created face
114 * \return New GEOM_Object, containing the face built on tangent plane.
116 GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
117 in double theParameterU,
118 in double theParameterV,
119 in double theTrimSize);
121 //-----------------------------------------------------------//
122 // Primitives Construction : 3DPrimOperations //
123 //-----------------------------------------------------------//
124 GEOM_Object MakeBox (in double theX1,
130 GEOM_Object MakeBoxDXDYDZ (in double theDX,
133 GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1,
134 in GEOM_Object thePnt2) ;
135 GEOM_Object MakeFaceHW (in double theH,
137 in short theOrientation) ;
138 GEOM_Object MakeFaceObjHW (in GEOM_Object theObj,
141 GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt,
142 in GEOM_Object theVec,
144 GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1,
145 in GEOM_Object thePnt2,
146 in GEOM_Object thePnt3) ;
147 GEOM_Object MakeDiskR (in double theR,
148 in short theOrientation) ;
149 GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
150 in GEOM_Object theAxis,
152 in double theHeight) ;
153 GEOM_Object MakeCylinderRH (in double theR,
155 GEOM_Object MakeSphere (in double theX,
158 in double theRadius) ;
159 GEOM_Object MakeSphereR (in double theR) ;
160 GEOM_Object MakeSpherePntR (in GEOM_Object thePnt,
162 GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
163 in GEOM_Object theVec,
165 in double theRMinor) ;
166 GEOM_Object MakeTorusRR (in double theRMajor,
167 in double theRMinor) ;
168 GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
169 in GEOM_Object theAxis,
172 in double theHeight) ;
173 GEOM_Object MakeConeR1R2H (in double theR1,
175 in double theHeight) ;
176 GEOM_Object MakePrismVecH (in GEOM_Object theBase,
177 in GEOM_Object theVec,
179 GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
180 in GEOM_Object theVec,
182 GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
183 in GEOM_Object thePoint1,
184 in GEOM_Object thePoint2) ;
185 GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
186 in GEOM_Object thePoint1,
187 in GEOM_Object thePoint2) ;
188 GEOM_Object MakePipe (in GEOM_Object theBase,
189 in GEOM_Object thePath) ;
190 GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
191 in GEOM_Object theAxis,
192 in double theAngle) ;
193 GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
194 in GEOM_Object theAxis,
195 in double theAngle) ;
196 GEOM_Object MakeFilling (in GEOM_Object theShape,
197 in long theMinDeg, in long theMaxDeg,
198 in double theTol2D, in double theTol3D,
199 in long theNbIter, in boolean theApprox) ;
200 GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
201 in boolean theModeSolid,
203 in boolean theRuled);
205 GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
206 in ListOfGO theLocations,
207 in GEOM_Object thePath,
208 in boolean theWithContact ,
209 in boolean theWithCorrection );
211 GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
212 in ListOfGO theSeqSubBases,
213 in ListOfGO theLocations,
214 in GEOM_Object thePath,
215 in boolean theWithContact ,
216 in boolean theWithCorrection );
218 GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
219 in ListOfGO theLocations );
221 GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase,
222 in GEOM_Object thePath,
223 in GEOM_Object theVec);
225 //-----------------------------------------------------------//
226 // BooleanOperations //
227 //-----------------------------------------------------------//
228 GEOM_Object MakeBoolean (in GEOM_Object theShape1,
229 in GEOM_Object theShape2,
230 in long theOperation) ;
231 GEOM_Object MakeFuse (in GEOM_Object theShape1,
232 in GEOM_Object theShape2) ;
233 GEOM_Object MakePartition (in GEOM_List theShapes,
234 in GEOM_List theTools,
235 in GEOM_List theKeepInside,
236 in GEOM_List theRemoveInside,
238 in boolean theRemoveWebs,
239 in GEOM_List theMaterials,
240 in short theKeepNonlimitShapes);
241 GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
242 in GEOM_Object thePlane) ;
244 //-----------------------------------------------------------//
245 // InsertOperations //
246 //-----------------------------------------------------------//
247 GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
248 void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
249 GEOM_Object Import (in string theFileName, in string theFormatName) ;
250 void ImportTranslators (out string_array theFormats,
251 out string_array thePatterns) ;
252 void ExportTranslators (out string_array theFormats,
253 out string_array thePatterns) ;
255 //-----------------------------------------------------------//
256 // TransformOperations //
257 //-----------------------------------------------------------//
258 GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
259 in GEOM_Object thePoint1,
260 in GEOM_Object thePoint2) ;
261 GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
262 in GEOM_Object thePoint1,
263 in GEOM_Object thePoint2) ;
264 GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
268 GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
272 GEOM_Object TranslateVector (in GEOM_Object theObject,
273 in GEOM_Object theVector) ;
274 GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
275 in GEOM_Object theVector) ;
276 GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
277 in GEOM_Object theVector,
278 in double theDistance,
279 in boolean theCopy) ;
280 GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
281 in GEOM_Object theVector,
283 in long theNbTimes) ;
284 GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
285 in GEOM_Object theVector1,
288 in GEOM_Object theVector2,
290 in long theNbTimes2) ;
291 GEOM_Object Rotate (in GEOM_Object theObject,
292 in GEOM_Object theAxis,
293 in double theAngle) ;
294 GEOM_Object RotateCopy (in GEOM_Object theObject,
295 in GEOM_Object theAxis,
296 in double theAngle) ;
297 GEOM_Object RotateThreePoints (in GEOM_Object theObject,
298 in GEOM_Object theCentPoint,
299 in GEOM_Object thePoint1,
300 in GEOM_Object thePoint2);
301 GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
302 in GEOM_Object theCentPoint,
303 in GEOM_Object thePoint1,
304 in GEOM_Object thePoint2);
305 GEOM_Object MultiRotate1D (in GEOM_Object theObject,
306 in GEOM_Object theAxis,
307 in long theNbTimes) ;
308 GEOM_Object MultiRotate2D (in GEOM_Object theObject,
309 in GEOM_Object theAxis,
313 in long theNbTimes2) ;
314 GEOM_Object MirrorPlane (in GEOM_Object theObject,
315 in GEOM_Object thePlane) ;
316 GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject,
317 in GEOM_Object thePlane) ;
318 GEOM_Object MirrorAxis (in GEOM_Object theObject,
319 in GEOM_Object theAxis) ;
320 GEOM_Object MirrorAxisCopy (in GEOM_Object theObject,
321 in GEOM_Object theAxis) ;
322 GEOM_Object MirrorPoint (in GEOM_Object theObject,
323 in GEOM_Object thePoint) ;
324 GEOM_Object MirrorPointCopy (in GEOM_Object theObject,
325 in GEOM_Object thePoint) ;
326 GEOM_Object OffsetShape (in GEOM_Object theObject,
327 in double theOffset) ;
328 GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
329 in double theOffset) ;
330 GEOM_Object ScaleShape (in GEOM_Object theObject,
331 in GEOM_Object thePoint,
332 in double theFactor) ;
333 GEOM_Object ScaleShapeCopy (in GEOM_Object theObject,
334 in GEOM_Object thePoint,
335 in double theFactor) ;
336 GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject,
337 in GEOM_Object thePoint,
338 in double theFactorX,
339 in double theFactorY,
340 in double theFactorZ);
341 GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject,
342 in GEOM_Object thePoint,
343 in double theFactorX,
344 in double theFactorY,
345 in double theFactorZ);
346 GEOM_Object PositionShape (in GEOM_Object theObject,
347 in GEOM_Object theStartLCS,
348 in GEOM_Object theEndLCS) ;
349 GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
350 in GEOM_Object theStartLCS,
351 in GEOM_Object theEndLCS) ;
352 GEOM_Object PositionAlongPath (in GEOM_Object theObject,
353 in GEOM_Object thePath,
354 in double theDistance,
356 in boolean theReverse);
358 //-----------------------------------------------------------//
359 // ShapesOperations //
360 //-----------------------------------------------------------//
361 GEOM_Object MakeEdge (in GEOM_Object thePnt1,
362 in GEOM_Object thePnt2) ;
363 GEOM_Object MakeWire (in GEOM_List theEdgesAndWires,
364 in double theTolerance) ;
365 GEOM_Object MakeFace (in GEOM_Object theWire,
366 in boolean isPlanarWanted) ;
367 GEOM_Object MakeFaceWires (in GEOM_List theWires,
368 in boolean isPlanarWanted) ;
369 GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
370 GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
371 GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
372 GEOM_Object MakeCompound (in GEOM_List theShapes) ;
373 GEOM_Object MakeGlueFaces (in GEOM_Object theShape,
374 in double theTolerance,
375 in boolean doKeepNonSolids);
376 GEOM_List GetGlueFaces (in GEOM_Object theShape,
377 in double theTolerance);
378 GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape,
379 in double theTolerance,
380 in ListOfGO theFaces,
381 in boolean doKeepNonSolids);
382 GEOM_List MakeExplode (in GEOM_Object theShape,
383 in long theShapeType,
384 in boolean isSorted) ;
385 long NumberOfFaces (in GEOM_Object theShape) ;
386 long NumberOfEdges (in GEOM_Object theShape) ;
387 GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
389 GEOM_List GetShapesOnShape (in GEOM_Object theCheckShape,
390 in GEOM_Object theShape,
391 in short theShapeType,
392 in shape_state theState);
393 GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
394 in GEOM_Object theShape,
395 in short theShapeType,
396 in shape_state theState);
398 //-----------------------------------------------------------//
399 // BlocksOperations //
400 //-----------------------------------------------------------//
401 GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
402 in GEOM_Object thePnt2,
403 in GEOM_Object thePnt3,
404 in GEOM_Object thePnt4) ;
405 GEOM_Object MakeQuad (in GEOM_Object theEdge1,
406 in GEOM_Object theEdge2,
407 in GEOM_Object theEdge3,
408 in GEOM_Object theEdge4) ;
409 GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
410 in GEOM_Object theEdge2) ;
411 GEOM_Object MakeHexa (in GEOM_Object theFace1,
412 in GEOM_Object theFace2,
413 in GEOM_Object theFace3,
414 in GEOM_Object theFace4,
415 in GEOM_Object theFace5,
416 in GEOM_Object theFace6) ;
417 GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
418 in GEOM_Object theFace2) ;
419 GEOM_Object GetPoint (in GEOM_Object theShape,
423 in double theEpsilon) ;
424 GEOM_Object GetEdge (in GEOM_Object theShape,
425 in GEOM_Object thePoint1,
426 in GEOM_Object thePoint2) ;
427 GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
428 in GEOM_Object thePoint) ;
429 GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
430 in GEOM_Object thePoint1,
431 in GEOM_Object thePoint2,
432 in GEOM_Object thePoint3,
433 in GEOM_Object thePoint4) ;
434 GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
435 in GEOM_Object theEdge1,
436 in GEOM_Object theEdge2) ;
437 GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
438 in GEOM_Object theFace) ;
439 GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
440 in GEOM_Object thePoint) ;
441 GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
442 in GEOM_Object theVector) ;
443 boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
444 in long theMinNbFaces,
445 in long theMaxNbFaces,
446 out long theNbBlocks) ;
447 boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
448 out GEOM_IBlocksOperations::BCErrors theErrors) ;
449 string PrintBCErrors (in GEOM_Object theCompound,
450 in GEOM_IBlocksOperations::BCErrors theErrors) ;
451 GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
452 in long theMinNbFaces,
453 in long theMaxNbFaces) ;
454 GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
455 in GEOM_Object thePoint) ;
456 GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
457 in GEOM_List theParts) ;
458 GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
459 in GEOM_List theParts) ;
460 GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
463 in long theNbTimes) ;
464 GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
465 in long theDirFace1U,
466 in long theDirFace2U,
468 in long theDirFace1V,
469 in long theDirFace2V,
470 in long theNbTimesV) ;
472 //-----------------------------------------------------------//
473 // CurvesOperations //
474 //-----------------------------------------------------------//
475 GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
476 in GEOM_Object theVec,
478 GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
479 in GEOM_Object thePnt2,
480 in GEOM_Object thePnt3) ;
481 GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
482 in GEOM_Object thePnt2,
483 in GEOM_Object thePnt3) ;
484 GEOM_Object MakeEllipse (in GEOM_Object thePnt,
485 in GEOM_Object theVec,
487 in double theRMinor) ;
488 GEOM_Object MakeEllipseVec (in GEOM_Object thePnt,
489 in GEOM_Object theVec,
492 in GEOM_Object theVecMaj) ;
493 GEOM_Object MakeArc (in GEOM_Object thePnt1,
494 in GEOM_Object thePnt2,
495 in GEOM_Object thePnt3) ;
496 GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
497 in GEOM_Object thePnt1,
498 in GEOM_Object thePnt2,
499 in boolean theSense) ;
500 GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter,
501 in GEOM_Object thePnt1,
502 in GEOM_Object thePnt2) ;
503 GEOM_Object MakePolyline (in GEOM_List thePoints) ;
504 GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
505 GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
506 GEOM_Object MakeSketcher (in string theCommand,
507 in GEOM_List theWorkingPlane) ;
509 //-----------------------------------------------------------//
510 // LocalOperations //
511 //-----------------------------------------------------------//
512 GEOM_Object MakeFilletAll (in GEOM_Object theShape,
514 GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
516 in GEOM_List theEdges) ;
517 GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
520 in GEOM_List theEdges) ;
521 GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
523 in GEOM_List theFaces) ;
524 GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
527 in GEOM_List theFaces) ;
528 GEOM_Object MakeFillet2D (in GEOM_Object theShape,
530 in GEOM_List theVertexes) ;
531 GEOM_Object MakeChamferAll (in GEOM_Object theShape,
533 GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
534 in double theD1, in double theD2,
535 in long theFace1, in long theFace2) ;
536 GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
537 in double theD, in double theAngle,
538 in long theFace1, in long theFace2) ;
539 GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
540 in double theD1, in double theD2,
541 in GEOM_List theFaces) ;
542 GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
543 in double theD, in double theAngle,
544 in GEOM_List theFaces) ;
545 GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
546 in double theD1, in double theD2,
547 in GEOM_List theEdges) ;
548 GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
549 in double theD, in double theAngle,
550 in GEOM_List theEdges) ;
551 GEOM_Object MakeArchimede (in GEOM_Object theShape,
553 in double theWaterDensity,
554 in double theMeshDeflection) ;
555 long GetSubShapeIndex (in GEOM_Object theShape,
556 in GEOM_Object theSubShape) ;
558 //-----------------------------------------------------------//
559 // GroupOperations //
560 //-----------------------------------------------------------//
561 GEOM_Object CreateGroup (in GEOM_Object theMainShape,
562 in long theShapeType) ;
563 void AddObject (in GEOM_Object theGroup,
564 in long theSubShapeId) ;
565 void RemoveObject (in GEOM_Object theGroup,
566 in long theSubShapeId) ;
567 long GetType (in GEOM_Object theGroup) ;
568 GEOM_Object GetMainShape(in GEOM_Object theGroup) ;
569 GEOM_List GetObjects(in GEOM_Object theGroup) ;