mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0024909: Modeling Algorithms - SIGSEGV in buildsweep
Update algorithm to preventing regression.
This commit is contained in:
@@ -1155,7 +1155,24 @@ void BRepFill_CompatibleWires::
|
|||||||
|
|
||||||
// parse candidate edges
|
// parse candidate edges
|
||||||
Standard_Real scal1,scal2;
|
Standard_Real scal1,scal2;
|
||||||
if ( (V1.IsSame(VVF)&&V2.IsSame(VVL)) || (V2.IsSame(VVF)&&V1.IsSame(VVL)) ) {
|
|
||||||
|
Standard_Boolean isEqual = (V1.IsSame(VVF) && V2.IsSame(VVL)) || (V2.IsSame(VVF) && V1.IsSame(VVL));
|
||||||
|
|
||||||
|
if (!isEqual)
|
||||||
|
{
|
||||||
|
itF = (MapVLV.FindFromKey(VF));
|
||||||
|
itL = (MapVLV.FindFromKey(VL));
|
||||||
|
rang = ideb - 1;
|
||||||
|
while (rang < i) {
|
||||||
|
itF.Next();
|
||||||
|
itL.Next();
|
||||||
|
rang++;
|
||||||
|
}
|
||||||
|
V1 = TopoDS::Vertex(itF.Value()), V2 = TopoDS::Vertex(itL.Value());
|
||||||
|
isEqual = (V1.IsSame(VVF) && V2.IsSame(VVL)) || (V2.IsSame(VVF) && V1.IsSame(VVL));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isEqual) {
|
||||||
Standard_Real U1param = BRep_Tool::Parameter(VVF,E);
|
Standard_Real U1param = BRep_Tool::Parameter(VVF,E);
|
||||||
Standard_Real U2param = BRep_Tool::Parameter(VVL,E);
|
Standard_Real U2param = BRep_Tool::Parameter(VVL,E);
|
||||||
BRepAdaptor_Curve CurveE(E);
|
BRepAdaptor_Curve CurveE(E);
|
||||||
|
@@ -3,8 +3,6 @@ puts "0024909: Modeling Algorithms - SIGSEGV in buildsweep"
|
|||||||
puts "========"
|
puts "========"
|
||||||
puts ""
|
puts ""
|
||||||
|
|
||||||
puts "REQUIRED All: Standard_ConstructionError: BRepFill :: profiles are inconsistent"
|
|
||||||
|
|
||||||
pload MODELING
|
pload MODELING
|
||||||
restore [locate_data_file bug24909_BezCurve.brep] BezCurve
|
restore [locate_data_file bug24909_BezCurve.brep] BezCurve
|
||||||
ttranslate BezCurve 0 -8 0
|
ttranslate BezCurve 0 -8 0
|
||||||
@@ -24,6 +22,5 @@ wire Circle001 Circle001-edge
|
|||||||
trotate Circle001 0 0 0 0.577350269189625731 0.577350269189625731 0.577350269189625731 120
|
trotate Circle001 0 0 0 0.577350269189625731 0.577350269189625731 0.577350269189625731 120
|
||||||
ttranslate Circle001 0 -71 203.5
|
ttranslate Circle001 0 -71 203.5
|
||||||
addsweep Circle001
|
addsweep Circle001
|
||||||
|
buildsweep Sweep001 -C -S
|
||||||
catch { buildsweep Sweep001 -C -S } message
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user