Salome HOME
6e26f873e3e07e663358bbb88b5e61d219706076
[modules/geom.git] / src / GEOM_I / GEOM_IMeasureOperations_i.hh
1
2 #ifndef _GEOM_IMeasureOperations_i_HeaderFile
3 #define _GEOM_IMeasureOperations_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_IMeasureOperations.hxx"
13
14 class GEOM_IMeasureOperations_i :
15     public virtual POA_GEOM::GEOM_IMeasureOperations,
16     public virtual GEOM_IOperations_i
17 {
18  public:
19   GEOM_IMeasureOperations_i (PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine,
20                             ::GEOMImpl_IMeasureOperations* theImpl);
21   ~GEOM_IMeasureOperations_i();
22
23   void GetBasicProperties (GEOM::GEOM_Object_ptr theShape,
24                            CORBA::Double& theLength,
25                            CORBA::Double& theSurfArea,
26                            CORBA::Double& theVolume);
27
28   GEOM::GEOM_Object_ptr GetCentreOfMass (GEOM::GEOM_Object_ptr theShape);
29
30   void GetInertia (GEOM::GEOM_Object_ptr theShape,
31                    CORBA::Double& I11, CORBA::Double& I12, CORBA::Double& I13,
32                    CORBA::Double& I21, CORBA::Double& I22, CORBA::Double& I23,
33                    CORBA::Double& I31, CORBA::Double& I32, CORBA::Double& I33,
34                    CORBA::Double& Ix , CORBA::Double& Iy , CORBA::Double& Iz);
35
36   void GetBoundingBox (GEOM::GEOM_Object_ptr theShape,
37                        CORBA::Double& Xmin, CORBA::Double& Xmax,
38                        CORBA::Double& Ymin, CORBA::Double& Ymax,
39                        CORBA::Double& Zmin, CORBA::Double& Zmax);
40
41   void GetTolerance (GEOM::GEOM_Object_ptr theShape,
42                      CORBA::Double& FaceMin, CORBA::Double& FaceMax,
43                      CORBA::Double& EdgeMin, CORBA::Double& EdgeMax,
44                      CORBA::Double& VertMin, CORBA::Double& VertMax);
45
46   CORBA::Boolean CheckShape (GEOM::GEOM_Object_ptr theShape,
47                              CORBA::String_out     theDescription);
48
49   char* WhatIs (GEOM::GEOM_Object_ptr theShape);
50
51   CORBA::Double GetMinDistance (GEOM::GEOM_Object_ptr theShape1,
52                                 GEOM::GEOM_Object_ptr theShape2,
53                                 CORBA::Double& X1, CORBA::Double& Y1, CORBA::Double& Z1,
54                                 CORBA::Double& X2, CORBA::Double& Y2, CORBA::Double& Z2);
55
56
57   void PointCoordinates( GEOM::GEOM_Object_ptr theShape,
58     CORBA::Double& X, CORBA::Double& Y, CORBA::Double& Z );
59
60   ::GEOMImpl_IMeasureOperations* GetOperations()
61   { return (::GEOMImpl_IMeasureOperations*)GetImpl(); }
62 };
63
64 #endif