1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

0027384: BRepMesh_IncrementalMesh does not take angular deflection into account for spun/elementary surfaces

Check deviation of normals at vertices of triangles for complex surface types different from Bezier and BSpline.
Modified test cased according to changes in BRepMesh.
Do not remove more intermediate parameters than N - 3 in order to have at least one parameter related to surface internals.
Check angle for angular deflection before removement of intermediate parameters.
Unify computation of internal vertices for complex surfaces.
Discretization points of edges are taken into account during computation of step of mesh grid.
Remove parameters only if they fit the constrains along the whole surface.
Do not add random internal parameters in case if their number is just 2.
Force freezing parameters both for U and V in case of significant control point.

Modified test cases

Warnings elimination in vc14.
This commit is contained in:
oan
2016-04-26 15:38:42 +03:00
committed by bugmaster
parent 3a507ddb47
commit 7856b126b0
37 changed files with 241 additions and 195 deletions

View File

@@ -214,7 +214,7 @@ void Extrema_GenExtCC::Perform()
Standard_Real aLC = 9.0; // Default value.
const Standard_Real aMaxDer1 = 1.0 / C1.Resolution(1.0);
const Standard_Real aMaxDer2 = 1.0 / C2.Resolution(1.0);
const Standard_Real aMaxDer = Max(aMaxDer1, aMaxDer2) * Sqrt(2.0);
Standard_Real aMaxDer = Max(aMaxDer1, aMaxDer2) * Sqrt(2.0);
if (aLC > aMaxDer)
aLC = aMaxDer;
@@ -222,7 +222,7 @@ void Extrema_GenExtCC::Perform()
Standard_Boolean isConstLockedFlag = Standard_False;
if (C1.GetType() == GeomAbs_Line)
{
Standard_Real aMaxDer = 1.0 / C2.Resolution(1.0);
aMaxDer = 1.0 / C2.Resolution(1.0);
if (aLC > aMaxDer)
{
isConstLockedFlag = Standard_True;
@@ -231,7 +231,7 @@ void Extrema_GenExtCC::Perform()
}
if (C2.GetType() == GeomAbs_Line)
{
Standard_Real aMaxDer = 1.0 / C1.Resolution(1.0);
aMaxDer = 1.0 / C1.Resolution(1.0);
if (aLC > aMaxDer)
{
isConstLockedFlag = Standard_True;