public void renderAll() { // todo TO make this faster first apply inside the region which can process the fast border // then do the slower border thingy for( int y = y0; y < y1; y++ ) { int indexDst = dstImg.startIndex + dstImg.stride*y + x0; for( int x = x0; x < x1; x++ , indexDst++ ) { Point2D_F32 s = map[indexDst]; assign(indexDst,interp.get(s.x, s.y)); } } }
public void applyOnlyInside() { float maxWidth = srcImg.getWidth()-1; float maxHeight = srcImg.getHeight()-1; for( int y = y0; y < y1; y++ ) { int indexDst = dstImg.startIndex + dstImg.stride*y + x0; for( int x = x0; x < x1; x++ , indexDst++ ) { Point2D_F32 s = map[indexDst]; if( s.x >= 0 && s.x <= maxWidth && s.y >= 0 && s.y <= maxHeight ) { assign(indexDst,interp.get(s.x, s.y)); } } } }
public void applyOnlyInside( GrayU8 mask ) { float maxWidth = srcImg.getWidth()-1; float maxHeight = srcImg.getHeight()-1; for( int y = y0; y < y1; y++ ) { int indexDst = dstImg.startIndex + dstImg.stride*y + x0; int indexMsk = mask.startIndex + mask.stride*y + x0; for( int x = x0; x < x1; x++ , indexDst++ , indexMsk++ ) { Point2D_F32 s = map[indexDst]; if( s.x >= 0 && s.x <= maxWidth && s.y >= 0 && s.y <= maxHeight ) { assign(indexDst,interp.get(s.x, s.y)); mask.data[indexMsk] = 1; } else { mask.data[indexMsk] = 0; } } } }
public void renderAll( GrayU8 mask ) { float maxWidth = srcImg.getWidth()-1; float maxHeight = srcImg.getHeight()-1; for( int y = y0; y < y1; y++ ) { int indexDst = dstImg.startIndex + dstImg.stride*y + x0; int indexMsk = mask.startIndex + mask.stride*y + x0; for( int x = x0; x < x1; x++ , indexDst++ , indexMsk++ ) { Point2D_F32 s = map[indexDst]; assign(indexDst,interp.get(s.x, s.y)); if( s.x >= 0 && s.x <= maxWidth && s.y >= 0 && s.y <= maxHeight ) { mask.data[indexMsk] = 1; } else { mask.data[indexMsk] = 0; } } } }