New public method IsDone() is added to abstract class BRepFill_SectionLaw.
Test case bugs/modlag_6/bug27822 has been added
}
myParams = par;
Init(par,Build);
+ myDone = Standard_True;
}
//=======================================================================
VFirst = VF;
VLast = VL;
Init(P,Build);
+ myDone = Standard_True;
}
+ else
+ myDone = Standard_False;
}
//=======================================================================
}
myStatus = myLocation->GetStatus();
+ if (!mySection->IsDone())
+ myStatus = GeomFill_PipeNotOk;
}
//=======================================================================
return vclosed;
}
+//=======================================================================
+//function : IsDone
+//purpose :
+//=======================================================================
+ Standard_Boolean BRepFill_SectionLaw::IsDone() const
+{
+ return myDone;
+}
+
//=======================================================================
//function : Init
//purpose : Prepare the parsing of a wire
Standard_EXPORT Standard_Boolean IsVClosed() const;
+ Standard_EXPORT Standard_Boolean IsDone() const;
+
//! Say if the input sahpe is a vertex.
Standard_EXPORT virtual Standard_Boolean IsVertex() const = 0;
Handle(GeomFill_HArray1OfSectionLaw) myLaws;
Standard_Boolean uclosed;
Standard_Boolean vclosed;
+ Standard_Boolean myDone;
private:
myLaws->ChangeValue(1) =
new (GeomFill_UniformSection)(TC);
}
+ myDone = Standard_True;
}
//=======================================================================
{
TheLaw.Nullify();
Init(Build);
+ myDone = Standard_True;
}
//=======================================================================
{
TheLaw = L;
Init(Build);
+ myDone = Standard_True;
}
//=======================================================================
--- /dev/null
+puts "========"
+puts "OCC27822"
+puts "========"
+puts ""
+#######################################################################################
+# Exception access violation is raised in BRepOffsetAPI_MakePipeShell during of build
+#######################################################################################
+
+circle c1 0 100 80 30
+circle c2 0 30 130 30
+mkedge e1 c1
+mkedge e2 c2
+vertex v1 0 0 0
+vertex v2 0 1 0
+edge e3 v1 v2
+wire w1 e1
+wire w2 e2
+wire w3 e3
+mksweep w3
+addsweep w1
+addsweep w2
+
+if {[catch {buildsweep result}]} {
+ puts "OCC27822 is fixed."
+} else {
+ puts "ERROR: OCC27822 does not fixed correctly."
+}