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