Minor correction in method BRepAlgo_NormalProjection::Build: correct mixed up first and last parameters of the projected curve.
if(Only2d && Only3d) {
BRepLib_MakeEdge MKed(GeomAdaptor::MakeCurve(hcur->Curve()),
- Ufin, Udeb);
+ Udeb, Ufin);
prj = MKed.Edge();
BB.UpdateEdge(TopoDS::Edge(prj),
PCur2d,
--- /dev/null
+puts "========================================================================="
+puts "OCC32864: Normal projection of a wire on a cylinder produces wrong result"
+puts "========================================================================="
+puts ""
+
+restore [locate_data_file bug32864.brep] a
+explode a
+
+nproject result a_2 a_1
+
+checkshape result
+
+checknbshapes result -t -edge 8 -vertex 16
+
+set tolres [checkmaxtol result]
+
+if { ${tolres} > 0.0001} {
+ puts "Error: bad tolerance of result"
+}
+
+checkprops result -l 37.1616