1 // GEOM GEOM : implementaion of GEOM_Gen.idl and GEOM_Shape.idl
3 // Copyright (C) 2003 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : GEOM_GEN_i.h file
25 // Author : Lucien PIGNOLONI
29 #ifndef __GEOM_GEN_I_H__
30 #define __GEOM_GEN_I_H__
32 // standard C++ headers
33 #include <TDocStd_Document.hxx>
34 #include "GEOMDS_DataMapOfIntegerTransient.hxx"
35 #include "GEOMDS_Application.hxx"
36 #include <TopTools_MapOfShape.hxx>
37 #include <TopTools_SequenceOfShape.hxx>
38 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
39 #include <TopAbs_ShapeEnum.hxx>
40 #include <TopoDS_Wire.hxx>
41 #include <TopoDS_Face.hxx>
44 #include <SALOMEconfig.h>
45 #include CORBA_SERVER_HEADER(GEOM_Gen)
46 #include CORBA_SERVER_HEADER(GEOM_Shape)
47 #include CORBA_SERVER_HEADER(SALOMEDS)
49 #include "SALOME_Component_i.hxx"
50 #include "GEOM_Shape_i.hh"
52 #include "SALOME_NamingService.hxx"
55 #include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
58 //=====================================================================
59 // GEOM_Gen_i : class definition
60 //=====================================================================
61 class GEOM_Gen_i: public POA_GEOM::GEOM_Gen,
62 public Engines_Component_i
66 SALOME_NamingService * name_service;
68 Handle(GEOMDS_Application) myOCAFApp; /* geom/OCAF Application */
69 Handle(TDocStd_Document) myCurrentOCAFDoc; /* Current geom/OCAF Document */
70 GEOMDS_DataMapOfIntegerTransient myStudyIDToDoc; /* Map to bind a Study to a Document */
74 GEOM::GEOM_Shape_ptr CreateObject(TopoDS_Shape& tds) ;
76 GEOM::GEOM_Shape_ptr CreateSubObject(const TopoDS_Shape& SubShape,
77 const GEOM::GEOM_Shape_ptr MainShape,
78 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID);
79 // Create and insert(!) SubShape of MainShape
81 GEOM::GEOM_Shape_ptr GEOM_Gen_i::SubShapesOne( GEOM::GEOM_Shape_ptr shape,
82 const TopAbs_ShapeEnum ShapeType,
83 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID,
84 const Standard_Boolean sorted=Standard_False)
85 throw (SALOME::SALOME_Exception);
86 // return all listed subshapes as one shape
88 GEOM::GEOM_Gen::ListOfGeomShapes* SubShapesAll(GEOM::GEOM_Shape_ptr shape,
89 const TopAbs_ShapeEnum type,
90 const Standard_Boolean sorted=Standard_False)
91 throw (SALOME::SALOME_Exception);
92 // return all subshapes by type
94 TopoDS_Face FindSameFace(const TopoDS_Shape& aShape,
97 TopoDS_Edge FindSameEdge(const TopoDS_Face& newFace,
102 //-----------------------------------------------------------------------//
103 // Constructor / Destructor //
104 //-----------------------------------------------------------------------//
105 // constructor to be called for servant creation.
107 GEOM_Gen_i(CORBA::ORB_ptr orb,
108 PortableServer::POA_ptr poa,
109 PortableServer::ObjectId * contId,
110 const char *instanceName,
111 const char *interfaceName);
113 // destructor, doing nothing (for now)
114 virtual ~GEOM_Gen_i();
116 // generic method to be put in a super class
117 void register_name(char * name);
119 //-----------------------------------------------------------------------//
120 // Studies Management //
121 //-----------------------------------------------------------------------//
122 void GetCurrentStudy (CORBA::Long StudyID);
124 CORBA::Short NbLabels();
126 // inherited methods from SALOMEDS::Driver
127 SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
131 SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
135 CORBA::Boolean Load(SALOMEDS::SComponent_ptr theComponent,
136 const SALOMEDS::TMPFile& theStream,
140 CORBA::Boolean LoadASCII(SALOMEDS::SComponent_ptr theComponent,
141 const SALOMEDS::TMPFile& theStream,
145 void Close(SALOMEDS::SComponent_ptr theComponent);
146 char* ComponentDataType();
149 char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
150 const char* IORString,
151 CORBA::Boolean isMultiFile,
152 CORBA::Boolean isASCII);
153 char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
154 const char* aLocalPersistentID,
155 CORBA::Boolean isMultiFile,
156 CORBA::Boolean isASCII);
158 bool CanPublishInStudy(CORBA::Object_ptr theIOR);
159 SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::Study_ptr theStudy,
160 SALOMEDS::SObject_ptr theSObject,
161 CORBA::Object_ptr theObject,
162 const char* theName) throw (SALOME::SALOME_Exception) ;
164 CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
165 SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID);
166 CORBA::Boolean CanPaste(const char* theComponentName, CORBA::Long theObjectID);
167 SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream,
168 CORBA::Long theObjectID,
169 SALOMEDS::SObject_ptr theObject);
171 //-----------------------------------------------------------------------//
172 // Shapes Management //
173 //-----------------------------------------------------------------------//
174 const char* InsertInLabel(TopoDS_Shape S,
176 Handle(TDocStd_Document) OCAFDoc) ;
178 const char* InsertInLabelDependentShape(TopoDS_Shape S,
180 GEOM::GEOM_Shape_ptr mainshape_ptr,
181 Handle(TDocStd_Document) OCAFDoc) ;
183 void InsertInLabelOneArgument(TopoDS_Shape main_topo,
184 GEOM::GEOM_Shape_ptr shape_ptr,
185 TopoDS_Shape result_topo,
186 GEOM::GEOM_Shape_ptr result,
187 Handle(TDocStd_Document) OCAFDoc) ;
189 void InsertInLabelMoreArguments(TopoDS_Shape main_topo,
190 GEOM::GEOM_Shape_ptr result,
191 const GEOM::GEOM_Gen::ListOfIOR& ListShapes,
192 Handle(TDocStd_Document) OCAFDoc) ;
194 // Methods used by SuppressFaces
195 int SuppressFacesGlue( const TopoDS_Shape& S,
196 const TopTools_MapOfShape& mapFaces,
197 TopoDS_Shape& aCompoundOfShells ) throw (SALOME::SALOME_Exception) ;
200 int GetIndexTopology( const TopoDS_Shape& subshape,
201 const TopoDS_Shape& mainShape ) ;
203 bool GetShapeFromIndex( const TopoDS_Shape& aShape,
204 const TopAbs_ShapeEnum aType,
208 GEOM::GEOM_Shape::ListOfSubShapeID* IndexOfFacesOfSubShell( const TopoDS_Shape& S,
209 const TopoDS_Shape subShell )
210 throw (SALOME::SALOME_Exception) ;
212 bool ListOfIDIntoMapOfShapes( const TopoDS_Shape& S,
213 const GEOM::GEOM_Shape::ListOfSubShapeID& L,
214 const int subShapeType,
215 TopTools_MapOfShape& aMap ) ;
217 bool ListOfIDIntoSequenceOfShapes( const TopoDS_Shape& S,
218 const GEOM::GEOM_Shape::ListOfSubShapeID& L,
219 const int subShapeType,
220 TopTools_SequenceOfShape& aSequenceOfShapes ) ;
222 // Returns a TopoDS_Shape from a GEOM::GEOM_Shape_ptr
223 TopoDS_Shape GetTopoShape(GEOM::GEOM_Shape_ptr shape_ptr) ;
225 // Define a sequence of shapes from 'listShapes' and return its length
226 int SequenceOfShapeFromListOfGeomShape( const GEOM::GEOM_Gen::ListOfGeomShapes& listShapes,
227 TopTools_SequenceOfShape& SS ) ;
229 // Get a string representing a shape ref IOR
230 const char* GetStringFromIOR(GEOM::GEOM_Shape_var shapeIOR);
232 // Return the shape ref represented by a string of IOR
233 GEOM::GEOM_Shape_ptr GetIORFromString(const char* stringIOR);
235 GEOM::GEOM_Gen::ListOfIOR* GetReferencedObjects(GEOM::GEOM_Shape_ptr shape);
236 GEOM::GEOM_Gen::ListOfIOR* GetObjects(GEOM::GEOM_Shape_ptr shape);
239 //-----------------------------------------------------------------------//
240 // Internal structure of shapes //
241 //-----------------------------------------------------------------------//
243 GEOM::GEOM_Shape_ptr SubShape(GEOM::GEOM_Shape_ptr shape,
244 CORBA::Short ShapeType,
245 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
246 throw (SALOME::SALOME_Exception) ;
248 // Explode SubShape in predictable order
249 GEOM::GEOM_Shape_ptr SubShapeSorted(GEOM::GEOM_Shape_ptr shape,
250 CORBA::Short ShapeType,
251 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
252 throw (SALOME::SALOME_Exception) ;
255 GEOM::GEOM_Gen::ListOfGeomShapes* SubShapeAll(GEOM::GEOM_Shape_ptr shape,
256 CORBA::Short ShapeType)
257 throw (SALOME::SALOME_Exception) ;
259 // Explode SubShape in predictable order for TUI or GUI
260 GEOM::GEOM_Gen::ListOfGeomShapes* SubShapeAllSorted(GEOM::GEOM_Shape_ptr shape,
261 CORBA::Short ShapeType)
262 throw (SALOME::SALOME_Exception) ;
264 // Suppress faces in a shape
265 GEOM::GEOM_Gen::ListOfGeomShapes* SuppressFaces( GEOM::GEOM_Shape_ptr shape,
266 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID )
267 throw (SALOME::SALOME_Exception) ;
269 // Suppress one or more holes in a face or shell independant topology
270 GEOM::GEOM_Shape_ptr SuppressHolesInFaceOrShell( GEOM::GEOM_Shape_ptr shapeFaceShell,
271 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfIdWires)
272 throw (SALOME::SALOME_Exception) ;
274 // Suppress a single hole in a topology (face) shell or solid with/without hole traversing
275 GEOM::GEOM_Shape_ptr SuppressHole( GEOM::GEOM_Shape_ptr shape,
276 const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdFace,
277 const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdWire,
278 const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdEndFace )
279 throw (SALOME::SALOME_Exception) ;
281 bool RebuildFaceRemovingHoles( const TopoDS_Face& aFace,
282 const TopTools_MapOfShape& mapHoles,
283 TopoDS_Shape& resultFace ) ;
285 void SuppressHoleSubRoutine( const TopoDS_Shape& mainShape,
286 const TopoDS_Face& aFace,
287 const TopTools_SequenceOfShape& SSedgesOfWire,
288 const TopTools_IndexedDataMapOfShapeListOfShape& aMapEdgesFaces,
289 const TopTools_MapOfShape& MSfaces,
290 TopTools_MapOfShape& MSfacesSuppress,
291 const Standard_Boolean withEndFace,
292 const TopoDS_Face& endFace,
293 TopTools_MapOfShape& MSwireEndEdges )
294 throw (SALOME::SALOME_Exception ) ;
296 bool BuildShapeHoleNotTraversing( const TopoDS_Shape& aShape,
297 const TopoDS_Face& aFace,
298 const TopoDS_Wire& aWire,
299 const TopTools_MapOfShape& MFSuppress,
300 TopoDS_Shape& resultTds )
301 throw (SALOME::SALOME_Exception) ;
303 bool BuildShapeHoleTraversing( const TopoDS_Shape& aShape,
304 const TopoDS_Face& aFace,
305 const TopoDS_Wire& aWire,
306 const TopTools_MapOfShape& MFSuppress,
307 const TopoDS_Face& endFace,
308 const TopoDS_Wire& endWire,
309 TopoDS_Shape& resultTds )
310 throw (SALOME::SALOME_Exception) ;
312 bool FindCompareWireHoleOnFace( const TopoDS_Face& F,
313 const TopTools_MapOfShape& MSwireEdges,
314 TopoDS_Wire& aFoundWire ) ;
316 bool IsShapeInSequence( const TopTools_SequenceOfShape& SS, const TopoDS_Shape& aShape ) ;
318 void FreeEdgesFromMapOfFace(const TopTools_MapOfShape& MSfaces, TopTools_MapOfShape& MS ) ;
320 void MapRemoveSequence( const TopTools_MapOfShape& MS,
321 const TopTools_SequenceOfShape& SSRemove,
322 TopTools_SequenceOfShape& ST) ;
324 bool BuildShellWithFaceCompound( const TopoDS_Compound Comp,
325 TopoDS_Shell& resultShell ) ;
327 //-----------------------------------------------------------------------//
328 // Basic structures //
329 //-----------------------------------------------------------------------//
330 GEOM::PointStruct MakePointStruct(CORBA::Double x,
333 GEOM::DirStruct MakeDirection(const GEOM::PointStruct& p) ;
335 GEOM::AxisStruct MakeAxisStruct(CORBA::Double x,
342 //----------------------------------------------------------------------//
343 // Boolean Operations //
344 //----------------------------------------------------------------------//
345 GEOM::GEOM_Shape_ptr MakeBoolean(GEOM::GEOM_Shape_ptr shape1,
346 GEOM::GEOM_Shape_ptr shape2,
347 CORBA::Long operation)
348 throw (SALOME::SALOME_Exception) ;
349 GEOM::GEOM_Shape_ptr MakeFuse(GEOM::GEOM_Shape_ptr shape1,
350 GEOM::GEOM_Shape_ptr shape2)
351 throw (SALOME::SALOME_Exception) ;
353 //----------------------------------------------------------------------//
354 // Advanced Operations //
355 //----------------------------------------------------------------------//
356 GEOM::GEOM_Shape_ptr Partition(const GEOM::GEOM_Gen::ListOfIOR& ListShapes,
357 const GEOM::GEOM_Gen::ListOfIOR& ListTools,
358 const GEOM::GEOM_Gen::ListOfIOR& ListKeepInside,
359 const GEOM::GEOM_Gen::ListOfIOR& ListRemoveInside,
360 const CORBA::Short Limit)
361 throw (SALOME::SALOME_Exception) ;
363 // Filling a surface with section curves
364 GEOM::GEOM_Shape_ptr MakeFilling(GEOM::GEOM_Shape_ptr shape,
370 throw (SALOME::SALOME_Exception) ;
372 GEOM::GEOM_Shape_ptr MakeSewing(const GEOM::GEOM_Gen::ListOfIOR& ListShapes,
373 CORBA::Double precision)
374 throw (SALOME::SALOME_Exception) ;
376 GEOM::GEOM_Shape_ptr MakeSewingShape( GEOM::GEOM_Shape_ptr aShape,
377 CORBA::Double precision )
378 throw (SALOME::SALOME_Exception);
380 GEOM::GEOM_Shape_ptr MakeGlueFaces(GEOM::GEOM_Shape_ptr myShape,
382 throw (SALOME::SALOME_Exception);
384 // Change the orientation of a (new) shape
385 GEOM::GEOM_Shape_ptr OrientationChange(GEOM::GEOM_Shape_ptr shape)
386 throw (SALOME::SALOME_Exception) ;
388 GEOM::GEOM_Shape_ptr MakePlacedBox(CORBA::Double x1, CORBA::Double y1, CORBA::Double z1,
389 CORBA::Double delta1, CORBA::Double delta2, CORBA::Double delta3)
390 throw (SALOME::SALOME_Exception) ;
392 GEOM::GEOM_Shape_ptr MakePanel(GEOM::GEOM_Shape_ptr shape,
393 CORBA::Short directiontype,
395 throw (SALOME::SALOME_Exception) ;
397 //---------------------------------------------------------------------//
398 // Transformations Operations //
399 //---------------------------------------------------------------------//
401 GEOM::GEOM_Shape_ptr MakeCopy( GEOM::GEOM_Shape_ptr shape)
402 throw (SALOME::SALOME_Exception) ;
405 GEOM::GEOM_Shape_ptr MakeTranslation( GEOM::GEOM_Shape_ptr shape,
409 throw (SALOME::SALOME_Exception) ;
411 GEOM::GEOM_Shape_ptr MakeRotation( GEOM::GEOM_Shape_ptr shape,
412 const GEOM::AxisStruct& axis,
414 throw (SALOME::SALOME_Exception) ;
415 // Create a shape using a scale factor
416 GEOM::GEOM_Shape_ptr MakeScaleTransform(GEOM::GEOM_Shape_ptr shape,
417 const GEOM::PointStruct& theCenterOfScale,
418 CORBA::Double factor)
419 throw (SALOME::SALOME_Exception) ;
420 // Mirror of a shape by a plane
421 GEOM::GEOM_Shape_ptr MakeMirrorByPlane(GEOM::GEOM_Shape_ptr shape,
422 GEOM::GEOM_Shape_ptr shapePlane)
423 throw (SALOME::SALOME_Exception) ;
425 // Shape by revolution of another around an axis
426 GEOM::GEOM_Shape_ptr MakeRevolution(GEOM::GEOM_Shape_ptr shape,
427 const GEOM::AxisStruct& axis,
429 throw (SALOME::SALOME_Exception) ;
431 // Create a prism with a base shape along a vector P1 to P2
432 GEOM::GEOM_Shape_ptr MakePrism(GEOM::GEOM_Shape_ptr baseShape,
433 const GEOM::PointStruct& P1,
434 const GEOM::PointStruct& P2)
435 throw (SALOME::SALOME_Exception) ;
436 // Create a shape by sweeping a baseShape along a pathShape
437 GEOM::GEOM_Shape_ptr MakePipe(GEOM::GEOM_Shape_ptr pathShape,
438 GEOM::GEOM_Shape_ptr baseShape)
439 throw (SALOME::SALOME_Exception) ;
441 //---------------------------------------------------------------------//
442 // Patterns Operations //
443 //---------------------------------------------------------------------//
445 // Multi Translation 1D
446 GEOM::GEOM_Shape_ptr MakeMultiTranslation1D( GEOM::GEOM_Shape_ptr shape,
447 const GEOM::DirStruct& dir,
449 CORBA::Short nbtimes)
450 throw (SALOME::SALOME_Exception) ;
452 // Multi Translation 2D
453 GEOM::GEOM_Shape_ptr MakeMultiTranslation2D( GEOM::GEOM_Shape_ptr shape,
454 const GEOM::DirStruct& dir1,
456 CORBA::Short nbtimes1,
457 const GEOM::DirStruct& dir2,
459 CORBA::Short nbtimes2)
460 throw (SALOME::SALOME_Exception) ;
463 GEOM::GEOM_Shape_ptr MakeMultiRotation1D( GEOM::GEOM_Shape_ptr shape,
464 const GEOM::DirStruct& dir,
465 const GEOM::PointStruct& loc,
466 CORBA::Short nbtimes)
467 throw (SALOME::SALOME_Exception) ;
470 GEOM::GEOM_Shape_ptr MakeMultiRotation2D( GEOM::GEOM_Shape_ptr shape,
471 const GEOM::DirStruct& dir,
472 const GEOM::PointStruct& loc,
474 CORBA::Short nbtimes1,
476 CORBA::Short nbtimes2)
477 throw (SALOME::SALOME_Exception) ;
479 //--------------------------------------------------------------------//
480 // Primitives Construction //
481 //--------------------------------------------------------------------//
482 GEOM::GEOM_Shape_ptr MakeBox(CORBA::Double x1,
488 throw (SALOME::SALOME_Exception) ;
489 GEOM::GEOM_Shape_ptr MakeSphere(CORBA::Double x1,
492 CORBA::Double radius)
493 throw (SALOME::SALOME_Exception) ;
494 GEOM::GEOM_Shape_ptr MakeCylinder(const GEOM::PointStruct& pstruct,
495 const GEOM::DirStruct& dstruct,
496 CORBA::Double radius,
497 CORBA::Double height)
498 throw (SALOME::SALOME_Exception) ;
499 GEOM::GEOM_Shape_ptr MakeTorus(const GEOM::PointStruct& pstruct,
500 const GEOM::DirStruct& dstruct,
501 CORBA::Double major_radius,
502 CORBA::Double minor_radius)
503 throw (SALOME::SALOME_Exception) ;
504 GEOM::GEOM_Shape_ptr MakeCone(const GEOM::PointStruct& pstruct,
505 const GEOM::DirStruct& dstruct,
506 CORBA::Double radius1,
507 CORBA::Double radius2,
508 CORBA::Double height)
509 throw (SALOME::SALOME_Exception) ;
511 //-------------------------------------------------------------------//
513 //-------------------------------------------------------------------//
514 GEOM::GEOM_Shape_ptr ImportIGES(const char* filename) throw (SALOME::SALOME_Exception) ;
515 GEOM::GEOM_Shape_ptr ImportBREP(const char* filename) throw (SALOME::SALOME_Exception) ;
516 GEOM::GEOM_Shape_ptr ImportSTEP(const char* filename) throw (SALOME::SALOME_Exception) ;
518 void ExportIGES(const char* filename,GEOM::GEOM_Shape_ptr theShape) throw (SALOME::SALOME_Exception) ;
519 void ExportBREP(const char* filename,GEOM::GEOM_Shape_ptr theShape) throw (SALOME::SALOME_Exception) ;
520 void ExportSTEP(const char* filename,GEOM::GEOM_Shape_ptr theShape) throw (SALOME::SALOME_Exception) ;
521 //-------------------------------------------------------------------//
522 // Fillet and Chamfer construction //
523 //-------------------------------------------------------------------//
524 GEOM::GEOM_Shape_ptr MakeFillet (GEOM::GEOM_Shape_ptr shape,
525 CORBA::Double radius,
526 CORBA::Short ShapeType,
527 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
528 throw (SALOME::SALOME_Exception) ;
530 GEOM::GEOM_Shape_ptr MakeChamfer(GEOM::GEOM_Shape_ptr shape,
533 CORBA::Short ShapeType,
534 const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
535 throw (SALOME::SALOME_Exception) ;
537 //-------------------------------------------------------------------//
538 // Mesures Construction //
539 //-------------------------------------------------------------------//
540 GEOM::GEOM_Shape_ptr MakeCDG(GEOM::GEOM_Shape_ptr shape)
541 throw (SALOME::SALOME_Exception) ;
543 //-------------------------------------------------------------------//
545 //-------------------------------------------------------------------//
546 CORBA::Boolean CheckShape(GEOM::GEOM_Shape_ptr shape)
547 throw (SALOME::SALOME_Exception) ;
549 //-------------------------------------------------------------------//
550 // Primitives Construction //
551 //-------------------------------------------------------------------//
552 GEOM::GEOM_Shape_ptr MakeVertex(CORBA::Double x,
555 throw (SALOME::SALOME_Exception) ;
556 GEOM::GEOM_Shape_ptr MakeVector(const GEOM::PointStruct& pstruct1,
557 const GEOM::PointStruct& pstruct2)
558 throw (SALOME::SALOME_Exception) ;
559 GEOM::GEOM_Shape_ptr MakeLine (const GEOM::PointStruct& pstruct,
560 const GEOM::DirStruct& dstruc)
561 throw (SALOME::SALOME_Exception) ;
562 GEOM::GEOM_Shape_ptr MakePlane (const GEOM::PointStruct& pstruct,
563 const GEOM::DirStruct& dstruc,
564 CORBA::Double trimsize)
565 throw (SALOME::SALOME_Exception) ;
566 GEOM::GEOM_Shape_ptr MakeCircle(const GEOM::PointStruct& pstruct,
567 const GEOM::DirStruct& dstruct,
568 CORBA::Double radius)
569 throw (SALOME::SALOME_Exception) ;
570 GEOM::GEOM_Shape_ptr MakeEllipse(const GEOM::PointStruct& pstruct,
571 const GEOM::DirStruct& dstruct,
572 CORBA::Double radius_major,
573 CORBA::Double radiusminus )
574 throw (SALOME::SALOME_Exception) ;
575 GEOM::GEOM_Shape_ptr MakeArc (const GEOM::PointStruct& pInit,
576 const GEOM::PointStruct& pCircle,
577 const GEOM::PointStruct& pEnd)
578 throw (SALOME::SALOME_Exception) ;
580 GEOM::GEOM_Shape_ptr MakeCompound (const GEOM::GEOM_Gen::ListOfIOR& ListShapes)
581 throw (SALOME::SALOME_Exception) ;
582 GEOM::GEOM_Shape_ptr MakeWire (const GEOM::GEOM_Gen::ListOfIOR& ListShapes)
583 throw (SALOME::SALOME_Exception) ;
584 GEOM::GEOM_Shape_ptr MakeEdge (const GEOM::PointStruct& pstruct1,
585 const GEOM::PointStruct& pstruct2)
586 throw (SALOME::SALOME_Exception) ;
587 GEOM::GEOM_Shape_ptr MakeFace (GEOM::GEOM_Shape_ptr wire, CORBA::Boolean wantplanarface)
588 throw (SALOME::SALOME_Exception) ;
591 //-------------------------------------------------------------------//
592 // Speciic method Archimede //
593 //-------------------------------------------------------------------//
594 GEOM::GEOM_Shape_ptr Archimede(GEOM::GEOM_Shape_ptr aShape,
595 CORBA::Double aWeight,
596 CORBA::Double aWaterDensity,
597 CORBA::Double aMeshingDeflection)
598 throw (SALOME::SALOME_Exception) ;