/* 1st order top-bottom merge. */ int im_tbmerge1( IMAGE *ref, IMAGE *sec, IMAGE *out, int xr1, int yr1, int xs1, int ys1, int xr2, int yr2, int xs2, int ys2, int mwidth ) { return( rotjoin( ref, sec, out, im__tbmerge1, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, mwidth ) ); }
static int vips_mosaic1_build( VipsObject *object ) { VipsMosaic1 *mosaic1 = (VipsMosaic1 *) object; joinfn jfn; g_object_set( mosaic1, "out", vips_image_new(), NULL ); if( VIPS_OBJECT_CLASS( vips_mosaic1_parent_class )->build( object ) ) return( -1 ); if( !mosaic1->interpolate ) mosaic1->interpolate = vips_interpolate_new( "bilinear" ); jfn = mosaic1->direction == VIPS_DIRECTION_HORIZONTAL ? im__lrmerge1 : im__tbmerge1; if( mosaic1->search ) { if( rotjoin_search( mosaic1->ref, mosaic1->sec, mosaic1->out, jfn, mosaic1->bandno, mosaic1->xr1, mosaic1->yr1, mosaic1->xs1, mosaic1->ys1, mosaic1->xr2, mosaic1->yr2, mosaic1->xs2, mosaic1->ys2, mosaic1->hwindow, mosaic1->harea, 0, mosaic1->mblend ) ) return( -1 ); } else { if( rotjoin( mosaic1->ref, mosaic1->sec, mosaic1->out, jfn, mosaic1->xr1, mosaic1->yr1, mosaic1->xs1, mosaic1->ys1, mosaic1->xr2, mosaic1->yr2, mosaic1->xs2, mosaic1->ys2, mosaic1->mblend ) ) return( -1 ); } return( 0 ); }