bool CSuperscape::MakeRasH() { // Collect strip tiles vector<int> vid; int w1, w2, h1, h2; w1 = int(Bxw * 0.45); w2 = Bxc + w1; w1 = Bxc - w1; h1 = (scr.stripwidth * gH)/2; h2 = Byc + h1; h1 = Byc - h1; for( int i = is0; i < isN; ++i ) { const CUTile& U = TS.vtil[i]; if( U.T.t[2] + gW > w1 && U.T.t[2] < w2 && U.T.t[5] + gH > h1 && U.T.t[5] < h2 ) { vid.push_back( i ); } } ras = TS.Scape( ws, hs, x0, y0, vid, inv_scl, 1, 0, scr.legendremaxorder, scr.rendersdevcnts, scr.maskoutresin ); return (ras != NULL); }
bool CSuperscape::MakeRasA() { ras = TS.Scape( ws, hs, x0, y0, vID, inv_scl, 1, 0, scr.legendremaxorder, scr.rendersdevcnts, scr.maskoutresin, scr.blockslots ); return (ras != NULL); }
bool CSuperscape::MakeWholeRaster() { vector<int> vid( isN - is0 ); for( int i = is0; i < isN; ++i ) vid[i - is0] = i; ras = TS.Scape( ws, hs, x0, y0, vid, inv_scl, 1, 0, scr.legendremaxorder, scr.rendersdevcnts, scr.maskoutresin ); return (ras != NULL); }
bool CSuperscape::MakeRasB( const DBox &Abb ) { vector<int> vid; int W2 = gW/2, H2 = gH/2; for( int i = is0; i < isN; ++i ) { const CUTile& U = TS.vtil[i]; Point p( W2, H2 ); U.T.Transform( p ); if( p.x >= Abb.L && p.x <= Abb.R && p.y >= Abb.B && p.y <= Abb.T ) { vid.push_back( i ); } } if( vid.size() < 0.05 * gDat.ntil ) { fprintf( flog, "Low B tile count [%ld] for z=%d.\n", vid.size(), TS.vtil[is0].z ); return false; } ras = TS.Scape( ws, hs, x0, y0, vid, inv_scl, 1, 0, scr.legendremaxorder, scr.rendersdevcnts, scr.maskoutresin, scr.blockslots ); if( !ras ) { fprintf( flog, "Empty B scape for z=%d.\n", TS.vtil[is0].z ); return false; } return (ras != NULL); }