Salome HOME
af020c0b6afea55f55e2591c20d1b9a2fec9d039
[modules/geom.git] / src / GEOM_I / GEOM_IShapesOperations_i.hh
1
2 #ifndef _GEOM_IShapesOperations_i_HeaderFile
3 #define _GEOM_IShapesOperations_i_HeaderFile
4
5
6 #include <SALOMEconfig.h>
7
8 #include CORBA_SERVER_HEADER(GEOM_Gen)
9 #include "GEOM_IOperations_i.hh"
10 #include "GEOM_Object_i.hh"
11
12 #include "GEOMImpl_IShapesOperations.hxx"
13
14 class GEOM_IShapesOperations_i :
15     public virtual POA_GEOM::GEOM_IShapesOperations,
16     public virtual GEOM_IOperations_i
17 {
18  public:
19   GEOM_IShapesOperations_i (PortableServer::POA_ptr       thePOA,
20                             GEOM::GEOM_Gen_ptr            theEngine,
21                             ::GEOMImpl_IShapesOperations* theImpl);
22   ~GEOM_IShapesOperations_i();
23
24   GEOM::GEOM_Object_ptr MakeEdge (GEOM::GEOM_Object_ptr thePnt1,
25                                   GEOM::GEOM_Object_ptr thePnt2);
26
27   GEOM::GEOM_Object_ptr MakeWire (const GEOM::ListOfGO& theEdgesAndWires);
28
29   GEOM::GEOM_Object_ptr MakeFace (GEOM::GEOM_Object_ptr theWire,
30                                   CORBA::Boolean  isPlanarWanted);
31
32   GEOM::GEOM_Object_ptr MakeFaceWires (const GEOM::ListOfGO& theWires,
33                                        CORBA::Boolean  isPlanarWanted);
34
35   GEOM::GEOM_Object_ptr MakeShell (const GEOM::ListOfGO& theFacesAndShells);
36
37   GEOM::GEOM_Object_ptr MakeSolidShell (GEOM::GEOM_Object_ptr theShell);
38
39   GEOM::GEOM_Object_ptr MakeSolidShells (const GEOM::ListOfGO& theShells);
40
41   GEOM::GEOM_Object_ptr MakeCompound (const GEOM::ListOfGO& theShapes);
42
43   GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
44                                        CORBA::Double         theTolerance);
45
46   GEOM::ListOfGO* MakeExplode (GEOM::GEOM_Object_ptr theShape,
47                                CORBA::Long           theShapeType,
48                                CORBA::Boolean  isSorted);
49
50   GEOM::ListOfLong* SubShapeAllIDs (GEOM::GEOM_Object_ptr theShape,
51                                     CORBA::Long           theShapeType,
52                                     CORBA::Boolean  isSorted);
53
54   GEOM::GEOM_Object_ptr GetSubShape (GEOM::GEOM_Object_ptr theMainShape,
55                                      CORBA::Long           theID);
56
57   CORBA::Long NumberOfFaces (GEOM::GEOM_Object_ptr theShape);
58   CORBA::Long NumberOfEdges (GEOM::GEOM_Object_ptr theShape);
59
60   GEOM::GEOM_Object_ptr ChangeOrientation (GEOM::GEOM_Object_ptr theShape);
61
62   GEOM::ListOfLong* GetFreeFacesIDs (GEOM::GEOM_Object_ptr theShape);
63
64   GEOM::ListOfGO* GetSharedShapes (GEOM::GEOM_Object_ptr theShape1,
65                                    GEOM::GEOM_Object_ptr theShape2,
66                                    CORBA::Long           theShapeType);
67
68   GEOM::ListOfGO* GetShapesOnPlane (GEOM::GEOM_Object_ptr theShape,
69                                     CORBA::Long           theShapeType,
70                                     GEOM::GEOM_Object_ptr theAx1,
71                                     GEOM::shape_state     theState);
72
73   GEOM::ListOfGO* GetShapesOnCylinder (GEOM::GEOM_Object_ptr theShape,
74                                        CORBA::Long           theShapeType,
75                                        GEOM::GEOM_Object_ptr theAxis,
76                                        CORBA::Double         theRadius,
77                                        GEOM::shape_state     theState);
78
79   GEOM::ListOfGO* GetShapesOnSphere (GEOM::GEOM_Object_ptr theShape,
80                                      CORBA::Long           theShapeType,
81                                      GEOM::GEOM_Object_ptr theCenter,
82                                      CORBA::Double         theRadius,
83                                      GEOM::shape_state     theState);
84
85   GEOM::ListOfGO* GetShapesOnQuadrangle (GEOM::GEOM_Object_ptr theShape,
86                                          CORBA::Long           theShapeType,
87                                          GEOM::GEOM_Object_ptr theTopLeftPoint,
88                                          GEOM::GEOM_Object_ptr theTopRigthPoint,
89                                          GEOM::GEOM_Object_ptr theBottomLeftPoint,
90                                          GEOM::GEOM_Object_ptr theBottomRigthPoint,
91                                          GEOM::shape_state     theState);
92
93   GEOM::ListOfLong* GetShapesOnPlaneIDs (GEOM::GEOM_Object_ptr theShape,
94                                          CORBA::Long           theShapeType,
95                                          GEOM::GEOM_Object_ptr theAx1,
96                                          GEOM::shape_state     theState);
97
98   GEOM::ListOfLong* GetShapesOnCylinderIDs (GEOM::GEOM_Object_ptr theShape,
99                                             CORBA::Long           theShapeType,
100                                             GEOM::GEOM_Object_ptr theAxis,
101                                             CORBA::Double         theRadius,
102                                             GEOM::shape_state     theState);
103
104   GEOM::ListOfLong* GetShapesOnSphereIDs (GEOM::GEOM_Object_ptr theShape,
105                                           CORBA::Long           theShapeType,
106                                           GEOM::GEOM_Object_ptr theCenter,
107                                           CORBA::Double         theRadius,
108                                           GEOM::shape_state     theState);
109
110   GEOM::ListOfLong* GetShapesOnQuadrangleIDs (GEOM::GEOM_Object_ptr theShape,
111                                               CORBA::Long           theShapeType,
112                                               GEOM::GEOM_Object_ptr theTopLeftPoint,
113                                               GEOM::GEOM_Object_ptr theTopRigthPoint,
114                                               GEOM::GEOM_Object_ptr theBottomLeftPoint,
115                                               GEOM::GEOM_Object_ptr theBottomRigthPoint,
116                                               GEOM::shape_state     theState);
117
118   GEOM::GEOM_Object_ptr GetInPlace (GEOM::GEOM_Object_ptr theShapeWhere,
119                                     GEOM::GEOM_Object_ptr theShapeWhat);
120
121   ::GEOMImpl_IShapesOperations* GetOperations()
122   { return (::GEOMImpl_IShapesOperations*)GetImpl(); }
123 };
124
125 #endif