mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0024384: Wrong result obtained by Fuse
Changes: 1. class BOPTools - method: void BOPTools_AlgoTools::MakeVertex(BOPCol_ListOfShape& aLV, TopoDS_Vertex& aVnew) The function fsqrt that calculates the square root of a real number has been replaced by the standard sqrt. 2. class BOPAlgo_WireSplitter - static function: Standard_Real Angle2D (const TopoDS_Vertex& aV, const TopoDS_Edge& anEdge, const TopoDS_Face& myFace, const GeomAdaptor_Surface& aGAS, const Standard_Boolean aFlag) The value parametric deltas for computations of 2D-angles have been changed for Bezier, B-Spline 2D-curves.
This commit is contained in:
@@ -49,6 +49,7 @@
|
||||
#include <TopExp.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
#include <BOPTools_AlgoTools2D.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
//
|
||||
|
||||
static
|
||||
@@ -739,7 +740,7 @@ Standard_Integer NbWaysOut(const BOPAlgo_ListOfEdgeInfo& aLEInfo)
|
||||
}
|
||||
//
|
||||
BOPTools_AlgoTools2D::CurveOnSurface (anEdge, myFace, aC2D,
|
||||
aFirst, aLast, aToler);
|
||||
aFirst, aLast, aToler);
|
||||
dt=2.*Tolerance2D(aV, aGAS);
|
||||
//
|
||||
//for case chl/927/r9
|
||||
@@ -753,6 +754,12 @@ Standard_Integer NbWaysOut(const BOPAlgo_ListOfEdgeInfo& aLEInfo)
|
||||
dt = aTX;
|
||||
}
|
||||
//
|
||||
GeomAbs_CurveType aType;
|
||||
Geom2dAdaptor_Curve aGAC2D(aC2D);
|
||||
aType=aGAC2D.GetType();
|
||||
if (aType==GeomAbs_BSplineCurve || aType==GeomAbs_BezierCurve) {
|
||||
dt=1.1*dt;
|
||||
}
|
||||
if (fabs (aTV-aFirst) < fabs(aTV - aLast)) {
|
||||
aTV1=aTV + dt;
|
||||
}
|
||||
|
Reference in New Issue
Block a user