From 39360eefd791249823c908dafee18619e76f569a Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Fri, 6 Mar 2026 17:25:50 +0100 Subject: [PATCH] EgtGeomKernel : - raffinamento finale della intersCompoCompo. --- IntersCrvCompoCrvCompo.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/IntersCrvCompoCrvCompo.cpp b/IntersCrvCompoCrvCompo.cpp index ed852b7..2b2a9fd 100644 --- a/IntersCrvCompoCrvCompo.cpp +++ b/IntersCrvCompoCrvCompo.cpp @@ -20,11 +20,6 @@ #include "/EgtDev/Include/EGkHashGrids2d.h" #include -//debug -#include "/EgtDev/Include/EgtILogger.h" -#include "/EgtDev/Include/EGkDllMain.h" -#include "DllMain.h" - using namespace std ; //--------------------------- Local functions -------------------------------- @@ -271,7 +266,8 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, EraseCurrentInfo( i, j) ; } // caso DET-(NULL) -> (NULL)-DET per prima curva - else if ( m_Info[j].IciA[kj].nPrevTy != ICCT_NULL && m_Info[i].IciA[ki].nNextTy != ICCT_NULL) { + else if ( m_Info[j].IciA[kj].nPrevTy != ICCT_NULL && m_Info[j].IciA[kj].nNextTy == ICCT_NULL && + m_Info[i].IciA[ki].nPrevTy == ICCT_NULL && m_Info[i].IciA[ki].nNextTy != ICCT_NULL) { // per la prima curva tengo i determinati m_Info[i].IciA[ki].nPrevTy = m_Info[j].IciA[kj].nPrevTy ; m_Info[j].IciA[kj].nNextTy = m_Info[i].IciA[ki].nNextTy ; @@ -325,7 +321,8 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, } } // caso (NULL)-DET -> DET-(NULL) per prima curva (possibile su inizio/fine di curva chiusa) - else if ( m_Info[j].IciA[kj].nNextTy != ICCT_NULL && m_Info[i].IciA[ki].nPrevTy != ICCT_NULL ) { + else if ( m_Info[j].IciA[kj].nPrevTy == ICCT_NULL && m_Info[j].IciA[kj].nNextTy != ICCT_NULL && + m_Info[i].IciA[ki].nPrevTy != ICCT_NULL && m_Info[i].IciA[ki].nNextTy == ICCT_NULL) { // per la prima curva tengo i determinati m_Info[i].IciA[ki].nNextTy = m_Info[j].IciA[kj].nNextTy ; m_Info[j].IciA[kj].nPrevTy = m_Info[i].IciA[ki].nPrevTy ; @@ -400,6 +397,7 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, } // caso NULL-NULL per corrente di prima curva else if ( m_Info[i].IciA[ki].nPrevTy == ICCT_NULL && m_Info[i].IciA[ki].nNextTy == ICCT_NULL) { + m_Info[j].IciA[kj].nNextTy = ICCT_NULL ; if ( m_Info[j].IciB[kj].nNextTy == ICCT_NULL) m_Info[j].IciB[kj].nNextTy = m_Info[i].IciB[ki].nNextTy ; if ( m_Info[j].IciB[kj].nPrevTy == ICCT_NULL) @@ -409,6 +407,7 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, } // caso NULL-NULL per precedente di prima curva else if ( m_Info[j].IciA[kj].nPrevTy == ICCT_NULL && m_Info[j].IciA[kj].nNextTy == ICCT_NULL) { + m_Info[i].IciA[ki].nPrevTy = ICCT_NULL ; if ( m_Info[i].IciB[ki].nPrevTy == ICCT_NULL) m_Info[i].IciB[ki].nPrevTy = m_Info[j].IciB[kj].nPrevTy ; if ( m_Info[i].IciB[ki].nNextTy == ICCT_NULL) @@ -447,7 +446,8 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, EraseCurrentInfo( i, j) ; } // caso DET-(NULL) -> (NULL)-DET per seconda curva - else if ( m_Info[j].IciB[kj].nPrevTy != ICCT_NULL && m_Info[i].IciB[ki].nNextTy != ICCT_NULL) { + else if ( m_Info[j].IciB[kj].nPrevTy != ICCT_NULL && m_Info[j].IciB[kj].nNextTy == ICCT_NULL && + m_Info[i].IciB[ki].nPrevTy == ICCT_NULL && m_Info[i].IciB[ki].nNextTy != ICCT_NULL) { // per la seconda curva tengo i determinati m_Info[i].IciB[ki].nPrevTy = m_Info[j].IciB[kj].nPrevTy ; m_Info[j].IciB[kj].nNextTy = m_Info[i].IciB[ki].nNextTy ; @@ -490,7 +490,8 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, } } // caso (NULL)-DET -> DET-(NULL) per seconda curva (possibile su inizio/fine di curva chiusa) - else if ( m_Info[j].IciB[kj].nNextTy != ICCT_NULL && m_Info[i].IciB[ki].nPrevTy != ICCT_NULL) { + else if ( m_Info[j].IciB[kj].nPrevTy == ICCT_NULL && m_Info[j].IciB[kj].nNextTy != ICCT_NULL && + m_Info[i].IciB[ki].nPrevTy != ICCT_NULL && m_Info[i].IciB[ki].nNextTy == ICCT_NULL) { // per la seconda curva tengo i determinati m_Info[i].IciB[ki].nNextTy = m_Info[j].IciB[kj].nNextTy ; m_Info[j].IciB[kj].nPrevTy = m_Info[i].IciB[ki].nPrevTy ; @@ -552,6 +553,7 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, } // caso NULL-NULL per corrente di seconda curva else if ( m_Info[i].IciB[ki].nPrevTy == ICCT_NULL && m_Info[i].IciB[ki].nNextTy == ICCT_NULL) { + m_Info[j].IciB[kj].nNextTy = ICCT_NULL ; if ( m_Info[j].IciA[kj].nNextTy == ICCT_NULL) m_Info[j].IciA[kj].nNextTy = m_Info[i].IciA[ki].nNextTy ; if ( m_Info[j].IciA[kj].nPrevTy == ICCT_NULL) @@ -561,6 +563,7 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, } // caso NULL-NULL per precedente di seconda curva else if ( m_Info[j].IciB[kj].nPrevTy == ICCT_NULL && m_Info[j].IciB[kj].nNextTy == ICCT_NULL) { + m_Info[i].IciB[ki].nPrevTy = ICCT_NULL ; if ( m_Info[i].IciA[ki].nPrevTy == ICCT_NULL) m_Info[i].IciA[ki].nPrevTy = m_Info[j].IciA[kj].nPrevTy ; if ( m_Info[i].IciA[ki].nNextTy == ICCT_NULL)