if (VEdge(isec, ipath).IsNull())
VEdge(isec, ipath) = aNewFirstEdge;
else //rebuild first edge
+ {
RebuildTopOrBottomEdge(aNewFirstEdge,
TopoDS::Edge(VEdge(isec, ipath)),
ReversedEdges);
+ if (ReversedEdges.Contains(VEdge(isec, ipath)))
+ StartEdges(isec).Reverse();
+ }
}
else UpdateEdge(TopoDS::Edge(VEdge(isec, ipath)),
for (j = 1; j <= NbPath; j++)
Tapes(StartEdges(isec))->SetValue(6, j, myFaces->Value(isec, j));
TopoDS_Vertex Vfirst, Vlast;
- TopExp::Vertices(TopoDS::Edge(StartEdges(isec)), Vfirst, Vlast);
+ TopExp::Vertices(TopoDS::Edge(StartEdges(isec)), Vfirst, Vlast, Standard_True); //with orientation
if (!Rails.IsBound(Vfirst))
{
Handle(TopTools_HArray2OfShape) anArray = new TopTools_HArray2OfShape(1, 2, 1, NbPath+1);
--- /dev/null
+puts "========"
+puts "OCC25272"
+puts "========"
+puts ""
+##################################################################
+# Regression in BRepOffsetAPI_MakePipe: invalid shape is created
+##################################################################
+
+restore [locate_data_file bug25272_base.brep] b
+restore [locate_data_file bug25272_path.brep] p
+
+pipe r p b
+
+set bug_info [checkshape r]
+if {[string compare $bug_info "This shape seems to be valid"] != 0} {
+ puts "ERROR: OCC25272 is reproduced"
+ puts " shape result is invalid"
+}