From c8528675fec1b3dac49c7e73d5dae3a5e1010d19 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 25 Nov 2020 10:06:32 +0000 Subject: [PATCH] EgtGeomKernel 2.2k3 : - in NurbsToBezierCurve aggiunto controllo costanza valori nodi agli estremi. --- CurveAux.cpp | 12 ++++++++++++ EgtGeomKernel.rc | Bin 11718 -> 11718 bytes 2 files changed, 12 insertions(+) diff --git a/CurveAux.cpp b/CurveAux.cpp index 48ebc9a..88edcc9 100644 --- a/CurveAux.cpp +++ b/CurveAux.cpp @@ -545,6 +545,18 @@ NurbsToBezierCurve( const CNurbsData& cnData) return nullptr ; // numero degli intervalli int nInt = nU - 2 * cnData.nDeg + 1 ; + // verifico le condizioni agli estremi sui nodi (i primi nDeg nodi e gli ultimi nDeg nodi devono essere uguali tra loro) + bool bOk = true ; + for ( int i = 1 ; i < cnData.nDeg ; ++ i) { + if ( abs( cnData.vU[i] - cnData.vU[0]) >= EPS_ZERO) + bOk = false ; + } + for ( int i = 1 ; i < cnData.nDeg ; ++ i) { + if ( abs( cnData.vU[nU - 1 - i] - cnData.vU[nU - 1]) >= EPS_ZERO) + bOk = false ; + } + if ( ! bOk) + return nullptr ; // se 1 solo intervallo, la Nurbs è già una curva di Bezier if ( nInt == 1) { diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 357025616c8f33458d5e8e2229fcafe2aa8a8ec1..b4acb7d9da731f0935bcfba403cbdd216e432db6 100644 GIT binary patch delta 110 zcmX>WeJpyzA2vqg&G-4vGfl1&(wY2&Q;pGhvZAo=W*@FeEMOU1X1ItO delta 110 zcmX>WeJpyzA2vp#&G-4vGfl1&(wY2&Q;pGRvZAo=W*@FeEMOU1X1ItO