1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0024909: Modeling Algorithms - SIGSEGV in buildsweep

Update algorithm to preventing regression.
This commit is contained in:
akondrat
2022-08-09 14:38:45 +03:00
parent abd63556da
commit 4b2a0e8e49
2 changed files with 19 additions and 5 deletions

View File

@@ -1155,7 +1155,24 @@ void BRepFill_CompatibleWires::
// parse candidate edges
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 U2param = BRep_Tool::Parameter(VVL,E);
BRepAdaptor_Curve CurveE(E);

View File

@@ -3,8 +3,6 @@ puts "0024909: Modeling Algorithms - SIGSEGV in buildsweep"
puts "========"
puts ""
puts "REQUIRED All: Standard_ConstructionError: BRepFill :: profiles are inconsistent"
pload MODELING
restore [locate_data_file bug24909_BezCurve.brep] BezCurve
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
ttranslate Circle001 0 -71 203.5
addsweep Circle001
catch { buildsweep Sweep001 -C -S } message
buildsweep Sweep001 -C -S