diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2010-06-11 01:51:24 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2010-06-11 01:51:24 +0000 |
| commit | ec678c07c2acb83da8a2187c541b8a2e452dec4b (patch) | |
| tree | a4c004a6e88d7330fe9d1c6ed793129831b5bdca /src/projects.h | |
| parent | a7290836114dc82b35eceb1efcb5ecdf605d335f (diff) | |
| download | PROJ-ec678c07c2acb83da8a2187c541b8a2e452dec4b.tar.gz PROJ-ec678c07c2acb83da8a2187c541b8a2e452dec4b.zip | |
preliminary implementation of projCtx API
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1854 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src/projects.h')
| -rw-r--r-- | src/projects.h | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/projects.h b/src/projects.h index 6a91ebda..b7d69bfb 100644 --- a/src/projects.h +++ b/src/projects.h @@ -124,6 +124,14 @@ extern double hypot(double, double); #define DIR_CHAR '/' #endif +/* proj thread context */ +typedef struct { + int last_errno; + int debug_level; + void (*logger)(void *, int, const char *); + void *app_data; +} projCtx_t; + /* datum_type values */ #define PJD_UNKNOWN 0 #define PJD_3PARAM 1 @@ -208,6 +216,7 @@ typedef struct ARG_list { typedef struct PJconsts { + projCtx_t *ctx; XY (*fwd)(LP, struct PJconsts *); LP (*inv)(XY, struct PJconsts *); void (*spc)(LP, struct PJconsts *, struct FACTORS *); @@ -349,8 +358,8 @@ double adjlon(double); double aacos(double), aasin(double), asqrt(double), aatan2(double, double); PVALUE pj_param(paralist *, const char *); paralist *pj_mkparam(char *); -int pj_ell_set(paralist *, double *, double *); -int pj_datum_set(paralist *, PJ *); +int pj_ell_set(projCtx ctx, paralist *, double *, double *); +int pj_datum_set(projCtx,paralist *, PJ *); int pj_prime_meridian_set(paralist *, PJ *); int pj_angular_units_set(paralist *, PJ *); @@ -371,7 +380,7 @@ double *pj_authset(double); double pj_authlat(double, double *); COMPLEX pj_zpoly1(COMPLEX, COMPLEX *, int); COMPLEX pj_zpolyd1(COMPLEX, COMPLEX *, int, COMPLEX *); -FILE *pj_open_lib(char *, char *); +FILE *pj_open_lib(projCtx, char *, char *); int pj_deriv(LP, double, PJ *, struct DERIVS *); int pj_factors(LP, PJ *, double, struct FACTORS *); @@ -401,9 +410,9 @@ int bch2bps(projUV, projUV, projUV **, int, int); /* nadcon related protos */ LP nad_intr(LP, struct CTABLE *); LP nad_cvt(LP, int, struct CTABLE *); -struct CTABLE *nad_init(char *); -struct CTABLE *nad_ctable_init( FILE * fid ); -int nad_ctable_load( struct CTABLE *, FILE * fid ); +struct CTABLE *nad_init(projCtx ctx, char *); +struct CTABLE *nad_ctable_init( projCtx ctx, FILE * fid ); +int nad_ctable_load( projCtx ctx, struct CTABLE *, FILE * fid ); void nad_free(struct CTABLE *); /* higher level handling of datum grid shift files */ @@ -411,16 +420,17 @@ void nad_free(struct CTABLE *); int pj_apply_gridshift_2( PJ *defn, int inverse, long point_count, int point_offset, double *x, double *y, double *z ); -int pj_apply_gridshift_3( PJ_GRIDINFO **gridlist, int gridlist_count, +int pj_apply_gridshift_3( projCtx ctx, + PJ_GRIDINFO **gridlist, int gridlist_count, int inverse, long point_count, int point_offset, double *x, double *y, double *z ); -PJ_GRIDINFO **pj_gridlist_from_nadgrids( const char *, int * ); +PJ_GRIDINFO **pj_gridlist_from_nadgrids( projCtx, const char *, int * ); void pj_deallocate_grids(); -PJ_GRIDINFO *pj_gridinfo_init( const char * ); -int pj_gridinfo_load( PJ_GRIDINFO * ); -void pj_gridinfo_free( PJ_GRIDINFO * ); +PJ_GRIDINFO *pj_gridinfo_init( projCtx, const char * ); +int pj_gridinfo_load( projCtx, PJ_GRIDINFO * ); +void pj_gridinfo_free( projCtx, PJ_GRIDINFO * ); void *proj_mdist_ini(double); double proj_mdist(double, double, double, const void *); |
