diff --git a/CalcPocketing.cpp b/CalcPocketing.cpp index 08526e2..3044876 100644 --- a/CalcPocketing.cpp +++ b/CalcPocketing.cpp @@ -7027,8 +7027,7 @@ GetConformalLinkForOpenCrv( const ICurveComposite* pCrvOffs0, const ICurveCompos //---------------------------------------------------------------------------- static bool GetConformalLink( ICurveComposite* pCrvOffs0, ICurveComposite* pCrvOffs1, PocketParams& PockParams, - const ICRVCOMPOPOVECTOR& vCrvClassBorder, const ICRVCOMPOPOVECTOR& vCrvExtendedBorders, - ICurveComposite* pCrvLink) + const ICRVCOMPOPOVECTOR& vCrvClassBorder, ICurveComposite* pCrvLink) { // controllo validità delle due curve di Offset if ( pCrvOffs0 == nullptr || ! pCrvOffs0->IsValid() || @@ -7065,7 +7064,7 @@ GetConformalLink( ICurveComposite* pCrvOffs0, ICurveComposite* pCrvOffs1, Pocket // cerco il chunk ipotetico che contiene le due curve di Offset INTVECTOR vIndOffs0, vIndOffs1 ; - if ( ! GetIndOfHypoteticalChunk( vCrvExtendedBorders, pCrvOffs0, pCrvOffs1, vIndOffs0, vIndOffs1)) + if ( ! GetIndOfHypoteticalChunk( vCrvClassBorder, pCrvOffs0, pCrvOffs1, vIndOffs0, vIndOffs1)) return false ; // se appartengono a due chunk diversi, allora il link non esiste if ( int( vIndOffs0.size()) != int( vIndOffs1.size())) @@ -7080,7 +7079,7 @@ GetConformalLink( ICurveComposite* pCrvOffs0, ICurveComposite* pCrvOffs1, Pocket // se appartenenti allo stesso chunk, allora creo link lineare ICRVCOMPOPOVECTOR vCrvChunk ; for ( int i = 0 ; i < int( vIndOffs0.size()) ; ++ i) - vCrvChunk.emplace_back( vCrvExtendedBorders[vIndOffs0[i]]->Clone()) ; + vCrvChunk.emplace_back( vCrvClassBorder[vIndOffs0[i]]->Clone()) ; if ( ! CutCurveToConnect( pCrvOffs0, pCrvOffs1, vCrvChunk, PockParams, ( ( bOpen0 || bFirstIterOffs0) ? 0. : 10 * EPS_SMALL), ( ( bOpen1 || bFirstIterOffs1) ? 0. : 10 * EPS_SMALL), @@ -7521,19 +7520,17 @@ CalcConformalOffsAndLinks( VICRVCOMPOPOVECTOR& vvCrvOffs, const ISurfFlatRegion* /* NB. I link che collegano due curve di Offset aperte devono partire dalla prima e, seguendo il - bordo della regione di classificazione ( pSfrClass) arrivano alla seconda. + bordo della regione di classificazione ( pSfrClass) arrivare alla seconda. */ - ICRVCOMPOPOVECTOR vCrvSfrClass ; - if ( ! GetSfrCrvCompoLoops( pSfrClass, vCrvSfrClass)) - return false ; /* NB. I link che collegano due curve di Offset chiuse tra di loro vengono calcolati esattamente come per i percorsi SPIRAL, pertanto devo definire un insieme di curve di primo Offset sui quali smussare i Link per evitare di uscire dalla regione di svuotatura */ - ICRVCOMPOPOVECTOR vCrvSfrExtended ; - if ( ! GetConformalBordersCrvs( pSfrChunk, PockParams, vCrvSfrExtended)) + ICRVCOMPOPOVECTOR vCrvSfrClass ; + if ( ! GetSfrCrvCompoLoops( pSfrClass, vCrvSfrClass)) return false ; + /* NB. Se POCKET_CONFORMAL_ZIGZAG : - vCrvCompoOffs contiene gli Offset ordinati @@ -7588,7 +7585,7 @@ CalcConformalOffsAndLinks( VICRVCOMPOPOVECTOR& vvCrvOffs, const ISurfFlatRegion* if ( IsNull( pCrvLink)) return false ; // se non calcolabile, allora retroazione, altrimenti lo memorizzo - if ( ! GetConformalLink( vCrvOffs[i], vCrvOffs[i+1], PockParams, vCrvSfrClass, vCrvSfrExtended, pCrvLink) || + if ( ! GetConformalLink( vCrvOffs[i], vCrvOffs[i+1], PockParams, vCrvSfrClass, pCrvLink) || IsNull( pCrvLink) || ! pCrvLink->IsValid() || pCrvLink->GetCurveCount() == 0) vCrvLink.resize( int( vCrvLink.size()) + 1) ; else