1 // Copyright (C) 2005 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
20 #ifndef __GEOM_SUPERV_I_H__
21 #define __GEOM_SUPERV_I_H__
24 #include <SALOMEconfig.h>
25 #include CORBA_SERVER_HEADER(GEOM_Superv)
27 #include "GEOM_Gen_i.hh"
28 #include "GEOM_List_i.hh"
30 class GEOM_Superv_i : public virtual POA_GEOM::GEOM_Superv,
31 public Engines_Component_i
34 GEOM_Superv_i(CORBA::ORB_ptr orb,
35 PortableServer::POA_ptr poa,
36 PortableServer::ObjectId * contId,
37 const char *instanceName,
38 const char *interfaceName);
41 // generic method to be put in a super class
42 void register_name(char * name);
56 PortableServer::ServantBase_var GetServant(CORBA::Object_ptr theObject,
57 PortableServer::POA_ptr thePOA);
59 //-----------------------------------------------------------------------//
60 // Set current stydy ID //
61 //-----------------------------------------------------------------------//
62 void SetStudyID( CORBA::Long theId );
64 //-----------------------------------------------------------//
65 // Create ListOfGO and add items to it //
66 //-----------------------------------------------------------//
67 GEOM::GEOM_List_ptr CreateListOfGO();
68 void AddItemToListOfGO(GEOM::GEOM_List_ptr& theList,
69 GEOM::GEOM_Object_ptr theObject);
71 //-----------------------------------------------------------//
72 // Create ListOfLong and add items to it //
73 //-----------------------------------------------------------//
74 GEOM::GEOM_List_ptr CreateListOfLong();
75 void AddItemToListOfLong(GEOM::GEOM_List_ptr& theList,
76 CORBA::Long theObject);
78 //-----------------------------------------------------------//
79 // Create ListOfDouble and add items to it //
80 //-----------------------------------------------------------//
81 GEOM::GEOM_List_ptr CreateListOfDouble();
82 void AddItemToListOfDouble(GEOM::GEOM_List_ptr& theList,
83 CORBA::Double theObject);
85 //-----------------------------------------------------------------------//
86 // Inherited methods from SALOMEDS::Driver //
87 //-----------------------------------------------------------------------//
89 SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
91 CORBA::Boolean isMultiFile);
93 SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
95 CORBA::Boolean isMultiFile);
97 CORBA::Boolean Load(SALOMEDS::SComponent_ptr theComponent,
98 const SALOMEDS::TMPFile& theStream,
100 CORBA::Boolean isMultiFile);
102 CORBA::Boolean LoadASCII(SALOMEDS::SComponent_ptr theComponent,
103 const SALOMEDS::TMPFile& theStream,
105 CORBA::Boolean isMultiFile);
107 void Close(SALOMEDS::SComponent_ptr theComponent);
108 char* ComponentDataType();
111 char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
112 const char* IORString,
113 CORBA::Boolean isMultiFile,
114 CORBA::Boolean isASCII);
115 char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
116 const char* aLocalPersistentID,
117 CORBA::Boolean isMultiFile,
118 CORBA::Boolean isASCII);
120 CORBA::Boolean CanPublishInStudy(CORBA::Object_ptr theIOR);
121 SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::Study_ptr theStudy,
122 SALOMEDS::SObject_ptr theSObject,
123 CORBA::Object_ptr theObject,
124 const char* theName) throw (SALOME::SALOME_Exception) ;
126 CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
127 SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID);
128 CORBA::Boolean CanPaste(const char* theComponentName, CORBA::Long theObjectID);
129 SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream,
130 CORBA::Long theObjectID,
131 SALOMEDS::SObject_ptr theObject);
133 //-----------------------------------------------------------//
134 // Primitives Construction : BasicOperations //
135 //-----------------------------------------------------------//
136 GEOM::GEOM_Object_ptr MakePointXYZ (CORBA::Double theX,
139 GEOM::GEOM_Object_ptr MakePointWithReference (GEOM::GEOM_Object_ptr theReference,
143 GEOM::GEOM_Object_ptr MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
144 CORBA::Double theParameter);
145 GEOM::GEOM_Object_ptr MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theRefLine1,
146 GEOM::GEOM_Object_ptr theRefLine2);
147 GEOM::GEOM_Object_ptr MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
148 CORBA::Double theParameter);
149 GEOM::GEOM_Object_ptr MakeVectorDXDYDZ (CORBA::Double theDX,
151 CORBA::Double theDZ);
152 GEOM::GEOM_Object_ptr MakeVectorTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
153 GEOM::GEOM_Object_ptr thePnt2);
154 GEOM::GEOM_Object_ptr MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
155 GEOM::GEOM_Object_ptr thePnt2);
156 GEOM::GEOM_Object_ptr MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
157 GEOM::GEOM_Object_ptr theFace2);
158 GEOM::GEOM_Object_ptr MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
159 GEOM::GEOM_Object_ptr thePnt2,
160 GEOM::GEOM_Object_ptr thePnt3,
161 CORBA::Double theTrimSize);
162 GEOM::GEOM_Object_ptr MakePlanePntVec (GEOM::GEOM_Object_ptr thePnt,
163 GEOM::GEOM_Object_ptr theVec,
164 CORBA::Double theTrimSize);
165 GEOM::GEOM_Object_ptr MakePlaneFace (GEOM::GEOM_Object_ptr theFace,
166 CORBA::Double theTrimSize);
167 GEOM::GEOM_Object_ptr MakeMarker (CORBA::Double theOX , CORBA::Double theOY , CORBA::Double theOZ,
168 CORBA::Double theXDX, CORBA::Double theXDY, CORBA::Double theXDZ,
169 CORBA::Double theYDX, CORBA::Double theYDY, CORBA::Double theYDZ);
171 GEOM::GEOM_Object_ptr MakeTangentPlaneOnFace (GEOM::GEOM_Object_ptr theFace,
172 CORBA::Double theParameterU,
173 CORBA::Double theParameterV,
174 CORBA::Double theTrimSize);
176 //-----------------------------------------------------------//
177 // Primitives Construction : 3DPrimOperations //
178 //-----------------------------------------------------------//
179 GEOM::GEOM_Object_ptr MakeBox (CORBA::Double theX1,
184 CORBA::Double theZ2);
185 GEOM::GEOM_Object_ptr MakeBoxDXDYDZ (CORBA::Double theDX,
187 CORBA::Double theDZ);
188 GEOM::GEOM_Object_ptr MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
189 GEOM::GEOM_Object_ptr thePnt2);
190 GEOM::GEOM_Object_ptr MakeFaceHW (CORBA::Double theH,
192 CORBA::Short theOrientation);
193 GEOM::GEOM_Object_ptr MakeFaceVecHW (GEOM::GEOM_Object_ptr theFace,
196 GEOM::GEOM_Object_ptr MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter,
197 GEOM::GEOM_Object_ptr theVector,
199 GEOM::GEOM_Object_ptr MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1,
200 GEOM::GEOM_Object_ptr thePnt2,
201 GEOM::GEOM_Object_ptr thePnt3);
202 GEOM::GEOM_Object_ptr MakeDiskR (CORBA::Double theR,
203 CORBA::Short theOrientation);
204 GEOM::GEOM_Object_ptr MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr thePnt,
205 GEOM::GEOM_Object_ptr theAxis,
206 CORBA::Double theRadius,
207 CORBA::Double theHeight);
208 GEOM::GEOM_Object_ptr MakeCylinderRH (CORBA::Double theR,
210 GEOM::GEOM_Object_ptr MakeSphere (CORBA::Double theX,
213 CORBA::Double theRadius);
214 GEOM::GEOM_Object_ptr MakeSphereR (CORBA::Double theR);
215 GEOM::GEOM_Object_ptr MakeSpherePntR (GEOM::GEOM_Object_ptr thePnt,
217 GEOM::GEOM_Object_ptr MakeTorusPntVecRR (GEOM::GEOM_Object_ptr thePnt,
218 GEOM::GEOM_Object_ptr theVec,
219 CORBA::Double theRMajor,
220 CORBA::Double theRMinor);
221 GEOM::GEOM_Object_ptr MakeTorusRR (CORBA::Double theRMajor,
222 CORBA::Double theRMinor);
223 GEOM::GEOM_Object_ptr MakeConePntVecR1R2H (GEOM::GEOM_Object_ptr thePnt,
224 GEOM::GEOM_Object_ptr theAxis,
227 CORBA::Double theHeight);
228 GEOM::GEOM_Object_ptr MakeConeR1R2H (CORBA::Double theR1,
230 CORBA::Double theHeight);
231 GEOM::GEOM_Object_ptr MakePrismVecH (GEOM::GEOM_Object_ptr theBase,
232 GEOM::GEOM_Object_ptr theVec,
234 GEOM::GEOM_Object_ptr MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
235 GEOM::GEOM_Object_ptr theVec,
237 GEOM::GEOM_Object_ptr MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
238 GEOM::GEOM_Object_ptr thePoint1,
239 GEOM::GEOM_Object_ptr thePoint2);
240 GEOM::GEOM_Object_ptr MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
241 GEOM::GEOM_Object_ptr thePoint1,
242 GEOM::GEOM_Object_ptr thePoint2);
243 GEOM::GEOM_Object_ptr MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase,
246 CORBA::Double theDZ);
247 GEOM::GEOM_Object_ptr MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase,
250 CORBA::Double theDZ);
251 GEOM::GEOM_Object_ptr MakePipe (GEOM::GEOM_Object_ptr theBase,
252 GEOM::GEOM_Object_ptr thePath);
253 GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle (GEOM::GEOM_Object_ptr theBase,
254 GEOM::GEOM_Object_ptr theAxis,
255 CORBA::Double theAngle);
256 GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
257 GEOM::GEOM_Object_ptr theAxis,
258 CORBA::Double theAngle);
259 GEOM::GEOM_Object_ptr MakeFilling (GEOM::GEOM_Object_ptr theShape,
260 CORBA::Long theMinDeg, CORBA::Long theMaxDeg,
261 CORBA::Double theTol2D, CORBA::Double theTol3D,
262 CORBA::Long theNbIter, CORBA::Boolean theApprox);
264 GEOM::GEOM_Object_ptr MakeThruSections(const GEOM::ListOfGO& theSeqSections,
265 CORBA::Boolean theModeSolid,
266 CORBA::Double thePreci,
267 CORBA::Boolean theRuled);
269 GEOM::GEOM_Object_ptr MakePipeWithDifferentSections(const GEOM::ListOfGO& theBases,
270 const GEOM::ListOfGO& theLocations,
271 GEOM::GEOM_Object_ptr thePath,
272 CORBA::Boolean theWithContact,
273 CORBA::Boolean theWithCorrections);
275 GEOM::GEOM_Object_ptr MakePipeWithShellSections(const GEOM::ListOfGO& theBases,
276 const GEOM::ListOfGO& theSubBases,
277 const GEOM::ListOfGO& theLocations,
278 GEOM::GEOM_Object_ptr thePath,
279 CORBA::Boolean theWithContact,
280 CORBA::Boolean theWithCorrections);
282 GEOM::GEOM_Object_ptr MakePipeShellsWithoutPath(const GEOM::ListOfGO& theBases,
283 const GEOM::ListOfGO& theLocations);
285 //-----------------------------------------------------------//
286 // BooleanOperations //
287 //-----------------------------------------------------------//
288 GEOM::GEOM_Object_ptr MakeBoolean (GEOM::GEOM_Object_ptr theShape1,
289 GEOM::GEOM_Object_ptr theShape2,
290 CORBA::Long theOperation);
291 GEOM::GEOM_Object_ptr MakeFuse (GEOM::GEOM_Object_ptr theShape1,
292 GEOM::GEOM_Object_ptr theShape2);
293 GEOM::GEOM_Object_ptr MakePartition (GEOM::GEOM_List_ptr theShapes,
294 GEOM::GEOM_List_ptr theTools,
295 GEOM::GEOM_List_ptr theKeepInside,
296 GEOM::GEOM_List_ptr theRemoveInside,
297 CORBA::Short theLimit,
298 CORBA::Boolean theRemoveWebs,
299 GEOM::GEOM_List_ptr theMaterials,
300 CORBA::Short theKeepNonlimitShapes);
301 GEOM::GEOM_Object_ptr MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
302 GEOM::GEOM_Object_ptr thePlane);
304 //-----------------------------------------------------------//
305 // InsertOperations //
306 //-----------------------------------------------------------//
307 GEOM::GEOM_Object_ptr MakeCopy (GEOM::GEOM_Object_ptr theOriginal);
308 void Export (GEOM::GEOM_Object_ptr theObject,
309 const char* theFileName,
310 const char* theFormatName);
311 GEOM::GEOM_Object_ptr Import (const char* theFileName,
312 const char* theFormatName);
313 void ImportTranslators (GEOM::string_array_out theFormats,
314 GEOM::string_array_out thePatterns);
315 void ExportTranslators (GEOM::string_array_out theFormats,
316 GEOM::string_array_out thePatterns);
318 //-----------------------------------------------------------//
319 // TransformOperations //
320 //-----------------------------------------------------------//
321 GEOM::GEOM_Object_ptr TranslateTwoPoints (GEOM::GEOM_Object_ptr theObject,
322 GEOM::GEOM_Object_ptr thePoint1,
323 GEOM::GEOM_Object_ptr thePoint2);
324 GEOM::GEOM_Object_ptr TranslateTwoPointsCopy (GEOM::GEOM_Object_ptr theObject,
325 GEOM::GEOM_Object_ptr thePoint1,
326 GEOM::GEOM_Object_ptr thePoint2);
327 GEOM::GEOM_Object_ptr TranslateDXDYDZ (GEOM::GEOM_Object_ptr theObject,
330 CORBA::Double theDZ);
331 GEOM::GEOM_Object_ptr TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr theObject,
334 CORBA::Double theDZ);
335 GEOM::GEOM_Object_ptr TranslateVector (GEOM::GEOM_Object_ptr theObject,
336 GEOM::GEOM_Object_ptr theVector);
337 GEOM::GEOM_Object_ptr TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject,
338 GEOM::GEOM_Object_ptr theVector);
339 GEOM::GEOM_Object_ptr TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject,
340 GEOM::GEOM_Object_ptr theVector,
341 CORBA::Double theDistance,
342 CORBA::Boolean theCopy);
343 GEOM::GEOM_Object_ptr MultiTranslate1D (GEOM::GEOM_Object_ptr theObject,
344 GEOM::GEOM_Object_ptr theVector,
345 CORBA::Double theStep,
346 CORBA::Long theNbTimes);
347 GEOM::GEOM_Object_ptr MultiTranslate2D (GEOM::GEOM_Object_ptr theObject,
348 GEOM::GEOM_Object_ptr theVector1,
349 CORBA::Double theStep1,
350 CORBA::Long theNbTimes1,
351 GEOM::GEOM_Object_ptr theVector2,
352 CORBA::Double theStep2,
353 CORBA::Long theNbTimes2);
354 GEOM::GEOM_Object_ptr Rotate (GEOM::GEOM_Object_ptr theObject,
355 GEOM::GEOM_Object_ptr theAxis,
356 CORBA::Double theAngle);
357 GEOM::GEOM_Object_ptr RotateCopy (GEOM::GEOM_Object_ptr theObject,
358 GEOM::GEOM_Object_ptr theAxis,
359 CORBA::Double theAngle);
361 GEOM::GEOM_Object_ptr RotateThreePoints (GEOM::GEOM_Object_ptr theObject,
362 GEOM::GEOM_Object_ptr theCentPoint,
363 GEOM::GEOM_Object_ptr thePoint1,
364 GEOM::GEOM_Object_ptr thePoint2);
366 GEOM::GEOM_Object_ptr RotateThreePointsCopy (GEOM::GEOM_Object_ptr theObject,
367 GEOM::GEOM_Object_ptr theCentPoint,
368 GEOM::GEOM_Object_ptr thePoint1,
369 GEOM::GEOM_Object_ptr thePoint2);
371 GEOM::GEOM_Object_ptr MultiRotate1D (GEOM::GEOM_Object_ptr theObject,
372 GEOM::GEOM_Object_ptr theAxis,
373 CORBA::Long theNbTimes);
374 GEOM::GEOM_Object_ptr MultiRotate2D (GEOM::GEOM_Object_ptr theObject,
375 GEOM::GEOM_Object_ptr theAxis,
376 CORBA::Double theAngle,
377 CORBA::Long theNbTimes1,
378 CORBA::Double theStep,
379 CORBA::Long theNbTimes2);
380 GEOM::GEOM_Object_ptr MirrorPlane (GEOM::GEOM_Object_ptr theObject,
381 GEOM::GEOM_Object_ptr thePlane);
382 GEOM::GEOM_Object_ptr MirrorPlaneCopy (GEOM::GEOM_Object_ptr theObject,
383 GEOM::GEOM_Object_ptr thePlane);
384 GEOM::GEOM_Object_ptr MirrorAxis (GEOM::GEOM_Object_ptr theObject,
385 GEOM::GEOM_Object_ptr theAxis);
386 GEOM::GEOM_Object_ptr MirrorAxisCopy (GEOM::GEOM_Object_ptr theObject,
387 GEOM::GEOM_Object_ptr theAxis);
388 GEOM::GEOM_Object_ptr MirrorPoint (GEOM::GEOM_Object_ptr theObject,
389 GEOM::GEOM_Object_ptr thePoint);
390 GEOM::GEOM_Object_ptr MirrorPointCopy (GEOM::GEOM_Object_ptr theObject,
391 GEOM::GEOM_Object_ptr thePoint);
392 GEOM::GEOM_Object_ptr OffsetShape (GEOM::GEOM_Object_ptr theObject,
393 CORBA::Double theOffset);
394 GEOM::GEOM_Object_ptr OffsetShapeCopy (GEOM::GEOM_Object_ptr theObject,
395 CORBA::Double theOffset);
396 GEOM::GEOM_Object_ptr ScaleShape (GEOM::GEOM_Object_ptr theObject,
397 GEOM::GEOM_Object_ptr thePoint,
398 CORBA::Double theFactor);
399 GEOM::GEOM_Object_ptr ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject,
400 GEOM::GEOM_Object_ptr thePoint,
401 CORBA::Double theFactor);
402 GEOM::GEOM_Object_ptr ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject,
403 GEOM::GEOM_Object_ptr thePoint,
404 CORBA::Double theFactorX,
405 CORBA::Double theFactorY,
406 CORBA::Double theFactorZ);
407 GEOM::GEOM_Object_ptr ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject,
408 GEOM::GEOM_Object_ptr thePoint,
409 CORBA::Double theFactorX,
410 CORBA::Double theFactorY,
411 CORBA::Double theFactorZ);
412 GEOM::GEOM_Object_ptr PositionShape (GEOM::GEOM_Object_ptr theObject,
413 GEOM::GEOM_Object_ptr theStartLCS,
414 GEOM::GEOM_Object_ptr theEndLCS);
415 GEOM::GEOM_Object_ptr PositionShapeCopy (GEOM::GEOM_Object_ptr theObject,
416 GEOM::GEOM_Object_ptr theStartLCS,
417 GEOM::GEOM_Object_ptr theEndLCS);
419 //-----------------------------------------------------------//
420 // ShapesOperations //
421 //-----------------------------------------------------------//
422 GEOM::GEOM_Object_ptr MakeEdge (GEOM::GEOM_Object_ptr thePnt1,
423 GEOM::GEOM_Object_ptr thePnt2);
424 GEOM::GEOM_Object_ptr MakeWire (GEOM::GEOM_List_ptr theEdgesAndWires);
425 GEOM::GEOM_Object_ptr MakeFace (GEOM::GEOM_Object_ptr theWire,
426 CORBA::Boolean isPlanarWanted);
427 GEOM::GEOM_Object_ptr MakeFaceWires (GEOM::GEOM_List_ptr theWires,
428 CORBA::Boolean isPlanarWanted);
429 GEOM::GEOM_Object_ptr MakeShell (GEOM::GEOM_List_ptr theFacesAndShells);
430 GEOM::GEOM_Object_ptr MakeSolidShell (GEOM::GEOM_Object_ptr theShell);
431 GEOM::GEOM_Object_ptr MakeSolidShells (GEOM::GEOM_List_ptr theShells);
432 GEOM::GEOM_Object_ptr MakeCompound (GEOM::GEOM_List_ptr theShapes);
433 GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
434 CORBA::Double theTolerance,
435 CORBA::Boolean doKeepNonSolids);
436 GEOM::GEOM_List_ptr GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
437 CORBA::Double theTolerance);
438 GEOM::GEOM_Object_ptr MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
439 CORBA::Double theTolerance,
440 const GEOM::ListOfGO& theFaces,
441 CORBA::Boolean doKeepNonSolids);
442 GEOM::GEOM_List_ptr MakeExplode (GEOM::GEOM_Object_ptr theShape,
443 CORBA::Long theShapeType,
444 CORBA::Boolean isSorted);
445 CORBA::Long NumberOfFaces (GEOM::GEOM_Object_ptr theShape);
446 CORBA::Long NumberOfEdges (GEOM::GEOM_Object_ptr theShape);
447 GEOM::GEOM_Object_ptr ChangeOrientation (GEOM::GEOM_Object_ptr theShape);
449 GEOM::GEOM_List_ptr GetShapesOnShape (GEOM::GEOM_Object_ptr theCheckShape,
450 GEOM::GEOM_Object_ptr theShape,
451 CORBA::Short theShapeType,
452 GEOM::shape_state theState);
453 GEOM::GEOM_Object_ptr GetShapesOnShapeAsCompound
454 (GEOM::GEOM_Object_ptr theCheckShape,
455 GEOM::GEOM_Object_ptr theShape,
456 CORBA::Short theShapeType,
457 GEOM::shape_state theState);
460 //-----------------------------------------------------------//
461 // BlocksOperations //
462 //-----------------------------------------------------------//
463 GEOM::GEOM_Object_ptr MakeQuad4Vertices (GEOM::GEOM_Object_ptr thePnt1,
464 GEOM::GEOM_Object_ptr thePnt2,
465 GEOM::GEOM_Object_ptr thePnt3,
466 GEOM::GEOM_Object_ptr thePnt4);
467 GEOM::GEOM_Object_ptr MakeQuad (GEOM::GEOM_Object_ptr theEdge1,
468 GEOM::GEOM_Object_ptr theEdge2,
469 GEOM::GEOM_Object_ptr theEdge3,
470 GEOM::GEOM_Object_ptr theEdge4);
471 GEOM::GEOM_Object_ptr MakeQuad2Edges (GEOM::GEOM_Object_ptr theEdge1,
472 GEOM::GEOM_Object_ptr theEdge2);
473 GEOM::GEOM_Object_ptr MakeHexa (GEOM::GEOM_Object_ptr theFace1,
474 GEOM::GEOM_Object_ptr theFace2,
475 GEOM::GEOM_Object_ptr theFace3,
476 GEOM::GEOM_Object_ptr theFace4,
477 GEOM::GEOM_Object_ptr theFace5,
478 GEOM::GEOM_Object_ptr theFace6);
479 GEOM::GEOM_Object_ptr MakeHexa2Faces (GEOM::GEOM_Object_ptr theFace1,
480 GEOM::GEOM_Object_ptr theFace2);
481 GEOM::GEOM_Object_ptr GetPoint (GEOM::GEOM_Object_ptr theShape,
485 CORBA::Double theEpsilon);
486 GEOM::GEOM_Object_ptr GetEdge (GEOM::GEOM_Object_ptr theShape,
487 GEOM::GEOM_Object_ptr thePoint1,
488 GEOM::GEOM_Object_ptr thePoint2);
489 GEOM::GEOM_Object_ptr GetEdgeNearPoint (GEOM::GEOM_Object_ptr theShape,
490 GEOM::GEOM_Object_ptr thePoint);
491 GEOM::GEOM_Object_ptr GetFaceByPoints (GEOM::GEOM_Object_ptr theShape,
492 GEOM::GEOM_Object_ptr thePoint1,
493 GEOM::GEOM_Object_ptr thePoint2,
494 GEOM::GEOM_Object_ptr thePoint3,
495 GEOM::GEOM_Object_ptr thePoint4);
496 GEOM::GEOM_Object_ptr GetFaceByEdges (GEOM::GEOM_Object_ptr theShape,
497 GEOM::GEOM_Object_ptr theEdge1,
498 GEOM::GEOM_Object_ptr theEdge2);
499 GEOM::GEOM_Object_ptr GetOppositeFace (GEOM::GEOM_Object_ptr theBlock,
500 GEOM::GEOM_Object_ptr theFace);
501 GEOM::GEOM_Object_ptr GetFaceNearPoint (GEOM::GEOM_Object_ptr theShape,
502 GEOM::GEOM_Object_ptr thePoint);
503 GEOM::GEOM_Object_ptr GetFaceByNormale (GEOM::GEOM_Object_ptr theBlock,
504 GEOM::GEOM_Object_ptr theVector);
505 CORBA::Boolean IsCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
506 CORBA::Long theMinNbFaces,
507 CORBA::Long theMaxNbFaces,
508 CORBA::Long& theNbBlocks);
509 CORBA::Boolean CheckCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
510 GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors);
511 char* PrintBCErrors (GEOM::GEOM_Object_ptr theCompound,
512 const GEOM::GEOM_IBlocksOperations::BCErrors& theErrors);
513 GEOM::GEOM_List_ptr ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
514 CORBA::Long theMinNbFaces,
515 CORBA::Long theMaxNbFaces);
516 GEOM::GEOM_Object_ptr GetBlockNearPoint (GEOM::GEOM_Object_ptr theCompound,
517 GEOM::GEOM_Object_ptr thePoint);
518 GEOM::GEOM_Object_ptr GetBlockByParts (GEOM::GEOM_Object_ptr theCompound,
519 GEOM::GEOM_List_ptr theParts);
520 GEOM::GEOM_List_ptr GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound,
521 GEOM::GEOM_List_ptr theParts);
522 GEOM::GEOM_Object_ptr MakeMultiTransformation1D (GEOM::GEOM_Object_ptr theBlock,
523 CORBA::Long theDirFace1,
524 CORBA::Long theDirFace2,
525 CORBA::Long theNbTimes);
526 GEOM::GEOM_Object_ptr MakeMultiTransformation2D (GEOM::GEOM_Object_ptr theBlock,
527 CORBA::Long theDirFace1U,
528 CORBA::Long theDirFace2U,
529 CORBA::Long theNbTimesU,
530 CORBA::Long theDirFace1V,
531 CORBA::Long theDirFace2V,
532 CORBA::Long theNbTimesV);
534 //-----------------------------------------------------------//
535 // CurvesOperations //
536 //-----------------------------------------------------------//
537 GEOM::GEOM_Object_ptr MakeCirclePntVecR (GEOM::GEOM_Object_ptr theCenter,
538 GEOM::GEOM_Object_ptr theVector,
540 GEOM::GEOM_Object_ptr MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
541 GEOM::GEOM_Object_ptr thePnt2,
542 GEOM::GEOM_Object_ptr thePnt3);
543 GEOM::GEOM_Object_ptr MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
544 GEOM::GEOM_Object_ptr thePnt2,
545 GEOM::GEOM_Object_ptr thePnt3);
546 GEOM::GEOM_Object_ptr MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
547 GEOM::GEOM_Object_ptr theVector,
548 CORBA::Double theRMajor, CORBA::Double theRMinor);
549 GEOM::GEOM_Object_ptr MakeArc (GEOM::GEOM_Object_ptr thePnt1,
550 GEOM::GEOM_Object_ptr thePnt2,
551 GEOM::GEOM_Object_ptr thePnt3);
552 GEOM::GEOM_Object_ptr MakeArcCenter (GEOM::GEOM_Object_ptr theCenter,
553 GEOM::GEOM_Object_ptr thePnt1,
554 GEOM::GEOM_Object_ptr thePnt2,
555 CORBA::Boolean theSense);
556 GEOM::GEOM_Object_ptr MakePolyline (GEOM::GEOM_List_ptr thePoints);
557 GEOM::GEOM_Object_ptr MakeSplineBezier (GEOM::GEOM_List_ptr thePoints);
558 GEOM::GEOM_Object_ptr MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints);
559 GEOM::GEOM_Object_ptr MakeSketcher (const char* theCommand,
560 GEOM::GEOM_List_ptr theWorkingPlane);
562 //-----------------------------------------------------------//
563 // LocalOperations //
564 //-----------------------------------------------------------//
565 GEOM::GEOM_Object_ptr MakeFilletAll (GEOM::GEOM_Object_ptr theShape,
567 GEOM::GEOM_Object_ptr MakeFilletEdges (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
568 GEOM::GEOM_List_ptr theEdges);
569 GEOM::GEOM_Object_ptr MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
570 CORBA::Double theR2, GEOM::GEOM_List_ptr theEdges);
571 GEOM::GEOM_Object_ptr MakeFilletFaces (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
572 GEOM::GEOM_List_ptr theFaces);
573 GEOM::GEOM_Object_ptr MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
574 CORBA::Double theR2, GEOM::GEOM_List_ptr theFaces);
575 GEOM::GEOM_Object_ptr MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD);
576 GEOM::GEOM_Object_ptr MakeChamferEdge (GEOM::GEOM_Object_ptr theShape,
577 CORBA::Double theD1, CORBA::Double theD2,
578 CORBA::Long theFace1, CORBA::Long theFace2);
579 GEOM::GEOM_Object_ptr MakeChamferEdgeAD (GEOM::GEOM_Object_ptr theShape,
580 CORBA::Double theD, CORBA::Double theAngle,
581 CORBA::Long theFace1, CORBA::Long theFace2);
582 GEOM::GEOM_Object_ptr MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
583 CORBA::Double theD1, CORBA::Double theD2,
584 GEOM::GEOM_List_ptr theFaces);
585 GEOM::GEOM_Object_ptr MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
586 CORBA::Double theD, CORBA::Double theAngle,
587 GEOM::GEOM_List_ptr theFaces);
588 GEOM::GEOM_Object_ptr MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
589 CORBA::Double theD1, CORBA::Double theD2,
590 GEOM::GEOM_List_ptr theEdges);
591 GEOM::GEOM_Object_ptr MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
592 CORBA::Double theD, CORBA::Double theAngle,
593 GEOM::GEOM_List_ptr theEdges);
594 GEOM::GEOM_Object_ptr MakeArchimede (GEOM::GEOM_Object_ptr theShape,
595 CORBA::Double theWeight,
596 CORBA::Double theWaterDensity,
597 CORBA::Double theMeshingDeflection);
598 CORBA::Long GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape,
599 GEOM::GEOM_Object_ptr theSubShape);
601 //-----------------------------------------------------------//
602 // GroupOperations //
603 //-----------------------------------------------------------//
604 GEOM::GEOM_Object_ptr CreateGroup (GEOM::GEOM_Object_ptr theMainShape,
605 CORBA::Long theShapeType);
606 void AddObject (GEOM::GEOM_Object_ptr theGroup,
607 CORBA::Long theSubShapeId);
608 void RemoveObject (GEOM::GEOM_Object_ptr theGroup,
609 CORBA::Long theSubShapeId);
610 CORBA::Long GetType (GEOM::GEOM_Object_ptr theGroup);
611 GEOM::GEOM_Object_ptr GetMainShape (GEOM::GEOM_Object_ptr theGroup);
612 GEOM::GEOM_List_ptr GetObjects (GEOM::GEOM_Object_ptr theGroup);
615 SALOME_NamingService * name_service;
616 GEOM::GEOM_Gen_var myGeomEngine;
617 CORBA::Long myStudyID;
618 CORBA::Long myLastStudyID; // mkr : PAL10770
619 PortableServer::POA_var myPOA;
621 GEOM::GEOM_IBasicOperations_var myBasicOp;
622 GEOM::GEOM_I3DPrimOperations_var my3DPrimOp;
623 GEOM::GEOM_IBooleanOperations_var myBoolOp;
624 GEOM::GEOM_IInsertOperations_var myInsOp;
625 GEOM::GEOM_ITransformOperations_var myTransfOp;
626 GEOM::GEOM_IShapesOperations_var myShapesOp;
627 GEOM::GEOM_IBlocksOperations_var myBlocksOp;
628 GEOM::GEOM_ICurvesOperations_var myCurvesOp;
629 GEOM::GEOM_ILocalOperations_var myLocalOp;
630 GEOM::GEOM_IGroupOperations_var myGroupOp;