

* List of issues/functions to address (20170201) with decreasing order of priority:
  - function getpixval not warped correctly (existing typemap in
    miallib_tmp.i should return a value and not a G_TYPE * swig object!
  - typemap for mia function argument int *box introduced in
    miallib_tmp.i works only for functional call in jiplib (method
    calls, whether destructive or not do not work).  (PK to
    investigate).
  - implement in jiplib miallib functions that return an IMAGE ** (PK),
    see solution with typemaps implemented in mia (master.i).  This
    requires a 3rd python script for warping to python (as for
    ERROR_TYPE and IMAGE * functions).  Note that it seems desirable
    to define at python level a list of images as a python list.

  - ERROR_TYPE functions that do not modify the input image
    (e.g. iminfo) should not use the bool variable destructive (see
    list in done).  These functions should not return a new image and
    indeed not an image at all! (PK to implement).

  - jim.h should be in build since it is modified by scripts upon
    compilation. (PK to implement).

  - Address those functions with pointer arguments (besides IMAGE * or
    IMAGE **): create list (PS see Done below as well as master.i in
    mia), define desired behaviour at python level (PK from examples
    in mia master.i), and then solve (at interface file level).

  - Confirm that arguments of overloaded methods with default argument
    values cannot be used as keys (PK).

  - Solve the problem related to ERROR_TYPE return in a functional
    call (refers to a memory leak and returned ERROR_TYPE * !!!) (PK)

  - Add a jim.write() method behaving like .close() but not releasing
    the image in memory (PK)

  - Address miallib functions modifying GeoTransform/Projection: create
    list (PS) and then ad hoc procedure to be put in place.

  - Automatic binding of GTYPE functions (e.g. getpixval)

  - integration of lut in jim



* Done:
  - Write a clone at jim level with memcpy to secure correct behaviour for all data types including Int64/UInt64 (PK)
  - Add INT64/UINT64 data type in Jim (PK)
  - Automatic binding of functions returning an IMAGE * (see template in mean2d in jim.cc) (PS on 20170202)
  - Change malloc to calloc in createImg (PK)
  - Add binding of miallib functions in cmake (PK)
  - From and to numpy functions implemented (PK)
  - Problem related to ERROR_TYPE return in a functional call seems to be fixed (PK)
  - Handled ERRORTYPE functions that do not modify the input image (e.g., iminfo). They are treated as the destructive functions but without the prefix d_ (PK)
  - Added Int64 and UInt64 data type in Jim (PK)
  - Constructor written with copyData specific to Jim with memcopy (this also implements the clone) (PK)


  - ERROR_TYPE functions that do not modify the input image
    (e.g. iminfo) should not use the bool variable destructive: create list (PS)

extern ERROR_TYPE dumpxyz(IMAGE *im, int x, int y, int z, int dx, int dy);
extern ERROR_TYPE szcompat(IMAGE *im1, IMAGE *im2);
extern ERROR_TYPE szgeocompat(IMAGE *im1, IMAGE *im2);
extern ERROR_TYPE iminfo(IMAGE *im);
extern ERROR_TYPE tiffinfo(char *fn, char *field, float *val);
extern ERROR_TYPE writeGnuPlot3D(IMAGE **imap, int nc, int graph, int regionSize, int varianz, char *fileName);
extern ERROR_TYPE vectorizeImage(IMAGE **imap, int nc, char *filename, int format, double simplifyBorderLines);
extern ERROR_TYPE IsPartitionEqual(IMAGE *im1, IMAGE *im2, int *result);
extern ERROR_TYPE IsPartitionFiner(IMAGE *im1, IMAGE *im2, int graph, unsigned long int *res);
extern ERROR_TYPE dendro(IMAGE **imap, int nc, char *fn);
extern ERROR_TYPE getfirstmaxpos(IMAGE *im, unsigned long int *pos);
extern ERROR_TYPE volume(IMAGE *im);
extern ERROR_TYPE imequalp(IMAGE *im1, IMAGE *im2);
extern ERROR_TYPE getmax(IMAGE *im, double *maxval);
extern ERROR_TYPE getminmax(IMAGE *im, double *minval, double *maxval);

   - miallib functions with pointer arguments other than IMAGE * (see
     also corresponding typemaps in master.i in mia):
    
extern ERROR_TYPE FindPixWithVal(IMAGE *im, G_TYPE gval, unsigned long int *ofs);
extern IMAGE **cs2cs(double ulc_e, double ulc_n, int nx, int ny, double res, char *parmsi[], int ni, char *parmso[], int no);
extern ERROR_TYPE framebox(IMAGE *im, int *box, G_TYPE gval);
extern ERROR_TYPE addframebox(IMAGE *im, int *box, G_TYPE gval);
extern ERROR_TYPE subframebox(IMAGE *im, int *box);
