Salome HOME
Modification of GEOM interface
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IMeasureOperations.hxx
index 3798af25eb4e9c779c95436c23c3259e26ac2e3e..c10c91f9053e8d057dc79018df83d81292d79a54 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #include <Precision.hxx>
 
 class GEOM_Engine;
-class Handle(GEOM_Object);
+class GEOM_Object;
 
 class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
  public:
-  Standard_EXPORT GEOMImpl_IMeasureOperations(GEOM_Engine* theEngine, int theDocID);
+  Standard_EXPORT GEOMImpl_IMeasureOperations(GEOM_Engine* theEngine);
   Standard_EXPORT ~GEOMImpl_IMeasureOperations();
 
   enum ShapeKind {
@@ -80,8 +80,10 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
     SK_SEGMENT,      // segment
     SK_EDGE,         // other edge
     // VERTEX
-    SK_VERTEX,
+    SK_VERTEX,       // vertex
     // ADVANCED shapes
+    SK_LCS,          // local coordinate system
+    // (other advanced shapes)
     SK_ADVANCED,     // all advanced shapes (temporary implementation)
   };
 
@@ -111,12 +113,14 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
   Standard_EXPORT Handle(GEOM_Object) GetCentreOfMass (Handle(GEOM_Object) theShape);
 
   Standard_EXPORT Handle(GEOM_Object) GetVertexByIndex (Handle(GEOM_Object) theShape,
-                                                        Standard_Integer theIndex);
+                                                        Standard_Integer theIndex,
+                                                        Standard_Boolean theUseOri);
 
   Standard_EXPORT Handle(GEOM_Object) GetNormal (Handle(GEOM_Object) theFace,
                                                  Handle(GEOM_Object) theOptionalPoint);
 
   Standard_EXPORT void GetBasicProperties (Handle(GEOM_Object) theShape,
+                                           const Standard_Real theTolerance,
                                            Standard_Real& theLength,
                                            Standard_Real& theSurfArea,
                                            Standard_Real& theVolume);
@@ -158,6 +162,13 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
                                                const SICheckLevel  theCheckLevel,
                                                Handle(TColStd_HSequenceOfInteger)& theIntersections);
   
+  Standard_EXPORT bool CheckSelfIntersectionsFast (Handle(GEOM_Object) theShape,
+                                                   float  deflection, 
+                                                   double tolerance,
+                                                   Handle(TColStd_HSequenceOfInteger)& theIntersections);
+
+  Standard_EXPORT bool CheckBOPArguments (const Handle(GEOM_Object) &theShape);
+  
   Standard_EXPORT bool FastIntersect (Handle(GEOM_Object) theShape1, Handle(GEOM_Object) theShape2,
                                       double tolerance, float deflection,
                                       Handle(TColStd_HSequenceOfInteger)& theIntersections1,
@@ -188,7 +199,7 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
   Standard_EXPORT Standard_Real GetAngleBtwVectors (Handle(GEOM_Object) theVec1, Handle(GEOM_Object) theVec2);
 
 
-  // Methods for recieving radiuses of curvature of curves and surfaces
+  // Methods for receiving radiuses of curvature of curves and surfaces
   // in the given point
   Standard_EXPORT Standard_Real CurveCurvatureByParam (Handle(GEOM_Object) theCurve,
                                                        Standard_Real& theParam);