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
- small updates to im_convf() from im_conv()
- 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
- 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_compass.c \
im_conv.c \
im_convf.c \
im_conv_f.c \
im_convsep.c \
im_convsepf.c \
im_convsep_f.c \
im_contrast_surface.c \
im_fastcor.c \
im_gradcor.c \

View File

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

View File

@ -3,7 +3,7 @@
* @(#) except IM_BANDFMT_DOUBLE, which gives IM_BANDFMT_DOUBLE.
* @(#)
* @(#) int
* @(#) im_convf( in, out, mask )
* @(#) im_conv_f( in, out, mask )
* @(#) IMAGE *in, *out;
* @(#) DOUBLEMASK *mask;
* @(#)
@ -40,6 +40,9 @@
* - tiny speedups and cleanups
* - add restrict, though it doesn't seem to help gcc
* - 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
im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
im_conv_f_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
{
Conv *conv;
@ -338,7 +341,7 @@ im_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask )
out->Xsize -= mask->xsize - 1;
out->Ysize -= mask->ysize - 1;
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 );
}
@ -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.
*/
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 ||
im_embed( in, t1, 1, mask->xsize / 2, mask->ysize / 2,
in->Xsize + mask->xsize - 1,
in->Ysize + mask->ysize - 1 ) ||
im_convf_raw( t1, out, mask ) )
im_conv_f_raw( t1, out, mask ) )
return( -1 );
out->Xoffset = 0;

View File

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

View File

@ -1168,6 +1168,48 @@ static im_function dilate_raw_desc = {
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.
*/
static im_function *deprecated_list[] = {
@ -1186,6 +1228,8 @@ static im_function *deprecated_list[] = {
&clip2f_desc,
&clip2i_desc,
&convsub_desc,
&convf_desc,
&convsepf_desc,
&clip2s_desc,
&clip2ui_desc,
&insertplaceset_desc,

View File

@ -232,3 +232,27 @@ im_segment( IMAGE *test, IMAGE *mask, int *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*/
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_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_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_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_convf_raw( IMAGE *in, IMAGE *out, DOUBLEMASK *mask );
int im_convsep_raw( IMAGE *in, IMAGE *out, INTMASK *mask );

View File

@ -21,7 +21,15 @@ libvipsCC_la_LDFLAGS = \
libvipsCC_la_LIBADD = \
$(top_builddir)/libvips/libvips.la @VIPS_LIBS@
.PHONEY:
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

View File

@ -7,5 +7,13 @@ pkginclude_HEADERS = \
vips \
vipsc++.h
.PHONEY:
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
// 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 acos() throw( VError );
VImage add( VImage ) throw( VError );
@ -9,7 +11,6 @@ double avg() throw( VError );
double point_bilinear( double, double, int ) throw( VError );
VImage bandmean() throw( VError );
VImage ceil() throw( VError );
VImage cmulnorm( VImage ) throw( VError );
VImage cos() throw( VError );
VImage cross_phase( VImage ) throw( VError );
double deviate() throw( VError );
@ -18,14 +19,11 @@ VImage exp10() throw( VError );
VImage expn( double ) throw( VError );
VImage expn( std::vector<double> ) throw( VError );
VImage exp() throw( VError );
VImage fav4( VImage, VImage, VImage ) throw( VError );
VImage floor() throw( VError );
VImage gadd( double, double, VImage, double ) throw( VError );
VImage invert() throw( VError );
VImage lin( double, 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 litecor( VImage, int, double ) throw( VError );
VImage log10() throw( VError );
VImage log() throw( VError );
double max() throw( VError );
@ -37,6 +35,7 @@ std::complex<double> minpos() throw( VError );
VImage multiply( VImage ) throw( VError );
VImage pow( double ) throw( VError );
VImage pow( std::vector<double> ) throw( VError );
VImage recomb( VDMask ) throw( VError );
VImage remainder( VImage ) throw( VError );
VImage remainder( double ) throw( VError );
VImage remainder( std::vector<double> ) throw( VError );
@ -46,6 +45,10 @@ VImage sin() throw( VError );
VDMask stats() throw( VError );
VImage subtract( VImage ) 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( int ) 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( int ) throw( VError );
VImage eorimage( std::vector<double> ) throw( VError );
VImage shiftleft( std::vector<double> ) throw( VError );
VImage shiftleft( int ) throw( VError );
VImage shiftright( std::vector<double> ) 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_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 LCh2UCS() throw( VError );
VImage Lab2LCh() throw( VError );
@ -94,7 +107,6 @@ VImage disp2Lab( VDisplay ) throw( VError );
VImage disp2XYZ( VDisplay ) throw( VError );
VImage float2rad() 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_import( char*, 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 rad2float() 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 );
static VImage black( int, int, int ) throw( VError );
VImage c2amph() throw( VError );
@ -109,21 +127,13 @@ VImage c2imag() throw( VError );
VImage c2ps() throw( VError );
VImage c2real() 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 clip2fmt( int ) throw( VError );
VImage copy() throw( VError );
VImage copy_file() throw( VError );
VImage copy_morph( int, int, int ) 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_areabands( int, int, int, int, int, 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 );
VImage grid( int, 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 embed( int, int, int, int, int ) throw( VError );
VImage lrjoin( VImage ) throw( VError );
static VImage mask2vips( VDMask ) throw( VError );
VImage msb() throw( VError );
VImage msb_band( int ) throw( VError );
VImage recomb( VDMask ) throw( VError );
VImage replicate( int, int ) throw( VError );
VImage ri2c( VImage ) throw( VError );
VImage rot180() throw( VError );
@ -148,52 +159,35 @@ VImage rot270() throw( VError );
VImage rot90() throw( VError );
VImage scale() 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 );
char* system( char* ) throw( VError );
VImage tbjoin( VImage ) throw( VError );
static VImage text( char*, char*, int, int, int ) throw( VError );
VImage thresh( double ) throw( VError );
VDMask vips2mask() throw( VError );
VImage wrap( 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 contrast_surface( int, int ) throw( VError );
VImage contrast_surface_raw( int, int ) throw( VError );
VImage conv( VIMask ) throw( VError );
VImage conv_raw( VIMask ) throw( VError );
VImage convf( VDMask ) throw( VError );
VImage convf_raw( VDMask ) throw( VError );
VImage conv( VDMask ) throw( VError );
VImage convsep( VIMask ) throw( VError );
VImage convsep_raw( VIMask ) 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 convsep( VDMask ) throw( VError );
VImage fastcor( VImage ) throw( VError );
VImage fastcor_raw( VImage ) throw( VError );
static VImage gaussnoise( int, int, double, double ) throw( VError );
VImage gradcor( VImage ) throw( VError );
VImage gradient( VIMask ) throw( VError );
VImage grad_x() 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 );
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 shrink( double, double ) throw( VError );
VImage spcor( VImage ) throw( VError );
VImage spcor_raw( VImage ) throw( VError );
VImage stretch3( double, double ) throw( VError );
VImage zerox( int ) throw( VError );
// headers for package format
// 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 jpeg2vips( char* ) throw( VError );
static VImage magick2vips( char* ) throw( VError );
@ -208,6 +202,10 @@ void vips2mimejpeg( int ) throw( VError );
void vips2png( char* ) throw( VError );
void vips2ppm( 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 );
VImage disp_ps() 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 rotquad() throw( VError );
VImage invfft() throw( VError );
VImage phasecor_fft( VImage ) 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 heq( int ) throw( VError );
VImage hist( int ) throw( VError );
VImage histcum() throw( VError );
VImage histeq() throw( VError );
VImage hist_indexed( VImage ) throw( VError );
VImage histgr( int ) throw( VError );
VImage histnD( int ) throw( VError );
VImage histnorm() throw( VError );
@ -232,34 +236,59 @@ static VImage identity( int ) throw( VError );
static VImage identity_ushort( int, int ) throw( VError );
int ismonotonic() 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 buildlut( VDMask ) throw( VError );
VImage maplut( VImage ) throw( VError );
VImage project( VImage& ) 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 );
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 );
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 );
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 line( int, int, int, int, int ) throw( VError );
VImage lineset( VImage, VImage, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int> ) throw( VError );
VImage line( 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 );
VImage cache( int, int, int ) throw( VError );
char* getext() throw( VError );
int header_get_typeof( char* ) throw( VError );
int header_int( char* ) throw( VError );
double header_double( 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 );
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_raw( VIMask ) 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 );
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 );
@ -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 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 );
// 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 );
double benchmark2() 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 make_xy( int, 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 equal( VImage ) 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( std::vector<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 );
VImage similarity( double, double, double, double ) throw( VError );
// headers for package resample
// 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_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
* 9/2/09
* - 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.
*/
static void
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 ) )
strcpy( out, in + 3 );
else
strcpy( out, in );
/* Drop "_vec" postfix (eg. so im_lintra_vec becomes lintra). We rely
* on overloading to distinguish conflicts.
/* Repeatedly drop postfixes while we can.
*/
if( ispostfix( "_vec", out ) )
out[strlen( out ) - 4] = '\0';
/* Drop "const" postfix (eg. so im_eorimageconst becomes eorimage).
*/
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';
do {
changed = FALSE;
for( i = 0; i < IM_NUMBER( postfix ); i++ )
changed |= drop_postfix( out, postfix[i] );
} while( changed );
}
/* Print prototype for a function (ie. will be followed by code).