diff --git a/VolTriZmapCreation.cpp b/VolTriZmapCreation.cpp index 26a925f..e554da0 100644 --- a/VolTriZmapCreation.cpp +++ b/VolTriZmapCreation.cpp @@ -238,8 +238,8 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double m_nNy[1] / m_nDexNumPBlock + ( m_nNy[1] % m_nDexNumPBlock >= m_nDexNumPBlock / 2 ? 1 : 0)) ; } - else { + else { m_MapFrame[1].Set( ptMapOrig, Y_AX, Z_AX, X_AX) ; m_MapFrame[2].Set( ptMapOrig, Z_AX, X_AX, Y_AX) ; @@ -308,36 +308,34 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double int nFind = 0 ; - // Numero di looop della componente connessa + // Numero di loop della componente connessa int nLoopNum = Surf.GetLoopCount( nChunk) ; // Ciclo sui loop della componente for ( int nLoop = 0 ; nLoop < nLoopNum ; ++ nLoop) { - ICurve * pCurve = Surf.GetLoop( nChunk, nLoop) ; + PtrOwner< ICurve> pCurve( Surf.GetLoop( nChunk, nLoop)) ; + if ( IsNull( pCurve)) + continue ; - if ( pCurve -> IsPointOn( ptP1, 10 * EPS_SMALL)) { + double dP1 ; + if ( pCurve->GetParamAtPoint( ptP1, dP1, 10 * EPS_SMALL)) { - double dP1 ; Point3d ptTemp1 ; Vector3d vtT1 ; - - pCurve -> GetParamAtPoint(ptP1, dP1) ; - pCurve -> GetPointTang( dP1, ICurve::FROM_MINUS, ptTemp1, vtT1) ; + pCurve->GetPointTang( dP1, ICurve::FROM_MINUS, ptTemp1, vtT1) ; vtN1 = vtT1 ^ Z_AX ; nFind ++ ; } - if ( pCurve -> IsPointOn( ptP2, 10 * EPS_SMALL)) { + double dP2 ; + if ( pCurve->GetParamAtPoint( ptP2, dP2, 10 * EPS_SMALL)) { - double dP2 ; Point3d ptTemp2 ; Vector3d vtT2 ; - - pCurve -> GetParamAtPoint(ptP2, dP2) ; - pCurve -> GetPointTang( dP2, ICurve::FROM_MINUS, ptTemp2, vtT2) ; + pCurve->GetPointTang( dP2, ICurve::FROM_MINUS, ptTemp2, vtT2) ; vtN2 = vtT2 ^ Z_AX ; @@ -352,7 +350,7 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double break ; } } - // Se trovata componente esco dal cilco + // Se trovata componente esco dal ciclo if ( nFind == 2) break ; } @@ -465,16 +463,16 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double for ( int nLoop = 0 ; nLoop < nLoopNum ; ++ nLoop) { - ICurve * pCurve = Surf.GetLoop( nChunk, nLoop) ; + PtrOwner< ICurve> pCurve( Surf.GetLoop( nChunk, nLoop)) ; + if ( IsNull( pCurve)) + continue ; - if ( pCurve -> IsPointOn( ptP1, 10 * EPS_SMALL)) { + double dP1 ; + if ( pCurve->GetParamAtPoint( ptP1, dP1, 10 * EPS_SMALL)) { - double dP1 ; Point3d ptTemp1 ; Vector3d vtT1, vtN1 ; - - pCurve -> GetParamAtPoint(ptP1, dP1) ; - pCurve -> GetPointTang( dP1, ICurve::FROM_MINUS, ptTemp1, vtT1) ; + pCurve->GetPointTang( dP1, ICurve::FROM_MINUS, ptTemp1, vtT1) ; vtN1 = vtT1 ^ Z_AX ; // Aggiorno normale inferiore al tratto di dexel @@ -483,14 +481,12 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double nFind ++ ; } - if ( pCurve -> IsPointOn( ptP2, 10 * EPS_SMALL)) { + double dP2 ; + if ( pCurve->GetParamAtPoint( ptP2, dP2, 10 * EPS_SMALL)) { - double dP2 ; Point3d ptTemp2 ; Vector3d vtT2, vtN2 ; - - pCurve -> GetParamAtPoint(ptP2, dP2) ; - pCurve -> GetPointTang( dP2, ICurve::FROM_MINUS, ptTemp2, vtT2) ; + pCurve->GetPointTang( dP2, ICurve::FROM_MINUS, ptTemp2, vtT2) ; vtN2 = vtT2 ^ Z_AX ; // Aggiorno normale superiore al tratto di dexel @@ -498,14 +494,15 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double nFind ++ ; } - // Se trovata componente esco dal cilco + + // Se trovata componente esco dal ciclo if ( nFind == 2) { - // Aggiorno il numero della componente connessa m_Values[1][nPos1][nCurrentSize].nCompo = nChunk + 1 ; } } - // Se trovata componente esco dal cilco + + // Se trovata componente esco dal ciclo if ( nFind == 2) break ; } @@ -519,14 +516,12 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double m_dMaxZ[0] = dDimZ ; if ( bTriDex) { - m_dMinZ[1] = 0 ; m_dMaxZ[1] = dLengthX ; m_dMinZ[2] = 0 ; m_dMaxZ[2] = dLengthY ; } else { - m_dMinZ[1] = 0 ; m_dMaxZ[1] = 0 ; m_dMinZ[2] = 0 ; @@ -552,7 +547,7 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double bool VolZmap::CreateFromTriMesh( const ISurfTriMesh& Surf, double dPrec, bool bTriDex) { - // Se la superficie non è chiusa non ha senso continuare + // Se la superficie non è chiusa non ha senso continuare if ( ! Surf.IsClosed()) return false ;