diff --git a/src/BRepAlgo/BRepAlgo.cxx b/src/BRepAlgo/BRepAlgo.cxx index a6bdf8a1d2..40a6277af9 100644 --- a/src/BRepAlgo/BRepAlgo.cxx +++ b/src/BRepAlgo/BRepAlgo.cxx @@ -421,9 +421,9 @@ TopoDS_Edge BRepAlgo::ConcatenateWireC0(const TopoDS_Wire& aWire) isReverse = !IsFwdSeq(1); } - TopoDS_Vertex FirstVtx_final = (isReverse)? LastVertex : FirstVertex; + TopoDS_Vertex FirstVtx_final = FirstVertex; FirstVtx_final.Orientation(TopAbs_FORWARD); - TopoDS_Vertex LastVtx_final = (isReverse)? FirstVertex : LastVertex; + TopoDS_Vertex LastVtx_final = LastVertex; LastVtx_final.Orientation(TopAbs_REVERSED); if (CurveSeq.IsEmpty()) diff --git a/tests/bugs/modalg_7/bug29573 b/tests/bugs/modalg_7/bug29573 new file mode 100644 index 0000000000..d291f5f72e --- /dev/null +++ b/tests/bugs/modalg_7/bug29573 @@ -0,0 +1,14 @@ +puts "========" +puts "0029573: ConcatenateWireC0 crashes on two edges wire" +puts "========" +puts "" + +restore [locate_data_file bug29573.brep] w + +explode w + +concatC0wire r1 w_1 +checknbshapes r1 -vertex 2 -edge 1 + +concatC0wire r2 w_2 +checknbshapes r2 -vertex 2 -edge 1