Salome HOME
Fix pb in non-regression scripts, caused by previous integration V7_5_1 V7_5_1rc1 V7_5_1rc2 V7_5_1rc3
authorvsr <vsr@opencascade.com>
Fri, 16 Jan 2015 12:33:47 +0000 (15:33 +0300)
committervsr <vsr@opencascade.com>
Fri, 16 Jan 2015 12:33:47 +0000 (15:33 +0300)
src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
src/GEOMUtils/GEOMUtils.cxx
src/GEOMUtils/GEOMUtils.hxx

index 389ca6f5e053d2f66355f3be238566f4c9158b13..111a509cdd7d22413ca06be424b69b1952176e88 100644 (file)
@@ -579,7 +579,7 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
   TColStd_IndexedDataMapOfTransientTransient aMapTShapes;
   TNaming_CopyShape::CopyTool(aShape, aMapTShapes, aShapeCopy);
 
-  if ( GEOMUtils::FixShapeTolerance(aShapeCopy) ) {
+  if ( GEOMUtils::FixShapeTolerance(aShapeCopy, true) ) {
     int iType, nbTypesCopy [TopAbs_SHAPE];
 
     for (iType = 0; iType < TopAbs_SHAPE; ++iType)
index 3773646b81075e591b47bbff9d0856bf6b321421..055276d899ed323b6379bfa9942166ef19a06835 100644 (file)
@@ -1094,20 +1094,28 @@ bool GEOMUtils::CheckShape( TopoDS_Shape& shape,
 
 bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape,
                                    TopAbs_ShapeEnum type,
-                                   Standard_Real tolerance )
+                                   Standard_Real tolerance,
+                                   bool checkGeometry )
 {
   ShapeFix_ShapeTolerance aSft;
   aSft.LimitTolerance( shape, tolerance, tolerance, type );
   Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape( shape );
   aSfs->Perform();
   shape = aSfs->Shape();
-  return CheckShape( shape );
+  return CheckShape( shape, checkGeometry );
+}
+
+bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape,
+                                   Standard_Real tolerance,
+                                   bool checkGeometry )
+{
+  return FixShapeTolerance( shape, TopAbs_SHAPE, tolerance, checkGeometry );
 }
 
 bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape,
-                                   Standard_Real tolerance )
+                                   bool checkGeometry )
 {
-  return FixShapeTolerance( shape, TopAbs_SHAPE, tolerance );
+  return FixShapeTolerance( shape, Precision::Confusion(), checkGeometry );
 }
 
 bool GEOMUtils::FixShapeCurves( TopoDS_Shape& shape )
index b7550102490d0cce5681ff4e07260edf0d60d697..48cef6533ce9574f6d287faf718a2e297d241b53 100644 (file)
@@ -228,22 +228,33 @@ namespace GEOMUtils
    * \param type topology type which tolerance is to be limited; TopAbs_SHAPE means
    *             all types of topology
    * \param tolerance expected tolerance value (1e-7 by default)
+   * \param checkGeometry check geometry validity of result
    * \return \c true if resulting shape is valid
    *
    * \note Resulting tolerance of the shape is not mandatory equal to requested value
    *       as it might be changed by fixshape operation in order to get valid shape where possible
+   * \note By default, result only checked for topology validity; check of geometry can be done by
+   *       passing \c true to \a checkGeometry parameter
    */
   Standard_EXPORT bool FixShapeTolerance( TopoDS_Shape& shape,
                                           TopAbs_ShapeEnum type,
-                                          Standard_Real tolerance = Precision::Confusion() );
+                                          Standard_Real tolerance = Precision::Confusion(),
+                                          bool checkGeometry = false );
 
   /*!
    * \brief Limit shape tolerance to the given value
    * This is overloaded function, it behaves exactly as previous one
    */
   Standard_EXPORT bool FixShapeTolerance( TopoDS_Shape& shape,
-                                          Standard_Real tolerance = Precision::Confusion() );
-  
+                                          Standard_Real tolerance = Precision::Confusion(),
+                                          bool checkGeometry = false );
+
+  /*!
+   * \brief Limit shape tolerance to the given value
+   * This is overloaded function, it behaves exactly as previous one
+   */
+  Standard_EXPORT bool FixShapeTolerance( TopoDS_Shape& shape,
+                                          bool checkGeometry );
 
   /*!
    * \brief Fix curves of the given shape