mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0025715: Intersection between cylinders produces excess vertices
1. Curve boundaries were more precised. 2. Some test cases were changed in accordance of their new behavior. 3. Code fragment for WLines joining was moved to higher level (for more universal using in the future). Code was changed in accordance with the last remark. Added test cases bugs/modalg_5/bug25715_1 bug25715_2 bug25715_3
This commit is contained in:
@@ -3770,7 +3770,7 @@ Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
|
||||
bCheckAngle1 = Standard_True;
|
||||
aNewVec = gp_Vec2d(gp_Pnt2d(nU1, nV1), gp_Pnt2d(anewU, anewV));
|
||||
|
||||
if(aNewVec.SquareMagnitude() < (gp::Resolution() * gp::Resolution())) {
|
||||
if(aNewVec.SquareMagnitude() < gp::Resolution()) {
|
||||
aNewP.SetValue((surfit == 0), anewU, anewV);
|
||||
bCheckAngle1 = Standard_False;
|
||||
}
|
||||
@@ -3779,7 +3779,7 @@ Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
|
||||
bCheckAngle2 = Standard_True;
|
||||
aNewVec = gp_Vec2d(gp_Pnt2d(nU1, nV1), gp_Pnt2d(U, V));
|
||||
|
||||
if(aNewVec.SquareMagnitude() < (gp::Resolution() * gp::Resolution())) {
|
||||
if(aNewVec.SquareMagnitude() < gp::Resolution()) {
|
||||
bCheckAngle2 = Standard_False;
|
||||
}
|
||||
}
|
||||
@@ -3799,7 +3799,7 @@ Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
|
||||
aPrevNeighbourPoint.ParametersOnS2(nU2, nV2);
|
||||
gp_Vec2d aVecOld(gp_Pnt2d(nU2, nV2), gp_Pnt2d(nU1, nV1));
|
||||
|
||||
if(aVecOld.SquareMagnitude() <= (gp::Resolution() * gp::Resolution())) {
|
||||
if(aVecOld.SquareMagnitude() <= gp::Resolution()) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
@@ -3916,7 +3916,7 @@ Standard_Boolean DecompositionOfWLine(const Handle(IntPatch_WLine)& theWLine,
|
||||
ap2.SetX(nU2);
|
||||
ap2.SetY(nV2);
|
||||
|
||||
if(ap1.SquareDistance(ap2) > (gp::Resolution() * gp::Resolution())) {
|
||||
if(ap1.SquareDistance(ap2) > gp::Resolution()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user