Salome HOME
Merge with version on tag OCC-V2_1_0d
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IShapesOperations.hxx
1
2 #ifndef _GEOMImpl_IShapesOperations_HXX_
3 #define _GEOMImpl_IShapesOperations_HXX_
4
5 #include "GEOM_IOperations.hxx"
6
7 #include <TopTools_ListOfShape.hxx>
8 #include <TColStd_HSequenceOfTransient.hxx>
9
10 #include <list>
11
12 class GEOM_Engine;
13 class Handle(GEOM_Object);
14 class Handle(TColStd_HArray1OfInteger);
15
16 class GEOMImpl_IShapesOperations : public GEOM_IOperations {
17  public:
18   GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID);
19   ~GEOMImpl_IShapesOperations();
20
21   Handle(GEOM_Object) MakeEdge (Handle(GEOM_Object) thePoint1,
22                                 Handle(GEOM_Object) thePoint2);
23
24   Handle(GEOM_Object) MakeWire (list<Handle(GEOM_Object)> theEdgesAndWires);
25
26   Handle(GEOM_Object) MakeFace (Handle(GEOM_Object) theWire, bool isPlanarWanted);
27
28   Handle(GEOM_Object) MakeFaceWires (list<Handle(GEOM_Object)> theWires, bool isPlanarWanted);
29
30   Handle(GEOM_Object) MakeShell (list<Handle(GEOM_Object)> theShapes);
31
32   Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell);
33
34   Handle(GEOM_Object) MakeSolidShells (list<Handle(GEOM_Object)> theShells);
35
36   Handle(GEOM_Object) MakeCompound (list<Handle(GEOM_Object)> theShapes);
37
38   Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape,
39                                      const Standard_Real theTolerance);
40
41   Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object)    theShape,
42                                                     const Standard_Integer theShapeType,
43                                                     const Standard_Boolean isSorted);
44
45   Handle(GEOM_Object) GetSubShape (Handle(GEOM_Object)    theMainShape,
46                                    const Standard_Integer theID);
47
48   Standard_Integer NumberOfFaces (Handle(GEOM_Object) theShape);
49   Standard_Integer NumberOfEdges (Handle(GEOM_Object) theShape);
50
51   Handle(GEOM_Object) ReverseShape(Handle(GEOM_Object) theShapes);
52
53   static void SortShapes (TopTools_ListOfShape& SL);
54
55  private:
56   Handle(GEOM_Object) MakeShape (list<Handle(GEOM_Object)>     theShapes,
57                                  const Standard_Integer        theObjectType,
58                                  const Standard_Integer        theFunctionType,
59                                  const TCollection_AsciiString theMethodName);
60 };
61
62 #endif