2 #ifndef _GEOMImpl_IShapesOperations_HXX_
3 #define _GEOMImpl_IShapesOperations_HXX_
5 #include "GEOM_IOperations.hxx"
7 #include "GEOMAlgo_State.hxx"
9 #include <TopTools_ListOfShape.hxx>
10 #include <TColStd_HSequenceOfTransient.hxx>
11 #include <TColStd_HSequenceOfInteger.hxx>
16 class Handle(GEOM_Object);
17 class Handle(TColStd_HArray1OfInteger);
19 class GEOMImpl_IShapesOperations : public GEOM_IOperations {
21 GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID);
22 ~GEOMImpl_IShapesOperations();
24 Handle(GEOM_Object) MakeEdge (Handle(GEOM_Object) thePoint1,
25 Handle(GEOM_Object) thePoint2);
27 Handle(GEOM_Object) MakeWire (list<Handle(GEOM_Object)> theEdgesAndWires);
29 Handle(GEOM_Object) MakeFace (Handle(GEOM_Object) theWire, const bool isPlanarWanted);
31 Handle(GEOM_Object) MakeFaceWires (list<Handle(GEOM_Object)> theWires,
32 const bool isPlanarWanted);
34 Handle(GEOM_Object) MakeShell (list<Handle(GEOM_Object)> theShapes);
36 Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell);
38 Handle(GEOM_Object) MakeSolidShells (list<Handle(GEOM_Object)> theShells);
40 Handle(GEOM_Object) MakeCompound (list<Handle(GEOM_Object)> theShapes);
42 Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape,
43 const Standard_Real theTolerance);
45 Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object) theShape,
46 const Standard_Integer theShapeType,
47 const Standard_Boolean isSorted);
49 Handle(TColStd_HSequenceOfInteger) SubShapeAllIDs (Handle(GEOM_Object) theShape,
50 const Standard_Integer theShapeType,
51 const Standard_Boolean isSorted);
53 Handle(GEOM_Object) GetSubShape (Handle(GEOM_Object) theMainShape,
54 const Standard_Integer theID);
56 Standard_Integer NumberOfFaces (Handle(GEOM_Object) theShape);
57 Standard_Integer NumberOfEdges (Handle(GEOM_Object) theShape);
59 Handle(GEOM_Object) ReverseShape(Handle(GEOM_Object) theShapes);
61 Handle(TColStd_HSequenceOfInteger) GetFreeFacesIDs (Handle(GEOM_Object) theShape);
63 Handle(TColStd_HSequenceOfTransient) GetSharedShapes (Handle(GEOM_Object) theShape1,
64 Handle(GEOM_Object) theShape2,
65 const Standard_Integer theShapeType);
67 Handle(TColStd_HSequenceOfTransient) GetShapesOnPlane (const Handle(GEOM_Object)& theShape,
68 const Standard_Integer theShapeType,
69 const Handle(GEOM_Object)& theAx1,
70 const GEOMAlgo_State theState);
72 Handle(TColStd_HSequenceOfTransient) GetShapesOnCylinder (const Handle(GEOM_Object)& theShape,
73 const Standard_Integer theShapeType,
74 const Handle(GEOM_Object)& theAxis,
75 const Standard_Real theRadius,
76 const GEOMAlgo_State theState);
78 Handle(TColStd_HSequenceOfTransient) GetShapesOnSphere (const Handle(GEOM_Object)& theShape,
79 const Standard_Integer theShapeType,
80 const Handle(GEOM_Object)& theCenter,
81 const Standard_Real theRadius,
82 const GEOMAlgo_State theState);
84 Handle(GEOM_Object) GetShapesOnCylinderOld (Handle(GEOM_Object) theShape,
85 const Standard_Integer theShapeType,
86 Handle(GEOM_Object) theAxis,
87 const Standard_Real theRadius);
89 Handle(GEOM_Object) GetShapesOnSphereOld (Handle(GEOM_Object) theShape,
90 const Standard_Integer theShapeType,
91 Handle(GEOM_Object) theCenter,
92 const Standard_Real theRadius);
94 Handle(GEOM_Object) GetInPlace (Handle(GEOM_Object) theShapeWhere,
95 Handle(GEOM_Object) theShapeWhat);
97 static void SortShapes (TopTools_ListOfShape& SL);
100 Handle(GEOM_Object) MakeShape (list<Handle(GEOM_Object)> theShapes,
101 const Standard_Integer theObjectType,
102 const Standard_Integer theFunctionType,
103 const TCollection_AsciiString theMethodName);