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 MakePlaneThreePnt (in GEOM_Object thePnt1,
87 in GEOM_Object thePnt2,
88 in GEOM_Object thePnt3,
89 in double theTrimSize) ;
90 GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
91 in GEOM_Object theVec,
92 in double theTrimSize) ;
93 GEOM_Object MakePlaneFace (in GEOM_Object theFace,
94 in double theTrimSize) ;
95 GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
96 in double theXDX, in double theXDY, in double theXDZ,
97 in double theYDX, in double theYDY, in double theYDZ) ;
100 * Create a tangent plane to specified face in the point with specified parameters.
101 * Values of parameters should be between 0. and 1.0
102 * \param theFace - face for which tangent plane shuold be built.
103 * \param theParameterU - value of parameter by U
104 * \param theParameterV - value of parameter Vthe
105 * \param theTrimSize - defines sizes of created face
106 * \return New GEOM_Object, containing the face built on tangent plane.
108 GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
109 in double theParameterU,
110 in double theParameterV,
111 in double theTrimSize);
113 //-----------------------------------------------------------//
114 // Primitives Construction : 3DPrimOperations //
115 //-----------------------------------------------------------//
116 GEOM_Object MakeBox (in double theX1,
122 GEOM_Object MakeBoxDXDYDZ (in double theDX,
125 GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1,
126 in GEOM_Object thePnt2) ;
127 GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
128 in GEOM_Object theAxis,
130 in double theHeight) ;
131 GEOM_Object MakeCylinderRH (in double theR,
133 GEOM_Object MakeSphere (in double theX,
136 in double theRadius) ;
137 GEOM_Object MakeSphereR (in double theR) ;
138 GEOM_Object MakeSpherePntR (in GEOM_Object thePnt,
140 GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
141 in GEOM_Object theVec,
143 in double theRMinor) ;
144 GEOM_Object MakeTorusRR (in double theRMajor,
145 in double theRMinor) ;
146 GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
147 in GEOM_Object theAxis,
150 in double theHeight) ;
151 GEOM_Object MakeConeR1R2H (in double theR1,
153 in double theHeight) ;
154 GEOM_Object MakePrismVecH (in GEOM_Object theBase,
155 in GEOM_Object theVec,
157 GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
158 in GEOM_Object thePoint1,
159 in GEOM_Object thePoint2) ;
160 GEOM_Object MakePipe (in GEOM_Object theBase,
161 in GEOM_Object thePath) ;
162 GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
163 in GEOM_Object theAxis,
164 in double theAngle) ;
165 GEOM_Object MakeFilling (in GEOM_Object theShape,
166 in long theMinDeg, in long theMaxDeg,
167 in double theTol2D, in double theTol3D,
169 GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
170 in boolean theModeSolid,
172 in boolean theRuled);
174 GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
175 in ListOfGO theLocations,
176 in GEOM_Object thePath,
177 in boolean theWithContact ,
178 in boolean theWithCorrection );
180 //-----------------------------------------------------------//
181 // BooleanOperations //
182 //-----------------------------------------------------------//
183 GEOM_Object MakeBoolean (in GEOM_Object theShape1,
184 in GEOM_Object theShape2,
185 in long theOperation) ;
186 GEOM_Object MakeFuse (in GEOM_Object theShape1,
187 in GEOM_Object theShape2) ;
188 GEOM_Object MakePartition (in GEOM_List theShapes,
189 in GEOM_List theTools,
190 in GEOM_List theKeepInside,
191 in GEOM_List theRemoveInside,
193 in boolean theRemoveWebs,
194 in GEOM_List theMaterials) ;
195 GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
196 in GEOM_Object thePlane) ;
198 //-----------------------------------------------------------//
199 // InsertOperations //
200 //-----------------------------------------------------------//
201 GEOM_Object MakeCopy (in GEOM_Object theOriginal) ;
202 void Export (in GEOM_Object theObject, in string theFileName, in string theFormatName) ;
203 GEOM_Object Import (in string theFileName, in string theFormatName) ;
204 void ImportTranslators (out string_array theFormats,
205 out string_array thePatterns) ;
206 void ExportTranslators (out string_array theFormats,
207 out string_array thePatterns) ;
209 //-----------------------------------------------------------//
210 // TransformOperations //
211 //-----------------------------------------------------------//
212 GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
213 in GEOM_Object thePoint1,
214 in GEOM_Object thePoint2) ;
215 GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
216 in GEOM_Object thePoint1,
217 in GEOM_Object thePoint2) ;
218 GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
222 GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
226 GEOM_Object TranslateVector (in GEOM_Object theObject,
227 in GEOM_Object theVector) ;
228 GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
229 in GEOM_Object theVector) ;
230 GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
231 in GEOM_Object theVector,
233 in long theNbTimes) ;
234 GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
235 in GEOM_Object theVector1,
238 in GEOM_Object theVector2,
240 in long theNbTimes2) ;
241 GEOM_Object Rotate (in GEOM_Object theObject,
242 in GEOM_Object theAxis,
243 in double theAngle) ;
244 GEOM_Object RotateCopy (in GEOM_Object theObject,
245 in GEOM_Object theAxis,
246 in double theAngle) ;
247 GEOM_Object RotateThreePoints (in GEOM_Object theObject,
248 in GEOM_Object theCentPoint,
249 in GEOM_Object thePoint1,
250 in GEOM_Object thePoint2);
251 GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
252 in GEOM_Object theCentPoint,
253 in GEOM_Object thePoint1,
254 in GEOM_Object thePoint2);
255 GEOM_Object MultiRotate1D (in GEOM_Object theObject,
256 in GEOM_Object theAxis,
257 in long theNbTimes) ;
258 GEOM_Object MultiRotate2D (in GEOM_Object theObject,
259 in GEOM_Object theAxis,
263 in long theNbTimes2) ;
264 GEOM_Object MirrorPlane (in GEOM_Object theObject,
265 in GEOM_Object thePlane) ;
266 GEOM_Object MirrorPlaneCopy (in GEOM_Object theObject,
267 in GEOM_Object thePlane) ;
268 GEOM_Object MirrorAxis (in GEOM_Object theObject,
269 in GEOM_Object theAxis) ;
270 GEOM_Object MirrorAxisCopy (in GEOM_Object theObject,
271 in GEOM_Object theAxis) ;
272 GEOM_Object MirrorPoint (in GEOM_Object theObject,
273 in GEOM_Object thePoint) ;
274 GEOM_Object MirrorPointCopy (in GEOM_Object theObject,
275 in GEOM_Object thePoint) ;
276 GEOM_Object OffsetShape (in GEOM_Object theObject,
277 in double theOffset) ;
278 GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
279 in double theOffset) ;
280 GEOM_Object ScaleShape (in GEOM_Object theObject,
281 in GEOM_Object thePoint,
282 in double theFactor) ;
283 GEOM_Object ScaleShapeCopy (in GEOM_Object theObject,
284 in GEOM_Object thePoint,
285 in double theFactor) ;
286 GEOM_Object PositionShape (in GEOM_Object theObject,
287 in GEOM_Object theStartLCS,
288 in GEOM_Object theEndLCS) ;
289 GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
290 in GEOM_Object theStartLCS,
291 in GEOM_Object theEndLCS) ;
293 //-----------------------------------------------------------//
294 // ShapesOperations //
295 //-----------------------------------------------------------//
296 GEOM_Object MakeEdge (in GEOM_Object thePnt1,
297 in GEOM_Object thePnt2) ;
298 GEOM_Object MakeWire (in GEOM_List theEdgesAndWires) ;
299 GEOM_Object MakeFace (in GEOM_Object theWire,
300 in boolean isPlanarWanted) ;
301 GEOM_Object MakeFaceWires (in GEOM_List theWires,
302 in boolean isPlanarWanted) ;
303 GEOM_Object MakeShell (in GEOM_List theFacesAndShells) ;
304 GEOM_Object MakeSolidShell (in GEOM_Object theShell) ;
305 GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
306 GEOM_Object MakeCompound (in GEOM_List theShapes) ;
307 GEOM_Object MakeGlueFaces (in GEOM_Object theShape,
308 in double theTolerance) ;
309 GEOM_List MakeExplode (in GEOM_Object theShape,
310 in long theShapeType,
311 in boolean isSorted) ;
312 long NumberOfFaces (in GEOM_Object theShape) ;
313 long NumberOfEdges (in GEOM_Object theShape) ;
314 GEOM_Object ChangeOrientation (in GEOM_Object theShape) ;
316 //-----------------------------------------------------------//
317 // BlocksOperations //
318 //-----------------------------------------------------------//
319 GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
320 in GEOM_Object thePnt2,
321 in GEOM_Object thePnt3,
322 in GEOM_Object thePnt4) ;
323 GEOM_Object MakeQuad (in GEOM_Object theEdge1,
324 in GEOM_Object theEdge2,
325 in GEOM_Object theEdge3,
326 in GEOM_Object theEdge4) ;
327 GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
328 in GEOM_Object theEdge2) ;
329 GEOM_Object MakeHexa (in GEOM_Object theFace1,
330 in GEOM_Object theFace2,
331 in GEOM_Object theFace3,
332 in GEOM_Object theFace4,
333 in GEOM_Object theFace5,
334 in GEOM_Object theFace6) ;
335 GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
336 in GEOM_Object theFace2) ;
337 GEOM_Object GetPoint (in GEOM_Object theShape,
341 in double theEpsilon) ;
342 GEOM_Object GetEdge (in GEOM_Object theShape,
343 in GEOM_Object thePoint1,
344 in GEOM_Object thePoint2) ;
345 GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
346 in GEOM_Object thePoint) ;
347 GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
348 in GEOM_Object thePoint1,
349 in GEOM_Object thePoint2,
350 in GEOM_Object thePoint3,
351 in GEOM_Object thePoint4) ;
352 GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
353 in GEOM_Object theEdge1,
354 in GEOM_Object theEdge2) ;
355 GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
356 in GEOM_Object theFace) ;
357 GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
358 in GEOM_Object thePoint) ;
359 GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
360 in GEOM_Object theVector) ;
361 boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
362 in long theMinNbFaces,
363 in long theMaxNbFaces,
364 out long theNbBlocks) ;
365 boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
366 out GEOM_IBlocksOperations::BCErrors theErrors) ;
367 string PrintBCErrors (in GEOM_Object theCompound,
368 in GEOM_IBlocksOperations::BCErrors theErrors) ;
369 GEOM_List ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
370 in long theMinNbFaces,
371 in long theMaxNbFaces) ;
372 GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
373 in GEOM_Object thePoint) ;
374 GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
375 in GEOM_List theParts) ;
376 GEOM_List GetBlocksByParts (in GEOM_Object theCompound,
377 in GEOM_List theParts) ;
378 GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
381 in long theNbTimes) ;
382 GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
383 in long theDirFace1U,
384 in long theDirFace2U,
386 in long theDirFace1V,
387 in long theDirFace2V,
388 in long theNbTimesV) ;
390 //-----------------------------------------------------------//
391 // CurvesOperations //
392 //-----------------------------------------------------------//
393 GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
394 in GEOM_Object theVec,
396 GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
397 in GEOM_Object thePnt2,
398 in GEOM_Object thePnt3) ;
399 GEOM_Object MakeEllipse (in GEOM_Object thePnt,
400 in GEOM_Object theVec,
402 in double theRMinor) ;
403 GEOM_Object MakeArc (in GEOM_Object thePnt1,
404 in GEOM_Object thePnt2,
405 in GEOM_Object thePnt3) ;
406 GEOM_Object MakePolyline (in GEOM_List thePoints) ;
407 GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
408 GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
409 GEOM_Object MakeSketcher (in string theCommand,
410 in GEOM_List theWorkingPlane) ;
412 //-----------------------------------------------------------//
413 // LocalOperations //
414 //-----------------------------------------------------------//
415 GEOM_Object MakeFilletAll (in GEOM_Object theShape,
417 GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
419 in GEOM_List theEdges) ;
420 GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
422 in GEOM_List theFaces) ;
423 GEOM_Object MakeChamferAll (in GEOM_Object theShape,
425 GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
426 in double theD1, in double theD2,
427 in long theFace1, in long theFace2) ;
428 GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
429 in double theD1, in double theD2,
430 in GEOM_List theFaces) ;
431 GEOM_Object MakeArchimede (in GEOM_Object theShape,
433 in double theWaterDensity,
434 in double theMeshDeflection) ;
435 long GetSubShapeIndex (in GEOM_Object theShape,
436 in GEOM_Object theSubShape) ;
438 //-----------------------------------------------------------//
439 // GroupOperations //
440 //-----------------------------------------------------------//
441 GEOM_Object CreateGroup (in GEOM_Object theMainShape,
442 in long theShapeType) ;
443 void AddObject (in GEOM_Object theGroup,
444 in long theSubShapeId) ;
445 void RemoveObject (in GEOM_Object theGroup,
446 in long theSubShapeId) ;
447 long GetType (in GEOM_Object theGroup) ;
448 GEOM_Object GetMainShape(in GEOM_Object theGroup) ;
449 GEOM_List GetObjects(in GEOM_Object theGroup) ;