aboutsummaryrefslogtreecommitdiff
path: root/src/projects.h
diff options
context:
space:
mode:
authorThomas Knudsen <busstoptaktik@users.noreply.github.com>2016-11-12 16:51:21 +0100
committerGitHub <noreply@github.com>2016-11-12 16:51:21 +0100
commit26e65892728d6bfb010677091b0a464d7c7ebc76 (patch)
tree7720fadfcd5f3ca416ca4ea26c94013b3b1801df /src/projects.h
parent7986e36875f729d7ef3767a97f732ba39fa1b57d (diff)
downloadPROJ-26e65892728d6bfb010677091b0a464d7c7ebc76.tar.gz
PROJ-26e65892728d6bfb010677091b0a464d7c7ebc76.zip
Pipeline plus api - in continuation of the Genereic Coordinates pull request (#445)
This commit reflects continued work on the new rationalized API with geodetic extensions (see rationale in proj.h). It also reflects the parallel work on the transformation pipeline reimplementation, by introducing the PJ_cart cartesian/ellipsoidal converter. See example/pj_obs_api_test.c for demo example code
Diffstat (limited to 'src/projects.h')
-rw-r--r--src/projects.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/projects.h b/src/projects.h
index f6ac6acf..d07c43c7 100644
--- a/src/projects.h
+++ b/src/projects.h
@@ -168,6 +168,7 @@ typedef struct { double u, v, w; } UVW;
/* Forward declarations and typedefs for stuff needed inside the PJ object */
struct PJconsts;
+struct PJ_OBS;
struct pj_opaque;
struct ARG_list;
struct FACTORS;
@@ -181,6 +182,7 @@ enum pj_io_units {
};
#ifndef PROJ_H
typedef struct PJconsts PJ; /* the PJ object herself */
+typedef struct PJ_OBS PJ_OBS;
#endif
struct PJ_REGION_S {
@@ -191,11 +193,9 @@ struct PJ_REGION_S {
};
-#include "proj.h" /* Need this for sizeof(PJ_OBSERVATION) */
struct projCtx_t;
typedef struct projCtx_t projCtx_t;
-
/* base projection data structure */
struct PJconsts {
@@ -230,12 +230,13 @@ struct PJconsts {
**************************************************************************************/
+
XY (*fwd)(LP, PJ *);
LP (*inv)(XY, PJ *);
XYZ (*fwd3d)(LPZ, PJ *);
LPZ (*inv3d)(XYZ, PJ *);
- PJ_OBSERVATION (*fwdobs)(PJ_OBSERVATION, PJ *);
- PJ_OBSERVATION (*invobs)(PJ_OBSERVATION, PJ *);
+ PJ_OBS (*fwdobs)(PJ_OBS, PJ *);
+ PJ_OBS (*invobs)(PJ_OBS, PJ *);
void (*spc)(LP, PJ *, struct FACTORS *);
@@ -280,8 +281,8 @@ struct PJconsts {
double one_es; /* 1 - e^2 */
double rone_es; /* 1/one_es */
- /* The flattenings */
+ /* The flattenings */
double f; /* first flattening */
double f2; /* second flattening */
double n; /* third flattening */
@@ -589,7 +590,6 @@ typedef struct _PJ_GridCatalog {
struct _PJ_GridCatalog *next;
} PJ_GridCatalog;
-
/* procedure prototypes */
double dmstor(const char *, char **);
double dmstor_ctx(projCtx ctx, const char *, char **);
@@ -722,9 +722,13 @@ struct PJ_PRIME_MERIDIANS *pj_get_prime_meridians_ref( void );
double pj_atof( const char* nptr );
double pj_strtod( const char *nptr, char **endptr );
+void pj_freeup_plain (PJ *P);
#ifdef __cplusplus
}
#endif
+#ifndef PROJECTS_H_ATEND
+#define PROJECTS_H_ATEND
+#endif
#endif /* end of basic projections header */