fixS020
- Summary: Invalid computation of edge length on periodic curve leads to wrong tessellation
- Detailed description: SMESH_Algo returns incorrect edge length (1e-08) for an edge lying
beyond periodic curve range. Afterwards the number of segments is computed as
~ 1/lentgh and becomes 1.9M leading to running out of memory or failure to produce
2D mesh.
- Reproducer: Try to mesh f-percrvedge.brep with 1D Wire Discretization and default
MaxSize hypothesis.
return 0;
TopLoc_Location L;
Handle(Geom_Curve) C = BRep_Tool::Curve(E, L, UMin, UMax);
- GeomAdaptor_Curve AdaptCurve(C);
+ GeomAdaptor_Curve AdaptCurve(C, UMin, UMax); //range is important for periodic curves
double length = GCPnts_AbscissaPoint::Length(AdaptCurve, UMin, UMax);
return length;
}