Back to index

salome-geom  6.5.0
GEOM_IMeasureOperations_i.hh
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 #ifndef _GEOM_IMeasureOperations_i_HeaderFile
00024 #define _GEOM_IMeasureOperations_i_HeaderFile
00025 
00026 #include "GEOMImpl_Gen.hxx"
00027 
00028 #include <SALOMEconfig.h>
00029 
00030 #include CORBA_SERVER_HEADER(GEOM_Gen)
00031 #include "GEOM_IOperations_i.hh"
00032 #include "GEOM_Object_i.hh"
00033 
00034 #include "GEOMImpl_IMeasureOperations.hxx"
00035 
00036 class GEOM_I_EXPORT GEOM_IMeasureOperations_i :
00037     public virtual POA_GEOM::GEOM_IMeasureOperations,
00038     public virtual GEOM_IOperations_i
00039 {
00040  public:
00041   GEOM_IMeasureOperations_i (PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine,
00042                             ::GEOMImpl_IMeasureOperations* theImpl);
00043   ~GEOM_IMeasureOperations_i();
00044 
00045   GEOM::GEOM_IKindOfShape::shape_kind KindOfShape (GEOM::GEOM_Object_ptr  theShape,
00046                                                    GEOM::ListOfLong_out   theIntegers,
00047                                                    GEOM::ListOfDouble_out theDoubles);
00048 
00049   void GetPosition (GEOM::GEOM_Object_ptr theShape,
00050                     CORBA::Double& Ox, CORBA::Double& Oy, CORBA::Double& Oz,
00051                     CORBA::Double& Zx, CORBA::Double& Zy, CORBA::Double& Zz,
00052                     CORBA::Double& Xx, CORBA::Double& Xy, CORBA::Double& Xz);
00053 
00054   void GetBasicProperties (GEOM::GEOM_Object_ptr theShape,
00055                            CORBA::Double& theLength,
00056                            CORBA::Double& theSurfArea,
00057                            CORBA::Double& theVolume);
00058 
00059   GEOM::GEOM_Object_ptr GetCentreOfMass (GEOM::GEOM_Object_ptr theShape);
00060 
00061   GEOM::GEOM_Object_ptr GetNormal (GEOM::GEOM_Object_ptr theFace,
00062                                    GEOM::GEOM_Object_ptr theOptionalPoint);
00063 
00064   GEOM::GEOM_Object_ptr GetVertexByIndex (GEOM::GEOM_Object_ptr theObject,
00065                                           CORBA::Long theIndex);
00066 
00067   void GetInertia (GEOM::GEOM_Object_ptr theShape,
00068                    CORBA::Double& I11, CORBA::Double& I12, CORBA::Double& I13,
00069                    CORBA::Double& I21, CORBA::Double& I22, CORBA::Double& I23,
00070                    CORBA::Double& I31, CORBA::Double& I32, CORBA::Double& I33,
00071                    CORBA::Double& Ix , CORBA::Double& Iy , CORBA::Double& Iz);
00072 
00073   void GetBoundingBox (GEOM::GEOM_Object_ptr theShape,
00074                        CORBA::Double& Xmin, CORBA::Double& Xmax,
00075                        CORBA::Double& Ymin, CORBA::Double& Ymax,
00076                        CORBA::Double& Zmin, CORBA::Double& Zmax);
00077 
00078   void GetTolerance (GEOM::GEOM_Object_ptr theShape,
00079                      CORBA::Double& FaceMin, CORBA::Double& FaceMax,
00080                      CORBA::Double& EdgeMin, CORBA::Double& EdgeMax,
00081                      CORBA::Double& VertMin, CORBA::Double& VertMax);
00082 
00083   CORBA::Boolean CheckShape (GEOM::GEOM_Object_ptr theShape,
00084                              CORBA::String_out     theDescription);
00085 
00086   CORBA::Boolean CheckShapeWithGeometry (GEOM::GEOM_Object_ptr theShape,
00087                                          CORBA::String_out     theDescription);
00088 
00089   CORBA::Boolean CheckSelfIntersections (GEOM::GEOM_Object_ptr theShape,
00090                                          GEOM::ListOfLong_out  theIntersections);
00091 
00092   char* IsGoodForSolid (GEOM::GEOM_Object_ptr theShape);
00093 
00094   char* WhatIs (GEOM::GEOM_Object_ptr theShape);
00095 
00096   GEOM::ListOfBool* AreCoordsInside (GEOM::GEOM_Object_ptr theShape,
00097                                      const GEOM::ListOfDouble& theCoords,
00098                                      CORBA::Double theTolerance);
00099 
00100   CORBA::Double GetMinDistance (GEOM::GEOM_Object_ptr theShape1,
00101                                 GEOM::GEOM_Object_ptr theShape2,
00102                                 CORBA::Double& X1, CORBA::Double& Y1, CORBA::Double& Z1,
00103                                 CORBA::Double& X2, CORBA::Double& Y2, CORBA::Double& Z2);
00104 
00105   void PointCoordinates (GEOM::GEOM_Object_ptr theShape,
00106                          CORBA::Double& X, CORBA::Double& Y, CORBA::Double& Z);
00107 
00108   CORBA::Double GetAngle (GEOM::GEOM_Object_ptr theShape1,
00109                           GEOM::GEOM_Object_ptr theShape2);
00110 
00111   CORBA::Double GetAngleBtwVectors (GEOM::GEOM_Object_ptr theShape1,
00112                                     GEOM::GEOM_Object_ptr theShape2);
00113 
00114   // Methods for recieving radiuses of curvature of curves and surfaces
00115   // in the given point
00116   CORBA::Double CurveCurvatureByParam (GEOM::GEOM_Object_ptr theCurve,
00117                                        CORBA::Double theParam);
00118 
00119   CORBA::Double CurveCurvatureByPoint (GEOM::GEOM_Object_ptr theCurve,
00120                                        GEOM::GEOM_Object_ptr thePoint);
00121 
00122   CORBA::Double MaxSurfaceCurvatureByParam (GEOM::GEOM_Object_ptr theSurf,
00123                                             CORBA::Double theUParam,
00124                                             CORBA::Double theVParam);
00125 
00126   CORBA::Double MaxSurfaceCurvatureByPoint (GEOM::GEOM_Object_ptr theSurf,
00127                                             GEOM::GEOM_Object_ptr thePoint);
00128 
00129   CORBA::Double MinSurfaceCurvatureByParam (GEOM::GEOM_Object_ptr theSurf,
00130                                             CORBA::Double theUParam,
00131                                             CORBA::Double theVParam);
00132 
00133   CORBA::Double MinSurfaceCurvatureByPoint (GEOM::GEOM_Object_ptr theSurf,
00134                                             GEOM::GEOM_Object_ptr thePoint);
00135 
00136   ::GEOMImpl_IMeasureOperations* GetOperations()
00137   { return (::GEOMImpl_IMeasureOperations*)GetImpl(); }
00138 };
00139 
00140 #endif