X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FDraft%2FDraft_Modification_1.cxx;h=26bd3106f39338f46bc80448e8032764de4f03e6;hb=f73c584ceb841cd6558e61ca694f60af7c0cec44;hpb=a3d4053c158a7fc1300fa1a8d0a4e94bc43ca07d diff --git a/src/Draft/Draft_Modification_1.cxx b/src/Draft/Draft_Modification_1.cxx index e7928c9766..26bd3106f3 100644 --- a/src/Draft/Draft_Modification_1.cxx +++ b/src/Draft/Draft_Modification_1.cxx @@ -1574,10 +1574,22 @@ void Draft_Modification::Perform () anIntCurv->D1(aParF, aPf, aDirNF); anIntCurv->D1(aParL, aPl, aDirNL); - aDirNF.Normalize(); - aDirNL.Normalize(); - aDirOF.Normalize(); - aDirOL.Normalize(); + Standard_Real aSqMagn = aDirNF.SquareMagnitude(); + + if (aSqMagn > Precision::SquareConfusion()) + aDirNF.Divide(sqrt(aSqMagn)); + + aSqMagn = aDirNL.SquareMagnitude(); + if (aSqMagn > Precision::SquareConfusion()) + aDirNL.Divide(sqrt(aSqMagn)); + + aSqMagn = aDirOF.SquareMagnitude(); + if (aSqMagn > Precision::SquareConfusion()) + aDirOF.Divide(sqrt(aSqMagn)); + + aSqMagn = aDirOL.SquareMagnitude(); + if (aSqMagn > Precision::SquareConfusion()) + aDirOL.Divide(sqrt(aSqMagn)); const Standard_Real aCosF = aDirNF.Dot(aDirOF), aCosL = aDirNL.Dot(aDirOL); const Standard_Real aCosMax = Abs(aCosF) > Abs(aCosL) ? aCosF : aCosL;