Salome HOME
469f8854114796af483141f9b3de0ce7015d00a3
[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 #include <TColStd_HSequenceOfInteger.hxx>
10
11 #include <list>
12
13 class GEOM_Engine;
14 class Handle(GEOM_Object);
15 class Handle(TColStd_HArray1OfInteger);
16
17 class GEOMImpl_IShapesOperations : public GEOM_IOperations {
18  public:
19   GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID);
20   ~GEOMImpl_IShapesOperations();
21
22   Handle(GEOM_Object) MakeEdge (Handle(GEOM_Object) thePoint1,
23                                 Handle(GEOM_Object) thePoint2);
24
25   Handle(GEOM_Object) MakeWire (list<Handle(GEOM_Object)> theEdgesAndWires);
26
27   Handle(GEOM_Object) MakeFace (Handle(GEOM_Object) theWire, const bool isPlanarWanted);
28
29   Handle(GEOM_Object) MakeFaceWires (list<Handle(GEOM_Object)> theWires,
30                                      const bool isPlanarWanted);
31
32   Handle(GEOM_Object) MakeShell (list<Handle(GEOM_Object)> theShapes);
33
34   Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell);
35
36   Handle(GEOM_Object) MakeSolidShells (list<Handle(GEOM_Object)> theShells);
37
38   Handle(GEOM_Object) MakeCompound (list<Handle(GEOM_Object)> theShapes);
39
40   Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape,
41                                      const Standard_Real theTolerance);
42
43   Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object)    theShape,
44                                                     const Standard_Integer theShapeType,
45                                                     const Standard_Boolean isSorted);
46
47   Handle(TColStd_HSequenceOfInteger) SubShapeAllIDs (Handle(GEOM_Object)    theShape,
48                                                      const Standard_Integer theShapeType,
49                                                      const Standard_Boolean isSorted);
50
51   Handle(GEOM_Object) GetSubShape (Handle(GEOM_Object)    theMainShape,
52                                    const Standard_Integer theID);
53
54   Standard_Integer NumberOfFaces (Handle(GEOM_Object) theShape);
55   Standard_Integer NumberOfEdges (Handle(GEOM_Object) theShape);
56
57   Handle(GEOM_Object) ReverseShape(Handle(GEOM_Object) theShapes);
58
59   Handle(TColStd_HSequenceOfInteger) GetFreeFacesIDs (Handle(GEOM_Object) theShape);
60
61   Handle(TColStd_HSequenceOfTransient) GetSharedShapes (Handle(GEOM_Object)    theShape1,
62                                                         Handle(GEOM_Object)    theShape2,
63                                                         const Standard_Integer theShapeType);
64
65   Handle(GEOM_Object) GetShapesOnPlane (Handle(GEOM_Object)    theShape,
66                                         const Standard_Integer theShapeType,
67                                         Handle(GEOM_Object)    thePlane);
68
69   Handle(GEOM_Object) GetShapesOnCylinder (Handle(GEOM_Object)    theShape,
70                                            const Standard_Integer theShapeType,
71                                            Handle(GEOM_Object)    theAxis,
72                                            const Standard_Real    theRadius);
73
74   Handle(GEOM_Object) GetShapesOnSphere (Handle(GEOM_Object)    theShape,
75                                          const Standard_Integer theShapeType,
76                                          Handle(GEOM_Object)    theCenter,
77                                          const Standard_Real    theRadius);
78
79   Handle(GEOM_Object) GetInPlace (Handle(GEOM_Object) theShapeWhere,
80                                   Handle(GEOM_Object) theShapeWhat);
81
82   static void SortShapes (TopTools_ListOfShape& SL);
83
84  private:
85   Handle(GEOM_Object) MakeShape (list<Handle(GEOM_Object)>     theShapes,
86                                  const Standard_Integer        theObjectType,
87                                  const Standard_Integer        theFunctionType,
88                                  const TCollection_AsciiString theMethodName);
89 };
90
91 #endif