From: aml Date: Thu, 12 Mar 2015 09:21:29 +0000 (+0300) Subject: 0025841: Incorrect edge displaying X-Git-Tag: V6_9_0_beta~55 X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=commitdiff_plain;h=77e39787b4bf16e70d1b91c5146932b8310ca70f 0025841: Incorrect edge displaying Handling of too big step changed. Test-case for issue #25841 Small correction in test-case --- diff --git a/src/BRepMesh/BRepMesh_EdgeTessellator.cxx b/src/BRepMesh/BRepMesh_EdgeTessellator.cxx index d0c636d9d8..dfa12b8604 100644 --- a/src/BRepMesh/BRepMesh_EdgeTessellator.cxx +++ b/src/BRepMesh/BRepMesh_EdgeTessellator.cxx @@ -73,7 +73,7 @@ BRepMesh_EdgeTessellator::BRepMesh_EdgeTessellator( if (aCurveType == GeomAbs_BSplineCurve) { - // TODO: remove this code block when #24959 is fixed + // bug24220 const Standard_Integer aNbInt = myCOnS.NbIntervals(GeomAbs_C1); if ( aNbInt > 0 ) { @@ -99,7 +99,7 @@ BRepMesh_EdgeTessellator::BRepMesh_EdgeTessellator( } } } - + // PTv, chl/922/G9, Take into account internal vertices // it is necessary for internal edges, which do not split other edges, by their vertex TopExp_Explorer aVertexIt(theEdge, TopAbs_VERTEX); diff --git a/src/GCPnts/GCPnts_TangentialDeflection.gxx b/src/GCPnts/GCPnts_TangentialDeflection.gxx index 017e43f3dc..54c0b3bc90 100644 --- a/src/GCPnts/GCPnts_TangentialDeflection.gxx +++ b/src/GCPnts/GCPnts_TangentialDeflection.gxx @@ -473,6 +473,11 @@ void GCPnts_TangentialDeflection::PerformCurve (const TheCurve& C) else { if (Coef >= 1.5) { + if (!aPrevPoint.IsEqual(points.Last(), Precision::Confusion())) + { + parameters.Append (U1); + points .Append (aPrevPoint); + } U2 = MiddleU; Du = U2-U1; CurrentPoint = MiddlePoint; diff --git a/tests/bugs/modalg_5/bug25841 b/tests/bugs/modalg_5/bug25841 new file mode 100644 index 0000000000..44aba6c215 --- /dev/null +++ b/tests/bugs/modalg_5/bug25841 @@ -0,0 +1,15 @@ +puts "========" +puts "OCC25841" +puts "========" +puts "" +############################# +# Incorrect edge displaying +############################# + +restore [locate_data_file OCC25841_Curve_2.brep] a +vinit +vclear +vfront +vdisplay a +vfit +set only_screen 1