/src/PROJ/src/proj_internal.h
Line | Count | Source (jump to first uncovered line) |
1 | | /****************************************************************************** |
2 | | * Project: PROJ.4 |
3 | | * Purpose: Internal plumbing for the PROJ.4 library. |
4 | | * |
5 | | * Author: Thomas Knudsen, <thokn@sdfe.dk> |
6 | | * |
7 | | ****************************************************************************** |
8 | | * Copyright (c) 2016, 2017, Thomas Knudsen / SDFE |
9 | | * |
10 | | * Permission is hereby granted, free of charge, to any person obtaining a |
11 | | * copy of this software and associated documentation files (the "Software"), |
12 | | * to deal in the Software without restriction, including without limitation |
13 | | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
14 | | * and/or sell copies of the Software, and to permit persons to whom the |
15 | | * Software is furnished to do so, subject to the following conditions: |
16 | | * |
17 | | * The above copyright notice and this permission notice shall be included |
18 | | * in all copies or substantial portions of the Software. |
19 | | * |
20 | | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
21 | | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
22 | | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO COORD SHALL |
23 | | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
24 | | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
25 | | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
26 | | * DEALINGS IN THE SOFTWARE. |
27 | | *****************************************************************************/ |
28 | | |
29 | | #ifndef PROJ_INTERNAL_H |
30 | | #define PROJ_INTERNAL_H |
31 | | |
32 | | #ifndef __cplusplus |
33 | | #error "proj_internal.h can only be included from a C++ file" |
34 | | #endif |
35 | | |
36 | | #ifdef _MSC_VER |
37 | | #ifndef _CRT_SECURE_NO_DEPRECATE |
38 | | #define _CRT_SECURE_NO_DEPRECATE |
39 | | #endif |
40 | | #ifndef _CRT_NONSTDC_NO_DEPRECATE |
41 | | #define _CRT_NONSTDC_NO_DEPRECATE |
42 | | #endif |
43 | | #endif |
44 | | |
45 | | /* enable predefined math constants M_* for MS Visual Studio */ |
46 | | #if defined(_MSC_VER) || defined(_WIN32) |
47 | | #ifndef _USE_MATH_DEFINES |
48 | | #define _USE_MATH_DEFINES |
49 | | #endif |
50 | | #endif |
51 | | |
52 | | // Use "PROJ_FALLTHROUGH;" to annotate deliberate fall-through in switches, |
53 | | // use it analogously to "break;". The trailing semi-colon is required. |
54 | | #if !defined(PROJ_FALLTHROUGH) && defined(__has_cpp_attribute) |
55 | | #if __cplusplus >= 201703L && __has_cpp_attribute(fallthrough) |
56 | | #define PROJ_FALLTHROUGH [[fallthrough]] |
57 | | #elif __cplusplus >= 201103L && __has_cpp_attribute(gnu::fallthrough) |
58 | 70 | #define PROJ_FALLTHROUGH [[gnu::fallthrough]] |
59 | | #elif __cplusplus >= 201103L && __has_cpp_attribute(clang::fallthrough) |
60 | | #define PROJ_FALLTHROUGH [[clang::fallthrough]] |
61 | | #endif |
62 | | #endif |
63 | | |
64 | | #ifndef PROJ_FALLTHROUGH |
65 | | #define PROJ_FALLTHROUGH ((void)0) |
66 | | #endif |
67 | | |
68 | | /* standard inclusions */ |
69 | | #include <limits.h> |
70 | | #include <math.h> |
71 | | #include <stddef.h> |
72 | | #include <stdio.h> |
73 | | #include <stdlib.h> |
74 | | #include <string.h> |
75 | | |
76 | | #include "proj/common.hpp" |
77 | | #include "proj/coordinateoperation.hpp" |
78 | | |
79 | | #include <string> |
80 | | #include <vector> |
81 | | |
82 | | #include "proj.h" |
83 | | |
84 | | #ifdef PROJ_RENAME_SYMBOLS |
85 | | #include "proj_symbol_rename.h" |
86 | | #endif |
87 | | |
88 | | #define STATIC_ASSERT(COND) ((void)sizeof(char[(COND) ? 1 : -1])) |
89 | | |
90 | | #ifndef PJ_TODEG |
91 | 0 | #define PJ_TODEG(rad) ((rad)*180.0 / M_PI) |
92 | | #endif |
93 | | #ifndef PJ_TORAD |
94 | 264 | #define PJ_TORAD(deg) ((deg)*M_PI / 180.0) |
95 | | #endif |
96 | | |
97 | | /* Maximum latitudinal overshoot accepted */ |
98 | 60 | #define PJ_EPS_LAT 1e-12 |
99 | | |
100 | | #define C_NAMESPACE extern "C" |
101 | | #define C_NAMESPACE_VAR extern "C" |
102 | | |
103 | | #ifndef NULL |
104 | | #define NULL 0 |
105 | | #endif |
106 | | |
107 | | #ifndef FALSE |
108 | 361k | #define FALSE 0 |
109 | | #endif |
110 | | |
111 | | #ifndef TRUE |
112 | 35.5k | #define TRUE 1 |
113 | | #endif |
114 | | |
115 | | #ifndef MAX |
116 | 0 | #define MIN(a, b) ((a < b) ? a : b) |
117 | 0 | #define MAX(a, b) ((a > b) ? a : b) |
118 | | #endif |
119 | | |
120 | | #ifndef ABS |
121 | 3.30k | #define ABS(x) ((x < 0) ? (-1 * (x)) : x) |
122 | | #endif |
123 | | |
124 | | /* maximum path/filename */ |
125 | | #ifndef MAX_PATH_FILENAME |
126 | 2.79k | #define MAX_PATH_FILENAME 1024 |
127 | | #endif |
128 | | |
129 | | /* If we still haven't got M_PI*, we rely on our own defines. |
130 | | * For example, this is necessary when compiling with gcc and |
131 | | * the -ansi flag. |
132 | | */ |
133 | | #ifndef M_PI |
134 | | #define M_PI 3.14159265358979323846 |
135 | | #endif |
136 | | |
137 | | #ifndef M_1_PI |
138 | | #define M_1_PI 0.318309886183790671538 |
139 | | #endif |
140 | | |
141 | | #ifndef M_PI_2 |
142 | | #define M_PI_2 1.57079632679489661923 |
143 | | #endif |
144 | | |
145 | | #ifndef M_PI_4 |
146 | | #define M_PI_4 0.78539816339744830962 |
147 | | #endif |
148 | | |
149 | | #ifndef M_2_PI |
150 | | #define M_2_PI 0.63661977236758134308 |
151 | | #endif |
152 | | |
153 | | /* M_SQRT2 might be missing */ |
154 | | #ifndef M_SQRT2 |
155 | | #define M_SQRT2 1.41421356237309504880 |
156 | | #endif |
157 | | |
158 | | /* some more useful math constants and aliases */ |
159 | 9.74k | #define M_FORTPI M_PI_4 /* pi/4 */ |
160 | 202k | #define M_HALFPI M_PI_2 /* pi/2 */ |
161 | 0 | #define M_PI_HALFPI 4.71238898038468985769 /* 1.5*pi */ |
162 | | |
163 | | #ifndef M_TWOPI |
164 | 4.00k | #define M_TWOPI 6.28318530717958647693 /* 2*pi */ |
165 | | #endif |
166 | | |
167 | 0 | #define M_TWO_D_PI M_2_PI /* 2/pi */ |
168 | 0 | #define M_TWOPI_HALFPI 7.85398163397448309616 /* 2.5*pi */ |
169 | | |
170 | | /* maximum tag id length for +init and default files */ |
171 | | #ifndef ID_TAG_MAX |
172 | 2.79k | #define ID_TAG_MAX 50 |
173 | | #endif |
174 | | |
175 | | /* Use WIN32 as a standard windows 32 bit declaration */ |
176 | | #if defined(_WIN32) && !defined(WIN32) |
177 | | #define WIN32 |
178 | | #endif |
179 | | |
180 | | #if defined(_WINDOWS) && !defined(WIN32) |
181 | | #define WIN32 |
182 | | #endif |
183 | | |
184 | | /* directory delimiter for DOS support */ |
185 | | #ifdef WIN32 |
186 | | #define DIR_CHAR '\\' |
187 | | #else |
188 | 214k | #define DIR_CHAR '/' |
189 | | #endif |
190 | | |
191 | | enum pj_io_units { |
192 | | PJ_IO_UNITS_WHATEVER = |
193 | | 0, /* Doesn't matter (or depends on pipeline neighbours) */ |
194 | | PJ_IO_UNITS_CLASSIC = 1, /* Scaled meters (right), projected system */ |
195 | | PJ_IO_UNITS_PROJECTED = 2, /* Meters, projected system */ |
196 | | PJ_IO_UNITS_CARTESIAN = 3, /* Meters, 3D cartesian system */ |
197 | | PJ_IO_UNITS_RADIANS = 4, /* Radians */ |
198 | | PJ_IO_UNITS_DEGREES = 5, /* Degrees */ |
199 | | |
200 | | }; |
201 | | enum pj_io_units pj_left(PJ *P); |
202 | | enum pj_io_units pj_right(PJ *P); |
203 | | |
204 | | PJ_COORD PROJ_DLL proj_coord_error(void); |
205 | | |
206 | | void proj_context_errno_set(PJ_CONTEXT *ctx, int err); |
207 | | void PROJ_DLL proj_context_set(PJ *P, PJ_CONTEXT *ctx); |
208 | | void proj_context_inherit(PJ *parent, PJ *child); |
209 | | |
210 | | struct projCppContext; |
211 | | /* not sure why we need to export it, but mingw needs it */ |
212 | | void PROJ_DLL |
213 | | proj_context_delete_cpp_context(struct projCppContext *cppContext); |
214 | | |
215 | | bool pj_fwd4d(PJ_COORD &coo, PJ *P); |
216 | | bool pj_inv4d(PJ_COORD &coo, PJ *P); |
217 | | |
218 | | PJ_COORD PROJ_DLL pj_approx_2D_trans(PJ *P, PJ_DIRECTION direction, |
219 | | PJ_COORD coo); |
220 | | PJ_COORD PROJ_DLL pj_approx_3D_trans(PJ *P, PJ_DIRECTION direction, |
221 | | PJ_COORD coo); |
222 | | |
223 | | /* Provision for gettext translatable strings */ |
224 | 20.6k | #define _(str) (str) |
225 | | |
226 | | void PROJ_DLL proj_log_error(const PJ *P, const char *fmt, ...); |
227 | | void proj_log_debug(PJ *P, const char *fmt, ...); |
228 | | void proj_log_trace(PJ *P, const char *fmt, ...); |
229 | | |
230 | | void proj_context_log_debug(PJ_CONTEXT *ctx, const char *fmt, ...); |
231 | | |
232 | | int pj_ellipsoid(PJ *); |
233 | | void pj_inherit_ellipsoid_def(const PJ *src, PJ *dst); |
234 | | int pj_calc_ellipsoid_params(PJ *P, double a, double es); |
235 | | |
236 | | /* Geographical to geocentric latitude - another of the "simple, but useful" */ |
237 | | PJ_COORD pj_geocentric_latitude(const PJ *P, PJ_DIRECTION direction, |
238 | | PJ_COORD coord); |
239 | | |
240 | | char PROJ_DLL *pj_chomp(char *c); |
241 | | char PROJ_DLL *pj_shrink(char *c); |
242 | | size_t pj_trim_argc(char *args); |
243 | | char **pj_trim_argv(size_t argc, char *args); |
244 | | char *pj_make_args(size_t argc, char **argv); |
245 | | |
246 | | typedef struct { |
247 | | double r, i; |
248 | | } COMPLEX; |
249 | | |
250 | | /* Forward declarations and typedefs for stuff needed inside the PJ object */ |
251 | | struct PJconsts; |
252 | | |
253 | | union PJ_COORD; |
254 | | struct geod_geodesic; |
255 | | struct ARG_list; |
256 | | struct PJ_REGION_S; |
257 | | typedef struct PJ_REGION_S PJ_Region; |
258 | | typedef struct ARG_list paralist; /* parameter list */ |
259 | | |
260 | | #ifndef PROJ_H |
261 | | typedef struct PJconsts PJ; /* the PJ object herself */ |
262 | | typedef union PJ_COORD PJ_COORD; |
263 | | #endif |
264 | | |
265 | | struct PJ_REGION_S { |
266 | | double ll_long; /* lower left corner coordinates (radians) */ |
267 | | double ll_lat; |
268 | | double ur_long; /* upper right corner coordinates (radians) */ |
269 | | double ur_lat; |
270 | | }; |
271 | | |
272 | | struct PJ_AREA { |
273 | | bool bbox_set = false; |
274 | | double west_lon_degree = 0; |
275 | | double south_lat_degree = 0; |
276 | | double east_lon_degree = 0; |
277 | | double north_lat_degree = 0; |
278 | | std::string name{}; |
279 | | }; |
280 | | |
281 | | /***************************************************************************** |
282 | | |
283 | | Some function types that are especially useful when working with PJs |
284 | | |
285 | | ****************************************************************************** |
286 | | |
287 | | PJ_CONSTRUCTOR: |
288 | | |
289 | | A function taking a pointer-to-PJ as arg, and returning a pointer-to-PJ. |
290 | | Historically called twice: First with a 0 argument, to allocate memory, |
291 | | second with the first return value as argument, for actual setup. |
292 | | |
293 | | PJ_DESTRUCTOR: |
294 | | |
295 | | A function taking a pointer-to-PJ and an integer as args, then first |
296 | | handling the deallocation of the PJ, afterwards handing the integer over |
297 | | to the error reporting subsystem, and finally returning a null pointer in |
298 | | support of the "return free (P)" (aka "get the hell out of here") idiom. |
299 | | |
300 | | PJ_OPERATOR: |
301 | | |
302 | | A function taking a reference to a PJ_COORD and a pointer-to-PJ as args, |
303 | | applying the PJ to the PJ_COORD, and modifying in-place the passed PJ_COORD. |
304 | | |
305 | | *****************************************************************************/ |
306 | | typedef PJ *(*PJ_CONSTRUCTOR)(PJ *); |
307 | | typedef PJ *(*PJ_DESTRUCTOR)(PJ *, int); |
308 | | typedef void (*PJ_OPERATOR)(PJ_COORD &, PJ *); |
309 | | /****************************************************************************/ |
310 | | |
311 | | /* datum_type values */ |
312 | 166k | #define PJD_UNKNOWN 0 |
313 | 404k | #define PJD_3PARAM 1 |
314 | 1.22k | #define PJD_7PARAM 2 |
315 | 5.82k | #define PJD_GRIDSHIFT 3 |
316 | 3.02k | #define PJD_WGS84 4 /* WGS84 (or anything considered equivalent) */ |
317 | | |
318 | | struct PJCoordOperation { |
319 | | public: |
320 | | int idxInOriginalList; |
321 | | |
322 | | // [min|max][x|y]Src define the bounding box of the area of validity of |
323 | | // the transformation, expressed in the source CRS. Except if the source |
324 | | // CRS is a geocentric one, in which case the bounding box is defined in |
325 | | // a geographic lon,lat CRS (pjSrcGeocentricToLonLat will have to be used |
326 | | // on input coordinates in the forward direction) |
327 | | double minxSrc = 0.0; |
328 | | double minySrc = 0.0; |
329 | | double maxxSrc = 0.0; |
330 | | double maxySrc = 0.0; |
331 | | |
332 | | // [min|max][x|y]Dst define the bounding box of the area of validity of |
333 | | // the transformation, expressed in the target CRS. Except if the target |
334 | | // CRS is a geocentric one, in which case the bounding box is defined in |
335 | | // a geographic lon,lat CRS (pjDstGeocentricToLonLat will have to be used |
336 | | // on input coordinates in the inverse direction) |
337 | | double minxDst = 0.0; |
338 | | double minyDst = 0.0; |
339 | | double maxxDst = 0.0; |
340 | | double maxyDst = 0.0; |
341 | | |
342 | | PJ *pj = nullptr; |
343 | | std::string name{}; |
344 | | double accuracy = -1.0; |
345 | | double pseudoArea = 0.0; |
346 | | std::string areaName{}; |
347 | | bool isOffshore = false; |
348 | | bool isUnknownAreaName = false; |
349 | | bool isPriorityOp = false; |
350 | | bool srcIsLonLatDegree = false; |
351 | | bool srcIsLatLonDegree = false; |
352 | | bool dstIsLonLatDegree = false; |
353 | | bool dstIsLatLonDegree = false; |
354 | | |
355 | | // pjSrcGeocentricToLonLat is defined if the source CRS of pj is geocentric |
356 | | // and in that case it transforms from those geocentric coordinates to |
357 | | // geographic ones in lon, lat order |
358 | | PJ *pjSrcGeocentricToLonLat = nullptr; |
359 | | |
360 | | // pjDstGeocentricToLonLat is defined if the target CRS of pj is geocentric |
361 | | // and in that case it transforms from those geocentric coordinates to |
362 | | // geographic ones in lon, lat order |
363 | | PJ *pjDstGeocentricToLonLat = nullptr; |
364 | | |
365 | | PJCoordOperation(int idxInOriginalListIn, double minxSrcIn, |
366 | | double minySrcIn, double maxxSrcIn, double maxySrcIn, |
367 | | double minxDstIn, double minyDstIn, double maxxDstIn, |
368 | | double maxyDstIn, PJ *pjIn, const std::string &nameIn, |
369 | | double accuracyIn, double pseudoAreaIn, |
370 | | const char *areaName, const PJ *pjSrcGeocentricToLonLatIn, |
371 | | const PJ *pjDstGeocentricToLonLatIn); |
372 | | |
373 | | PJCoordOperation(const PJCoordOperation &) = delete; |
374 | | |
375 | | PJCoordOperation(PJ_CONTEXT *ctx, const PJCoordOperation &other) |
376 | | : idxInOriginalList(other.idxInOriginalList), minxSrc(other.minxSrc), |
377 | | minySrc(other.minySrc), maxxSrc(other.maxxSrc), |
378 | | maxySrc(other.maxySrc), minxDst(other.minxDst), |
379 | | minyDst(other.minyDst), maxxDst(other.maxxDst), |
380 | | maxyDst(other.maxyDst), pj(proj_clone(ctx, other.pj)), |
381 | | name(std::move(other.name)), accuracy(other.accuracy), |
382 | | pseudoArea(other.pseudoArea), areaName(other.areaName), |
383 | | isOffshore(other.isOffshore), |
384 | | isUnknownAreaName(other.isUnknownAreaName), |
385 | | isPriorityOp(other.isPriorityOp), |
386 | | srcIsLonLatDegree(other.srcIsLonLatDegree), |
387 | | srcIsLatLonDegree(other.srcIsLatLonDegree), |
388 | | dstIsLonLatDegree(other.dstIsLonLatDegree), |
389 | | dstIsLatLonDegree(other.dstIsLatLonDegree), |
390 | | pjSrcGeocentricToLonLat( |
391 | | other.pjSrcGeocentricToLonLat |
392 | | ? proj_clone(ctx, other.pjSrcGeocentricToLonLat) |
393 | | : nullptr), |
394 | | pjDstGeocentricToLonLat( |
395 | | other.pjDstGeocentricToLonLat |
396 | | ? proj_clone(ctx, other.pjDstGeocentricToLonLat) |
397 | 0 | : nullptr) {} |
398 | | |
399 | | PJCoordOperation(PJCoordOperation &&other) |
400 | | : idxInOriginalList(other.idxInOriginalList), minxSrc(other.minxSrc), |
401 | | minySrc(other.minySrc), maxxSrc(other.maxxSrc), |
402 | | maxySrc(other.maxySrc), minxDst(other.minxDst), |
403 | | minyDst(other.minyDst), maxxDst(other.maxxDst), |
404 | | maxyDst(other.maxyDst), name(std::move(other.name)), |
405 | | accuracy(other.accuracy), pseudoArea(other.pseudoArea), |
406 | | areaName(std::move(other.areaName)), isOffshore(other.isOffshore), |
407 | | isUnknownAreaName(other.isUnknownAreaName), |
408 | | isPriorityOp(other.isPriorityOp), |
409 | | srcIsLonLatDegree(other.srcIsLonLatDegree), |
410 | | srcIsLatLonDegree(other.srcIsLatLonDegree), |
411 | | dstIsLonLatDegree(other.dstIsLonLatDegree), |
412 | 0 | dstIsLatLonDegree(other.dstIsLatLonDegree) { |
413 | 0 | pj = other.pj; |
414 | 0 | other.pj = nullptr; |
415 | 0 | pjSrcGeocentricToLonLat = other.pjSrcGeocentricToLonLat; |
416 | 0 | other.pjSrcGeocentricToLonLat = nullptr; |
417 | 0 | pjDstGeocentricToLonLat = other.pjDstGeocentricToLonLat; |
418 | 0 | other.pjDstGeocentricToLonLat = nullptr; |
419 | 0 | } |
420 | | |
421 | | PJCoordOperation &operator=(const PJCoordOperation &) = delete; |
422 | | |
423 | 0 | bool operator==(const PJCoordOperation &other) const { |
424 | 0 | return idxInOriginalList == other.idxInOriginalList && |
425 | 0 | minxSrc == other.minxSrc && minySrc == other.minySrc && |
426 | 0 | maxxSrc == other.maxxSrc && maxySrc == other.maxySrc && |
427 | 0 | minxDst == other.minxDst && minyDst == other.minyDst && |
428 | 0 | maxxDst == other.maxxDst && maxyDst == other.maxyDst && |
429 | 0 | name == other.name && |
430 | 0 | proj_is_equivalent_to(pj, other.pj, PJ_COMP_STRICT) && |
431 | 0 | accuracy == other.accuracy && areaName == other.areaName; |
432 | 0 | } |
433 | | |
434 | 0 | bool operator!=(const PJCoordOperation &other) const { |
435 | 0 | return !(operator==(other)); |
436 | 0 | } |
437 | | |
438 | | ~PJCoordOperation(); |
439 | | |
440 | | bool isInstantiable() const; |
441 | | |
442 | | private: |
443 | | static constexpr int INSTANTIABLE_STATUS_UNKNOWN = |
444 | | -1; // must be different from 0(=false) and 1(=true) |
445 | | mutable int isInstantiableCached = INSTANTIABLE_STATUS_UNKNOWN; |
446 | | }; |
447 | | |
448 | | enum class TMercAlgo { |
449 | | AUTO, // Poder/Engsager if far from central meridian, otherwise |
450 | | // Evenden/Snyder |
451 | | EVENDEN_SNYDER, |
452 | | PODER_ENGSAGER, |
453 | | }; |
454 | | |
455 | | /* base projection data structure */ |
456 | | struct PJconsts { |
457 | | |
458 | | /************************************************************************************* |
459 | | |
460 | | G E N E R A L P A R A M E T E R S T R U C T |
461 | | |
462 | | ************************************************************************************** |
463 | | |
464 | | TODO: Need some description here - especially about the thread |
465 | | context... This is the struct behind the PJ typedef |
466 | | |
467 | | **************************************************************************************/ |
468 | | |
469 | | PJ_CONTEXT *ctx = nullptr; |
470 | | const char *short_name = nullptr; /* From pj_list.h */ |
471 | | const char *descr = nullptr; /* From pj_list.h or individual PJ_*.c file */ |
472 | | paralist *params = nullptr; /* Parameter list */ |
473 | | char *def_full = |
474 | | nullptr; /* Full textual definition (usually 0 - set by proj_pj_info) */ |
475 | | PJconsts *parent = nullptr; /* Parent PJ of pipeline steps - nullptr if not |
476 | | a pipeline step */ |
477 | | |
478 | | /* For debugging / logging purposes */ |
479 | | char *def_size = |
480 | | nullptr; /* Shape and size parameters extracted from params */ |
481 | | char *def_shape = nullptr; |
482 | | char *def_spherification = nullptr; |
483 | | char *def_ellps = nullptr; |
484 | | |
485 | | struct geod_geodesic *geod = nullptr; /* For geodesic computations */ |
486 | | void *opaque = |
487 | | nullptr; /* Projection specific parameters, Defined in PJ_*.c */ |
488 | | int inverted = 0; /* Tell high level API functions to swap inv/fwd */ |
489 | | |
490 | | /************************************************************************************* |
491 | | |
492 | | F U N C T I O N P O I N T E R S |
493 | | |
494 | | ************************************************************************************** |
495 | | |
496 | | For projection xxx, these are pointers to functions in the corresponding |
497 | | PJ_xxx.c file. |
498 | | |
499 | | pj_init() delegates the setup of these to |
500 | | pj_projection_specific_setup_xxx(), a name which is currently hidden behind |
501 | | the magic curtain of the PROJECTION macro. |
502 | | |
503 | | **************************************************************************************/ |
504 | | |
505 | | PJ_XY (*fwd)(PJ_LP, PJ *) = nullptr; |
506 | | PJ_LP (*inv)(PJ_XY, PJ *) = nullptr; |
507 | | PJ_XYZ (*fwd3d)(PJ_LPZ, PJ *) = nullptr; |
508 | | PJ_LPZ (*inv3d)(PJ_XYZ, PJ *) = nullptr; |
509 | | PJ_OPERATOR fwd4d = nullptr; |
510 | | PJ_OPERATOR inv4d = nullptr; |
511 | | |
512 | | PJ_DESTRUCTOR destructor = nullptr; |
513 | | void (*reassign_context)(PJ *, PJ_CONTEXT *) = nullptr; |
514 | | |
515 | | /************************************************************************************* |
516 | | |
517 | | E L L I P S O I D P A R A M E T E R S |
518 | | |
519 | | ************************************************************************************** |
520 | | |
521 | | Despite YAGNI, we add a large number of ellipsoidal shape parameters, |
522 | | which are not yet set up in pj_init. They are, however, inexpensive to |
523 | | compute, compared to the overall time taken for setting up the complex PJ |
524 | | object (cf. e.g. https://en.wikipedia.org/wiki/Angular_eccentricity). |
525 | | |
526 | | But during single point projections it will often be a useful thing to |
527 | | have these readily available without having to recompute at every pj_fwd / |
528 | | pj_inv call. |
529 | | |
530 | | With this wide selection, we should be ready for quite a number of |
531 | | geodetic algorithms, without having to incur further ABI breakage. |
532 | | |
533 | | **************************************************************************************/ |
534 | | |
535 | | /* The linear parameters */ |
536 | | |
537 | | double a = 0.0; /* semimajor axis (radius if eccentricity==0) */ |
538 | | double b = 0.0; /* semiminor axis */ |
539 | | double ra = 0.0; /* 1/a */ |
540 | | double rb = 0.0; /* 1/b */ |
541 | | |
542 | | /* The eccentricities */ |
543 | | |
544 | | double alpha = 0.0; /* angular eccentricity */ |
545 | | double e = 0.0; /* first eccentricity */ |
546 | | double es = 0.0; /* first eccentricity squared */ |
547 | | double e2 = 0.0; /* second eccentricity */ |
548 | | double e2s = 0.0; /* second eccentricity squared */ |
549 | | double e3 = 0.0; /* third eccentricity */ |
550 | | double e3s = 0.0; /* third eccentricity squared */ |
551 | | double one_es = 0.0; /* 1 - e^2 */ |
552 | | double rone_es = 0.0; /* 1/one_es */ |
553 | | |
554 | | /* The flattenings */ |
555 | | double f = 0.0; /* first flattening */ |
556 | | double f2 = 0.0; /* second flattening */ |
557 | | double n = 0.0; /* third flattening */ |
558 | | double rf = 0.0; /* 1/f */ |
559 | | double rf2 = 0.0; /* 1/f2 */ |
560 | | double rn = 0.0; /* 1/n */ |
561 | | |
562 | | /* This one's for GRS80 */ |
563 | | double J = 0.0; /* "Dynamic form factor" */ |
564 | | |
565 | | double es_orig = 0.0; /* es and a before any +proj related adjustment */ |
566 | | double a_orig = 0.0; |
567 | | |
568 | | /************************************************************************************* |
569 | | |
570 | | C O O R D I N A T E H A N D L I N G |
571 | | |
572 | | **************************************************************************************/ |
573 | | |
574 | | int over = 0; /* Over-range flag */ |
575 | | int geoc = 0; /* Geocentric latitude flag */ |
576 | | int is_latlong = 0; /* proj=latlong ... not really a projection at all */ |
577 | | int is_geocent = 0; /* proj=geocent ... not really a projection at all */ |
578 | | int need_ellps = 0; /* 0 for operations that are purely cartesian */ |
579 | | int skip_fwd_prepare = 0; |
580 | | int skip_fwd_finalize = 0; |
581 | | int skip_inv_prepare = 0; |
582 | | int skip_inv_finalize = 0; |
583 | | |
584 | | enum pj_io_units left = |
585 | | PJ_IO_UNITS_WHATEVER; /* Flags for input/output coordinate types */ |
586 | | enum pj_io_units right = PJ_IO_UNITS_WHATEVER; |
587 | | |
588 | | /* These PJs are used for implementing cs2cs style coordinate handling in |
589 | | * the 4D API */ |
590 | | PJ *axisswap = nullptr; |
591 | | PJ *cart = nullptr; |
592 | | PJ *cart_wgs84 = nullptr; |
593 | | PJ *helmert = nullptr; |
594 | | PJ *hgridshift = nullptr; |
595 | | PJ *vgridshift = nullptr; |
596 | | |
597 | | /************************************************************************************* |
598 | | |
599 | | C A R T O G R A P H I C O F F S E T S |
600 | | |
601 | | **************************************************************************************/ |
602 | | |
603 | | double lam0 = 0.0; /* central meridian */ |
604 | | double phi0 = 0.0; /* central parallel */ |
605 | | double x0 = 0.0; /* false easting */ |
606 | | double y0 = 0.0; /* false northing */ |
607 | | double z0 = 0.0; /* height origin */ |
608 | | double t0 = 0.0; /* time origin */ |
609 | | |
610 | | /************************************************************************************* |
611 | | |
612 | | S C A L I N G |
613 | | |
614 | | **************************************************************************************/ |
615 | | |
616 | | double k0 = 0.0; /* General scaling factor - e.g. the 0.9996 of UTM */ |
617 | | double to_meter = 0.0, |
618 | | fr_meter = 0.0; /* Plane coordinate scaling. Internal unit [m] */ |
619 | | double vto_meter = 0.0, |
620 | | vfr_meter = 0.0; /* Vertical scaling. Internal unit [m] */ |
621 | | |
622 | | /************************************************************************************* |
623 | | |
624 | | D A T U M S A N D H E I G H T S Y S T E M S |
625 | | |
626 | | ************************************************************************************** |
627 | | |
628 | | It may be possible, and meaningful, to move the list parts of this up to |
629 | | the PJ_CONTEXT level. |
630 | | |
631 | | **************************************************************************************/ |
632 | | |
633 | | int datum_type = |
634 | | PJD_UNKNOWN; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ |
635 | | double datum_params[7] = {0, 0, 0, 0, |
636 | | 0, 0, 0}; /* Parameters for 3PARAM and 7PARAM */ |
637 | | |
638 | | int has_geoid_vgrids = 0; /* used by legacy transform.cpp */ |
639 | | void *hgrids_legacy = nullptr; /* used by legacy transform.cpp. Is a pointer |
640 | | to a ListOfHGrids* */ |
641 | | void *vgrids_legacy = nullptr; /* used by legacy transform.cpp. Is a pointer |
642 | | to a ListOfVGrids* */ |
643 | | |
644 | | double from_greenwich = 0.0; /* prime meridian offset (in radians) */ |
645 | | double long_wrap_center = 0.0; /* 0.0 for -180 to 180, actually in radians*/ |
646 | | int is_long_wrap_set = 0; |
647 | | char axis[4] = {0, 0, 0, 0}; /* Axis order, pj_transform/pj_adjust_axis */ |
648 | | |
649 | | /************************************************************************************* |
650 | | ISO-19111 interface |
651 | | **************************************************************************************/ |
652 | | |
653 | | NS_PROJ::util::BaseObjectPtr iso_obj{}; |
654 | | bool iso_obj_is_coordinate_operation = false; |
655 | | double coordinateEpoch = 0; |
656 | | bool hasCoordinateEpoch = false; |
657 | | |
658 | | // cached results |
659 | | mutable std::string lastWKT{}; |
660 | | mutable std::string lastPROJString{}; |
661 | | mutable std::string lastJSONString{}; |
662 | | mutable bool gridsNeededAsked = false; |
663 | | mutable std::vector<NS_PROJ::operation::GridDescription> gridsNeeded{}; |
664 | | |
665 | | // cache pj_get_type() result to help for repeated calls to proj_factors() |
666 | | mutable PJ_TYPE type = PJ_TYPE_UNKNOWN; |
667 | | |
668 | | /************************************************************************************* |
669 | | proj_create_crs_to_crs() alternative coordinate operations |
670 | | **************************************************************************************/ |
671 | | std::vector<PJCoordOperation> alternativeCoordinateOperations{}; |
672 | | int iCurCoordOp = -1; |
673 | | bool errorIfBestTransformationNotAvailable = false; |
674 | | bool warnIfBestTransformationNotAvailable = |
675 | | true; /* to remove in PROJ 10? */ |
676 | | bool skipNonInstantiable = true; |
677 | | |
678 | | /************************************************************************************* |
679 | | |
680 | | E N D O F G E N E R A L P A R A M E T E R S T R U C T |
681 | | |
682 | | **************************************************************************************/ |
683 | | |
684 | | PJconsts(); |
685 | | PJconsts(const PJconsts &) = delete; |
686 | | PJconsts &operator=(const PJconsts &) = delete; |
687 | | }; |
688 | | |
689 | | /* Parameter list (a copy of the +proj=... etc. parameters) */ |
690 | | struct ARG_list { |
691 | | paralist *next; |
692 | | char used; |
693 | | #if (defined(__GNUC__) && __GNUC__ >= 8) || \ |
694 | | (defined(__clang__) && __clang_major__ >= 9) |
695 | | char param[]; /* variable-length member */ |
696 | | /* Safer to use [] for gcc 8. See https://github.com/OSGeo/proj.4/pull/1087 |
697 | | */ |
698 | | /* and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86914 */ |
699 | | #else |
700 | | char param[1]; /* variable-length member */ |
701 | | #endif |
702 | | }; |
703 | | |
704 | | typedef union { |
705 | | double f; |
706 | | int i; |
707 | | char *s; |
708 | | } PROJVALUE; |
709 | | |
710 | | struct PJ_DATUMS { |
711 | | const char *id; /* datum keyword */ |
712 | | const char *defn; /* ie. "to_wgs84=..." */ |
713 | | const char *ellipse_id; /* ie from ellipse table */ |
714 | | const char *comments; /* EPSG code, etc */ |
715 | | }; |
716 | | |
717 | | struct DERIVS { |
718 | | double x_l, x_p; /* derivatives of x for lambda-phi */ |
719 | | double y_l, y_p; /* derivatives of y for lambda-phi */ |
720 | | }; |
721 | | |
722 | | struct FACTORS { |
723 | | struct DERIVS der; |
724 | | double h, k; /* meridional, parallel scales */ |
725 | | double omega, thetap; /* angular distortion, theta prime */ |
726 | | double conv; /* convergence */ |
727 | | double s; /* areal scale factor */ |
728 | | double a, b; /* max-min scale error */ |
729 | | int code; /* always 0 */ |
730 | | }; |
731 | | |
732 | | // Legacy |
733 | | struct projFileAPI_t; |
734 | | |
735 | | struct projCppContext; |
736 | | |
737 | | struct projNetworkCallbacksAndData { |
738 | | bool enabled = false; |
739 | | proj_network_open_cbk_type open = nullptr; |
740 | | proj_network_close_cbk_type close = nullptr; |
741 | | proj_network_get_header_value_cbk_type get_header_value = nullptr; |
742 | | proj_network_read_range_type read_range = nullptr; |
743 | | void *user_data = nullptr; |
744 | | }; |
745 | | |
746 | | struct projGridChunkCache { |
747 | | bool enabled = true; |
748 | | std::string filename{}; |
749 | | long long max_size = 300 * 1024 * 1024; |
750 | | int ttl = 86400; // 1 day |
751 | | }; |
752 | | |
753 | | struct projFileApiCallbackAndData { |
754 | | PROJ_FILE_HANDLE *(*open_cbk)(PJ_CONTEXT *ctx, const char *filename, |
755 | | PROJ_OPEN_ACCESS access, |
756 | | void *user_data) = nullptr; |
757 | | size_t (*read_cbk)(PJ_CONTEXT *ctx, PROJ_FILE_HANDLE *, void *buffer, |
758 | | size_t size, void *user_data) = nullptr; |
759 | | size_t (*write_cbk)(PJ_CONTEXT *ctx, PROJ_FILE_HANDLE *, const void *buffer, |
760 | | size_t size, void *user_data) = nullptr; |
761 | | int (*seek_cbk)(PJ_CONTEXT *ctx, PROJ_FILE_HANDLE *, long long offset, |
762 | | int whence, void *user_data) = nullptr; |
763 | | unsigned long long (*tell_cbk)(PJ_CONTEXT *ctx, PROJ_FILE_HANDLE *, |
764 | | void *user_data) = nullptr; |
765 | | void (*close_cbk)(PJ_CONTEXT *ctx, PROJ_FILE_HANDLE *, |
766 | | void *user_data) = nullptr; |
767 | | |
768 | | int (*exists_cbk)(PJ_CONTEXT *ctx, const char *filename, |
769 | | void *user_data) = nullptr; |
770 | | int (*mkdir_cbk)(PJ_CONTEXT *ctx, const char *filename, |
771 | | void *user_data) = nullptr; |
772 | | int (*unlink_cbk)(PJ_CONTEXT *ctx, const char *filename, |
773 | | void *user_data) = nullptr; |
774 | | int (*rename_cbk)(PJ_CONTEXT *ctx, const char *oldPath, const char *newPath, |
775 | | void *user_data) = nullptr; |
776 | | |
777 | | void *user_data = nullptr; |
778 | | }; |
779 | | |
780 | | /* proj thread context */ |
781 | | struct pj_ctx { |
782 | | std::string lastFullErrorMessage{}; // used by proj_context_errno_string |
783 | | int last_errno = 0; |
784 | | int debug_level = PJ_LOG_ERROR; |
785 | | bool errorIfBestTransformationNotAvailableDefault = false; |
786 | | bool warnIfBestTransformationNotAvailableDefault = true; |
787 | | void (*logger)(void *, int, const char *) = nullptr; |
788 | | void *logger_app_data = nullptr; |
789 | | struct projCppContext *cpp_context = |
790 | | nullptr; /* internal context for C++ code */ |
791 | | int use_proj4_init_rules = -1; /* -1 = unknown, 0 = no, 1 = yes */ |
792 | | bool forceOver = false; |
793 | | int epsg_file_exists = -1; /* -1 = unknown, 0 = no, 1 = yes */ |
794 | | |
795 | | std::string |
796 | | env_var_proj_data{}; // content of PROJ_DATA (or legacy PROJ_LIB) |
797 | | // environment variable. Use |
798 | | // Filemanager::getProjDataEnvVar() to access |
799 | | std::vector<std::string> search_paths{}; |
800 | | const char **c_compat_paths = nullptr; // same, but for projinfo usage |
801 | | |
802 | | const char *(*file_finder)(PJ_CONTEXT *, const char *, |
803 | | void *user_data) = nullptr; |
804 | | void *file_finder_user_data = nullptr; |
805 | | |
806 | | bool defer_grid_opening = false; // set transiently by pj_obj_create() |
807 | | |
808 | | projFileApiCallbackAndData fileApi{}; |
809 | | std::string custom_sqlite3_vfs_name{}; |
810 | | std::string user_writable_directory{}; |
811 | | |
812 | | // BEGIN ini file settings |
813 | | bool iniFileLoaded = false; |
814 | | std::string endpoint{}; |
815 | | projNetworkCallbacksAndData networking{}; |
816 | | std::string ca_bundle_path{}; |
817 | | projGridChunkCache gridChunkCache{}; |
818 | | TMercAlgo defaultTmercAlgo = |
819 | | TMercAlgo::PODER_ENGSAGER; // can be overridden by content of proj.ini |
820 | | // END ini file settings |
821 | | |
822 | | int projStringParserCreateFromPROJStringRecursionCounter = |
823 | | 0; // to avoid potential infinite recursion in |
824 | | // PROJStringParser::createFromPROJString() |
825 | | int pipelineInitRecursiongCounter = |
826 | | 0; // to avoid potential infinite recursion in pipeline.cpp |
827 | | |
828 | 1 | pj_ctx() = default; |
829 | | pj_ctx(const pj_ctx &); |
830 | | ~pj_ctx(); |
831 | | |
832 | | pj_ctx &operator=(const pj_ctx &) = delete; |
833 | | |
834 | | projCppContext *get_cpp_context(); |
835 | | void set_search_paths(const std::vector<std::string> &search_paths_in); |
836 | | void set_ca_bundle_path(const std::string &ca_bundle_path_in); |
837 | | |
838 | | static pj_ctx createDefault(); |
839 | | }; |
840 | | |
841 | | #ifndef DO_NOT_DEFINE_PROJ_HEAD |
842 | | #define PROJ_HEAD(name, desc) static const char des_##name[] = desc |
843 | | |
844 | | #define OPERATION(name, NEED_ELLPS) \ |
845 | | \ |
846 | | pj_projection_specific_setup_##name(PJ *P); \ |
847 | | C_NAMESPACE PJ *pj_##name(PJ *P); \ |
848 | | \ |
849 | | C_NAMESPACE_VAR const char *const pj_s_##name = des_##name; \ |
850 | | \ |
851 | 370k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ |
852 | 370k | if (P) \ |
853 | 370k | return pj_projection_specific_setup_##name(P); \ |
854 | 370k | P = pj_new(); \ |
855 | 185k | if (nullptr == P) \ |
856 | 185k | return nullptr; \ |
857 | 185k | P->short_name = #name; \ |
858 | 185k | P->descr = des_##name; \ |
859 | 185k | P->need_ellps = NEED_ELLPS; \ |
860 | 185k | P->left = PJ_IO_UNITS_RADIANS; \ |
861 | 185k | P->right = PJ_IO_UNITS_CLASSIC; \ |
862 | 185k | return P; \ |
863 | 185k | } \ Line | Count | Source | 851 | 27.3k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 27.3k | if (P) \ | 853 | 27.3k | return pj_projection_specific_setup_##name(P); \ | 854 | 27.3k | P = pj_new(); \ | 855 | 13.7k | if (nullptr == P) \ | 856 | 13.7k | return nullptr; \ | 857 | 13.7k | P->short_name = #name; \ | 858 | 13.7k | P->descr = des_##name; \ | 859 | 13.7k | P->need_ellps = NEED_ELLPS; \ | 860 | 13.7k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13.7k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13.7k | return P; \ | 863 | 13.7k | } \ |
Line | Count | Source | 851 | 5.74k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 5.74k | if (P) \ | 853 | 5.74k | return pj_projection_specific_setup_##name(P); \ | 854 | 5.74k | P = pj_new(); \ | 855 | 2.87k | if (nullptr == P) \ | 856 | 2.87k | return nullptr; \ | 857 | 2.87k | P->short_name = #name; \ | 858 | 2.87k | P->descr = des_##name; \ | 859 | 2.87k | P->need_ellps = NEED_ELLPS; \ | 860 | 2.87k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 2.87k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 2.87k | return P; \ | 863 | 2.87k | } \ |
Line | Count | Source | 851 | 14.7k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 14.7k | if (P) \ | 853 | 14.7k | return pj_projection_specific_setup_##name(P); \ | 854 | 14.7k | P = pj_new(); \ | 855 | 7.43k | if (nullptr == P) \ | 856 | 7.43k | return nullptr; \ | 857 | 7.43k | P->short_name = #name; \ | 858 | 7.43k | P->descr = des_##name; \ | 859 | 7.43k | P->need_ellps = NEED_ELLPS; \ | 860 | 7.43k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 7.43k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 7.43k | return P; \ | 863 | 7.43k | } \ |
Line | Count | Source | 851 | 4.08k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 4.08k | if (P) \ | 853 | 4.08k | return pj_projection_specific_setup_##name(P); \ | 854 | 4.08k | P = pj_new(); \ | 855 | 2.04k | if (nullptr == P) \ | 856 | 2.04k | return nullptr; \ | 857 | 2.04k | P->short_name = #name; \ | 858 | 2.04k | P->descr = des_##name; \ | 859 | 2.04k | P->need_ellps = NEED_ELLPS; \ | 860 | 2.04k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 2.04k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 2.04k | return P; \ | 863 | 2.04k | } \ |
Line | Count | Source | 851 | 114k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 114k | if (P) \ | 853 | 114k | return pj_projection_specific_setup_##name(P); \ | 854 | 114k | P = pj_new(); \ | 855 | 57.1k | if (nullptr == P) \ | 856 | 57.1k | return nullptr; \ | 857 | 57.1k | P->short_name = #name; \ | 858 | 57.1k | P->descr = des_##name; \ | 859 | 57.1k | P->need_ellps = NEED_ELLPS; \ | 860 | 57.1k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 57.1k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 57.1k | return P; \ | 863 | 57.1k | } \ |
Line | Count | Source | 851 | 256 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 256 | if (P) \ | 853 | 256 | return pj_projection_specific_setup_##name(P); \ | 854 | 256 | P = pj_new(); \ | 855 | 131 | if (nullptr == P) \ | 856 | 131 | return nullptr; \ | 857 | 131 | P->short_name = #name; \ | 858 | 131 | P->descr = des_##name; \ | 859 | 131 | P->need_ellps = NEED_ELLPS; \ | 860 | 131 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 131 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 131 | return P; \ | 863 | 131 | } \ |
Line | Count | Source | 851 | 556 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 556 | if (P) \ | 853 | 556 | return pj_projection_specific_setup_##name(P); \ | 854 | 556 | P = pj_new(); \ | 855 | 279 | if (nullptr == P) \ | 856 | 279 | return nullptr; \ | 857 | 279 | P->short_name = #name; \ | 858 | 279 | P->descr = des_##name; \ | 859 | 279 | P->need_ellps = NEED_ELLPS; \ | 860 | 279 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 279 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 279 | return P; \ | 863 | 279 | } \ |
Line | Count | Source | 851 | 1.21k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.21k | if (P) \ | 853 | 1.21k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.21k | P = pj_new(); \ | 855 | 609 | if (nullptr == P) \ | 856 | 609 | return nullptr; \ | 857 | 609 | P->short_name = #name; \ | 858 | 609 | P->descr = des_##name; \ | 859 | 609 | P->need_ellps = NEED_ELLPS; \ | 860 | 609 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 609 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 609 | return P; \ | 863 | 609 | } \ |
Line | Count | Source | 851 | 274 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 274 | if (P) \ | 853 | 274 | return pj_projection_specific_setup_##name(P); \ | 854 | 274 | P = pj_new(); \ | 855 | 138 | if (nullptr == P) \ | 856 | 138 | return nullptr; \ | 857 | 138 | P->short_name = #name; \ | 858 | 138 | P->descr = des_##name; \ | 859 | 138 | P->need_ellps = NEED_ELLPS; \ | 860 | 138 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 138 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 138 | return P; \ | 863 | 138 | } \ |
Line | Count | Source | 851 | 2.44k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 2.44k | if (P) \ | 853 | 2.44k | return pj_projection_specific_setup_##name(P); \ | 854 | 2.44k | P = pj_new(); \ | 855 | 1.22k | if (nullptr == P) \ | 856 | 1.22k | return nullptr; \ | 857 | 1.22k | P->short_name = #name; \ | 858 | 1.22k | P->descr = des_##name; \ | 859 | 1.22k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.22k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.22k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.22k | return P; \ | 863 | 1.22k | } \ |
Line | Count | Source | 851 | 13.3k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 13.3k | if (P) \ | 853 | 13.3k | return pj_projection_specific_setup_##name(P); \ | 854 | 13.3k | P = pj_new(); \ | 855 | 6.67k | if (nullptr == P) \ | 856 | 6.67k | return nullptr; \ | 857 | 6.67k | P->short_name = #name; \ | 858 | 6.67k | P->descr = des_##name; \ | 859 | 6.67k | P->need_ellps = NEED_ELLPS; \ | 860 | 6.67k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 6.67k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 6.67k | return P; \ | 863 | 6.67k | } \ |
Line | Count | Source | 851 | 733 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 733 | if (P) \ | 853 | 733 | return pj_projection_specific_setup_##name(P); \ | 854 | 733 | P = pj_new(); \ | 855 | 368 | if (nullptr == P) \ | 856 | 368 | return nullptr; \ | 857 | 368 | P->short_name = #name; \ | 858 | 368 | P->descr = des_##name; \ | 859 | 368 | P->need_ellps = NEED_ELLPS; \ | 860 | 368 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 368 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 368 | return P; \ | 863 | 368 | } \ |
Line | Count | Source | 851 | 28 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 28 | if (P) \ | 853 | 28 | return pj_projection_specific_setup_##name(P); \ | 854 | 28 | P = pj_new(); \ | 855 | 15 | if (nullptr == P) \ | 856 | 15 | return nullptr; \ | 857 | 15 | P->short_name = #name; \ | 858 | 15 | P->descr = des_##name; \ | 859 | 15 | P->need_ellps = NEED_ELLPS; \ | 860 | 15 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 15 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 15 | return P; \ | 863 | 15 | } \ |
Line | Count | Source | 851 | 888 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 888 | if (P) \ | 853 | 888 | return pj_projection_specific_setup_##name(P); \ | 854 | 888 | P = pj_new(); \ | 855 | 446 | if (nullptr == P) \ | 856 | 446 | return nullptr; \ | 857 | 446 | P->short_name = #name; \ | 858 | 446 | P->descr = des_##name; \ | 859 | 446 | P->need_ellps = NEED_ELLPS; \ | 860 | 446 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 446 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 446 | return P; \ | 863 | 446 | } \ |
Line | Count | Source | 851 | 46 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 46 | if (P) \ | 853 | 46 | return pj_projection_specific_setup_##name(P); \ | 854 | 46 | P = pj_new(); \ | 855 | 25 | if (nullptr == P) \ | 856 | 25 | return nullptr; \ | 857 | 25 | P->short_name = #name; \ | 858 | 25 | P->descr = des_##name; \ | 859 | 25 | P->need_ellps = NEED_ELLPS; \ | 860 | 25 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 25 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 25 | return P; \ | 863 | 25 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 804 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 804 | if (P) \ | 853 | 804 | return pj_projection_specific_setup_##name(P); \ | 854 | 804 | P = pj_new(); \ | 855 | 403 | if (nullptr == P) \ | 856 | 403 | return nullptr; \ | 857 | 403 | P->short_name = #name; \ | 858 | 403 | P->descr = des_##name; \ | 859 | 403 | P->need_ellps = NEED_ELLPS; \ | 860 | 403 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 403 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 403 | return P; \ | 863 | 403 | } \ |
Line | Count | Source | 851 | 1.01k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.01k | if (P) \ | 853 | 1.01k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.01k | P = pj_new(); \ | 855 | 511 | if (nullptr == P) \ | 856 | 511 | return nullptr; \ | 857 | 511 | P->short_name = #name; \ | 858 | 511 | P->descr = des_##name; \ | 859 | 511 | P->need_ellps = NEED_ELLPS; \ | 860 | 511 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 511 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 511 | return P; \ | 863 | 511 | } \ |
Line | Count | Source | 851 | 26 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 26 | if (P) \ | 853 | 26 | return pj_projection_specific_setup_##name(P); \ | 854 | 26 | P = pj_new(); \ | 855 | 14 | if (nullptr == P) \ | 856 | 14 | return nullptr; \ | 857 | 14 | P->short_name = #name; \ | 858 | 14 | P->descr = des_##name; \ | 859 | 14 | P->need_ellps = NEED_ELLPS; \ | 860 | 14 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 14 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 14 | return P; \ | 863 | 14 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32 | if (P) \ | 853 | 32 | return pj_projection_specific_setup_##name(P); \ | 854 | 32 | P = pj_new(); \ | 855 | 17 | if (nullptr == P) \ | 856 | 17 | return nullptr; \ | 857 | 17 | P->short_name = #name; \ | 858 | 17 | P->descr = des_##name; \ | 859 | 17 | P->need_ellps = NEED_ELLPS; \ | 860 | 17 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 17 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 17 | return P; \ | 863 | 17 | } \ |
Line | Count | Source | 851 | 196 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 196 | if (P) \ | 853 | 196 | return pj_projection_specific_setup_##name(P); \ | 854 | 196 | P = pj_new(); \ | 855 | 100 | if (nullptr == P) \ | 856 | 100 | return nullptr; \ | 857 | 100 | P->short_name = #name; \ | 858 | 100 | P->descr = des_##name; \ | 859 | 100 | P->need_ellps = NEED_ELLPS; \ | 860 | 100 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 100 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 100 | return P; \ | 863 | 100 | } \ |
Line | Count | Source | 851 | 212 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 212 | if (P) \ | 853 | 212 | return pj_projection_specific_setup_##name(P); \ | 854 | 212 | P = pj_new(); \ | 855 | 107 | if (nullptr == P) \ | 856 | 107 | return nullptr; \ | 857 | 107 | P->short_name = #name; \ | 858 | 107 | P->descr = des_##name; \ | 859 | 107 | P->need_ellps = NEED_ELLPS; \ | 860 | 107 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 107 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 107 | return P; \ | 863 | 107 | } \ |
Line | Count | Source | 851 | 60 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 60 | if (P) \ | 853 | 60 | return pj_projection_specific_setup_##name(P); \ | 854 | 60 | P = pj_new(); \ | 855 | 31 | if (nullptr == P) \ | 856 | 31 | return nullptr; \ | 857 | 31 | P->short_name = #name; \ | 858 | 31 | P->descr = des_##name; \ | 859 | 31 | P->need_ellps = NEED_ELLPS; \ | 860 | 31 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 31 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 31 | return P; \ | 863 | 31 | } \ |
Line | Count | Source | 851 | 30 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 30 | if (P) \ | 853 | 30 | return pj_projection_specific_setup_##name(P); \ | 854 | 30 | P = pj_new(); \ | 855 | 16 | if (nullptr == P) \ | 856 | 16 | return nullptr; \ | 857 | 16 | P->short_name = #name; \ | 858 | 16 | P->descr = des_##name; \ | 859 | 16 | P->need_ellps = NEED_ELLPS; \ | 860 | 16 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 16 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 16 | return P; \ | 863 | 16 | } \ |
Line | Count | Source | 851 | 28 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 28 | if (P) \ | 853 | 28 | return pj_projection_specific_setup_##name(P); \ | 854 | 28 | P = pj_new(); \ | 855 | 15 | if (nullptr == P) \ | 856 | 15 | return nullptr; \ | 857 | 15 | P->short_name = #name; \ | 858 | 15 | P->descr = des_##name; \ | 859 | 15 | P->need_ellps = NEED_ELLPS; \ | 860 | 15 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 15 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 15 | return P; \ | 863 | 15 | } \ |
Line | Count | Source | 851 | 107 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 107 | if (P) \ | 853 | 107 | return pj_projection_specific_setup_##name(P); \ | 854 | 107 | P = pj_new(); \ | 855 | 55 | if (nullptr == P) \ | 856 | 55 | return nullptr; \ | 857 | 55 | P->short_name = #name; \ | 858 | 55 | P->descr = des_##name; \ | 859 | 55 | P->need_ellps = NEED_ELLPS; \ | 860 | 55 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 55 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 55 | return P; \ | 863 | 55 | } \ |
Line | Count | Source | 851 | 2.25k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 2.25k | if (P) \ | 853 | 2.25k | return pj_projection_specific_setup_##name(P); \ | 854 | 2.25k | P = pj_new(); \ | 855 | 1.13k | if (nullptr == P) \ | 856 | 1.13k | return nullptr; \ | 857 | 1.13k | P->short_name = #name; \ | 858 | 1.13k | P->descr = des_##name; \ | 859 | 1.13k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.13k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.13k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.13k | return P; \ | 863 | 1.13k | } \ |
Line | Count | Source | 851 | 1.05k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.05k | if (P) \ | 853 | 1.05k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.05k | P = pj_new(); \ | 855 | 532 | if (nullptr == P) \ | 856 | 532 | return nullptr; \ | 857 | 532 | P->short_name = #name; \ | 858 | 532 | P->descr = des_##name; \ | 859 | 532 | P->need_ellps = NEED_ELLPS; \ | 860 | 532 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 532 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 532 | return P; \ | 863 | 532 | } \ |
Line | Count | Source | 851 | 174 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 174 | if (P) \ | 853 | 174 | return pj_projection_specific_setup_##name(P); \ | 854 | 174 | P = pj_new(); \ | 855 | 88 | if (nullptr == P) \ | 856 | 88 | return nullptr; \ | 857 | 88 | P->short_name = #name; \ | 858 | 88 | P->descr = des_##name; \ | 859 | 88 | P->need_ellps = NEED_ELLPS; \ | 860 | 88 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 88 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 88 | return P; \ | 863 | 88 | } \ |
Line | Count | Source | 851 | 376 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 376 | if (P) \ | 853 | 376 | return pj_projection_specific_setup_##name(P); \ | 854 | 376 | P = pj_new(); \ | 855 | 189 | if (nullptr == P) \ | 856 | 189 | return nullptr; \ | 857 | 189 | P->short_name = #name; \ | 858 | 189 | P->descr = des_##name; \ | 859 | 189 | P->need_ellps = NEED_ELLPS; \ | 860 | 189 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 189 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 189 | return P; \ | 863 | 189 | } \ |
Line | Count | Source | 851 | 344 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 344 | if (P) \ | 853 | 344 | return pj_projection_specific_setup_##name(P); \ | 854 | 344 | P = pj_new(); \ | 855 | 173 | if (nullptr == P) \ | 856 | 173 | return nullptr; \ | 857 | 173 | P->short_name = #name; \ | 858 | 173 | P->descr = des_##name; \ | 859 | 173 | P->need_ellps = NEED_ELLPS; \ | 860 | 173 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 173 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 173 | return P; \ | 863 | 173 | } \ |
Line | Count | Source | 851 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32 | if (P) \ | 853 | 32 | return pj_projection_specific_setup_##name(P); \ | 854 | 32 | P = pj_new(); \ | 855 | 17 | if (nullptr == P) \ | 856 | 17 | return nullptr; \ | 857 | 17 | P->short_name = #name; \ | 858 | 17 | P->descr = des_##name; \ | 859 | 17 | P->need_ellps = NEED_ELLPS; \ | 860 | 17 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 17 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 17 | return P; \ | 863 | 17 | } \ |
Line | Count | Source | 851 | 70 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 70 | if (P) \ | 853 | 70 | return pj_projection_specific_setup_##name(P); \ | 854 | 70 | P = pj_new(); \ | 855 | 36 | if (nullptr == P) \ | 856 | 36 | return nullptr; \ | 857 | 36 | P->short_name = #name; \ | 858 | 36 | P->descr = des_##name; \ | 859 | 36 | P->need_ellps = NEED_ELLPS; \ | 860 | 36 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 36 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 36 | return P; \ | 863 | 36 | } \ |
Line | Count | Source | 851 | 914 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 914 | if (P) \ | 853 | 914 | return pj_projection_specific_setup_##name(P); \ | 854 | 914 | P = pj_new(); \ | 855 | 458 | if (nullptr == P) \ | 856 | 458 | return nullptr; \ | 857 | 458 | P->short_name = #name; \ | 858 | 458 | P->descr = des_##name; \ | 859 | 458 | P->need_ellps = NEED_ELLPS; \ | 860 | 458 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 458 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 458 | return P; \ | 863 | 458 | } \ |
Line | Count | Source | 851 | 1.10k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.10k | if (P) \ | 853 | 1.10k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.10k | P = pj_new(); \ | 855 | 556 | if (nullptr == P) \ | 856 | 556 | return nullptr; \ | 857 | 556 | P->short_name = #name; \ | 858 | 556 | P->descr = des_##name; \ | 859 | 556 | P->need_ellps = NEED_ELLPS; \ | 860 | 556 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 556 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 556 | return P; \ | 863 | 556 | } \ |
Line | Count | Source | 851 | 40 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 40 | if (P) \ | 853 | 40 | return pj_projection_specific_setup_##name(P); \ | 854 | 40 | P = pj_new(); \ | 855 | 21 | if (nullptr == P) \ | 856 | 21 | return nullptr; \ | 857 | 21 | P->short_name = #name; \ | 858 | 21 | P->descr = des_##name; \ | 859 | 21 | P->need_ellps = NEED_ELLPS; \ | 860 | 21 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 21 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 21 | return P; \ | 863 | 21 | } \ |
Line | Count | Source | 851 | 218 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 218 | if (P) \ | 853 | 218 | return pj_projection_specific_setup_##name(P); \ | 854 | 218 | P = pj_new(); \ | 855 | 110 | if (nullptr == P) \ | 856 | 110 | return nullptr; \ | 857 | 110 | P->short_name = #name; \ | 858 | 110 | P->descr = des_##name; \ | 859 | 110 | P->need_ellps = NEED_ELLPS; \ | 860 | 110 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 110 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 110 | return P; \ | 863 | 110 | } \ |
Line | Count | Source | 851 | 5.30k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 5.30k | if (P) \ | 853 | 5.30k | return pj_projection_specific_setup_##name(P); \ | 854 | 5.30k | P = pj_new(); \ | 855 | 2.65k | if (nullptr == P) \ | 856 | 2.65k | return nullptr; \ | 857 | 2.65k | P->short_name = #name; \ | 858 | 2.65k | P->descr = des_##name; \ | 859 | 2.65k | P->need_ellps = NEED_ELLPS; \ | 860 | 2.65k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 2.65k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 2.65k | return P; \ | 863 | 2.65k | } \ |
Line | Count | Source | 851 | 126 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 126 | if (P) \ | 853 | 126 | return pj_projection_specific_setup_##name(P); \ | 854 | 126 | P = pj_new(); \ | 855 | 65 | if (nullptr == P) \ | 856 | 65 | return nullptr; \ | 857 | 65 | P->short_name = #name; \ | 858 | 65 | P->descr = des_##name; \ | 859 | 65 | P->need_ellps = NEED_ELLPS; \ | 860 | 65 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 65 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 65 | return P; \ | 863 | 65 | } \ |
Line | Count | Source | 851 | 2.40k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 2.40k | if (P) \ | 853 | 2.40k | return pj_projection_specific_setup_##name(P); \ | 854 | 2.40k | P = pj_new(); \ | 855 | 1.24k | if (nullptr == P) \ | 856 | 1.24k | return nullptr; \ | 857 | 1.24k | P->short_name = #name; \ | 858 | 1.24k | P->descr = des_##name; \ | 859 | 1.24k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.24k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.24k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.24k | return P; \ | 863 | 1.24k | } \ |
Line | Count | Source | 851 | 476 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 476 | if (P) \ | 853 | 476 | return pj_projection_specific_setup_##name(P); \ | 854 | 476 | P = pj_new(); \ | 855 | 240 | if (nullptr == P) \ | 856 | 240 | return nullptr; \ | 857 | 240 | P->short_name = #name; \ | 858 | 240 | P->descr = des_##name; \ | 859 | 240 | P->need_ellps = NEED_ELLPS; \ | 860 | 240 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 240 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 240 | return P; \ | 863 | 240 | } \ |
Line | Count | Source | 851 | 196 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 196 | if (P) \ | 853 | 196 | return pj_projection_specific_setup_##name(P); \ | 854 | 196 | P = pj_new(); \ | 855 | 99 | if (nullptr == P) \ | 856 | 99 | return nullptr; \ | 857 | 99 | P->short_name = #name; \ | 858 | 99 | P->descr = des_##name; \ | 859 | 99 | P->need_ellps = NEED_ELLPS; \ | 860 | 99 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 99 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 99 | return P; \ | 863 | 99 | } \ |
Line | Count | Source | 851 | 40 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 40 | if (P) \ | 853 | 40 | return pj_projection_specific_setup_##name(P); \ | 854 | 40 | P = pj_new(); \ | 855 | 21 | if (nullptr == P) \ | 856 | 21 | return nullptr; \ | 857 | 21 | P->short_name = #name; \ | 858 | 21 | P->descr = des_##name; \ | 859 | 21 | P->need_ellps = NEED_ELLPS; \ | 860 | 21 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 21 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 21 | return P; \ | 863 | 21 | } \ |
Line | Count | Source | 851 | 38 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 38 | if (P) \ | 853 | 38 | return pj_projection_specific_setup_##name(P); \ | 854 | 38 | P = pj_new(); \ | 855 | 20 | if (nullptr == P) \ | 856 | 20 | return nullptr; \ | 857 | 20 | P->short_name = #name; \ | 858 | 20 | P->descr = des_##name; \ | 859 | 20 | P->need_ellps = NEED_ELLPS; \ | 860 | 20 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 20 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 20 | return P; \ | 863 | 20 | } \ |
Line | Count | Source | 851 | 40 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 40 | if (P) \ | 853 | 40 | return pj_projection_specific_setup_##name(P); \ | 854 | 40 | P = pj_new(); \ | 855 | 21 | if (nullptr == P) \ | 856 | 21 | return nullptr; \ | 857 | 21 | P->short_name = #name; \ | 858 | 21 | P->descr = des_##name; \ | 859 | 21 | P->need_ellps = NEED_ELLPS; \ | 860 | 21 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 21 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 21 | return P; \ | 863 | 21 | } \ |
Line | Count | Source | 851 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32 | if (P) \ | 853 | 32 | return pj_projection_specific_setup_##name(P); \ | 854 | 32 | P = pj_new(); \ | 855 | 17 | if (nullptr == P) \ | 856 | 17 | return nullptr; \ | 857 | 17 | P->short_name = #name; \ | 858 | 17 | P->descr = des_##name; \ | 859 | 17 | P->need_ellps = NEED_ELLPS; \ | 860 | 17 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 17 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 17 | return P; \ | 863 | 17 | } \ |
Line | Count | Source | 851 | 31 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 31 | if (P) \ | 853 | 31 | return pj_projection_specific_setup_##name(P); \ | 854 | 31 | P = pj_new(); \ | 855 | 17 | if (nullptr == P) \ | 856 | 17 | return nullptr; \ | 857 | 17 | P->short_name = #name; \ | 858 | 17 | P->descr = des_##name; \ | 859 | 17 | P->need_ellps = NEED_ELLPS; \ | 860 | 17 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 17 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 17 | return P; \ | 863 | 17 | } \ |
Line | Count | Source | 851 | 36 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 36 | if (P) \ | 853 | 36 | return pj_projection_specific_setup_##name(P); \ | 854 | 36 | P = pj_new(); \ | 855 | 19 | if (nullptr == P) \ | 856 | 19 | return nullptr; \ | 857 | 19 | P->short_name = #name; \ | 858 | 19 | P->descr = des_##name; \ | 859 | 19 | P->need_ellps = NEED_ELLPS; \ | 860 | 19 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 19 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 19 | return P; \ | 863 | 19 | } \ |
Line | Count | Source | 851 | 38 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 38 | if (P) \ | 853 | 38 | return pj_projection_specific_setup_##name(P); \ | 854 | 38 | P = pj_new(); \ | 855 | 20 | if (nullptr == P) \ | 856 | 20 | return nullptr; \ | 857 | 20 | P->short_name = #name; \ | 858 | 20 | P->descr = des_##name; \ | 859 | 20 | P->need_ellps = NEED_ELLPS; \ | 860 | 20 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 20 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 20 | return P; \ | 863 | 20 | } \ |
Line | Count | Source | 851 | 738 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 738 | if (P) \ | 853 | 738 | return pj_projection_specific_setup_##name(P); \ | 854 | 738 | P = pj_new(); \ | 855 | 370 | if (nullptr == P) \ | 856 | 370 | return nullptr; \ | 857 | 370 | P->short_name = #name; \ | 858 | 370 | P->descr = des_##name; \ | 859 | 370 | P->need_ellps = NEED_ELLPS; \ | 860 | 370 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 370 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 370 | return P; \ | 863 | 370 | } \ |
Line | Count | Source | 851 | 552 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 552 | if (P) \ | 853 | 552 | return pj_projection_specific_setup_##name(P); \ | 854 | 552 | P = pj_new(); \ | 855 | 277 | if (nullptr == P) \ | 856 | 277 | return nullptr; \ | 857 | 277 | P->short_name = #name; \ | 858 | 277 | P->descr = des_##name; \ | 859 | 277 | P->need_ellps = NEED_ELLPS; \ | 860 | 277 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 277 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 277 | return P; \ | 863 | 277 | } \ |
Line | Count | Source | 851 | 3.46k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 3.46k | if (P) \ | 853 | 3.46k | return pj_projection_specific_setup_##name(P); \ | 854 | 3.46k | P = pj_new(); \ | 855 | 1.77k | if (nullptr == P) \ | 856 | 1.77k | return nullptr; \ | 857 | 1.77k | P->short_name = #name; \ | 858 | 1.77k | P->descr = des_##name; \ | 859 | 1.77k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.77k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.77k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.77k | return P; \ | 863 | 1.77k | } \ |
Line | Count | Source | 851 | 701 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 701 | if (P) \ | 853 | 701 | return pj_projection_specific_setup_##name(P); \ | 854 | 701 | P = pj_new(); \ | 855 | 356 | if (nullptr == P) \ | 856 | 356 | return nullptr; \ | 857 | 356 | P->short_name = #name; \ | 858 | 356 | P->descr = des_##name; \ | 859 | 356 | P->need_ellps = NEED_ELLPS; \ | 860 | 356 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 356 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 356 | return P; \ | 863 | 356 | } \ |
Line | Count | Source | 851 | 373 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 373 | if (P) \ | 853 | 373 | return pj_projection_specific_setup_##name(P); \ | 854 | 373 | P = pj_new(); \ | 855 | 189 | if (nullptr == P) \ | 856 | 189 | return nullptr; \ | 857 | 189 | P->short_name = #name; \ | 858 | 189 | P->descr = des_##name; \ | 859 | 189 | P->need_ellps = NEED_ELLPS; \ | 860 | 189 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 189 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 189 | return P; \ | 863 | 189 | } \ |
Line | Count | Source | 851 | 21 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 21 | if (P) \ | 853 | 21 | return pj_projection_specific_setup_##name(P); \ | 854 | 21 | P = pj_new(); \ | 855 | 11 | if (nullptr == P) \ | 856 | 11 | return nullptr; \ | 857 | 11 | P->short_name = #name; \ | 858 | 11 | P->descr = des_##name; \ | 859 | 11 | P->need_ellps = NEED_ELLPS; \ | 860 | 11 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 11 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 11 | return P; \ | 863 | 11 | } \ |
Line | Count | Source | 851 | 46 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 46 | if (P) \ | 853 | 46 | return pj_projection_specific_setup_##name(P); \ | 854 | 46 | P = pj_new(); \ | 855 | 24 | if (nullptr == P) \ | 856 | 24 | return nullptr; \ | 857 | 24 | P->short_name = #name; \ | 858 | 24 | P->descr = des_##name; \ | 859 | 24 | P->need_ellps = NEED_ELLPS; \ | 860 | 24 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 24 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 24 | return P; \ | 863 | 24 | } \ |
Line | Count | Source | 851 | 168 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 168 | if (P) \ | 853 | 168 | return pj_projection_specific_setup_##name(P); \ | 854 | 168 | P = pj_new(); \ | 855 | 87 | if (nullptr == P) \ | 856 | 87 | return nullptr; \ | 857 | 87 | P->short_name = #name; \ | 858 | 87 | P->descr = des_##name; \ | 859 | 87 | P->need_ellps = NEED_ELLPS; \ | 860 | 87 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 87 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 87 | return P; \ | 863 | 87 | } \ |
Line | Count | Source | 851 | 134 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 134 | if (P) \ | 853 | 134 | return pj_projection_specific_setup_##name(P); \ | 854 | 134 | P = pj_new(); \ | 855 | 68 | if (nullptr == P) \ | 856 | 68 | return nullptr; \ | 857 | 68 | P->short_name = #name; \ | 858 | 68 | P->descr = des_##name; \ | 859 | 68 | P->need_ellps = NEED_ELLPS; \ | 860 | 68 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 68 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 68 | return P; \ | 863 | 68 | } \ |
Line | Count | Source | 851 | 180 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 180 | if (P) \ | 853 | 180 | return pj_projection_specific_setup_##name(P); \ | 854 | 180 | P = pj_new(); \ | 855 | 91 | if (nullptr == P) \ | 856 | 91 | return nullptr; \ | 857 | 91 | P->short_name = #name; \ | 858 | 91 | P->descr = des_##name; \ | 859 | 91 | P->need_ellps = NEED_ELLPS; \ | 860 | 91 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 91 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 91 | return P; \ | 863 | 91 | } \ |
Line | Count | Source | 851 | 1.77k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.77k | if (P) \ | 853 | 1.77k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.77k | P = pj_new(); \ | 855 | 895 | if (nullptr == P) \ | 856 | 895 | return nullptr; \ | 857 | 895 | P->short_name = #name; \ | 858 | 895 | P->descr = des_##name; \ | 859 | 895 | P->need_ellps = NEED_ELLPS; \ | 860 | 895 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 895 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 895 | return P; \ | 863 | 895 | } \ |
Line | Count | Source | 851 | 86 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 86 | if (P) \ | 853 | 86 | return pj_projection_specific_setup_##name(P); \ | 854 | 86 | P = pj_new(); \ | 855 | 44 | if (nullptr == P) \ | 856 | 44 | return nullptr; \ | 857 | 44 | P->short_name = #name; \ | 858 | 44 | P->descr = des_##name; \ | 859 | 44 | P->need_ellps = NEED_ELLPS; \ | 860 | 44 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 44 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 44 | return P; \ | 863 | 44 | } \ |
Line | Count | Source | 851 | 40 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 40 | if (P) \ | 853 | 40 | return pj_projection_specific_setup_##name(P); \ | 854 | 40 | P = pj_new(); \ | 855 | 21 | if (nullptr == P) \ | 856 | 21 | return nullptr; \ | 857 | 21 | P->short_name = #name; \ | 858 | 21 | P->descr = des_##name; \ | 859 | 21 | P->need_ellps = NEED_ELLPS; \ | 860 | 21 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 21 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 21 | return P; \ | 863 | 21 | } \ |
Line | Count | Source | 851 | 140 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 140 | if (P) \ | 853 | 140 | return pj_projection_specific_setup_##name(P); \ | 854 | 140 | P = pj_new(); \ | 855 | 71 | if (nullptr == P) \ | 856 | 71 | return nullptr; \ | 857 | 71 | P->short_name = #name; \ | 858 | 71 | P->descr = des_##name; \ | 859 | 71 | P->need_ellps = NEED_ELLPS; \ | 860 | 71 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 71 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 71 | return P; \ | 863 | 71 | } \ |
Line | Count | Source | 851 | 575 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 575 | if (P) \ | 853 | 575 | return pj_projection_specific_setup_##name(P); \ | 854 | 575 | P = pj_new(); \ | 855 | 292 | if (nullptr == P) \ | 856 | 292 | return nullptr; \ | 857 | 292 | P->short_name = #name; \ | 858 | 292 | P->descr = des_##name; \ | 859 | 292 | P->need_ellps = NEED_ELLPS; \ | 860 | 292 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 292 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 292 | return P; \ | 863 | 292 | } \ |
Line | Count | Source | 851 | 799 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 799 | if (P) \ | 853 | 799 | return pj_projection_specific_setup_##name(P); \ | 854 | 799 | P = pj_new(); \ | 855 | 407 | if (nullptr == P) \ | 856 | 407 | return nullptr; \ | 857 | 407 | P->short_name = #name; \ | 858 | 407 | P->descr = des_##name; \ | 859 | 407 | P->need_ellps = NEED_ELLPS; \ | 860 | 407 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 407 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 407 | return P; \ | 863 | 407 | } \ |
Line | Count | Source | 851 | 226 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 226 | if (P) \ | 853 | 226 | return pj_projection_specific_setup_##name(P); \ | 854 | 226 | P = pj_new(); \ | 855 | 114 | if (nullptr == P) \ | 856 | 114 | return nullptr; \ | 857 | 114 | P->short_name = #name; \ | 858 | 114 | P->descr = des_##name; \ | 859 | 114 | P->need_ellps = NEED_ELLPS; \ | 860 | 114 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 114 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 114 | return P; \ | 863 | 114 | } \ |
Line | Count | Source | 851 | 74 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 74 | if (P) \ | 853 | 74 | return pj_projection_specific_setup_##name(P); \ | 854 | 74 | P = pj_new(); \ | 855 | 39 | if (nullptr == P) \ | 856 | 39 | return nullptr; \ | 857 | 39 | P->short_name = #name; \ | 858 | 39 | P->descr = des_##name; \ | 859 | 39 | P->need_ellps = NEED_ELLPS; \ | 860 | 39 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 39 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 39 | return P; \ | 863 | 39 | } \ |
Line | Count | Source | 851 | 152 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 152 | if (P) \ | 853 | 152 | return pj_projection_specific_setup_##name(P); \ | 854 | 152 | P = pj_new(); \ | 855 | 78 | if (nullptr == P) \ | 856 | 78 | return nullptr; \ | 857 | 78 | P->short_name = #name; \ | 858 | 78 | P->descr = des_##name; \ | 859 | 78 | P->need_ellps = NEED_ELLPS; \ | 860 | 78 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 78 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 78 | return P; \ | 863 | 78 | } \ |
Line | Count | Source | 851 | 2.20k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 2.20k | if (P) \ | 853 | 2.20k | return pj_projection_specific_setup_##name(P); \ | 854 | 2.20k | P = pj_new(); \ | 855 | 1.10k | if (nullptr == P) \ | 856 | 1.10k | return nullptr; \ | 857 | 1.10k | P->short_name = #name; \ | 858 | 1.10k | P->descr = des_##name; \ | 859 | 1.10k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.10k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.10k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.10k | return P; \ | 863 | 1.10k | } \ |
Line | Count | Source | 851 | 182 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 182 | if (P) \ | 853 | 182 | return pj_projection_specific_setup_##name(P); \ | 854 | 182 | P = pj_new(); \ | 855 | 92 | if (nullptr == P) \ | 856 | 92 | return nullptr; \ | 857 | 92 | P->short_name = #name; \ | 858 | 92 | P->descr = des_##name; \ | 859 | 92 | P->need_ellps = NEED_ELLPS; \ | 860 | 92 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 92 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 92 | return P; \ | 863 | 92 | } \ |
Line | Count | Source | 851 | 2.08k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 2.08k | if (P) \ | 853 | 2.08k | return pj_projection_specific_setup_##name(P); \ | 854 | 2.08k | P = pj_new(); \ | 855 | 1.05k | if (nullptr == P) \ | 856 | 1.05k | return nullptr; \ | 857 | 1.05k | P->short_name = #name; \ | 858 | 1.05k | P->descr = des_##name; \ | 859 | 1.05k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.05k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.05k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.05k | return P; \ | 863 | 1.05k | } \ |
Line | Count | Source | 851 | 292 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 292 | if (P) \ | 853 | 292 | return pj_projection_specific_setup_##name(P); \ | 854 | 292 | P = pj_new(); \ | 855 | 147 | if (nullptr == P) \ | 856 | 147 | return nullptr; \ | 857 | 147 | P->short_name = #name; \ | 858 | 147 | P->descr = des_##name; \ | 859 | 147 | P->need_ellps = NEED_ELLPS; \ | 860 | 147 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 147 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 147 | return P; \ | 863 | 147 | } \ |
Line | Count | Source | 851 | 834 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 834 | if (P) \ | 853 | 834 | return pj_projection_specific_setup_##name(P); \ | 854 | 834 | P = pj_new(); \ | 855 | 418 | if (nullptr == P) \ | 856 | 418 | return nullptr; \ | 857 | 418 | P->short_name = #name; \ | 858 | 418 | P->descr = des_##name; \ | 859 | 418 | P->need_ellps = NEED_ELLPS; \ | 860 | 418 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 418 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 418 | return P; \ | 863 | 418 | } \ |
Line | Count | Source | 851 | 34 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 34 | if (P) \ | 853 | 34 | return pj_projection_specific_setup_##name(P); \ | 854 | 34 | P = pj_new(); \ | 855 | 19 | if (nullptr == P) \ | 856 | 19 | return nullptr; \ | 857 | 19 | P->short_name = #name; \ | 858 | 19 | P->descr = des_##name; \ | 859 | 19 | P->need_ellps = NEED_ELLPS; \ | 860 | 19 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 19 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 19 | return P; \ | 863 | 19 | } \ |
Line | Count | Source | 851 | 330 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 330 | if (P) \ | 853 | 330 | return pj_projection_specific_setup_##name(P); \ | 854 | 330 | P = pj_new(); \ | 855 | 166 | if (nullptr == P) \ | 856 | 166 | return nullptr; \ | 857 | 166 | P->short_name = #name; \ | 858 | 166 | P->descr = des_##name; \ | 859 | 166 | P->need_ellps = NEED_ELLPS; \ | 860 | 166 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 166 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 166 | return P; \ | 863 | 166 | } \ |
Line | Count | Source | 851 | 26 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 26 | if (P) \ | 853 | 26 | return pj_projection_specific_setup_##name(P); \ | 854 | 26 | P = pj_new(); \ | 855 | 14 | if (nullptr == P) \ | 856 | 14 | return nullptr; \ | 857 | 14 | P->short_name = #name; \ | 858 | 14 | P->descr = des_##name; \ | 859 | 14 | P->need_ellps = NEED_ELLPS; \ | 860 | 14 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 14 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 14 | return P; \ | 863 | 14 | } \ |
Line | Count | Source | 851 | 21 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 21 | if (P) \ | 853 | 21 | return pj_projection_specific_setup_##name(P); \ | 854 | 21 | P = pj_new(); \ | 855 | 11 | if (nullptr == P) \ | 856 | 11 | return nullptr; \ | 857 | 11 | P->short_name = #name; \ | 858 | 11 | P->descr = des_##name; \ | 859 | 11 | P->need_ellps = NEED_ELLPS; \ | 860 | 11 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 11 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 11 | return P; \ | 863 | 11 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 140 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 140 | if (P) \ | 853 | 140 | return pj_projection_specific_setup_##name(P); \ | 854 | 140 | P = pj_new(); \ | 855 | 71 | if (nullptr == P) \ | 856 | 71 | return nullptr; \ | 857 | 71 | P->short_name = #name; \ | 858 | 71 | P->descr = des_##name; \ | 859 | 71 | P->need_ellps = NEED_ELLPS; \ | 860 | 71 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 71 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 71 | return P; \ | 863 | 71 | } \ |
Line | Count | Source | 851 | 18 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 18 | if (P) \ | 853 | 18 | return pj_projection_specific_setup_##name(P); \ | 854 | 18 | P = pj_new(); \ | 855 | 10 | if (nullptr == P) \ | 856 | 10 | return nullptr; \ | 857 | 10 | P->short_name = #name; \ | 858 | 10 | P->descr = des_##name; \ | 859 | 10 | P->need_ellps = NEED_ELLPS; \ | 860 | 10 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 10 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 10 | return P; \ | 863 | 10 | } \ |
Line | Count | Source | 851 | 1.14k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.14k | if (P) \ | 853 | 1.14k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.14k | P = pj_new(); \ | 855 | 574 | if (nullptr == P) \ | 856 | 574 | return nullptr; \ | 857 | 574 | P->short_name = #name; \ | 858 | 574 | P->descr = des_##name; \ | 859 | 574 | P->need_ellps = NEED_ELLPS; \ | 860 | 574 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 574 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 574 | return P; \ | 863 | 574 | } \ |
Line | Count | Source | 851 | 454 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 454 | if (P) \ | 853 | 454 | return pj_projection_specific_setup_##name(P); \ | 854 | 454 | P = pj_new(); \ | 855 | 228 | if (nullptr == P) \ | 856 | 228 | return nullptr; \ | 857 | 228 | P->short_name = #name; \ | 858 | 228 | P->descr = des_##name; \ | 859 | 228 | P->need_ellps = NEED_ELLPS; \ | 860 | 228 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 228 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 228 | return P; \ | 863 | 228 | } \ |
Line | Count | Source | 851 | 156 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 156 | if (P) \ | 853 | 156 | return pj_projection_specific_setup_##name(P); \ | 854 | 156 | P = pj_new(); \ | 855 | 79 | if (nullptr == P) \ | 856 | 79 | return nullptr; \ | 857 | 79 | P->short_name = #name; \ | 858 | 79 | P->descr = des_##name; \ | 859 | 79 | P->need_ellps = NEED_ELLPS; \ | 860 | 79 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 79 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 79 | return P; \ | 863 | 79 | } \ |
Line | Count | Source | 851 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32 | if (P) \ | 853 | 32 | return pj_projection_specific_setup_##name(P); \ | 854 | 32 | P = pj_new(); \ | 855 | 18 | if (nullptr == P) \ | 856 | 18 | return nullptr; \ | 857 | 18 | P->short_name = #name; \ | 858 | 18 | P->descr = des_##name; \ | 859 | 18 | P->need_ellps = NEED_ELLPS; \ | 860 | 18 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 18 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 18 | return P; \ | 863 | 18 | } \ |
Line | Count | Source | 851 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32 | if (P) \ | 853 | 32 | return pj_projection_specific_setup_##name(P); \ | 854 | 32 | P = pj_new(); \ | 855 | 17 | if (nullptr == P) \ | 856 | 17 | return nullptr; \ | 857 | 17 | P->short_name = #name; \ | 858 | 17 | P->descr = des_##name; \ | 859 | 17 | P->need_ellps = NEED_ELLPS; \ | 860 | 17 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 17 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 17 | return P; \ | 863 | 17 | } \ |
Line | Count | Source | 851 | 184 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 184 | if (P) \ | 853 | 184 | return pj_projection_specific_setup_##name(P); \ | 854 | 184 | P = pj_new(); \ | 855 | 94 | if (nullptr == P) \ | 856 | 94 | return nullptr; \ | 857 | 94 | P->short_name = #name; \ | 858 | 94 | P->descr = des_##name; \ | 859 | 94 | P->need_ellps = NEED_ELLPS; \ | 860 | 94 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 94 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 94 | return P; \ | 863 | 94 | } \ |
Line | Count | Source | 851 | 8.08k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 8.08k | if (P) \ | 853 | 8.08k | return pj_projection_specific_setup_##name(P); \ | 854 | 8.08k | P = pj_new(); \ | 855 | 4.05k | if (nullptr == P) \ | 856 | 4.05k | return nullptr; \ | 857 | 4.05k | P->short_name = #name; \ | 858 | 4.05k | P->descr = des_##name; \ | 859 | 4.05k | P->need_ellps = NEED_ELLPS; \ | 860 | 4.05k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 4.05k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 4.05k | return P; \ | 863 | 4.05k | } \ |
Line | Count | Source | 851 | 440 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 440 | if (P) \ | 853 | 440 | return pj_projection_specific_setup_##name(P); \ | 854 | 440 | P = pj_new(); \ | 855 | 222 | if (nullptr == P) \ | 856 | 222 | return nullptr; \ | 857 | 222 | P->short_name = #name; \ | 858 | 222 | P->descr = des_##name; \ | 859 | 222 | P->need_ellps = NEED_ELLPS; \ | 860 | 222 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 222 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 222 | return P; \ | 863 | 222 | } \ |
Line | Count | Source | 851 | 32.5k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32.5k | if (P) \ | 853 | 32.5k | return pj_projection_specific_setup_##name(P); \ | 854 | 32.5k | P = pj_new(); \ | 855 | 16.3k | if (nullptr == P) \ | 856 | 16.3k | return nullptr; \ | 857 | 16.3k | P->short_name = #name; \ | 858 | 16.3k | P->descr = des_##name; \ | 859 | 16.3k | P->need_ellps = NEED_ELLPS; \ | 860 | 16.3k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 16.3k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 16.3k | return P; \ | 863 | 16.3k | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 11.4k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 11.4k | if (P) \ | 853 | 11.4k | return pj_projection_specific_setup_##name(P); \ | 854 | 11.4k | P = pj_new(); \ | 855 | 5.74k | if (nullptr == P) \ | 856 | 5.74k | return nullptr; \ | 857 | 5.74k | P->short_name = #name; \ | 858 | 5.74k | P->descr = des_##name; \ | 859 | 5.74k | P->need_ellps = NEED_ELLPS; \ | 860 | 5.74k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 5.74k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 5.74k | return P; \ | 863 | 5.74k | } \ |
Line | Count | Source | 851 | 29 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 29 | if (P) \ | 853 | 29 | return pj_projection_specific_setup_##name(P); \ | 854 | 29 | P = pj_new(); \ | 855 | 16 | if (nullptr == P) \ | 856 | 16 | return nullptr; \ | 857 | 16 | P->short_name = #name; \ | 858 | 16 | P->descr = des_##name; \ | 859 | 16 | P->need_ellps = NEED_ELLPS; \ | 860 | 16 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 16 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 16 | return P; \ | 863 | 16 | } \ |
Line | Count | Source | 851 | 54 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 54 | if (P) \ | 853 | 54 | return pj_projection_specific_setup_##name(P); \ | 854 | 54 | P = pj_new(); \ | 855 | 28 | if (nullptr == P) \ | 856 | 28 | return nullptr; \ | 857 | 28 | P->short_name = #name; \ | 858 | 28 | P->descr = des_##name; \ | 859 | 28 | P->need_ellps = NEED_ELLPS; \ | 860 | 28 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 28 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 28 | return P; \ | 863 | 28 | } \ |
Line | Count | Source | 851 | 430 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 430 | if (P) \ | 853 | 430 | return pj_projection_specific_setup_##name(P); \ | 854 | 430 | P = pj_new(); \ | 855 | 216 | if (nullptr == P) \ | 856 | 216 | return nullptr; \ | 857 | 216 | P->short_name = #name; \ | 858 | 216 | P->descr = des_##name; \ | 859 | 216 | P->need_ellps = NEED_ELLPS; \ | 860 | 216 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 216 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 216 | return P; \ | 863 | 216 | } \ |
Line | Count | Source | 851 | 370 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 370 | if (P) \ | 853 | 370 | return pj_projection_specific_setup_##name(P); \ | 854 | 370 | P = pj_new(); \ | 855 | 186 | if (nullptr == P) \ | 856 | 186 | return nullptr; \ | 857 | 186 | P->short_name = #name; \ | 858 | 186 | P->descr = des_##name; \ | 859 | 186 | P->need_ellps = NEED_ELLPS; \ | 860 | 186 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 186 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 186 | return P; \ | 863 | 186 | } \ |
Line | Count | Source | 851 | 690 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 690 | if (P) \ | 853 | 690 | return pj_projection_specific_setup_##name(P); \ | 854 | 690 | P = pj_new(); \ | 855 | 346 | if (nullptr == P) \ | 856 | 346 | return nullptr; \ | 857 | 346 | P->short_name = #name; \ | 858 | 346 | P->descr = des_##name; \ | 859 | 346 | P->need_ellps = NEED_ELLPS; \ | 860 | 346 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 346 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 346 | return P; \ | 863 | 346 | } \ |
Line | Count | Source | 851 | 411 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 411 | if (P) \ | 853 | 411 | return pj_projection_specific_setup_##name(P); \ | 854 | 411 | P = pj_new(); \ | 855 | 208 | if (nullptr == P) \ | 856 | 208 | return nullptr; \ | 857 | 208 | P->short_name = #name; \ | 858 | 208 | P->descr = des_##name; \ | 859 | 208 | P->need_ellps = NEED_ELLPS; \ | 860 | 208 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 208 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 208 | return P; \ | 863 | 208 | } \ |
Line | Count | Source | 851 | 183 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 183 | if (P) \ | 853 | 183 | return pj_projection_specific_setup_##name(P); \ | 854 | 183 | P = pj_new(); \ | 855 | 95 | if (nullptr == P) \ | 856 | 95 | return nullptr; \ | 857 | 95 | P->short_name = #name; \ | 858 | 95 | P->descr = des_##name; \ | 859 | 95 | P->need_ellps = NEED_ELLPS; \ | 860 | 95 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 95 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 95 | return P; \ | 863 | 95 | } \ |
Line | Count | Source | 851 | 174 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 174 | if (P) \ | 853 | 174 | return pj_projection_specific_setup_##name(P); \ | 854 | 174 | P = pj_new(); \ | 855 | 88 | if (nullptr == P) \ | 856 | 88 | return nullptr; \ | 857 | 88 | P->short_name = #name; \ | 858 | 88 | P->descr = des_##name; \ | 859 | 88 | P->need_ellps = NEED_ELLPS; \ | 860 | 88 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 88 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 88 | return P; \ | 863 | 88 | } \ |
Line | Count | Source | 851 | 344 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 344 | if (P) \ | 853 | 344 | return pj_projection_specific_setup_##name(P); \ | 854 | 344 | P = pj_new(); \ | 855 | 173 | if (nullptr == P) \ | 856 | 173 | return nullptr; \ | 857 | 173 | P->short_name = #name; \ | 858 | 173 | P->descr = des_##name; \ | 859 | 173 | P->need_ellps = NEED_ELLPS; \ | 860 | 173 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 173 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 173 | return P; \ | 863 | 173 | } \ |
Line | Count | Source | 851 | 26 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 26 | if (P) \ | 853 | 26 | return pj_projection_specific_setup_##name(P); \ | 854 | 26 | P = pj_new(); \ | 855 | 14 | if (nullptr == P) \ | 856 | 14 | return nullptr; \ | 857 | 14 | P->short_name = #name; \ | 858 | 14 | P->descr = des_##name; \ | 859 | 14 | P->need_ellps = NEED_ELLPS; \ | 860 | 14 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 14 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 14 | return P; \ | 863 | 14 | } \ |
Line | Count | Source | 851 | 21 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 21 | if (P) \ | 853 | 21 | return pj_projection_specific_setup_##name(P); \ | 854 | 21 | P = pj_new(); \ | 855 | 11 | if (nullptr == P) \ | 856 | 11 | return nullptr; \ | 857 | 11 | P->short_name = #name; \ | 858 | 11 | P->descr = des_##name; \ | 859 | 11 | P->need_ellps = NEED_ELLPS; \ | 860 | 11 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 11 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 11 | return P; \ | 863 | 11 | } \ |
Line | Count | Source | 851 | 34 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 34 | if (P) \ | 853 | 34 | return pj_projection_specific_setup_##name(P); \ | 854 | 34 | P = pj_new(); \ | 855 | 18 | if (nullptr == P) \ | 856 | 18 | return nullptr; \ | 857 | 18 | P->short_name = #name; \ | 858 | 18 | P->descr = des_##name; \ | 859 | 18 | P->need_ellps = NEED_ELLPS; \ | 860 | 18 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 18 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 18 | return P; \ | 863 | 18 | } \ |
Line | Count | Source | 851 | 98 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 98 | if (P) \ | 853 | 98 | return pj_projection_specific_setup_##name(P); \ | 854 | 98 | P = pj_new(); \ | 855 | 50 | if (nullptr == P) \ | 856 | 50 | return nullptr; \ | 857 | 50 | P->short_name = #name; \ | 858 | 50 | P->descr = des_##name; \ | 859 | 50 | P->need_ellps = NEED_ELLPS; \ | 860 | 50 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 50 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 50 | return P; \ | 863 | 50 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 298 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 298 | if (P) \ | 853 | 298 | return pj_projection_specific_setup_##name(P); \ | 854 | 298 | P = pj_new(); \ | 855 | 150 | if (nullptr == P) \ | 856 | 150 | return nullptr; \ | 857 | 150 | P->short_name = #name; \ | 858 | 150 | P->descr = des_##name; \ | 859 | 150 | P->need_ellps = NEED_ELLPS; \ | 860 | 150 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 150 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 150 | return P; \ | 863 | 150 | } \ |
Line | Count | Source | 851 | 174 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 174 | if (P) \ | 853 | 174 | return pj_projection_specific_setup_##name(P); \ | 854 | 174 | P = pj_new(); \ | 855 | 89 | if (nullptr == P) \ | 856 | 89 | return nullptr; \ | 857 | 89 | P->short_name = #name; \ | 858 | 89 | P->descr = des_##name; \ | 859 | 89 | P->need_ellps = NEED_ELLPS; \ | 860 | 89 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 89 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 89 | return P; \ | 863 | 89 | } \ |
Line | Count | Source | 851 | 350 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 350 | if (P) \ | 853 | 350 | return pj_projection_specific_setup_##name(P); \ | 854 | 350 | P = pj_new(); \ | 855 | 177 | if (nullptr == P) \ | 856 | 177 | return nullptr; \ | 857 | 177 | P->short_name = #name; \ | 858 | 177 | P->descr = des_##name; \ | 859 | 177 | P->need_ellps = NEED_ELLPS; \ | 860 | 177 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 177 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 177 | return P; \ | 863 | 177 | } \ |
Line | Count | Source | 851 | 34 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 34 | if (P) \ | 853 | 34 | return pj_projection_specific_setup_##name(P); \ | 854 | 34 | P = pj_new(); \ | 855 | 19 | if (nullptr == P) \ | 856 | 19 | return nullptr; \ | 857 | 19 | P->short_name = #name; \ | 858 | 19 | P->descr = des_##name; \ | 859 | 19 | P->need_ellps = NEED_ELLPS; \ | 860 | 19 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 19 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 19 | return P; \ | 863 | 19 | } \ |
Line | Count | Source | 851 | 330 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 330 | if (P) \ | 853 | 330 | return pj_projection_specific_setup_##name(P); \ | 854 | 330 | P = pj_new(); \ | 855 | 168 | if (nullptr == P) \ | 856 | 168 | return nullptr; \ | 857 | 168 | P->short_name = #name; \ | 858 | 168 | P->descr = des_##name; \ | 859 | 168 | P->need_ellps = NEED_ELLPS; \ | 860 | 168 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 168 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 168 | return P; \ | 863 | 168 | } \ |
Line | Count | Source | 851 | 358 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 358 | if (P) \ | 853 | 358 | return pj_projection_specific_setup_##name(P); \ | 854 | 358 | P = pj_new(); \ | 855 | 180 | if (nullptr == P) \ | 856 | 180 | return nullptr; \ | 857 | 180 | P->short_name = #name; \ | 858 | 180 | P->descr = des_##name; \ | 859 | 180 | P->need_ellps = NEED_ELLPS; \ | 860 | 180 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 180 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 180 | return P; \ | 863 | 180 | } \ |
Line | Count | Source | 851 | 318 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 318 | if (P) \ | 853 | 318 | return pj_projection_specific_setup_##name(P); \ | 854 | 318 | P = pj_new(); \ | 855 | 161 | if (nullptr == P) \ | 856 | 161 | return nullptr; \ | 857 | 161 | P->short_name = #name; \ | 858 | 161 | P->descr = des_##name; \ | 859 | 161 | P->need_ellps = NEED_ELLPS; \ | 860 | 161 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 161 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 161 | return P; \ | 863 | 161 | } \ |
Line | Count | Source | 851 | 294 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 294 | if (P) \ | 853 | 294 | return pj_projection_specific_setup_##name(P); \ | 854 | 294 | P = pj_new(); \ | 855 | 149 | if (nullptr == P) \ | 856 | 149 | return nullptr; \ | 857 | 149 | P->short_name = #name; \ | 858 | 149 | P->descr = des_##name; \ | 859 | 149 | P->need_ellps = NEED_ELLPS; \ | 860 | 149 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 149 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 149 | return P; \ | 863 | 149 | } \ |
Line | Count | Source | 851 | 30 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 30 | if (P) \ | 853 | 30 | return pj_projection_specific_setup_##name(P); \ | 854 | 30 | P = pj_new(); \ | 855 | 16 | if (nullptr == P) \ | 856 | 16 | return nullptr; \ | 857 | 16 | P->short_name = #name; \ | 858 | 16 | P->descr = des_##name; \ | 859 | 16 | P->need_ellps = NEED_ELLPS; \ | 860 | 16 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 16 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 16 | return P; \ | 863 | 16 | } \ |
Line | Count | Source | 851 | 86 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 86 | if (P) \ | 853 | 86 | return pj_projection_specific_setup_##name(P); \ | 854 | 86 | P = pj_new(); \ | 855 | 45 | if (nullptr == P) \ | 856 | 45 | return nullptr; \ | 857 | 45 | P->short_name = #name; \ | 858 | 45 | P->descr = des_##name; \ | 859 | 45 | P->need_ellps = NEED_ELLPS; \ | 860 | 45 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 45 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 45 | return P; \ | 863 | 45 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 162 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 162 | if (P) \ | 853 | 162 | return pj_projection_specific_setup_##name(P); \ | 854 | 162 | P = pj_new(); \ | 855 | 82 | if (nullptr == P) \ | 856 | 82 | return nullptr; \ | 857 | 82 | P->short_name = #name; \ | 858 | 82 | P->descr = des_##name; \ | 859 | 82 | P->need_ellps = NEED_ELLPS; \ | 860 | 82 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 82 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 82 | return P; \ | 863 | 82 | } \ |
Line | Count | Source | 851 | 3.42k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 3.42k | if (P) \ | 853 | 3.42k | return pj_projection_specific_setup_##name(P); \ | 854 | 3.42k | P = pj_new(); \ | 855 | 1.71k | if (nullptr == P) \ | 856 | 1.71k | return nullptr; \ | 857 | 1.71k | P->short_name = #name; \ | 858 | 1.71k | P->descr = des_##name; \ | 859 | 1.71k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.71k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.71k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.71k | return P; \ | 863 | 1.71k | } \ |
Line | Count | Source | 851 | 108 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 108 | if (P) \ | 853 | 108 | return pj_projection_specific_setup_##name(P); \ | 854 | 108 | P = pj_new(); \ | 855 | 56 | if (nullptr == P) \ | 856 | 56 | return nullptr; \ | 857 | 56 | P->short_name = #name; \ | 858 | 56 | P->descr = des_##name; \ | 859 | 56 | P->need_ellps = NEED_ELLPS; \ | 860 | 56 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 56 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 56 | return P; \ | 863 | 56 | } \ |
Line | Count | Source | 851 | 76 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 76 | if (P) \ | 853 | 76 | return pj_projection_specific_setup_##name(P); \ | 854 | 76 | P = pj_new(); \ | 855 | 39 | if (nullptr == P) \ | 856 | 39 | return nullptr; \ | 857 | 39 | P->short_name = #name; \ | 858 | 39 | P->descr = des_##name; \ | 859 | 39 | P->need_ellps = NEED_ELLPS; \ | 860 | 39 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 39 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 39 | return P; \ | 863 | 39 | } \ |
Line | Count | Source | 851 | 54 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 54 | if (P) \ | 853 | 54 | return pj_projection_specific_setup_##name(P); \ | 854 | 54 | P = pj_new(); \ | 855 | 28 | if (nullptr == P) \ | 856 | 28 | return nullptr; \ | 857 | 28 | P->short_name = #name; \ | 858 | 28 | P->descr = des_##name; \ | 859 | 28 | P->need_ellps = NEED_ELLPS; \ | 860 | 28 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 28 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 28 | return P; \ | 863 | 28 | } \ |
Line | Count | Source | 851 | 26 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 26 | if (P) \ | 853 | 26 | return pj_projection_specific_setup_##name(P); \ | 854 | 26 | P = pj_new(); \ | 855 | 14 | if (nullptr == P) \ | 856 | 14 | return nullptr; \ | 857 | 14 | P->short_name = #name; \ | 858 | 14 | P->descr = des_##name; \ | 859 | 14 | P->need_ellps = NEED_ELLPS; \ | 860 | 14 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 14 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 14 | return P; \ | 863 | 14 | } \ |
Line | Count | Source | 851 | 550 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 550 | if (P) \ | 853 | 550 | return pj_projection_specific_setup_##name(P); \ | 854 | 550 | P = pj_new(); \ | 855 | 280 | if (nullptr == P) \ | 856 | 280 | return nullptr; \ | 857 | 280 | P->short_name = #name; \ | 858 | 280 | P->descr = des_##name; \ | 859 | 280 | P->need_ellps = NEED_ELLPS; \ | 860 | 280 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 280 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 280 | return P; \ | 863 | 280 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 214 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 214 | if (P) \ | 853 | 214 | return pj_projection_specific_setup_##name(P); \ | 854 | 214 | P = pj_new(); \ | 855 | 108 | if (nullptr == P) \ | 856 | 108 | return nullptr; \ | 857 | 108 | P->short_name = #name; \ | 858 | 108 | P->descr = des_##name; \ | 859 | 108 | P->need_ellps = NEED_ELLPS; \ | 860 | 108 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 108 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 108 | return P; \ | 863 | 108 | } \ |
Line | Count | Source | 851 | 218 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 218 | if (P) \ | 853 | 218 | return pj_projection_specific_setup_##name(P); \ | 854 | 218 | P = pj_new(); \ | 855 | 110 | if (nullptr == P) \ | 856 | 110 | return nullptr; \ | 857 | 110 | P->short_name = #name; \ | 858 | 110 | P->descr = des_##name; \ | 859 | 110 | P->need_ellps = NEED_ELLPS; \ | 860 | 110 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 110 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 110 | return P; \ | 863 | 110 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 48 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 48 | if (P) \ | 853 | 48 | return pj_projection_specific_setup_##name(P); \ | 854 | 48 | P = pj_new(); \ | 855 | 25 | if (nullptr == P) \ | 856 | 25 | return nullptr; \ | 857 | 25 | P->short_name = #name; \ | 858 | 25 | P->descr = des_##name; \ | 859 | 25 | P->need_ellps = NEED_ELLPS; \ | 860 | 25 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 25 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 25 | return P; \ | 863 | 25 | } \ |
Line | Count | Source | 851 | 21 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 21 | if (P) \ | 853 | 21 | return pj_projection_specific_setup_##name(P); \ | 854 | 21 | P = pj_new(); \ | 855 | 11 | if (nullptr == P) \ | 856 | 11 | return nullptr; \ | 857 | 11 | P->short_name = #name; \ | 858 | 11 | P->descr = des_##name; \ | 859 | 11 | P->need_ellps = NEED_ELLPS; \ | 860 | 11 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 11 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 11 | return P; \ | 863 | 11 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 5.99k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 5.99k | if (P) \ | 853 | 5.99k | return pj_projection_specific_setup_##name(P); \ | 854 | 5.99k | P = pj_new(); \ | 855 | 3.00k | if (nullptr == P) \ | 856 | 3.00k | return nullptr; \ | 857 | 3.00k | P->short_name = #name; \ | 858 | 3.00k | P->descr = des_##name; \ | 859 | 3.00k | P->need_ellps = NEED_ELLPS; \ | 860 | 3.00k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 3.00k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 3.00k | return P; \ | 863 | 3.00k | } \ |
Line | Count | Source | 851 | 500 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 500 | if (P) \ | 853 | 500 | return pj_projection_specific_setup_##name(P); \ | 854 | 500 | P = pj_new(); \ | 855 | 253 | if (nullptr == P) \ | 856 | 253 | return nullptr; \ | 857 | 253 | P->short_name = #name; \ | 858 | 253 | P->descr = des_##name; \ | 859 | 253 | P->need_ellps = NEED_ELLPS; \ | 860 | 253 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 253 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 253 | return P; \ | 863 | 253 | } \ |
Line | Count | Source | 851 | 236 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 236 | if (P) \ | 853 | 236 | return pj_projection_specific_setup_##name(P); \ | 854 | 236 | P = pj_new(); \ | 855 | 121 | if (nullptr == P) \ | 856 | 121 | return nullptr; \ | 857 | 121 | P->short_name = #name; \ | 858 | 121 | P->descr = des_##name; \ | 859 | 121 | P->need_ellps = NEED_ELLPS; \ | 860 | 121 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 121 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 121 | return P; \ | 863 | 121 | } \ |
Line | Count | Source | 851 | 92 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 92 | if (P) \ | 853 | 92 | return pj_projection_specific_setup_##name(P); \ | 854 | 92 | P = pj_new(); \ | 855 | 47 | if (nullptr == P) \ | 856 | 47 | return nullptr; \ | 857 | 47 | P->short_name = #name; \ | 858 | 47 | P->descr = des_##name; \ | 859 | 47 | P->need_ellps = NEED_ELLPS; \ | 860 | 47 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 47 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 47 | return P; \ | 863 | 47 | } \ |
Line | Count | Source | 851 | 308 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 308 | if (P) \ | 853 | 308 | return pj_projection_specific_setup_##name(P); \ | 854 | 308 | P = pj_new(); \ | 855 | 155 | if (nullptr == P) \ | 856 | 155 | return nullptr; \ | 857 | 155 | P->short_name = #name; \ | 858 | 155 | P->descr = des_##name; \ | 859 | 155 | P->need_ellps = NEED_ELLPS; \ | 860 | 155 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 155 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 155 | return P; \ | 863 | 155 | } \ |
Line | Count | Source | 851 | 75 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 75 | if (P) \ | 853 | 75 | return pj_projection_specific_setup_##name(P); \ | 854 | 75 | P = pj_new(); \ | 855 | 38 | if (nullptr == P) \ | 856 | 38 | return nullptr; \ | 857 | 38 | P->short_name = #name; \ | 858 | 38 | P->descr = des_##name; \ | 859 | 38 | P->need_ellps = NEED_ELLPS; \ | 860 | 38 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 38 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 38 | return P; \ | 863 | 38 | } \ |
Line | Count | Source | 851 | 86 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 86 | if (P) \ | 853 | 86 | return pj_projection_specific_setup_##name(P); \ | 854 | 86 | P = pj_new(); \ | 855 | 44 | if (nullptr == P) \ | 856 | 44 | return nullptr; \ | 857 | 44 | P->short_name = #name; \ | 858 | 44 | P->descr = des_##name; \ | 859 | 44 | P->need_ellps = NEED_ELLPS; \ | 860 | 44 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 44 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 44 | return P; \ | 863 | 44 | } \ |
Line | Count | Source | 851 | 158 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 158 | if (P) \ | 853 | 158 | return pj_projection_specific_setup_##name(P); \ | 854 | 158 | P = pj_new(); \ | 855 | 80 | if (nullptr == P) \ | 856 | 80 | return nullptr; \ | 857 | 80 | P->short_name = #name; \ | 858 | 80 | P->descr = des_##name; \ | 859 | 80 | P->need_ellps = NEED_ELLPS; \ | 860 | 80 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 80 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 80 | return P; \ | 863 | 80 | } \ |
Line | Count | Source | 851 | 184 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 184 | if (P) \ | 853 | 184 | return pj_projection_specific_setup_##name(P); \ | 854 | 184 | P = pj_new(); \ | 855 | 93 | if (nullptr == P) \ | 856 | 93 | return nullptr; \ | 857 | 93 | P->short_name = #name; \ | 858 | 93 | P->descr = des_##name; \ | 859 | 93 | P->need_ellps = NEED_ELLPS; \ | 860 | 93 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 93 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 93 | return P; \ | 863 | 93 | } \ |
Line | Count | Source | 851 | 150 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 150 | if (P) \ | 853 | 150 | return pj_projection_specific_setup_##name(P); \ | 854 | 150 | P = pj_new(); \ | 855 | 78 | if (nullptr == P) \ | 856 | 78 | return nullptr; \ | 857 | 78 | P->short_name = #name; \ | 858 | 78 | P->descr = des_##name; \ | 859 | 78 | P->need_ellps = NEED_ELLPS; \ | 860 | 78 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 78 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 78 | return P; \ | 863 | 78 | } \ |
Line | Count | Source | 851 | 115 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 115 | if (P) \ | 853 | 115 | return pj_projection_specific_setup_##name(P); \ | 854 | 115 | P = pj_new(); \ | 855 | 61 | if (nullptr == P) \ | 856 | 61 | return nullptr; \ | 857 | 61 | P->short_name = #name; \ | 858 | 61 | P->descr = des_##name; \ | 859 | 61 | P->need_ellps = NEED_ELLPS; \ | 860 | 61 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 61 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 61 | return P; \ | 863 | 61 | } \ |
Line | Count | Source | 851 | 198 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 198 | if (P) \ | 853 | 198 | return pj_projection_specific_setup_##name(P); \ | 854 | 198 | P = pj_new(); \ | 855 | 100 | if (nullptr == P) \ | 856 | 100 | return nullptr; \ | 857 | 100 | P->short_name = #name; \ | 858 | 100 | P->descr = des_##name; \ | 859 | 100 | P->need_ellps = NEED_ELLPS; \ | 860 | 100 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 100 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 100 | return P; \ | 863 | 100 | } \ |
Line | Count | Source | 851 | 158 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 158 | if (P) \ | 853 | 158 | return pj_projection_specific_setup_##name(P); \ | 854 | 158 | P = pj_new(); \ | 855 | 80 | if (nullptr == P) \ | 856 | 80 | return nullptr; \ | 857 | 80 | P->short_name = #name; \ | 858 | 80 | P->descr = des_##name; \ | 859 | 80 | P->need_ellps = NEED_ELLPS; \ | 860 | 80 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 80 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 80 | return P; \ | 863 | 80 | } \ |
Line | Count | Source | 851 | 300 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 300 | if (P) \ | 853 | 300 | return pj_projection_specific_setup_##name(P); \ | 854 | 300 | P = pj_new(); \ | 855 | 151 | if (nullptr == P) \ | 856 | 151 | return nullptr; \ | 857 | 151 | P->short_name = #name; \ | 858 | 151 | P->descr = des_##name; \ | 859 | 151 | P->need_ellps = NEED_ELLPS; \ | 860 | 151 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 151 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 151 | return P; \ | 863 | 151 | } \ |
Line | Count | Source | 851 | 288 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 288 | if (P) \ | 853 | 288 | return pj_projection_specific_setup_##name(P); \ | 854 | 288 | P = pj_new(); \ | 855 | 145 | if (nullptr == P) \ | 856 | 145 | return nullptr; \ | 857 | 145 | P->short_name = #name; \ | 858 | 145 | P->descr = des_##name; \ | 859 | 145 | P->need_ellps = NEED_ELLPS; \ | 860 | 145 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 145 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 145 | return P; \ | 863 | 145 | } \ |
Line | Count | Source | 851 | 3.75k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 3.75k | if (P) \ | 853 | 3.75k | return pj_projection_specific_setup_##name(P); \ | 854 | 3.75k | P = pj_new(); \ | 855 | 1.88k | if (nullptr == P) \ | 856 | 1.88k | return nullptr; \ | 857 | 1.88k | P->short_name = #name; \ | 858 | 1.88k | P->descr = des_##name; \ | 859 | 1.88k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.88k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.88k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.88k | return P; \ | 863 | 1.88k | } \ |
Line | Count | Source | 851 | 250 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 250 | if (P) \ | 853 | 250 | return pj_projection_specific_setup_##name(P); \ | 854 | 250 | P = pj_new(); \ | 855 | 126 | if (nullptr == P) \ | 856 | 126 | return nullptr; \ | 857 | 126 | P->short_name = #name; \ | 858 | 126 | P->descr = des_##name; \ | 859 | 126 | P->need_ellps = NEED_ELLPS; \ | 860 | 126 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 126 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 126 | return P; \ | 863 | 126 | } \ |
Line | Count | Source | 851 | 1.42k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.42k | if (P) \ | 853 | 1.42k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.42k | P = pj_new(); \ | 855 | 715 | if (nullptr == P) \ | 856 | 715 | return nullptr; \ | 857 | 715 | P->short_name = #name; \ | 858 | 715 | P->descr = des_##name; \ | 859 | 715 | P->need_ellps = NEED_ELLPS; \ | 860 | 715 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 715 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 715 | return P; \ | 863 | 715 | } \ |
Line | Count | Source | 851 | 354 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 354 | if (P) \ | 853 | 354 | return pj_projection_specific_setup_##name(P); \ | 854 | 354 | P = pj_new(); \ | 855 | 178 | if (nullptr == P) \ | 856 | 178 | return nullptr; \ | 857 | 178 | P->short_name = #name; \ | 858 | 178 | P->descr = des_##name; \ | 859 | 178 | P->need_ellps = NEED_ELLPS; \ | 860 | 178 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 178 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 178 | return P; \ | 863 | 178 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 64 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 64 | if (P) \ | 853 | 64 | return pj_projection_specific_setup_##name(P); \ | 854 | 64 | P = pj_new(); \ | 855 | 33 | if (nullptr == P) \ | 856 | 33 | return nullptr; \ | 857 | 33 | P->short_name = #name; \ | 858 | 33 | P->descr = des_##name; \ | 859 | 33 | P->need_ellps = NEED_ELLPS; \ | 860 | 33 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 33 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 33 | return P; \ | 863 | 33 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 42 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 42 | if (P) \ | 853 | 42 | return pj_projection_specific_setup_##name(P); \ | 854 | 42 | P = pj_new(); \ | 855 | 22 | if (nullptr == P) \ | 856 | 22 | return nullptr; \ | 857 | 22 | P->short_name = #name; \ | 858 | 22 | P->descr = des_##name; \ | 859 | 22 | P->need_ellps = NEED_ELLPS; \ | 860 | 22 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 22 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 22 | return P; \ | 863 | 22 | } \ |
Line | Count | Source | 851 | 108 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 108 | if (P) \ | 853 | 108 | return pj_projection_specific_setup_##name(P); \ | 854 | 108 | P = pj_new(); \ | 855 | 55 | if (nullptr == P) \ | 856 | 55 | return nullptr; \ | 857 | 55 | P->short_name = #name; \ | 858 | 55 | P->descr = des_##name; \ | 859 | 55 | P->need_ellps = NEED_ELLPS; \ | 860 | 55 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 55 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 55 | return P; \ | 863 | 55 | } \ |
Line | Count | Source | 851 | 187 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 187 | if (P) \ | 853 | 187 | return pj_projection_specific_setup_##name(P); \ | 854 | 187 | P = pj_new(); \ | 855 | 98 | if (nullptr == P) \ | 856 | 98 | return nullptr; \ | 857 | 98 | P->short_name = #name; \ | 858 | 98 | P->descr = des_##name; \ | 859 | 98 | P->need_ellps = NEED_ELLPS; \ | 860 | 98 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 98 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 98 | return P; \ | 863 | 98 | } \ |
Line | Count | Source | 851 | 78 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 78 | if (P) \ | 853 | 78 | return pj_projection_specific_setup_##name(P); \ | 854 | 78 | P = pj_new(); \ | 855 | 40 | if (nullptr == P) \ | 856 | 40 | return nullptr; \ | 857 | 40 | P->short_name = #name; \ | 858 | 40 | P->descr = des_##name; \ | 859 | 40 | P->need_ellps = NEED_ELLPS; \ | 860 | 40 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 40 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 40 | return P; \ | 863 | 40 | } \ |
Line | Count | Source | 851 | 309 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 309 | if (P) \ | 853 | 309 | return pj_projection_specific_setup_##name(P); \ | 854 | 309 | P = pj_new(); \ | 855 | 156 | if (nullptr == P) \ | 856 | 156 | return nullptr; \ | 857 | 156 | P->short_name = #name; \ | 858 | 156 | P->descr = des_##name; \ | 859 | 156 | P->need_ellps = NEED_ELLPS; \ | 860 | 156 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 156 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 156 | return P; \ | 863 | 156 | } \ |
Line | Count | Source | 851 | 392 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 392 | if (P) \ | 853 | 392 | return pj_projection_specific_setup_##name(P); \ | 854 | 392 | P = pj_new(); \ | 855 | 197 | if (nullptr == P) \ | 856 | 197 | return nullptr; \ | 857 | 197 | P->short_name = #name; \ | 858 | 197 | P->descr = des_##name; \ | 859 | 197 | P->need_ellps = NEED_ELLPS; \ | 860 | 197 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 197 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 197 | return P; \ | 863 | 197 | } \ |
Line | Count | Source | 851 | 190 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 190 | if (P) \ | 853 | 190 | return pj_projection_specific_setup_##name(P); \ | 854 | 190 | P = pj_new(); \ | 855 | 96 | if (nullptr == P) \ | 856 | 96 | return nullptr; \ | 857 | 96 | P->short_name = #name; \ | 858 | 96 | P->descr = des_##name; \ | 859 | 96 | P->need_ellps = NEED_ELLPS; \ | 860 | 96 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 96 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 96 | return P; \ | 863 | 96 | } \ |
Line | Count | Source | 851 | 514 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 514 | if (P) \ | 853 | 514 | return pj_projection_specific_setup_##name(P); \ | 854 | 514 | P = pj_new(); \ | 855 | 258 | if (nullptr == P) \ | 856 | 258 | return nullptr; \ | 857 | 258 | P->short_name = #name; \ | 858 | 258 | P->descr = des_##name; \ | 859 | 258 | P->need_ellps = NEED_ELLPS; \ | 860 | 258 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 258 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 258 | return P; \ | 863 | 258 | } \ |
Line | Count | Source | 851 | 352 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 352 | if (P) \ | 853 | 352 | return pj_projection_specific_setup_##name(P); \ | 854 | 352 | P = pj_new(); \ | 855 | 178 | if (nullptr == P) \ | 856 | 178 | return nullptr; \ | 857 | 178 | P->short_name = #name; \ | 858 | 178 | P->descr = des_##name; \ | 859 | 178 | P->need_ellps = NEED_ELLPS; \ | 860 | 178 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 178 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 178 | return P; \ | 863 | 178 | } \ |
Line | Count | Source | 851 | 176 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 176 | if (P) \ | 853 | 176 | return pj_projection_specific_setup_##name(P); \ | 854 | 176 | P = pj_new(); \ | 855 | 89 | if (nullptr == P) \ | 856 | 89 | return nullptr; \ | 857 | 89 | P->short_name = #name; \ | 858 | 89 | P->descr = des_##name; \ | 859 | 89 | P->need_ellps = NEED_ELLPS; \ | 860 | 89 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 89 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 89 | return P; \ | 863 | 89 | } \ |
Line | Count | Source | 851 | 304 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 304 | if (P) \ | 853 | 304 | return pj_projection_specific_setup_##name(P); \ | 854 | 304 | P = pj_new(); \ | 855 | 153 | if (nullptr == P) \ | 856 | 153 | return nullptr; \ | 857 | 153 | P->short_name = #name; \ | 858 | 153 | P->descr = des_##name; \ | 859 | 153 | P->need_ellps = NEED_ELLPS; \ | 860 | 153 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 153 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 153 | return P; \ | 863 | 153 | } \ |
Line | Count | Source | 851 | 108 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 108 | if (P) \ | 853 | 108 | return pj_projection_specific_setup_##name(P); \ | 854 | 108 | P = pj_new(); \ | 855 | 55 | if (nullptr == P) \ | 856 | 55 | return nullptr; \ | 857 | 55 | P->short_name = #name; \ | 858 | 55 | P->descr = des_##name; \ | 859 | 55 | P->need_ellps = NEED_ELLPS; \ | 860 | 55 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 55 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 55 | return P; \ | 863 | 55 | } \ |
Line | Count | Source | 851 | 342 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 342 | if (P) \ | 853 | 342 | return pj_projection_specific_setup_##name(P); \ | 854 | 342 | P = pj_new(); \ | 855 | 172 | if (nullptr == P) \ | 856 | 172 | return nullptr; \ | 857 | 172 | P->short_name = #name; \ | 858 | 172 | P->descr = des_##name; \ | 859 | 172 | P->need_ellps = NEED_ELLPS; \ | 860 | 172 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 172 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 172 | return P; \ | 863 | 172 | } \ |
Line | Count | Source | 851 | 19 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 19 | if (P) \ | 853 | 19 | return pj_projection_specific_setup_##name(P); \ | 854 | 19 | P = pj_new(); \ | 855 | 10 | if (nullptr == P) \ | 856 | 10 | return nullptr; \ | 857 | 10 | P->short_name = #name; \ | 858 | 10 | P->descr = des_##name; \ | 859 | 10 | P->need_ellps = NEED_ELLPS; \ | 860 | 10 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 10 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 10 | return P; \ | 863 | 10 | } \ |
Line | Count | Source | 851 | 1.25k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.25k | if (P) \ | 853 | 1.25k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.25k | P = pj_new(); \ | 855 | 627 | if (nullptr == P) \ | 856 | 627 | return nullptr; \ | 857 | 627 | P->short_name = #name; \ | 858 | 627 | P->descr = des_##name; \ | 859 | 627 | P->need_ellps = NEED_ELLPS; \ | 860 | 627 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 627 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 627 | return P; \ | 863 | 627 | } \ |
Line | Count | Source | 851 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 32 | if (P) \ | 853 | 32 | return pj_projection_specific_setup_##name(P); \ | 854 | 32 | P = pj_new(); \ | 855 | 17 | if (nullptr == P) \ | 856 | 17 | return nullptr; \ | 857 | 17 | P->short_name = #name; \ | 858 | 17 | P->descr = des_##name; \ | 859 | 17 | P->need_ellps = NEED_ELLPS; \ | 860 | 17 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 17 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 17 | return P; \ | 863 | 17 | } \ |
Line | Count | Source | 851 | 218 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 218 | if (P) \ | 853 | 218 | return pj_projection_specific_setup_##name(P); \ | 854 | 218 | P = pj_new(); \ | 855 | 110 | if (nullptr == P) \ | 856 | 110 | return nullptr; \ | 857 | 110 | P->short_name = #name; \ | 858 | 110 | P->descr = des_##name; \ | 859 | 110 | P->need_ellps = NEED_ELLPS; \ | 860 | 110 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 110 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 110 | return P; \ | 863 | 110 | } \ |
Line | Count | Source | 851 | 3.15k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 3.15k | if (P) \ | 853 | 3.15k | return pj_projection_specific_setup_##name(P); \ | 854 | 3.15k | P = pj_new(); \ | 855 | 1.57k | if (nullptr == P) \ | 856 | 1.57k | return nullptr; \ | 857 | 1.57k | P->short_name = #name; \ | 858 | 1.57k | P->descr = des_##name; \ | 859 | 1.57k | P->need_ellps = NEED_ELLPS; \ | 860 | 1.57k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 1.57k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 1.57k | return P; \ | 863 | 1.57k | } \ |
Line | Count | Source | 851 | 46.7k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 46.7k | if (P) \ | 853 | 46.7k | return pj_projection_specific_setup_##name(P); \ | 854 | 46.7k | P = pj_new(); \ | 855 | 23.3k | if (nullptr == P) \ | 856 | 23.3k | return nullptr; \ | 857 | 23.3k | P->short_name = #name; \ | 858 | 23.3k | P->descr = des_##name; \ | 859 | 23.3k | P->need_ellps = NEED_ELLPS; \ | 860 | 23.3k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 23.3k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 23.3k | return P; \ | 863 | 23.3k | } \ |
Line | Count | Source | 851 | 605 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 605 | if (P) \ | 853 | 605 | return pj_projection_specific_setup_##name(P); \ | 854 | 605 | P = pj_new(); \ | 855 | 304 | if (nullptr == P) \ | 856 | 304 | return nullptr; \ | 857 | 304 | P->short_name = #name; \ | 858 | 304 | P->descr = des_##name; \ | 859 | 304 | P->need_ellps = NEED_ELLPS; \ | 860 | 304 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 304 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 304 | return P; \ | 863 | 304 | } \ |
Line | Count | Source | 851 | 5.87k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 5.87k | if (P) \ | 853 | 5.87k | return pj_projection_specific_setup_##name(P); \ | 854 | 5.87k | P = pj_new(); \ | 855 | 2.94k | if (nullptr == P) \ | 856 | 2.94k | return nullptr; \ | 857 | 2.94k | P->short_name = #name; \ | 858 | 2.94k | P->descr = des_##name; \ | 859 | 2.94k | P->need_ellps = NEED_ELLPS; \ | 860 | 2.94k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 2.94k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 2.94k | return P; \ | 863 | 2.94k | } \ |
Line | Count | Source | 851 | 170 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 170 | if (P) \ | 853 | 170 | return pj_projection_specific_setup_##name(P); \ | 854 | 170 | P = pj_new(); \ | 855 | 86 | if (nullptr == P) \ | 856 | 86 | return nullptr; \ | 857 | 86 | P->short_name = #name; \ | 858 | 86 | P->descr = des_##name; \ | 859 | 86 | P->need_ellps = NEED_ELLPS; \ | 860 | 86 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 86 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 86 | return P; \ | 863 | 86 | } \ |
Line | Count | Source | 851 | 119 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 119 | if (P) \ | 853 | 119 | return pj_projection_specific_setup_##name(P); \ | 854 | 119 | P = pj_new(); \ | 855 | 62 | if (nullptr == P) \ | 856 | 62 | return nullptr; \ | 857 | 62 | P->short_name = #name; \ | 858 | 62 | P->descr = des_##name; \ | 859 | 62 | P->need_ellps = NEED_ELLPS; \ | 860 | 62 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 62 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 62 | return P; \ | 863 | 62 | } \ |
Line | Count | Source | 851 | 7.65k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 7.65k | if (P) \ | 853 | 7.65k | return pj_projection_specific_setup_##name(P); \ | 854 | 7.65k | P = pj_new(); \ | 855 | 3.83k | if (nullptr == P) \ | 856 | 3.83k | return nullptr; \ | 857 | 3.83k | P->short_name = #name; \ | 858 | 3.83k | P->descr = des_##name; \ | 859 | 3.83k | P->need_ellps = NEED_ELLPS; \ | 860 | 3.83k | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 3.83k | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 3.83k | return P; \ | 863 | 3.83k | } \ |
Line | Count | Source | 851 | 1.69k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 1.69k | if (P) \ | 853 | 1.69k | return pj_projection_specific_setup_##name(P); \ | 854 | 1.69k | P = pj_new(); \ | 855 | 846 | if (nullptr == P) \ | 856 | 846 | return nullptr; \ | 857 | 846 | P->short_name = #name; \ | 858 | 846 | P->descr = des_##name; \ | 859 | 846 | P->need_ellps = NEED_ELLPS; \ | 860 | 846 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 846 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 846 | return P; \ | 863 | 846 | } \ |
Line | Count | Source | 851 | 24 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 24 | if (P) \ | 853 | 24 | return pj_projection_specific_setup_##name(P); \ | 854 | 24 | P = pj_new(); \ | 855 | 13 | if (nullptr == P) \ | 856 | 13 | return nullptr; \ | 857 | 13 | P->short_name = #name; \ | 858 | 13 | P->descr = des_##name; \ | 859 | 13 | P->need_ellps = NEED_ELLPS; \ | 860 | 13 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 13 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 13 | return P; \ | 863 | 13 | } \ |
Line | Count | Source | 851 | 18 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 18 | if (P) \ | 853 | 18 | return pj_projection_specific_setup_##name(P); \ | 854 | 18 | P = pj_new(); \ | 855 | 10 | if (nullptr == P) \ | 856 | 10 | return nullptr; \ | 857 | 10 | P->short_name = #name; \ | 858 | 10 | P->descr = des_##name; \ | 859 | 10 | P->need_ellps = NEED_ELLPS; \ | 860 | 10 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 10 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 10 | return P; \ | 863 | 10 | } \ |
Line | Count | Source | 851 | 122 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 852 | 122 | if (P) \ | 853 | 122 | return pj_projection_specific_setup_##name(P); \ | 854 | 122 | P = pj_new(); \ | 855 | 62 | if (nullptr == P) \ | 856 | 62 | return nullptr; \ | 857 | 62 | P->short_name = #name; \ | 858 | 62 | P->descr = des_##name; \ | 859 | 62 | P->need_ellps = NEED_ELLPS; \ | 860 | 62 | P->left = PJ_IO_UNITS_RADIANS; \ | 861 | 62 | P->right = PJ_IO_UNITS_CLASSIC; \ | 862 | 62 | return P; \ | 863 | 62 | } \ |
|
864 | | \ |
865 | | PJ *pj_projection_specific_setup_##name(PJ *P) |
866 | | |
867 | | /* In ISO19000 lingo, an operation is either a conversion or a transformation */ |
868 | | #define PJ_CONVERSION(name, need_ellps) OPERATION(name, need_ellps) |
869 | | #define PJ_TRANSFORMATION(name, need_ellps) OPERATION(name, need_ellps) |
870 | | |
871 | | /* In PROJ.4 a projection is a conversion taking angular input and giving scaled |
872 | | * linear output */ |
873 | | #define PJ_PROJECTION(name) PJ_CONVERSION(name, 1) |
874 | | |
875 | | #endif /* DO_NOT_DEFINE_PROJ_HEAD */ |
876 | | |
877 | | /* procedure prototypes */ |
878 | | double PROJ_DLL dmstor(const char *, char **); |
879 | | double dmstor_ctx(PJ_CONTEXT *ctx, const char *, char **); |
880 | | void PROJ_DLL set_rtodms(int, int); |
881 | | char PROJ_DLL *rtodms(char *, size_t, double, int, int); |
882 | | double PROJ_DLL adjlon(double); |
883 | | double aacos(PJ_CONTEXT *, double); |
884 | | double aasin(PJ_CONTEXT *, double); |
885 | | double asqrt(double); |
886 | | double aatan2(double, double); |
887 | | |
888 | | PROJVALUE PROJ_DLL pj_param(PJ_CONTEXT *ctx, paralist *, const char *); |
889 | | paralist PROJ_DLL *pj_param_exists(paralist *list, const char *parameter); |
890 | | paralist PROJ_DLL *pj_mkparam(const char *); |
891 | | paralist *pj_mkparam_ws(const char *str, const char **next_str); |
892 | | |
893 | | int PROJ_DLL pj_ell_set(PJ_CONTEXT *ctx, paralist *, double *, double *); |
894 | | int pj_datum_set(PJ_CONTEXT *, paralist *, PJ *); |
895 | | int pj_angular_units_set(paralist *, PJ *); |
896 | | |
897 | | paralist *pj_clone_paralist(const paralist *); |
898 | | paralist *pj_search_initcache(const char *filekey); |
899 | | void pj_insert_initcache(const char *filekey, const paralist *list); |
900 | | paralist *pj_expand_init(PJ_CONTEXT *ctx, paralist *init); |
901 | | |
902 | | void *free_params(PJ_CONTEXT *ctx, paralist *start, int errlev); |
903 | | |
904 | | double *pj_enfn(double); |
905 | | double pj_mlfn(double, double, double, const double *); |
906 | | double pj_inv_mlfn(double, const double *); |
907 | | double pj_qsfn(double, double, double); |
908 | | double pj_tsfn(double, double, double); |
909 | | double pj_msfn(double, double, double); |
910 | | double PROJ_DLL pj_phi2(PJ_CONTEXT *, const double, const double); |
911 | | double pj_sinhpsi2tanphi(PJ_CONTEXT *, const double, const double); |
912 | | double *pj_authset(double); |
913 | | double pj_authlat(double, double *); |
914 | | |
915 | | COMPLEX pj_zpoly1(COMPLEX, const COMPLEX *, int); |
916 | | COMPLEX pj_zpolyd1(COMPLEX, const COMPLEX *, int, COMPLEX *); |
917 | | |
918 | | int pj_deriv(PJ_LP, double, const PJ *, struct DERIVS *); |
919 | | int pj_factors(PJ_LP, const PJ *, double, struct FACTORS *); |
920 | | |
921 | | void *proj_mdist_ini(double); |
922 | | double proj_mdist(double, double, double, const void *); |
923 | | double proj_inv_mdist(PJ_CONTEXT *ctx, double, const void *); |
924 | | void *pj_gauss_ini(double, double, double *, double *); |
925 | | PJ_LP pj_gauss(PJ_CONTEXT *, PJ_LP, const void *); |
926 | | PJ_LP pj_inv_gauss(PJ_CONTEXT *, PJ_LP, const void *); |
927 | | |
928 | | const struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref(void); |
929 | | |
930 | | PJ *pj_new(void); |
931 | | PJ *pj_default_destructor(PJ *P, int errlev); |
932 | | |
933 | | double PROJ_DLL pj_atof(const char *nptr); |
934 | | double pj_strtod(const char *nptr, char **endptr); |
935 | | void pj_freeup_plain(PJ *P); |
936 | | |
937 | | PJ *pj_init_ctx_with_allow_init_epsg(PJ_CONTEXT *ctx, int argc, char **argv, |
938 | | int allow_init_epsg); |
939 | | |
940 | | std::string PROJ_DLL pj_add_type_crs_if_needed(const std::string &str); |
941 | | std::string pj_double_quote_string_param_if_needed(const std::string &str); |
942 | | |
943 | | PJ *pj_create_internal(PJ_CONTEXT *ctx, const char *definition); |
944 | | PJ *pj_create_argv_internal(PJ_CONTEXT *ctx, int argc, char **argv); |
945 | | |
946 | | // For use by projinfo |
947 | | void pj_load_ini(PJ_CONTEXT *ctx); |
948 | | |
949 | | // Exported for testing purposes only |
950 | | std::string PROJ_DLL pj_context_get_grid_cache_filename(PJ_CONTEXT *ctx); |
951 | | |
952 | | // For use by projsync |
953 | | void PROJ_DLL pj_context_set_user_writable_directory(PJ_CONTEXT *ctx, |
954 | | const std::string &path); |
955 | | std::string PROJ_DLL pj_get_relative_share_proj(PJ_CONTEXT *ctx); |
956 | | |
957 | | std::vector<PJCoordOperation> |
958 | | pj_create_prepared_operations(PJ_CONTEXT *ctx, const PJ *source_crs, |
959 | | const PJ *target_crs, PJ_OBJ_LIST *op_list); |
960 | | |
961 | | int pj_get_suggested_operation(PJ_CONTEXT *ctx, |
962 | | const std::vector<PJCoordOperation> &opList, |
963 | | const int iExcluded[2], bool skipNonInstantiable, |
964 | | PJ_DIRECTION direction, PJ_COORD coord); |
965 | | |
966 | | const PJ_UNITS *pj_list_linear_units(); |
967 | | const PJ_UNITS *pj_list_angular_units(); |
968 | | |
969 | | void pj_clear_hgridshift_knowngrids_cache(); |
970 | | void pj_clear_vgridshift_knowngrids_cache(); |
971 | | void pj_clear_gridshift_knowngrids_cache(); |
972 | | |
973 | | void pj_clear_sqlite_cache(); |
974 | | |
975 | | PJ_LP pj_generic_inverse_2d(PJ_XY xy, PJ *P, PJ_LP lpInitial, |
976 | | double deltaXYTolerance); |
977 | | |
978 | | PJ *pj_obj_create(PJ_CONTEXT *ctx, const NS_PROJ::util::BaseObjectNNPtr &objIn); |
979 | | |
980 | | /*****************************************************************************/ |
981 | | /* */ |
982 | | /* proj_api.h */ |
983 | | /* */ |
984 | | /* The rest of this header file includes what used to be "proj_api.h" */ |
985 | | /* */ |
986 | | /*****************************************************************************/ |
987 | | |
988 | | /* pj_init() and similar functions can be used with a non-C locale */ |
989 | | /* Can be detected too at runtime if the symbol pj_atof exists */ |
990 | | #define PJ_LOCALE_SAFE 1 |
991 | | |
992 | 12.9k | #define RAD_TO_DEG 57.295779513082321 |
993 | 3.24k | #define DEG_TO_RAD .017453292519943296 |
994 | | |
995 | | extern char const PROJ_DLL pj_release[]; /* global release id string */ |
996 | | |
997 | | /* procedure prototypes */ |
998 | | |
999 | | PJ_CONTEXT PROJ_DLL *pj_get_default_ctx(void); |
1000 | | PJ_CONTEXT *pj_get_ctx(PJ *); |
1001 | | |
1002 | | PJ_XY PROJ_DLL pj_fwd(PJ_LP, PJ *); |
1003 | | PJ_LP PROJ_DLL pj_inv(PJ_XY, PJ *); |
1004 | | |
1005 | | PJ_XYZ pj_fwd3d(PJ_LPZ, PJ *); |
1006 | | PJ_LPZ pj_inv3d(PJ_XYZ, PJ *); |
1007 | | |
1008 | | void pj_clear_initcache(void); |
1009 | | void PROJ_DLL pj_pr_list(PJ *); /* used by proj.cpp */ |
1010 | | char *pj_get_def(PJ *, int); |
1011 | | int pj_has_inverse(PJ *); |
1012 | | |
1013 | | char *pj_strdup(const char *str); |
1014 | | const char PROJ_DLL *pj_get_release(void); |
1015 | | void pj_acquire_lock(void); |
1016 | | void pj_release_lock(void); |
1017 | | |
1018 | | bool pj_log_active(PJ_CONTEXT *ctx, int level); |
1019 | | void pj_log(PJ_CONTEXT *ctx, int level, const char *fmt, ...); |
1020 | | void pj_stderr_logger(void *, int, const char *); |
1021 | | |
1022 | | int pj_find_file(PJ_CONTEXT *ctx, const char *short_filename, |
1023 | | char *out_full_filename, size_t out_full_filename_size); |
1024 | | |
1025 | | // To remove when PROJ_LIB definitely goes away |
1026 | | void PROJ_DLL pj_stderr_proj_lib_deprecation_warning(); |
1027 | | |
1028 | | #endif /* ndef PROJ_INTERNAL_H */ |