void Trimline::getPrevPts( REAL vval, Backend& backend ) { reset(); swap(); append( tinterp ); assert( tinterp->param[1] >= vval ); register TrimVertex *q; for( q=jarcl.getprevpt(); q->param[1] >= vval; q=jarcl.getprevpt() ) { append( q ); } /* compute and copy pointer to final point on right hull */ if( interpvert( q, last(), binterp, vval ) ) { binterp->nuid = q->nuid; backend.triangle( last(), binterp, q ); append( binterp ); } jarcl.reverse(); (void) jarcl.getnextpt(); /* reset jarcl to proper position */ jarcl.reverse(); }
/*---------------------------------------------------------------------- * getNextPts - make arrays of pointers to trim points on left and right * hulls of trim strip. *---------------------------------------------------------------------- */ void Trimline::getNextPts( REAL vval, Backend& backend ) { reset(); swap(); append( tinterp ); assert( tinterp->param[1] >= vval ); register TrimVertex *p; for( p=jarcl.getnextpt() ; p->param[1] >= vval; p=jarcl.getnextpt() ) { append( p ); } /* compute and copy pointer to final point on left hull */ if( interpvert( last(), p, binterp, vval ) ) { binterp->nuid = p->nuid; backend.triangle( p, binterp, last() ); append( binterp ); } jarcl.reverse(); (void) jarcl.getprevpt(); /* reset jarcl to proper position */ jarcl.reverse(); }