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 Standard_EXPORT GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID);
22 Standard_EXPORT ~GEOMImpl_IShapesOperations();
24 Standard_EXPORT Handle(GEOM_Object) MakeEdge (Handle(GEOM_Object) thePoint1,
25 Handle(GEOM_Object) thePoint2);
27 Standard_EXPORT Handle(GEOM_Object) MakeWire (list<Handle(GEOM_Object)> theEdgesAndWires);
29 Standard_EXPORT Handle(GEOM_Object) MakeFace (Handle(GEOM_Object) theWire, const bool isPlanarWanted);
31 Standard_EXPORT Handle(GEOM_Object) MakeFaceWires (list<Handle(GEOM_Object)> theWires,
32 const bool isPlanarWanted);
34 Standard_EXPORT Handle(GEOM_Object) MakeShell (list<Handle(GEOM_Object)> theShapes);
36 Standard_EXPORT Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell);
38 Standard_EXPORT Handle(GEOM_Object) MakeSolidShells (list<Handle(GEOM_Object)> theShells);
40 Standard_EXPORT Handle(GEOM_Object) MakeCompound (list<Handle(GEOM_Object)> theShapes);
42 Standard_EXPORT Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape,
43 const Standard_Real theTolerance);
45 Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object) theShape,
46 const Standard_Integer theShapeType,
47 const Standard_Boolean isSorted);
49 Standard_EXPORT Handle(TColStd_HSequenceOfInteger) SubShapeAllIDs (Handle(GEOM_Object) theShape,
50 const Standard_Integer theShapeType,
51 const Standard_Boolean isSorted);
53 Standard_EXPORT Handle(GEOM_Object) GetSubShape (Handle(GEOM_Object) theMainShape,
54 const Standard_Integer theID);
56 Standard_EXPORT Standard_Integer NumberOfFaces (Handle(GEOM_Object) theShape);
57 Standard_EXPORT Standard_Integer NumberOfEdges (Handle(GEOM_Object) theShape);
59 Standard_EXPORT Handle(GEOM_Object) ReverseShape(Handle(GEOM_Object) theShapes);
61 Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetFreeFacesIDs (Handle(GEOM_Object) theShape);
63 Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetSharedShapes (Handle(GEOM_Object) theShape1,
64 Handle(GEOM_Object) theShape2,
65 const Standard_Integer theShapeType);
67 Standard_EXPORT 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 Standard_EXPORT 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 Standard_EXPORT 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 Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetShapesOnPlaneIDs (const Handle(GEOM_Object)& theShape,
85 const Standard_Integer theShapeType,
86 const Handle(GEOM_Object)& theAx1,
87 const GEOMAlgo_State theState);
89 Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetShapesOnCylinderIDs (const Handle(GEOM_Object)& theShape,
90 const Standard_Integer theShapeType,
91 const Handle(GEOM_Object)& theAxis,
92 const Standard_Real theRadius,
93 const GEOMAlgo_State theState);
95 Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetShapesOnSphereIDs (const Handle(GEOM_Object)& theShape,
96 const Standard_Integer theShapeType,
97 const Handle(GEOM_Object)& theCenter,
98 const Standard_Real theRadius,
99 const GEOMAlgo_State theState);
101 Standard_EXPORT Handle(GEOM_Object) GetShapesOnCylinderOld (Handle(GEOM_Object) theShape,
102 const Standard_Integer theShapeType,
103 Handle(GEOM_Object) theAxis,
104 const Standard_Real theRadius);
106 Standard_EXPORT Handle(GEOM_Object) GetShapesOnSphereOld (Handle(GEOM_Object) theShape,
107 const Standard_Integer theShapeType,
108 Handle(GEOM_Object) theCenter,
109 const Standard_Real theRadius);
111 Standard_EXPORT Handle(GEOM_Object) GetInPlace (Handle(GEOM_Object) theShapeWhere,
112 Handle(GEOM_Object) theShapeWhat);
114 Standard_EXPORT static void SortShapes (TopTools_ListOfShape& SL);
117 Handle(GEOM_Object) MakeShape (list<Handle(GEOM_Object)> theShapes,
118 const Standard_Integer theObjectType,
119 const Standard_Integer theFunctionType,
120 const TCollection_AsciiString& theMethodName);
122 bool CheckTriangulation (const TopoDS_Shape& aShape);