diff --git a/IntersCrvCompoCrvCompo.cpp b/IntersCrvCompoCrvCompo.cpp index 07884b7..5d11598 100644 --- a/IntersCrvCompoCrvCompo.cpp +++ b/IntersCrvCompoCrvCompo.cpp @@ -460,41 +460,37 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, if ( m_Info[i].IciA[0].nPrevTy == ICCT_NULL) { // devo studiare un intorno dell'intersezione int nType ; - if ( ! CalcATypeFromDisk( CCompoA, m_Info[i].IciA[0].dU, ICurve::FROM_MINUS, - CCompoB, m_Info[i].IciB[0].dU, nType)) - continue ; - // aggiorno il tipo di accostamento della curva A alla curva B - m_Info[i].IciA[0].nPrevTy = nType ; + if ( CalcATypeFromDisk( CCompoA, m_Info[i].IciA[0].dU, ICurve::FROM_MINUS, + CCompoB, m_Info[i].IciB[0].dU, nType)) + // aggiorno il tipo di accostamento della curva A alla curva B + m_Info[i].IciA[0].nPrevTy = nType ; } // se il tipo di accostamento per la curva B non è definito if ( m_Info[i].IciB[0].nPrevTy == ICCT_NULL) { // devo studiare un intorno dell'intersezione int nType ; - if ( ! CalcATypeFromDisk( CCompoB, m_Info[i].IciB[0].dU, ICurve::FROM_MINUS, - CCompoA, m_Info[i].IciA[0].dU, nType)) - continue ; - // aggiorno il tipo di accostamento della curva B alla curva A - m_Info[i].IciB[0].nPrevTy = nType ; + if ( CalcATypeFromDisk( CCompoB, m_Info[i].IciB[0].dU, ICurve::FROM_MINUS, + CCompoA, m_Info[i].IciA[0].dU, nType)) + // aggiorno il tipo di accostamento della curva B alla curva A + m_Info[i].IciB[0].nPrevTy = nType ; } // se il tipo di allontanamento per la curva A non è definito if ( m_Info[i].IciA[0].nNextTy == ICCT_NULL) { // devo studiare un intorno dell'intersezione int nType ; - if ( ! CalcATypeFromDisk( CCompoA, m_Info[i].IciA[0].dU, ICurve::FROM_PLUS, - CCompoB, m_Info[i].IciB[0].dU, nType)) - continue ; - // aggiorno il tipo di allontanamento della curva A dalla curva B - m_Info[i].IciA[0].nNextTy = nType ; + if ( CalcATypeFromDisk( CCompoA, m_Info[i].IciA[0].dU, ICurve::FROM_PLUS, + CCompoB, m_Info[i].IciB[0].dU, nType)) + // aggiorno il tipo di allontanamento della curva A dalla curva B + m_Info[i].IciA[0].nNextTy = nType ; } // se il tipo di allontanamento per la curva B non è definito if ( m_Info[i].IciB[0].nNextTy == ICCT_NULL) { // devo studiare un intorno dell'intersezione int nType ; - if ( ! CalcATypeFromDisk( CCompoB, m_Info[i].IciB[0].dU, ICurve::FROM_PLUS, - CCompoA, m_Info[i].IciA[0].dU, nType)) - continue ; - // aggiorno il tipo di allontanamento della curva B dalla curva A - m_Info[i].IciB[0].nNextTy = nType ; + if ( CalcATypeFromDisk( CCompoB, m_Info[i].IciB[0].dU, ICurve::FROM_PLUS, + CCompoA, m_Info[i].IciA[0].dU, nType)) + // aggiorno il tipo di allontanamento della curva B dalla curva A + m_Info[i].IciB[0].nNextTy = nType ; } } // in presenza di overlap @@ -503,31 +499,31 @@ IntersCrvCompoCrvCompo::IntersCrvCompoCrvCompo( const ICurveComposite& CCompoA, if ( m_Info[i].IciA[0].nPrevTy == ICCT_NULL) { // devo studiare un intorno dell'intersezione int nType ; - if ( ! CalcATypeFromDisk( CCompoA, m_Info[i].IciA[0].dU, ICurve::FROM_MINUS, - CCompoB, m_Info[i].IciB[0].dU, nType)) - continue ; - // aggiorno il tipo di accostamento della curva A alla curva B - m_Info[i].IciA[0].nPrevTy = nType ; - // aggiorno anche il corrispondente tipo sulla curva B - if ( m_Info[i].bCBOverEq) - m_Info[i].IciB[0].nPrevTy = GetDualIcct( nType) ; - else - m_Info[i].IciB[0].nNextTy = nType ; + if ( CalcATypeFromDisk( CCompoA, m_Info[i].IciA[0].dU, ICurve::FROM_MINUS, + CCompoB, m_Info[i].IciB[0].dU, nType)) { + // aggiorno il tipo di accostamento della curva A alla curva B + m_Info[i].IciA[0].nPrevTy = nType ; + // aggiorno anche il corrispondente tipo sulla curva B + if ( m_Info[i].bCBOverEq) + m_Info[i].IciB[0].nPrevTy = GetDualIcct( nType) ; + else + m_Info[i].IciB[0].nNextTy = nType ; + } } // se il tipo di allontanamento è non definito per la curva A if ( m_Info[i].IciA[1].nNextTy == ICCT_NULL) { // devo studiare un intorno dell'intersezione int nType ; - if ( ! CalcATypeFromDisk( CCompoA, m_Info[i].IciA[1].dU, ICurve::FROM_PLUS, - CCompoB, m_Info[i].IciB[1].dU, nType)) - continue ; - // aggiorno il tipo di allontanamento della curva A dalla curva B - m_Info[i].IciA[1].nNextTy = nType ; - // aggiorno anche il corrispondente tipo sulla curva B - if ( m_Info[i].bCBOverEq) - m_Info[i].IciB[1].nNextTy = GetDualIcct( nType) ; - else - m_Info[i].IciB[1].nPrevTy = nType ; + if ( CalcATypeFromDisk( CCompoA, m_Info[i].IciA[1].dU, ICurve::FROM_PLUS, + CCompoB, m_Info[i].IciB[1].dU, nType)) { + // aggiorno il tipo di allontanamento della curva A dalla curva B + m_Info[i].IciA[1].nNextTy = nType ; + // aggiorno anche il corrispondente tipo sulla curva B + if ( m_Info[i].bCBOverEq) + m_Info[i].IciB[1].nNextTy = GetDualIcct( nType) ; + else + m_Info[i].IciB[1].nPrevTy = nType ; + } } } }