/* Calculate a mask element. */ void vips_reduce_make_mask( double *c, VipsKernel kernel, double shrink, double x ) { switch( kernel ) { case VIPS_KERNEL_NEAREST: c[0] = 1.0; break; case VIPS_KERNEL_LINEAR: c[0] = 1.0 - x; c[1] = x; break; case VIPS_KERNEL_CUBIC: calculate_coefficients_catmull( c, x ); break; case VIPS_KERNEL_LANCZOS2: calculate_coefficients_lanczos( c, 2, shrink, x ); break; case VIPS_KERNEL_LANCZOS3: calculate_coefficients_lanczos( c, 3, shrink, x ); break; default: g_assert_not_reached(); break; } }
/* Calculate a mask element. */ void vips_reduce_make_mask( double *c, VipsKernel kernel, double shrink, double x ) { switch( kernel ) { case VIPS_KERNEL_NEAREST: c[0] = 1.0; break; case VIPS_KERNEL_LINEAR: calculate_coefficients_triangle( c, shrink, x ); break; case VIPS_KERNEL_CUBIC: /* Catmull-Rom. */ calculate_coefficients_cubic( c, shrink, x, 0.0, 0.5 ); break; case VIPS_KERNEL_MITCHELL: calculate_coefficients_cubic( c, shrink, x, 1.0 / 3.0, 1.0 / 3.0 ); break; case VIPS_KERNEL_LANCZOS2: calculate_coefficients_lanczos( c, 2, shrink, x ); break; case VIPS_KERNEL_LANCZOS3: calculate_coefficients_lanczos( c, 3, shrink, x ); break; default: g_assert_not_reached(); break; } }