Fix pb in non-regression scripts, caused by previous integration

This commit is contained in:
vsr 2015-01-16 15:33:47 +03:00
parent afbfdd0ed2
commit cad7d404aa
3 changed files with 27 additions and 8 deletions

View File

@ -579,7 +579,7 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
TColStd_IndexedDataMapOfTransientTransient aMapTShapes; TColStd_IndexedDataMapOfTransientTransient aMapTShapes;
TNaming_CopyShape::CopyTool(aShape, aMapTShapes, aShapeCopy); TNaming_CopyShape::CopyTool(aShape, aMapTShapes, aShapeCopy);
if ( GEOMUtils::FixShapeTolerance(aShapeCopy) ) { if ( GEOMUtils::FixShapeTolerance(aShapeCopy, true) ) {
int iType, nbTypesCopy [TopAbs_SHAPE]; int iType, nbTypesCopy [TopAbs_SHAPE];
for (iType = 0; iType < TopAbs_SHAPE; ++iType) for (iType = 0; iType < TopAbs_SHAPE; ++iType)

View File

@ -1094,20 +1094,28 @@ bool GEOMUtils::CheckShape( TopoDS_Shape& shape,
bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape, bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape,
TopAbs_ShapeEnum type, TopAbs_ShapeEnum type,
Standard_Real tolerance ) Standard_Real tolerance,
bool checkGeometry )
{ {
ShapeFix_ShapeTolerance aSft; ShapeFix_ShapeTolerance aSft;
aSft.LimitTolerance( shape, tolerance, tolerance, type ); aSft.LimitTolerance( shape, tolerance, tolerance, type );
Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape( shape ); Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape( shape );
aSfs->Perform(); aSfs->Perform();
shape = aSfs->Shape(); shape = aSfs->Shape();
return CheckShape( shape ); return CheckShape( shape, checkGeometry );
} }
bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape, bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape,
Standard_Real tolerance ) Standard_Real tolerance,
bool checkGeometry )
{ {
return FixShapeTolerance( shape, TopAbs_SHAPE, tolerance ); return FixShapeTolerance( shape, TopAbs_SHAPE, tolerance, checkGeometry );
}
bool GEOMUtils::FixShapeTolerance( TopoDS_Shape& shape,
bool checkGeometry )
{
return FixShapeTolerance( shape, Precision::Confusion(), checkGeometry );
} }
bool GEOMUtils::FixShapeCurves( TopoDS_Shape& shape ) bool GEOMUtils::FixShapeCurves( TopoDS_Shape& shape )

View File

@ -228,22 +228,33 @@ namespace GEOMUtils
* \param type topology type which tolerance is to be limited; TopAbs_SHAPE means * \param type topology type which tolerance is to be limited; TopAbs_SHAPE means
* all types of topology * all types of topology
* \param tolerance expected tolerance value (1e-7 by default) * \param tolerance expected tolerance value (1e-7 by default)
* \param checkGeometry check geometry validity of result
* \return \c true if resulting shape is valid * \return \c true if resulting shape is valid
* *
* \note Resulting tolerance of the shape is not mandatory equal to requested value * \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 * 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, Standard_EXPORT bool FixShapeTolerance( TopoDS_Shape& shape,
TopAbs_ShapeEnum type, TopAbs_ShapeEnum type,
Standard_Real tolerance = Precision::Confusion() ); Standard_Real tolerance = Precision::Confusion(),
bool checkGeometry = false );
/*! /*!
* \brief Limit shape tolerance to the given value * \brief Limit shape tolerance to the given value
* This is overloaded function, it behaves exactly as previous one * This is overloaded function, it behaves exactly as previous one
*/ */
Standard_EXPORT bool FixShapeTolerance( TopoDS_Shape& shape, 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 * \brief Fix curves of the given shape