rename convf to conv_f to help overloading

This commit is contained in:
John Cupitt 2009-11-13 12:01:36 +00:00
parent 89845f892e
commit 73fba1c2ea
14 changed files with 706 additions and 933 deletions

View File

@ -3,6 +3,9 @@
- im_conv() / im_convf() didn't like all-zero masks - im_conv() / im_convf() didn't like all-zero masks
- small updates to im_convf() from im_conv() - small updates to im_convf() from im_conv()
- im_read_imask() produced an incorrect error message if passed a doublemask - im_read_imask() produced an incorrect error message if passed a doublemask
- rename im_convf(), im_convsepf() as _f()
- vips.c drops _f suffix when overloading
- regenerate C++ binding, don't make deprecated package
9/11/09 started 7.20.0 9/11/09 started 7.20.0
- removed vips-7.x.spec.in, shouldn't really have this in SVN - removed vips-7.x.spec.in, shouldn't really have this in SVN

View File

@ -5,9 +5,9 @@ libconvolution_la_SOURCES = \
im_addgnoise.c \ im_addgnoise.c \
im_compass.c \ im_compass.c \
im_conv.c \ im_conv.c \
im_convf.c \ im_conv_f.c \
im_convsep.c \ im_convsep.c \
im_convsepf.c \ im_convsep_f.c \
im_contrast_surface.c \ im_contrast_surface.c \
im_fastcor.c \ im_fastcor.c \
im_gradcor.c \ im_gradcor.c \

View File

@ -197,23 +197,23 @@ static im_function conv_desc = {
conv_imask /* Arg list */ conv_imask /* Arg list */
}; };
/* Call im_convf via arg vector. /* Call im_conv_f via arg vector.
*/ */
static int static int
convf_vec( im_object *argv ) conv_f_vec( im_object *argv )
{ {
im_mask_object *mo = argv[2]; im_mask_object *mo = argv[2];
return( im_convf( argv[0], argv[1], mo->mask ) ); return( im_conv_f( argv[0], argv[1], mo->mask ) );
} }
/* Description of im_convf. /* Description of im_conv_f.
*/ */
static im_function convf_desc = { static im_function conv_f_desc = {
"im_convf", /* Name */ "im_conv_f", /* Name */
"convolve, with DOUBLEMASK", "convolve, with DOUBLEMASK",
IM_FN_TRANSFORM | IM_FN_PIO, /* Flags */ IM_FN_TRANSFORM | IM_FN_PIO, /* Flags */
convf_vec, /* Dispatch function */ conv_f_vec, /* Dispatch function */
IM_NUMBER( conv_dmask ), /* Size of arg list */ IM_NUMBER( conv_dmask ), /* Size of arg list */
conv_dmask /* Arg list */ conv_dmask /* Arg list */
}; };
@ -239,23 +239,23 @@ static im_function convsep_desc = {
conv_imask /* Arg list */ conv_imask /* Arg list */
}; };
/* Call im_convsepf via arg vector. /* Call im_convsep_f via arg vector.
*/ */
static int static int
convsepf_vec( im_object *argv ) convsep_f_vec( im_object *argv )
{ {
im_mask_object *mo = argv[2]; im_mask_object *mo = argv[2];
return( im_convsepf( argv[0], argv[1], mo->mask ) ); return( im_convsep_f( argv[0], argv[1], mo->mask ) );
} }
/* Description of im_convsepf. /* Description of im_convsep_f.
*/ */
static im_function convsepf_desc = { static im_function convsep_f_desc = {
"im_convsepf", /* Name */ "im_convsep_f", /* Name */
"seperable convolution, with DOUBLEMASK", "seperable convolution, with DOUBLEMASK",
IM_FN_PIO | IM_FN_TRANSFORM, /* Flags */ IM_FN_PIO | IM_FN_TRANSFORM, /* Flags */
convsepf_vec, /* Dispatch function */ convsep_f_vec, /* Dispatch function */
IM_NUMBER( conv_dmask ), /* Size of arg list */ IM_NUMBER( conv_dmask ), /* Size of arg list */
conv_dmask /* Arg list */ conv_dmask /* Arg list */
}; };
@ -403,9 +403,9 @@ static im_function *convol_list[] = {
&compass_desc, &compass_desc,
&contrast_surface_desc, &contrast_surface_desc,
&conv_desc, &conv_desc,
&convf_desc, &conv_f_desc,
&convsep_desc, &convsep_desc,
&convsepf_desc, &convsep_f_desc,
&fastcor_desc, &fastcor_desc,
&gradcor_desc, &gradcor_desc,
&gradient_desc, &gradient_desc,

View File

@ -3,7 +3,7 @@
* @(#) except IM_BANDFMT_DOUBLE, which gives IM_BANDFMT_DOUBLE. * @(#) except IM_BANDFMT_DOUBLE, which gives IM_BANDFMT_DOUBLE.
* @(#) * @(#)
* @(#) int * @(#) int
* @(#) im_convf( in, out, mask ) * @(#) im_conv_f( in, out, mask )
* @(#) IMAGE *in, *out; * @(#) IMAGE *in, *out;
* @(#) DOUBLEMASK *mask; * @(#) DOUBLEMASK *mask;
* @(#) * @(#)
@ -40,6 +40,9 @@
* - tiny speedups and cleanups * - tiny speedups and cleanups
* - add restrict, though it doesn't seem to help gcc * - add restrict, though it doesn't seem to help gcc
* - add mask-all-zero check * - add mask-all-zero check
* 13/11/09
* - rename as im_conv_f() to make it easier to vips.c to make the
* overloaded version
*/ */
/* /*
@ -309,7 +312,7 @@ conv_gen( REGION *or, void *vseq, void *a, void *b )
} }
int int
im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ) im_conv_f_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{ {
Conv *conv; Conv *conv;
@ -338,7 +341,7 @@ im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
out->Xsize -= mask->xsize - 1; out->Xsize -= mask->xsize - 1;
out->Ysize -= mask->ysize - 1; out->Ysize -= mask->ysize - 1;
if( out->Xsize <= 0 || out->Ysize <= 0 ) { if( out->Xsize <= 0 || out->Ysize <= 0 ) {
im_error( "im_convf", "%s", _( "image too small for mask" ) ); im_error( "im_conv_f", "%s", _( "image too small for mask" ) );
return( -1 ); return( -1 );
} }
@ -360,15 +363,15 @@ im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
/* The above, with a border to make out the same size as in. /* The above, with a border to make out the same size as in.
*/ */
int int
im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ) im_conv_f( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{ {
IMAGE *t1 = im_open_local( out, "im_convf intermediate", "p" ); IMAGE *t1 = im_open_local( out, "im_conv_f intermediate", "p" );
if( !t1 || if( !t1 ||
im_embed( in, t1, 1, mask->xsize / 2, mask->ysize / 2, im_embed( in, t1, 1, mask->xsize / 2, mask->ysize / 2,
in->Xsize + mask->xsize - 1, in->Xsize + mask->xsize - 1,
in->Ysize + mask->ysize - 1 ) || in->Ysize + mask->ysize - 1 ) ||
im_convf_raw( t1, out, mask ) ) im_conv_f_raw( t1, out, mask ) )
return( -1 ); return( -1 );
out->Xoffset = 0; out->Xoffset = 0;

View File

@ -3,7 +3,7 @@
* @(#) except IM_BANDFMT_DOUBLE, which gives IM_BANDFMT_DOUBLE. * @(#) except IM_BANDFMT_DOUBLE, which gives IM_BANDFMT_DOUBLE.
* @(#) Separable mask of sizes 1xN or Nx1 * @(#) Separable mask of sizes 1xN or Nx1
* @(#) * @(#)
* @(#) int im_convsepf( in, out, mask ) * @(#) int im_convsep_f( in, out, mask )
* @(#) IMAGE *in, *out; * @(#) IMAGE *in, *out;
* @(#) DOUBLEMASK *mask; details in mask.h * @(#) DOUBLEMASK *mask; details in mask.h
* @(#) * @(#)
@ -279,25 +279,25 @@ conv_gen( REGION *or, void *vseq, void *a, void *b )
} }
int int
im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ) im_convsep_f_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{ {
Conv *conv; Conv *conv;
/* Check parameters. /* Check parameters.
*/ */
if( !in || in->Coding != IM_CODING_NONE || im_iscomplex( in ) ) { if( !in || in->Coding != IM_CODING_NONE || im_iscomplex( in ) ) {
im_error( "im_convsepf", im_error( "im_convsep_f",
"%s", _( "non-complex uncoded only" ) ); "%s", _( "non-complex uncoded only" ) );
return( -1 ); return( -1 );
} }
if( !mask || mask->xsize > 1000 || mask->ysize > 1000 || if( !mask || mask->xsize > 1000 || mask->ysize > 1000 ||
mask->xsize <= 0 || mask->ysize <= 0 || !mask->coeff || mask->xsize <= 0 || mask->ysize <= 0 || !mask->coeff ||
mask->scale == 0 ) { mask->scale == 0 ) {
im_error( "im_convsepf", "%s", _( "bad mask parameters" ) ); im_error( "im_convsep_f", "%s", _( "bad mask parameters" ) );
return( -1 ); return( -1 );
} }
if( mask->xsize != 1 && mask->ysize != 1 ) { if( mask->xsize != 1 && mask->ysize != 1 ) {
im_error( "im_convsepf", im_error( "im_convsep_f",
"%s", _( "expect 1xN or Nx1 input mask" ) ); "%s", _( "expect 1xN or Nx1 input mask" ) );
return( -1 ); return( -1 );
} }
@ -316,7 +316,7 @@ im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
out->Xsize -= conv->size - 1; out->Xsize -= conv->size - 1;
out->Ysize -= conv->size - 1; out->Ysize -= conv->size - 1;
if( out->Xsize <= 0 || out->Ysize <= 0 ) { if( out->Xsize <= 0 || out->Ysize <= 0 ) {
im_error( "im_convsepf", im_error( "im_convsep_f",
"%s", _( "image too small for mask" ) ); "%s", _( "image too small for mask" ) );
return( -1 ); return( -1 );
} }
@ -336,16 +336,16 @@ im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
/* The above, with a border to make out the same size as in. /* The above, with a border to make out the same size as in.
*/ */
int int
im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ) im_convsep_f( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{ {
IMAGE *t1 = im_open_local( out, "im_convsepf intermediate", "p" ); IMAGE *t1 = im_open_local( out, "im_convsep_f intermediate", "p" );
int size = mask->xsize * mask->ysize; int size = mask->xsize * mask->ysize;
if( !t1 || if( !t1 ||
im_embed( in, t1, 1, size / 2, size / 2, im_embed( in, t1, 1, size / 2, size / 2,
in->Xsize + size - 1, in->Xsize + size - 1,
in->Ysize + size - 1 ) || in->Ysize + size - 1 ) ||
im_convsepf_raw( t1, out, mask ) ) im_convsep_f_raw( t1, out, mask ) )
return( -1 ); return( -1 );
out->Xoffset = 0; out->Xoffset = 0;

View File

@ -1168,6 +1168,48 @@ static im_function dilate_raw_desc = {
erode_args /* Arg list */ erode_args /* Arg list */
}; };
/* Call im_convsepf via arg vector.
*/
static int
convsepf_vec( im_object *argv )
{
im_mask_object *mo = argv[2];
return( im_convsepf( argv[0], argv[1], mo->mask ) );
}
/* Description of im_convsepf.
*/
static im_function convsepf_desc = {
"im_convsepf", /* Name */
"seperable convolution, with DOUBLEMASK",
IM_FN_PIO | IM_FN_TRANSFORM, /* Flags */
convsepf_vec, /* Dispatch function */
IM_NUMBER( conv_dmask ), /* Size of arg list */
conv_dmask /* Arg list */
};
/* Call im_convf via arg vector.
*/
static int
convf_vec( im_object *argv )
{
im_mask_object *mo = argv[2];
return( im_convf( argv[0], argv[1], mo->mask ) );
}
/* Description of im_convf.
*/
static im_function convf_desc = {
"im_convf", /* Name */
"convolve, with DOUBLEMASK",
IM_FN_TRANSFORM | IM_FN_PIO, /* Flags */
convf_vec, /* Dispatch function */
IM_NUMBER( conv_dmask ), /* Size of arg list */
conv_dmask /* Arg list */
};
/* Package up all these functions. /* Package up all these functions.
*/ */
static im_function *deprecated_list[] = { static im_function *deprecated_list[] = {
@ -1186,6 +1228,8 @@ static im_function *deprecated_list[] = {
&clip2f_desc, &clip2f_desc,
&clip2i_desc, &clip2i_desc,
&convsub_desc, &convsub_desc,
&convf_desc,
&convsepf_desc,
&clip2s_desc, &clip2s_desc,
&clip2ui_desc, &clip2ui_desc,
&insertplaceset_desc, &insertplaceset_desc,

View File

@ -232,3 +232,27 @@ im_segment( IMAGE *test, IMAGE *mask, int *segments )
{ {
return( im_label_regions( test, mask, segments ) ); return( im_label_regions( test, mask, segments ) );
} }
int
im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{
return( im_conv_f( in, out, mask ) );
}
int
im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{
return( im_conv_f_raw( in, out, mask ) );
}
int
im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{
return( im_convsep_f( in, out, mask ) );
}
int
im_convsepf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{
return( im_convsep_f_raw( in, out, mask ) );
}

View File

@ -38,9 +38,9 @@ extern "C" {
#endif /*__cplusplus*/ #endif /*__cplusplus*/
int im_conv( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_conv( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_conv_f( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_convsep( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_convsep( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_convsep_f( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_compass( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_compass( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_gradient( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_gradient( IMAGE *in, IMAGE *out, INTMASK *mask );

View File

@ -352,6 +352,8 @@ int im_resize_linear( IMAGE *, IMAGE *, int, int );
int im_line( IMAGE *, int, int, int, int, int ); int im_line( IMAGE *, int, int, int, int, int );
int im_segment( IMAGE *test, IMAGE *mask, int *segments ); int im_segment( IMAGE *test, IMAGE *mask, int *segments );
int im_convf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_convsepf( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_conv_raw( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_conv_raw( IMAGE *in, IMAGE *out, INTMASK *mask );
int im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask ); int im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_convsep_raw( IMAGE *in, IMAGE *out, INTMASK *mask ); int im_convsep_raw( IMAGE *in, IMAGE *out, INTMASK *mask );

View File

@ -21,7 +21,15 @@ libvipsCC_la_LDFLAGS = \
libvipsCC_la_LIBADD = \ libvipsCC_la_LIBADD = \
$(top_builddir)/libvips/libvips.la @VIPS_LIBS@ $(top_builddir)/libvips/libvips.la @VIPS_LIBS@
.PHONEY:
vipsc++.cc: vipsc++.cc:
vips --cppc all > vipsc++.cc packages=`vips --list packages | \
awk '{if($$1!="deprecated") print $$1}'` ; \
echo > vipsc++.cc ; \
for name in $$packages; do \
echo "// bodies for package $$name" >> vipsc++.cc ; \
vips --cppc $$name >> vipsc++.cc ; \
echo >> vipsc++.cc ; \
done
EXTRA_DIST = vipsc++.cc EXTRA_DIST = vipsc++.cc

View File

@ -7,5 +7,13 @@ pkginclude_HEADERS = \
vips \ vips \
vipsc++.h vipsc++.h
.PHONEY:
vipsc++.h: vipsc++.h:
vips --cpph all > vipsc++.h packages=`vips --list packages | \
awk '{if($$1!="deprecated") print $$1}'` ; \
echo > vipsc++.h ; \
for name in $$packages; do \
echo "// headers for package $$name" >> vipsc++.h ; \
vips --cpph $$name >> vipsc++.h ; \
echo >> vipsc++.h ; \
done

View File

@ -1,5 +1,7 @@
// headers for package arithmetic
// this file automatically generated from // this file automatically generated from
// VIPS library 7.19.0-Mon Jun 29 15:52:56 BST 2009 // VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage abs() throw( VError ); VImage abs() throw( VError );
VImage acos() throw( VError ); VImage acos() throw( VError );
VImage add( VImage ) throw( VError ); VImage add( VImage ) throw( VError );
@ -9,7 +11,6 @@ double avg() throw( VError );
double point_bilinear( double, double, int ) throw( VError ); double point_bilinear( double, double, int ) throw( VError );
VImage bandmean() throw( VError ); VImage bandmean() throw( VError );
VImage ceil() throw( VError ); VImage ceil() throw( VError );
VImage cmulnorm( VImage ) throw( VError );
VImage cos() throw( VError ); VImage cos() throw( VError );
VImage cross_phase( VImage ) throw( VError ); VImage cross_phase( VImage ) throw( VError );
double deviate() throw( VError ); double deviate() throw( VError );
@ -18,14 +19,11 @@ VImage exp10() throw( VError );
VImage expn( double ) throw( VError ); VImage expn( double ) throw( VError );
VImage expn( std::vector<double> ) throw( VError ); VImage expn( std::vector<double> ) throw( VError );
VImage exp() throw( VError ); VImage exp() throw( VError );
VImage fav4( VImage, VImage, VImage ) throw( VError );
VImage floor() throw( VError ); VImage floor() throw( VError );
VImage gadd( double, double, VImage, double ) throw( VError );
VImage invert() throw( VError ); VImage invert() throw( VError );
VImage lin( double, double ) throw( VError ); VImage lin( double, double ) throw( VError );
static VImage linreg( std::vector<VImage>, std::vector<double> ) throw( VError ); static VImage linreg( std::vector<VImage>, std::vector<double> ) throw( VError );
VImage lin( std::vector<double>, std::vector<double> ) throw( VError ); VImage lin( std::vector<double>, std::vector<double> ) throw( VError );
VImage litecor( VImage, int, double ) throw( VError );
VImage log10() throw( VError ); VImage log10() throw( VError );
VImage log() throw( VError ); VImage log() throw( VError );
double max() throw( VError ); double max() throw( VError );
@ -37,6 +35,7 @@ std::complex<double> minpos() throw( VError );
VImage multiply( VImage ) throw( VError ); VImage multiply( VImage ) throw( VError );
VImage pow( double ) throw( VError ); VImage pow( double ) throw( VError );
VImage pow( std::vector<double> ) throw( VError ); VImage pow( std::vector<double> ) throw( VError );
VImage recomb( VDMask ) throw( VError );
VImage remainder( VImage ) throw( VError ); VImage remainder( VImage ) throw( VError );
VImage remainder( double ) throw( VError ); VImage remainder( double ) throw( VError );
VImage remainder( std::vector<double> ) throw( VError ); VImage remainder( std::vector<double> ) throw( VError );
@ -46,6 +45,10 @@ VImage sin() throw( VError );
VDMask stats() throw( VError ); VDMask stats() throw( VError );
VImage subtract( VImage ) throw( VError ); VImage subtract( VImage ) throw( VError );
VImage tan() throw( VError ); VImage tan() throw( VError );
// headers for package boolean
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage andimage( VImage ) throw( VError ); VImage andimage( VImage ) throw( VError );
VImage andimage( int ) throw( VError ); VImage andimage( int ) throw( VError );
VImage andimage( std::vector<double> ) throw( VError ); VImage andimage( std::vector<double> ) throw( VError );
@ -55,10 +58,20 @@ VImage orimage( std::vector<double> ) throw( VError );
VImage eorimage( VImage ) throw( VError ); VImage eorimage( VImage ) throw( VError );
VImage eorimage( int ) throw( VError ); VImage eorimage( int ) throw( VError );
VImage eorimage( std::vector<double> ) throw( VError ); VImage eorimage( std::vector<double> ) throw( VError );
VImage shiftleft( std::vector<double> ) throw( VError );
VImage shiftleft( int ) throw( VError ); VImage shiftleft( int ) throw( VError );
VImage shiftright( std::vector<double> ) throw( VError );
VImage shiftright( int ) throw( VError ); VImage shiftright( int ) throw( VError );
// headers for package cimg
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage greyc( int, double, double, double, double, double, double, double, double, int, int ) throw( VError ); VImage greyc( int, double, double, double, double, double, double, double, double, int, int ) throw( VError );
VImage greyc_mask( VImage, int, double, double, double, double, double, double, double, double, int, int ) throw( VError ); VImage greyc_mask( VImage, int, double, double, double, double, double, double, double, double, int, int ) throw( VError );
// headers for package colour
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage LCh2Lab() throw( VError ); VImage LCh2Lab() throw( VError );
VImage LCh2UCS() throw( VError ); VImage LCh2UCS() throw( VError );
VImage Lab2LCh() throw( VError ); VImage Lab2LCh() throw( VError );
@ -94,7 +107,6 @@ VImage disp2Lab( VDisplay ) throw( VError );
VImage disp2XYZ( VDisplay ) throw( VError ); VImage disp2XYZ( VDisplay ) throw( VError );
VImage float2rad() throw( VError ); VImage float2rad() throw( VError );
VImage icc_ac2rc( char* ) throw( VError ); VImage icc_ac2rc( char* ) throw( VError );
VImage icc_export( char*, int ) throw( VError );
VImage icc_export_depth( int, char*, int ) throw( VError ); VImage icc_export_depth( int, char*, int ) throw( VError );
VImage icc_import( char*, int ) throw( VError ); VImage icc_import( char*, int ) throw( VError );
VImage icc_import_embedded( int ) throw( VError ); VImage icc_import_embedded( int ) throw( VError );
@ -102,6 +114,12 @@ VImage icc_transform( char*, char*, int ) throw( VError );
VImage lab_morph( VDMask, double, double, double, double ) throw( VError ); VImage lab_morph( VDMask, double, double, double, double ) throw( VError );
VImage rad2float() throw( VError ); VImage rad2float() throw( VError );
VImage sRGB2XYZ() throw( VError ); VImage sRGB2XYZ() throw( VError );
// headers for package conversion
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage addgnoise( double ) throw( VError );
static VImage gaussnoise( int, int, double, double ) throw( VError );
VImage bandjoin( VImage ) throw( VError ); VImage bandjoin( VImage ) throw( VError );
static VImage black( int, int, int ) throw( VError ); static VImage black( int, int, int ) throw( VError );
VImage c2amph() throw( VError ); VImage c2amph() throw( VError );
@ -109,21 +127,13 @@ VImage c2imag() throw( VError );
VImage c2ps() throw( VError ); VImage c2ps() throw( VError );
VImage c2real() throw( VError ); VImage c2real() throw( VError );
VImage c2rect() throw( VError ); VImage c2rect() throw( VError );
VImage clip2c() throw( VError );
VImage clip2cm() throw( VError );
VImage clip2d() throw( VError );
VImage clip2dcm() throw( VError );
VImage clip2f() throw( VError );
VImage clip2fmt( int ) throw( VError );
VImage clip2i() throw( VError );
VImage clip2s() throw( VError );
VImage clip2ui() throw( VError );
VImage clip2us() throw( VError );
VImage clip() throw( VError ); VImage clip() throw( VError );
VImage clip2fmt( int ) throw( VError );
VImage copy() throw( VError ); VImage copy() throw( VError );
VImage copy_file() throw( VError );
VImage copy_morph( int, int, int ) throw( VError ); VImage copy_morph( int, int, int ) throw( VError );
VImage copy_swap() throw( VError ); VImage copy_swap() throw( VError );
VImage copy_set( int, double, double, int, int ) throw( VError ); VImage copy_( int, double, double, int, int ) throw( VError );
VImage extract_area( int, int, int, int ) throw( VError ); VImage extract_area( int, int, int, int ) throw( VError );
VImage extract_areabands( int, int, int, int, int, int ) throw( VError ); VImage extract_areabands( int, int, int, int, int, int ) throw( VError );
VImage extract_band( int ) throw( VError ); VImage extract_band( int ) throw( VError );
@ -135,12 +145,13 @@ VImage flipver() throw( VError );
static VImage gbandjoin( std::vector<VImage> ) throw( VError ); static VImage gbandjoin( std::vector<VImage> ) throw( VError );
VImage grid( int, int, int ) throw( VError ); VImage grid( int, int, int ) throw( VError );
VImage insert( VImage, int, int ) throw( VError ); VImage insert( VImage, int, int ) throw( VError );
VImage insert( VImage, std::vector<int>, std::vector<int> ) throw( VError );
VImage insert_noexpand( VImage, int, int ) throw( VError ); VImage insert_noexpand( VImage, int, int ) throw( VError );
VImage embed( int, int, int, int, int ) throw( VError );
VImage lrjoin( VImage ) throw( VError ); VImage lrjoin( VImage ) throw( VError );
static VImage mask2vips( VDMask ) throw( VError ); static VImage mask2vips( VDMask ) throw( VError );
VImage msb() throw( VError ); VImage msb() throw( VError );
VImage msb_band( int ) throw( VError ); VImage msb_band( int ) throw( VError );
VImage recomb( VDMask ) throw( VError );
VImage replicate( int, int ) throw( VError ); VImage replicate( int, int ) throw( VError );
VImage ri2c( VImage ) throw( VError ); VImage ri2c( VImage ) throw( VError );
VImage rot180() throw( VError ); VImage rot180() throw( VError );
@ -148,52 +159,35 @@ VImage rot270() throw( VError );
VImage rot90() throw( VError ); VImage rot90() throw( VError );
VImage scale() throw( VError ); VImage scale() throw( VError );
VImage scaleps() throw( VError ); VImage scaleps() throw( VError );
VImage rightshift_size( int, int, int ) throw( VError );
VImage slice( double, double ) throw( VError );
VImage subsample( int, int ) throw( VError ); VImage subsample( int, int ) throw( VError );
char* system( char* ) throw( VError ); char* system( char* ) throw( VError );
VImage tbjoin( VImage ) throw( VError ); VImage tbjoin( VImage ) throw( VError );
static VImage text( char*, char*, int, int, int ) throw( VError ); static VImage text( char*, char*, int, int, int ) throw( VError );
VImage thresh( double ) throw( VError );
VDMask vips2mask() throw( VError ); VDMask vips2mask() throw( VError );
VImage wrap( int, int ) throw( VError ); VImage wrap( int, int ) throw( VError );
VImage zoom( int, int ) throw( VError ); VImage zoom( int, int ) throw( VError );
VImage addgnoise( double ) throw( VError );
// headers for package convolution
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage compass( VIMask ) throw( VError ); VImage compass( VIMask ) throw( VError );
VImage contrast_surface( int, int ) throw( VError ); VImage contrast_surface( int, int ) throw( VError );
VImage contrast_surface_raw( int, int ) throw( VError );
VImage conv( VIMask ) throw( VError ); VImage conv( VIMask ) throw( VError );
VImage conv_raw( VIMask ) throw( VError ); VImage conv( VDMask ) throw( VError );
VImage convf( VDMask ) throw( VError );
VImage convf_raw( VDMask ) throw( VError );
VImage convsep( VIMask ) throw( VError ); VImage convsep( VIMask ) throw( VError );
VImage convsep_raw( VIMask ) throw( VError ); VImage convsep( VDMask ) throw( VError );
VImage convsepf( VDMask ) throw( VError );
VImage convsepf_raw( VDMask ) throw( VError );
VImage convsub( VIMask, int, int ) throw( VError );
VImage embed( int, int, int, int, int ) throw( VError );
VImage fastcor( VImage ) throw( VError ); VImage fastcor( VImage ) throw( VError );
VImage fastcor_raw( VImage ) throw( VError ); VImage gradcor( VImage ) throw( VError );
static VImage gaussnoise( int, int, double, double ) throw( VError ); VImage gradient( VIMask ) throw( VError );
VImage grad_x() throw( VError ); VImage grad_x() throw( VError );
VImage grad_y() throw( VError ); VImage grad_y() throw( VError );
VImage gradcor( VImage ) throw( VError );
VImage gradcor_raw( VImage ) throw( VError );
VImage gradient( VIMask ) throw( VError );
static VImage rank_image( std::vector<VImage>, int ) throw( VError );
VImage lindetect( VIMask ) throw( VError ); VImage lindetect( VIMask ) throw( VError );
static VImage maxvalue( std::vector<VImage> ) throw( VError );
int mpercent( double ) throw( VError );
VImage phasecor_fft( VImage ) throw( VError );
VImage rank( int, int, int ) throw( VError );
VImage rank_raw( int, int, int ) throw( VError );
VImage resize_linear( int, int ) throw( VError );
VImage sharpen( int, double, double, double, double, double ) throw( VError ); VImage sharpen( int, double, double, double, double, double ) throw( VError );
VImage shrink( double, double ) throw( VError );
VImage spcor( VImage ) throw( VError ); VImage spcor( VImage ) throw( VError );
VImage spcor_raw( VImage ) throw( VError );
VImage stretch3( double, double ) throw( VError ); // headers for package format
VImage zerox( int ) throw( VError ); // this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
static VImage csv2vips( char* ) throw( VError ); static VImage csv2vips( char* ) throw( VError );
static VImage jpeg2vips( char* ) throw( VError ); static VImage jpeg2vips( char* ) throw( VError );
static VImage magick2vips( char* ) throw( VError ); static VImage magick2vips( char* ) throw( VError );
@ -208,6 +202,10 @@ void vips2mimejpeg( int ) throw( VError );
void vips2png( char* ) throw( VError ); void vips2png( char* ) throw( VError );
void vips2ppm( char* ) throw( VError ); void vips2ppm( char* ) throw( VError );
void vips2tiff( char* ) throw( VError ); void vips2tiff( char* ) throw( VError );
// headers for package freq_filt
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
static VImage create_fmask( int, int, int, double, double, double, double, double ) throw( VError ); static VImage create_fmask( int, int, int, double, double, double, double, double ) throw( VError );
VImage disp_ps() throw( VError ); VImage disp_ps() throw( VError );
VImage flt_image_freq( int, double, double, double, double, double ) throw( VError ); VImage flt_image_freq( int, double, double, double, double, double ) throw( VError );
@ -216,12 +214,18 @@ VImage freqflt( VImage ) throw( VError );
VImage fwfft() throw( VError ); VImage fwfft() throw( VError );
VImage rotquad() throw( VError ); VImage rotquad() throw( VError );
VImage invfft() throw( VError ); VImage invfft() throw( VError );
VImage phasecor_fft( VImage ) throw( VError );
VImage invfftr() throw( VError ); VImage invfftr() throw( VError );
// headers for package histograms_lut
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage gammacorrect( double ) throw( VError ); VImage gammacorrect( double ) throw( VError );
VImage heq( int ) throw( VError ); VImage heq( int ) throw( VError );
VImage hist( int ) throw( VError ); VImage hist( int ) throw( VError );
VImage histcum() throw( VError ); VImage histcum() throw( VError );
VImage histeq() throw( VError ); VImage histeq() throw( VError );
VImage hist_indexed( VImage ) throw( VError );
VImage histgr( int ) throw( VError ); VImage histgr( int ) throw( VError );
VImage histnD( int ) throw( VError ); VImage histnD( int ) throw( VError );
VImage histnorm() throw( VError ); VImage histnorm() throw( VError );
@ -232,34 +236,59 @@ static VImage identity( int ) throw( VError );
static VImage identity_ushort( int, int ) throw( VError ); static VImage identity_ushort( int, int ) throw( VError );
int ismonotonic() throw( VError ); int ismonotonic() throw( VError );
VImage lhisteq( int, int ) throw( VError ); VImage lhisteq( int, int ) throw( VError );
VImage lhisteq_raw( int, int ) throw( VError ); int mpercent( double ) throw( VError );
static VImage invertlut( VDMask, int ) throw( VError ); static VImage invertlut( VDMask, int ) throw( VError );
static VImage buildlut( VDMask ) throw( VError ); static VImage buildlut( VDMask ) throw( VError );
VImage maplut( VImage ) throw( VError ); VImage maplut( VImage ) throw( VError );
VImage project( VImage& ) throw( VError ); VImage project( VImage& ) throw( VError );
VImage stdif( double, double, double, double, int, int ) throw( VError ); VImage stdif( double, double, double, double, int, int ) throw( VError );
VImage stdif_raw( double, double, double, double, int, int ) throw( VError );
VImage tone_analyse( double, double, double, double, double, double ) throw( VError ); VImage tone_analyse( double, double, double, double, double, double ) throw( VError );
static VImage tone_build( double, double, double, double, double, double, double, double ) throw( VError ); static VImage tone_build( double, double, double, double, double, double, double, double ) throw( VError );
static VImage tone_build_range( int, int, double, double, double, double, double, double, double, double ) throw( VError ); static VImage tone_build_range( int, int, double, double, double, double, double, double, double, double ) throw( VError );
VImage tone_map( VImage ) throw( VError ); VImage tone_map( VImage ) throw( VError );
// headers for package inplace
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
void circle( int, int, int, int ) throw( VError ); void circle( int, int, int, int ) throw( VError );
VImage flood_blob_copy( int, int, std::vector<double> ) throw( VError ); VImage flood_blob_copy( int, int, std::vector<double> ) throw( VError );
VImage flood_other_copy( VImage, int, int, int ) throw( VError );
void insertplace( VImage, int, int ) throw( VError ); void insertplace( VImage, int, int ) throw( VError );
void line( int, int, int, int, int ) throw( VError ); VImage line( VImage, VImage, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int> ) throw( VError );
VImage lineset( VImage, VImage, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int> ) throw( VError );
// headers for package iofuncs
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
static VImage binfile( char*, int, int, int, int ) throw( VError ); static VImage binfile( char*, int, int, int, int ) throw( VError );
VImage cache( int, int, int ) throw( VError ); VImage cache( int, int, int ) throw( VError );
char* getext() throw( VError );
int header_get_typeof( char* ) throw( VError ); int header_get_typeof( char* ) throw( VError );
int header_int( char* ) throw( VError ); int header_int( char* ) throw( VError );
double header_double( char* ) throw( VError ); double header_double( char* ) throw( VError );
char* header_string( char* ) throw( VError ); char* header_string( char* ) throw( VError );
char* history_get() throw( VError );
void printdesc() throw( VError );
// headers for package mask
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
// headers for package morphology
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
double cntlines( int ) throw( VError ); double cntlines( int ) throw( VError );
VImage dilate( VIMask ) throw( VError ); VImage dilate( VIMask ) throw( VError );
VImage dilate_raw( VIMask ) throw( VError ); VImage rank( int, int, int ) throw( VError );
static VImage rank_image( std::vector<VImage>, int ) throw( VError );
static VImage maxvalue( std::vector<VImage> ) throw( VError );
VImage label_regions( int& ) throw( VError );
VImage zerox( int ) throw( VError );
VImage erode( VIMask ) throw( VError ); VImage erode( VIMask ) throw( VError );
VImage erode_raw( VIMask ) throw( VError );
VImage profile( int ) throw( VError ); VImage profile( int ) throw( VError );
// headers for package mosaicing
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage align_bands() throw( VError ); VImage align_bands() throw( VError );
double correl( VImage, int, int, int, int, int, int, int&, int& ) throw( VError ); double correl( VImage, int, int, int, int, int, int, int&, int& ) throw( VError );
int _find_lroverlap( VImage, int, int, int, int, int, int, int, int&, double&, double&, double&, double& ) throw( VError ); int _find_lroverlap( VImage, int, int, int, int, int, int, int, int&, double&, double&, double&, double& ) throw( VError );
@ -278,6 +307,10 @@ VImage tbmerge( VImage, int, int, int ) throw( VError );
VImage tbmerge1( VImage, int, int, int, int, int, int, int, int, int ) throw( VError ); VImage tbmerge1( VImage, int, int, int, int, int, int, int, int, int ) throw( VError );
VImage tbmosaic( VImage, int, int, int, int, int, int, int, int, int ) throw( VError ); VImage tbmosaic( VImage, int, int, int, int, int, int, int, int, int ) throw( VError );
VImage tbmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, int, int, int ) throw( VError ); VImage tbmosaic1( VImage, int, int, int, int, int, int, int, int, int, int, int, int, int ) throw( VError );
// headers for package other
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage benchmark() throw( VError ); VImage benchmark() throw( VError );
double benchmark2() throw( VError ); double benchmark2() throw( VError );
VImage benchmarkn( int ) throw( VError ); VImage benchmarkn( int ) throw( VError );
@ -288,6 +321,10 @@ static VImage fgrey( int, int ) throw( VError );
static VImage fzone( int ) throw( VError ); static VImage fzone( int ) throw( VError );
static VImage make_xy( int, int ) throw( VError ); static VImage make_xy( int, int ) throw( VError );
static VImage zone( int ) throw( VError ); static VImage zone( int ) throw( VError );
// headers for package relational
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage blend( VImage, VImage ) throw( VError ); VImage blend( VImage, VImage ) throw( VError );
VImage equal( VImage ) throw( VError ); VImage equal( VImage ) throw( VError );
VImage equal( std::vector<double> ) throw( VError ); VImage equal( std::vector<double> ) throw( VError );
@ -308,8 +345,17 @@ VImage moreeq( double ) throw( VError );
VImage notequal( VImage ) throw( VError ); VImage notequal( VImage ) throw( VError );
VImage notequal( std::vector<double> ) throw( VError ); VImage notequal( std::vector<double> ) throw( VError );
VImage notequal( double ) throw( VError ); VImage notequal( double ) throw( VError );
VImage affine( double, double, double, double, double, double, int, int, int, int ) throw( VError );
VImage similarity_area( double, double, double, double, int, int, int, int ) throw( VError ); // headers for package resample
VImage similarity( double, double, double, double ) throw( VError ); // this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
VImage rightshift_size( int, int, int ) throw( VError );
VImage shrink( double, double ) throw( VError );
VImage stretch3( double, double ) throw( VError );
// headers for package video
// this file automatically generated from
// VIPS library 7.20.1-Fri Nov 13 11:00:09 GMT 2009
static VImage video_test( int, int ) throw( VError ); static VImage video_test( int, int ) throw( VError );
static VImage video_v4l1( char*, int, int, int, int, int, int ) throw( VError ); static VImage video_v4l1( char*, int, int, int, int, int, int ) throw( VError );

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,8 @@
* - add --list interpolators * - add --list interpolators
* 9/2/09 * 9/2/09
* - and now we just have --list packages/classes/package-name * - and now we just have --list packages/classes/package-name
* 13/11/09
* - drop _f postfixes, drop many postfixes
*/ */
/* /*
@ -442,38 +444,48 @@ find_ioargs( im_function *fn, int *ia, int *oa )
} }
} }
static gboolean
drop_postfix( char *str, const char *postfix )
{
if( ispostfix( postfix, str ) ) {
str[strlen( str ) - strlen( postfix )] = '\0';
return( TRUE );
}
return( FALSE );
}
/* Turn a VIPS name into a C++ name. Eg. im_lintra_vec becomes lin. /* Turn a VIPS name into a C++ name. Eg. im_lintra_vec becomes lin.
*/ */
static void static void
c2cpp_name( const char *in, char *out ) c2cpp_name( const char *in, char *out )
{ {
/* chop off "im_" prefix. static const char *postfix[] = {
"_vec",
"const",
"tra",
"set",
"_f"
};
int i;
gboolean changed;
/* Copy, chopping off "im_" prefix.
*/ */
if( isprefix( "im_", in ) ) if( isprefix( "im_", in ) )
strcpy( out, in + 3 ); strcpy( out, in + 3 );
else else
strcpy( out, in ); strcpy( out, in );
/* Drop "_vec" postfix (eg. so im_lintra_vec becomes lintra). We rely /* Repeatedly drop postfixes while we can.
* on overloading to distinguish conflicts.
*/ */
if( ispostfix( "_vec", out ) ) do {
out[strlen( out ) - 4] = '\0'; changed = FALSE;
for( i = 0; i < IM_NUMBER( postfix ); i++ )
/* Drop "const" postfix (eg. so im_eorimageconst becomes eorimage). changed |= drop_postfix( out, postfix[i] );
*/ } while( changed );
if( ispostfix( "const", out ) )
out[strlen( out ) - 5] = '\0';
/* Drop "tra" postfix (eg. so im_costra becomes cos).
*/
if( ispostfix( "tra", out ) )
out[strlen( out ) - 3] = '\0';
/* Drop "set" postfix (eg. so im_insertset becomes insert).
*/
if( ispostfix( "set", out ) )
out[strlen( out ) - 3] = '\0';
} }
/* Print prototype for a function (ie. will be followed by code). /* Print prototype for a function (ie. will be followed by code).