From 9f5ce42393f74666498e35c907752675e80aa6ac Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Wed, 10 Sep 2025 09:48:36 +0200 Subject: [PATCH] EgtGeomKernel : - aggiornamento dell'enum per le intersezioni linea bezier. --- IntersLineSurfBez.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/IntersLineSurfBez.cpp b/IntersLineSurfBez.cpp index 2a6d42d..346613e 100644 --- a/IntersLineSurfBez.cpp +++ b/IntersLineSurfBez.cpp @@ -73,11 +73,11 @@ static void UpdateInfoIntersLineSurfBz( const Point3d& ptL, const Vector3d& vtDir, int nILT, int nT, const Point3d& ptSP, const Point3d& ptIBz, double dCos, const Point3d& ptSP2, const Point3d& ptIBz2, double dCos2, ILSBIVECTOR& vInfo) { - if ( nILT == ILTT_IN || nILT == ILTT_EDGE || nILT == ILTT_VERT || nILT == ILTT_NO_TRIA) { + if ( nILT == ILTA_IN || nILT == ILTA_EDGE || nILT == ILTA_VERT || nILT == ILTA_NO_TRIA) { double dU = ( ptIBz - ptL) * vtDir ; vInfo.emplace_back( nILT, dU, nT, dCos, ptIBz, ptSP) ; } - else if ( nILT == ILTT_SEGM || nILT == ILTT_SEGM_ON_EDGE) { + else if ( nILT == ILTA_SEGM || nILT == ILTA_SEGM_ON_EDGE) { double dU = ( ptIBz - ptL) * vtDir ; double dU2 = ( ptIBz2 - ptL) * vtDir ; vInfo.emplace_back( nILT, dU, dU2, nT, dCos2, ptIBz, ptIBz2, ptSP, ptSP2) ; @@ -94,8 +94,8 @@ OrderInfoIntersLineSurfBz( ILSBIVECTOR& vInfo) // ordino il vettore delle intersezioni secondo il senso crescente del parametro di linea sort( vInfo.begin(), vInfo.end(), []( const IntLinSbzInfo& a, const IntLinSbzInfo& b) - { double dUa = ( ( a.nILTT == ILTT_SEGM || a.nILTT == ILTT_SEGM_ON_EDGE) ? ( a.dU + a.dU2) / 2 : a.dU) ; - double dUb = ( ( b.nILTT == ILTT_SEGM || b.nILTT == ILTT_SEGM_ON_EDGE) ? ( b.dU + b.dU2) / 2 : b.dU) ; + { double dUa = ( ( a.nILTA == ILTA_SEGM || a.nILTA == ILTA_SEGM_ON_EDGE) ? ( a.dU + a.dU2) / 2 : a.dU) ; + double dUb = ( ( b.nILTA == ILTA_SEGM || b.nILTA == ILTA_SEGM_ON_EDGE) ? ( b.dU + b.dU2) / 2 : b.dU) ; return ( dUa < dUb) ; }) ; } @@ -152,7 +152,7 @@ IntersLineSurfBz( const Point3d& ptL, const Vector3d& vtL, double dLen, const IS double dCos = vtN * vtL ; double dCos2 = 0 ; // eventualmente ripeto tutto per ptI2 ( se ho un'intersezione con sovrapposizione) - if ( InfoTm.nILTT == ILTT_SEGM || InfoTm.nILTT == ILTT_SEGM_ON_EDGE ) { + if ( InfoTm.nILTT == ILTA_SEGM || InfoTm.nILTT == ILTA_SEGM_ON_EDGE ) { pSurfBz->UnprojectPointFromStm( InfoTm.nT, InfoTm.ptI2, ptSP2, InfoTm.nILTT) ; if ( ! RefineIntersNewton(ptL, vtL, dLen, bFinite, pSurfBz, ptSP2, ptIBz2) ) { int nVert[3] ; @@ -182,7 +182,7 @@ FilterLineSurfBzInters( const ILSBIVECTOR& vInfo, INTDBLVECTOR& vInters) // ciclo sulle intersezioni for ( const auto& Info : vInfo) { // se intersezione puntuale - if ( Info.nILTT == ILTT_VERT || Info.nILTT == ILTT_EDGE || Info.nILTT == ILTT_IN) { + if ( Info.nILTA == ILTA_VERT || Info.nILTA == ILTA_EDGE || Info.nILTA == ILTA_IN) { int nFlag = LSBT_TOUCH ; if ( Info.dCosDN > EPS_ZERO) nFlag = LSBT_OUT ; @@ -191,7 +191,7 @@ FilterLineSurfBzInters( const ILSBIVECTOR& vInfo, INTDBLVECTOR& vInters) vInters.emplace_back( nFlag, Info.dU) ; } // se altrimenti intersezione con coincidenza - else if ( Info.nILTT == ILTT_SEGM || Info.nILTT == ILTT_SEGM_ON_EDGE) { + else if ( Info.nILTA == ILTA_SEGM || Info.nILTA == ILTA_SEGM_ON_EDGE) { vInters.emplace_back( LSBT_TG_INI, Info.dU) ; vInters.emplace_back( LSBT_TG_FIN, Info.dU2) ; } @@ -296,7 +296,7 @@ IntersLineSurfBzBilinear( const Point3d& ptL, const Vector3d& vtL, double dLen, pSurfBz->GetPointNrmD1D2(dU, dV, ISurfBezier::Side::FROM_MINUS, ISurfBezier::Side::FROM_MINUS, ptIBez, vtN) ; Point3d ptSP( dU, dV, 0), ptSP2 ; double dCos = vtN * vtL, dCos2 = 0 ; - UpdateInfoIntersLineSurfBz( ptL, vtL, ILTT_NO_TRIA, -1, ptSP, ptIBez, dCos, ptSP2, ptIBez2, dCos2, vInfo) ; + UpdateInfoIntersLineSurfBz( ptL, vtL, ILTA_NO_TRIA, -1, ptSP, ptIBez, dCos, ptSP2, ptIBez2, dCos2, vInfo) ; bFound = true ; } } @@ -429,7 +429,7 @@ IntersLineSurfBzBilinear( const Point3d& ptL, const Vector3d& vtL, double dLen, } } } - UpdateInfoIntersLineSurfBz( ptL, vtL, ILTT_NO_TRIA, -1, ptSP1, ptIBez1, dCos1, ptSP2, ptIBez2, dCos2, vInfo) ; + UpdateInfoIntersLineSurfBz( ptL, vtL, ILTA_NO_TRIA, -1, ptSP1, ptIBez1, dCos1, ptSP2, ptIBez2, dCos2, vInfo) ; bFound = true ; break ; } @@ -467,7 +467,7 @@ IntersLineSurfBzBilinear( const Point3d& ptL, const Vector3d& vtL, double dLen, Vector3d vtN1, vtN2 ; pSurfBz->GetPointNrmD1D2(dU1, dV1, ISurfBezier::Side::FROM_MINUS, ISurfBezier::Side::FROM_MINUS, ptIBez1, vtN1) ; double dCos1 = vtN1 * vtL, dCos2 = 0 ; - UpdateInfoIntersLineSurfBz( ptL, vtL, ILTT_NO_TRIA, -1, ptSP1, ptIBez1, dCos1, ptSP2, ptIBez2, dCos2, vInfo) ; + UpdateInfoIntersLineSurfBz( ptL, vtL, ILTA_NO_TRIA, -1, ptSP1, ptIBez1, dCos1, ptSP2, ptIBez2, dCos2, vInfo) ; bFound = true ; } }