mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0024789: BOPAlgo_Builder produces invalid result on planar, conical and spherical surfaces
BOPAlgo_PaveFiller::MakeBlocks() - Improve Face/Face post treatment procedure by: * Adding more existing edge for intersection with section edges to resolve all possible intersections. * Using tree for edges selection. * Avoiding intersection of the existing edges among themselves. IntPatch_ImpImpIntersection::CyCyNoGeometric - add more points to wline to make it more smooth.
This commit is contained in:
@@ -2164,10 +2164,6 @@ static void SeekAdditionalPoints( const IntSurf_Quadric& theQuad1,
|
||||
return;
|
||||
|
||||
Standard_Integer aNbPoints = theEndPointOnLine - theStartPointOnLine + 1;
|
||||
if(aNbPoints >= theMinNbPoints)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Standard_Real aMinDeltaParam = theTol2D;
|
||||
|
||||
@@ -2192,7 +2188,7 @@ static void SeekAdditionalPoints( const IntSurf_Quadric& theQuad1,
|
||||
Standard_Real U1prec = 0.0, V1prec = 0.0, U2prec = 0.0, V2prec = 0.0;
|
||||
|
||||
Standard_Integer aNbPointsPrev = 0;
|
||||
while(aNbPoints < theMinNbPoints && (aNbPoints != aNbPointsPrev))
|
||||
do
|
||||
{
|
||||
aNbPointsPrev = aNbPoints;
|
||||
for(Standard_Integer fp = theStartPointOnLine, lp = 0; fp < aLastPointIndex; fp = lp + 1)
|
||||
@@ -2269,7 +2265,7 @@ static void SeekAdditionalPoints( const IntSurf_Quadric& theQuad1,
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
} while(aNbPoints < theMinNbPoints && (aNbPoints != aNbPointsPrev));
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@@ -3564,7 +3560,7 @@ static IntPatch_ImpImpIntersection::IntStatus
|
||||
}
|
||||
|
||||
#ifdef INTPATCH_IMPIMPINTERSECTION_DEBUG
|
||||
//aWLine[i]->Dump();
|
||||
aWLine[i]->Dump(0);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user