/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 | 21 | #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 | 0 | #define PJ_TODEG(rad) ((rad)*180.0 / M_PI) |
93 | | #endif |
94 | | #ifndef PJ_TORAD |
95 | 319 | #define PJ_TORAD(deg) ((deg)*M_PI / 180.0) |
96 | | #endif |
97 | | |
98 | | /* Maximum latitudinal overshoot accepted */ |
99 | 224 | #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 | 164k | #define FALSE 0 |
110 | | #endif |
111 | | |
112 | | #ifndef TRUE |
113 | 56.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 | 6.72k | #define ABS(x) ((x < 0) ? (-1 * (x)) : x) |
123 | | #endif |
124 | | |
125 | | /* maximum path/filename */ |
126 | | #ifndef MAX_PATH_FILENAME |
127 | 1.32k | #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 | 4.60k | #define M_FORTPI M_PI_4 /* pi/4 */ |
161 | 193k | #define M_HALFPI M_PI_2 /* pi/2 */ |
162 | 0 | #define M_PI_HALFPI 4.71238898038468985769 /* 1.5*pi */ |
163 | | |
164 | | #ifndef M_TWOPI |
165 | 2.57k | #define M_TWOPI 6.28318530717958647693 /* 2*pi */ |
166 | | #endif |
167 | | |
168 | 0 | #define M_TWO_D_PI M_2_PI /* 2/pi */ |
169 | 0 | #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.32k | #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 | 3.33M | #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 | 13.3k | #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 | 125k | #define PJD_UNKNOWN 0 |
314 | 293k | #define PJD_3PARAM 1 |
315 | 5.20k | #define PJD_7PARAM 2 |
316 | 6.37k | #define PJD_GRIDSHIFT 3 |
317 | 5.73k | #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 | 0 | : idxInOriginalList(other.idxInOriginalList), minxSrc(other.minxSrc), |
402 | 0 | minySrc(other.minySrc), maxxSrc(other.maxxSrc), |
403 | 0 | maxySrc(other.maxySrc), minxDst(other.minxDst), |
404 | 0 | minyDst(other.minyDst), maxxDst(other.maxxDst), |
405 | 0 | maxyDst(other.maxyDst), name(std::move(other.name)), |
406 | 0 | accuracy(other.accuracy), pseudoArea(other.pseudoArea), |
407 | 0 | areaName(std::move(other.areaName)), isOffshore(other.isOffshore), |
408 | 0 | isUnknownAreaName(other.isUnknownAreaName), |
409 | 0 | isPriorityOp(other.isPriorityOp), |
410 | 0 | srcIsLonLatDegree(other.srcIsLonLatDegree), |
411 | 0 | srcIsLatLonDegree(other.srcIsLatLonDegree), |
412 | 0 | dstIsLonLatDegree(other.dstIsLonLatDegree), |
413 | 0 | dstIsLatLonDegree(other.dstIsLatLonDegree) { |
414 | 0 | pj = other.pj; |
415 | 0 | other.pj = nullptr; |
416 | 0 | pjSrcGeocentricToLonLat = other.pjSrcGeocentricToLonLat; |
417 | 0 | other.pjSrcGeocentricToLonLat = nullptr; |
418 | 0 | pjDstGeocentricToLonLat = other.pjDstGeocentricToLonLat; |
419 | 0 | other.pjDstGeocentricToLonLat = nullptr; |
420 | 0 | } |
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 | 289k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ |
874 | 289k | if (P) \ |
875 | 289k | return pj_projection_specific_setup_##name(P); \ |
876 | 289k | P = pj_new(); \ |
877 | 144k | if (nullptr == P) \ |
878 | 144k | return nullptr; \ |
879 | 144k | P->short_name = #name; \ |
880 | 144k | P->descr = des_##name; \ |
881 | 144k | P->need_ellps = NEED_ELLPS; \ |
882 | 144k | P->left = PJ_IO_UNITS_RADIANS; \ |
883 | 144k | P->right = PJ_IO_UNITS_CLASSIC; \ |
884 | 144k | return P; \ |
885 | 144k | } \ Line | Count | Source | 873 | 20.9k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 20.9k | if (P) \ | 875 | 20.9k | return pj_projection_specific_setup_##name(P); \ | 876 | 20.9k | P = pj_new(); \ | 877 | 10.5k | if (nullptr == P) \ | 878 | 10.5k | return nullptr; \ | 879 | 10.5k | P->short_name = #name; \ | 880 | 10.5k | P->descr = des_##name; \ | 881 | 10.5k | P->need_ellps = NEED_ELLPS; \ | 882 | 10.5k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 10.5k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 10.5k | return P; \ | 885 | 10.5k | } \ |
Line | Count | Source | 873 | 2.15k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2.15k | if (P) \ | 875 | 2.15k | return pj_projection_specific_setup_##name(P); \ | 876 | 2.15k | P = pj_new(); \ | 877 | 1.07k | if (nullptr == P) \ | 878 | 1.07k | return nullptr; \ | 879 | 1.07k | P->short_name = #name; \ | 880 | 1.07k | P->descr = des_##name; \ | 881 | 1.07k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.07k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.07k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.07k | return P; \ | 885 | 1.07k | } \ |
Line | Count | Source | 873 | 184 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 184 | if (P) \ | 875 | 184 | return pj_projection_specific_setup_##name(P); \ | 876 | 184 | P = pj_new(); \ | 877 | 92 | if (nullptr == P) \ | 878 | 92 | return nullptr; \ | 879 | 92 | P->short_name = #name; \ | 880 | 92 | P->descr = des_##name; \ | 881 | 92 | P->need_ellps = NEED_ELLPS; \ | 882 | 92 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 92 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 92 | return P; \ | 885 | 92 | } \ |
Line | Count | Source | 873 | 6.07k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 6.07k | if (P) \ | 875 | 6.07k | return pj_projection_specific_setup_##name(P); \ | 876 | 6.07k | P = pj_new(); \ | 877 | 3.03k | if (nullptr == P) \ | 878 | 3.03k | return nullptr; \ | 879 | 3.03k | P->short_name = #name; \ | 880 | 3.03k | P->descr = des_##name; \ | 881 | 3.03k | P->need_ellps = NEED_ELLPS; \ | 882 | 3.03k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 3.03k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 3.03k | return P; \ | 885 | 3.03k | } \ |
Line | Count | Source | 873 | 46.9k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 46.9k | if (P) \ | 875 | 46.9k | return pj_projection_specific_setup_##name(P); \ | 876 | 46.9k | P = pj_new(); \ | 877 | 23.4k | if (nullptr == P) \ | 878 | 23.4k | return nullptr; \ | 879 | 23.4k | P->short_name = #name; \ | 880 | 23.4k | P->descr = des_##name; \ | 881 | 23.4k | P->need_ellps = NEED_ELLPS; \ | 882 | 23.4k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 23.4k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 23.4k | return P; \ | 885 | 23.4k | } \ |
Line | Count | Source | 873 | 385 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 385 | if (P) \ | 875 | 385 | return pj_projection_specific_setup_##name(P); \ | 876 | 385 | P = pj_new(); \ | 877 | 195 | if (nullptr == P) \ | 878 | 195 | return nullptr; \ | 879 | 195 | P->short_name = #name; \ | 880 | 195 | P->descr = des_##name; \ | 881 | 195 | P->need_ellps = NEED_ELLPS; \ | 882 | 195 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 195 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 195 | return P; \ | 885 | 195 | } \ |
Line | Count | Source | 873 | 3.55k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 3.55k | if (P) \ | 875 | 3.55k | return pj_projection_specific_setup_##name(P); \ | 876 | 3.55k | P = pj_new(); \ | 877 | 1.77k | if (nullptr == P) \ | 878 | 1.77k | return nullptr; \ | 879 | 1.77k | P->short_name = #name; \ | 880 | 1.77k | P->descr = des_##name; \ | 881 | 1.77k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.77k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.77k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.77k | return P; \ | 885 | 1.77k | } \ |
Line | Count | Source | 873 | 39.4k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 39.4k | if (P) \ | 875 | 39.4k | return pj_projection_specific_setup_##name(P); \ | 876 | 39.4k | P = pj_new(); \ | 877 | 19.7k | if (nullptr == P) \ | 878 | 19.7k | return nullptr; \ | 879 | 19.7k | P->short_name = #name; \ | 880 | 19.7k | P->descr = des_##name; \ | 881 | 19.7k | P->need_ellps = NEED_ELLPS; \ | 882 | 19.7k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 19.7k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 19.7k | return P; \ | 885 | 19.7k | } \ |
Line | Count | Source | 873 | 574 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 574 | if (P) \ | 875 | 574 | return pj_projection_specific_setup_##name(P); \ | 876 | 574 | P = pj_new(); \ | 877 | 288 | if (nullptr == P) \ | 878 | 288 | return nullptr; \ | 879 | 288 | P->short_name = #name; \ | 880 | 288 | P->descr = des_##name; \ | 881 | 288 | P->need_ellps = NEED_ELLPS; \ | 882 | 288 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 288 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 288 | return P; \ | 885 | 288 | } \ |
Line | Count | Source | 873 | 896 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 896 | if (P) \ | 875 | 896 | return pj_projection_specific_setup_##name(P); \ | 876 | 896 | P = pj_new(); \ | 877 | 450 | if (nullptr == P) \ | 878 | 450 | return nullptr; \ | 879 | 450 | P->short_name = #name; \ | 880 | 450 | P->descr = des_##name; \ | 881 | 450 | P->need_ellps = NEED_ELLPS; \ | 882 | 450 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 450 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 450 | return P; \ | 885 | 450 | } \ |
Line | Count | Source | 873 | 731 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 731 | if (P) \ | 875 | 731 | return pj_projection_specific_setup_##name(P); \ | 876 | 731 | P = pj_new(); \ | 877 | 366 | if (nullptr == P) \ | 878 | 366 | return nullptr; \ | 879 | 366 | P->short_name = #name; \ | 880 | 366 | P->descr = des_##name; \ | 881 | 366 | P->need_ellps = NEED_ELLPS; \ | 882 | 366 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 366 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 366 | return P; \ | 885 | 366 | } \ |
Unexecuted instantiation: pj_airocean Line | Count | Source | 873 | 1.91k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.91k | if (P) \ | 875 | 1.91k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.91k | P = pj_new(); \ | 877 | 961 | if (nullptr == P) \ | 878 | 961 | return nullptr; \ | 879 | 961 | P->short_name = #name; \ | 880 | 961 | P->descr = des_##name; \ | 881 | 961 | P->need_ellps = NEED_ELLPS; \ | 882 | 961 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 961 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 961 | return P; \ | 885 | 961 | } \ |
Line | Count | Source | 873 | 322 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 322 | if (P) \ | 875 | 322 | return pj_projection_specific_setup_##name(P); \ | 876 | 322 | P = pj_new(); \ | 877 | 164 | if (nullptr == P) \ | 878 | 164 | return nullptr; \ | 879 | 164 | P->short_name = #name; \ | 880 | 164 | P->descr = des_##name; \ | 881 | 164 | P->need_ellps = NEED_ELLPS; \ | 882 | 164 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 164 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 164 | return P; \ | 885 | 164 | } \ |
Line | Count | Source | 873 | 359 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 359 | if (P) \ | 875 | 359 | return pj_projection_specific_setup_##name(P); \ | 876 | 359 | P = pj_new(); \ | 877 | 180 | if (nullptr == P) \ | 878 | 180 | return nullptr; \ | 879 | 180 | P->short_name = #name; \ | 880 | 180 | P->descr = des_##name; \ | 881 | 180 | P->need_ellps = NEED_ELLPS; \ | 882 | 180 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 180 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 180 | return P; \ | 885 | 180 | } \ |
Unexecuted instantiation: pj_adams_hemi Line | Count | Source | 873 | 23 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 23 | if (P) \ | 875 | 23 | return pj_projection_specific_setup_##name(P); \ | 876 | 23 | 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 | 229 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 229 | if (P) \ | 875 | 229 | return pj_projection_specific_setup_##name(P); \ | 876 | 229 | P = pj_new(); \ | 877 | 115 | if (nullptr == P) \ | 878 | 115 | return nullptr; \ | 879 | 115 | P->short_name = #name; \ | 880 | 115 | P->descr = des_##name; \ | 881 | 115 | P->need_ellps = NEED_ELLPS; \ | 882 | 115 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 115 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 115 | return P; \ | 885 | 115 | } \ |
Line | Count | Source | 873 | 326 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 326 | if (P) \ | 875 | 326 | return pj_projection_specific_setup_##name(P); \ | 876 | 326 | P = pj_new(); \ | 877 | 165 | if (nullptr == P) \ | 878 | 165 | return nullptr; \ | 879 | 165 | P->short_name = #name; \ | 880 | 165 | P->descr = des_##name; \ | 881 | 165 | P->need_ellps = NEED_ELLPS; \ | 882 | 165 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 165 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 165 | return P; \ | 885 | 165 | } \ |
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 | 589 | if (nullptr == P) \ | 878 | 589 | return nullptr; \ | 879 | 589 | P->short_name = #name; \ | 880 | 589 | P->descr = des_##name; \ | 881 | 589 | P->need_ellps = NEED_ELLPS; \ | 882 | 589 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 589 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 589 | return P; \ | 885 | 589 | } \ |
Line | Count | Source | 873 | 211 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 211 | if (P) \ | 875 | 211 | return pj_projection_specific_setup_##name(P); \ | 876 | 211 | P = pj_new(); \ | 877 | 107 | if (nullptr == P) \ | 878 | 107 | return nullptr; \ | 879 | 107 | P->short_name = #name; \ | 880 | 107 | P->descr = des_##name; \ | 881 | 107 | P->need_ellps = NEED_ELLPS; \ | 882 | 107 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 107 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 107 | return P; \ | 885 | 107 | } \ |
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 | 40 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 40 | if (P) \ | 875 | 40 | return pj_projection_specific_setup_##name(P); \ | 876 | 40 | P = pj_new(); \ | 877 | 20 | if (nullptr == P) \ | 878 | 20 | return nullptr; \ | 879 | 20 | P->short_name = #name; \ | 880 | 20 | P->descr = des_##name; \ | 881 | 20 | P->need_ellps = NEED_ELLPS; \ | 882 | 20 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 20 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 20 | return P; \ | 885 | 20 | } \ |
Line | Count | Source | 873 | 2.24k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2.24k | if (P) \ | 875 | 2.24k | return pj_projection_specific_setup_##name(P); \ | 876 | 2.24k | P = pj_new(); \ | 877 | 1.12k | if (nullptr == P) \ | 878 | 1.12k | return nullptr; \ | 879 | 1.12k | P->short_name = #name; \ | 880 | 1.12k | P->descr = des_##name; \ | 881 | 1.12k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.12k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.12k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.12k | return P; \ | 885 | 1.12k | } \ |
Line | Count | Source | 873 | 294 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 294 | if (P) \ | 875 | 294 | return pj_projection_specific_setup_##name(P); \ | 876 | 294 | P = pj_new(); \ | 877 | 149 | if (nullptr == P) \ | 878 | 149 | return nullptr; \ | 879 | 149 | P->short_name = #name; \ | 880 | 149 | P->descr = des_##name; \ | 881 | 149 | P->need_ellps = NEED_ELLPS; \ | 882 | 149 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 149 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 149 | return P; \ | 885 | 149 | } \ |
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 | } \ |
Unexecuted instantiation: pj_tpers Line | Count | Source | 873 | 99 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 99 | if (P) \ | 875 | 99 | return pj_projection_specific_setup_##name(P); \ | 876 | 99 | 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 | 1.21k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.21k | if (P) \ | 875 | 1.21k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.21k | P = pj_new(); \ | 877 | 612 | if (nullptr == P) \ | 878 | 612 | return nullptr; \ | 879 | 612 | P->short_name = #name; \ | 880 | 612 | P->descr = des_##name; \ | 881 | 612 | P->need_ellps = NEED_ELLPS; \ | 882 | 612 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 612 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 612 | return P; \ | 885 | 612 | } \ |
Line | Count | Source | 873 | 1.31k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.31k | if (P) \ | 875 | 1.31k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.31k | P = pj_new(); \ | 877 | 660 | if (nullptr == P) \ | 878 | 660 | return nullptr; \ | 879 | 660 | P->short_name = #name; \ | 880 | 660 | P->descr = des_##name; \ | 881 | 660 | P->need_ellps = NEED_ELLPS; \ | 882 | 660 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 660 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 660 | return P; \ | 885 | 660 | } \ |
Line | Count | Source | 873 | 12.8k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 12.8k | if (P) \ | 875 | 12.8k | return pj_projection_specific_setup_##name(P); \ | 876 | 12.8k | P = pj_new(); \ | 877 | 6.41k | if (nullptr == P) \ | 878 | 6.41k | return nullptr; \ | 879 | 6.41k | P->short_name = #name; \ | 880 | 6.41k | P->descr = des_##name; \ | 881 | 6.41k | P->need_ellps = NEED_ELLPS; \ | 882 | 6.41k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 6.41k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 6.41k | return P; \ | 885 | 6.41k | } \ |
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 | 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 | 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 | 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 | 3.09k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 3.09k | if (P) \ | 875 | 3.09k | return pj_projection_specific_setup_##name(P); \ | 876 | 3.09k | P = pj_new(); \ | 877 | 1.55k | if (nullptr == P) \ | 878 | 1.55k | return nullptr; \ | 879 | 1.55k | P->short_name = #name; \ | 880 | 1.55k | P->descr = des_##name; \ | 881 | 1.55k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.55k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.55k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.55k | return P; \ | 885 | 1.55k | } \ |
Line | Count | Source | 873 | 425 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 425 | if (P) \ | 875 | 425 | return pj_projection_specific_setup_##name(P); \ | 876 | 425 | P = pj_new(); \ | 877 | 214 | if (nullptr == P) \ | 878 | 214 | return nullptr; \ | 879 | 214 | P->short_name = #name; \ | 880 | 214 | P->descr = des_##name; \ | 881 | 214 | P->need_ellps = NEED_ELLPS; \ | 882 | 214 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 214 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 214 | return P; \ | 885 | 214 | } \ |
Line | Count | Source | 873 | 153 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 153 | if (P) \ | 875 | 153 | return pj_projection_specific_setup_##name(P); \ | 876 | 153 | P = pj_new(); \ | 877 | 79 | if (nullptr == P) \ | 878 | 79 | return nullptr; \ | 879 | 79 | P->short_name = #name; \ | 880 | 79 | P->descr = des_##name; \ | 881 | 79 | P->need_ellps = NEED_ELLPS; \ | 882 | 79 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 79 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 79 | return P; \ | 885 | 79 | } \ |
Line | Count | Source | 873 | 214 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 214 | if (P) \ | 875 | 214 | return pj_projection_specific_setup_##name(P); \ | 876 | 214 | P = pj_new(); \ | 877 | 108 | if (nullptr == P) \ | 878 | 108 | return nullptr; \ | 879 | 108 | P->short_name = #name; \ | 880 | 108 | P->descr = des_##name; \ | 881 | 108 | P->need_ellps = NEED_ELLPS; \ | 882 | 108 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 108 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 108 | return P; \ | 885 | 108 | } \ |
Line | Count | Source | 873 | 1.67k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.67k | if (P) \ | 875 | 1.67k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.67k | P = pj_new(); \ | 877 | 836 | if (nullptr == P) \ | 878 | 836 | return nullptr; \ | 879 | 836 | P->short_name = #name; \ | 880 | 836 | P->descr = des_##name; \ | 881 | 836 | P->need_ellps = NEED_ELLPS; \ | 882 | 836 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 836 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 836 | return P; \ | 885 | 836 | } \ |
Unexecuted instantiation: pj_ccon 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 | 120 | if (nullptr == P) \ | 878 | 120 | return nullptr; \ | 879 | 120 | P->short_name = #name; \ | 880 | 120 | P->descr = des_##name; \ | 881 | 120 | P->need_ellps = NEED_ELLPS; \ | 882 | 120 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 120 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 120 | return P; \ | 885 | 120 | } \ |
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.07k | if (nullptr == P) \ | 878 | 1.07k | return nullptr; \ | 879 | 1.07k | P->short_name = #name; \ | 880 | 1.07k | P->descr = des_##name; \ | 881 | 1.07k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.07k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.07k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.07k | return P; \ | 885 | 1.07k | } \ |
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 | 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 | 2.03k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2.03k | if (P) \ | 875 | 2.03k | return pj_projection_specific_setup_##name(P); \ | 876 | 2.03k | P = pj_new(); \ | 877 | 1.02k | if (nullptr == P) \ | 878 | 1.02k | return nullptr; \ | 879 | 1.02k | P->short_name = #name; \ | 880 | 1.02k | P->descr = des_##name; \ | 881 | 1.02k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.02k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.02k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.02k | return P; \ | 885 | 1.02k | } \ |
Line | Count | Source | 873 | 488 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 488 | if (P) \ | 875 | 488 | return pj_projection_specific_setup_##name(P); \ | 876 | 488 | P = pj_new(); \ | 877 | 247 | if (nullptr == P) \ | 878 | 247 | return nullptr; \ | 879 | 247 | P->short_name = #name; \ | 880 | 247 | P->descr = des_##name; \ | 881 | 247 | P->need_ellps = NEED_ELLPS; \ | 882 | 247 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 247 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 247 | return P; \ | 885 | 247 | } \ |
Line | Count | Source | 873 | 447 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 447 | if (P) \ | 875 | 447 | return pj_projection_specific_setup_##name(P); \ | 876 | 447 | P = pj_new(); \ | 877 | 225 | if (nullptr == P) \ | 878 | 225 | return nullptr; \ | 879 | 225 | P->short_name = #name; \ | 880 | 225 | P->descr = des_##name; \ | 881 | 225 | P->need_ellps = NEED_ELLPS; \ | 882 | 225 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 225 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 225 | return P; \ | 885 | 225 | } \ |
Unexecuted instantiation: pj_euler Unexecuted instantiation: pj_tissot 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 | 12 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 12 | if (P) \ | 875 | 12 | return pj_projection_specific_setup_##name(P); \ | 876 | 12 | 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 | } \ |
Unexecuted instantiation: pj_pconic 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 | 20 | if (nullptr == P) \ | 878 | 20 | return nullptr; \ | 879 | 20 | P->short_name = #name; \ | 880 | 20 | P->descr = des_##name; \ | 881 | 20 | P->need_ellps = NEED_ELLPS; \ | 882 | 20 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 20 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 20 | return P; \ | 885 | 20 | } \ |
Line | Count | Source | 873 | 641 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 641 | if (P) \ | 875 | 641 | return pj_projection_specific_setup_##name(P); \ | 876 | 641 | P = pj_new(); \ | 877 | 325 | if (nullptr == P) \ | 878 | 325 | return nullptr; \ | 879 | 325 | P->short_name = #name; \ | 880 | 325 | P->descr = des_##name; \ | 881 | 325 | P->need_ellps = NEED_ELLPS; \ | 882 | 325 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 325 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 325 | return P; \ | 885 | 325 | } \ |
Line | Count | Source | 873 | 103 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 103 | if (P) \ | 875 | 103 | return pj_projection_specific_setup_##name(P); \ | 876 | 103 | 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 | 11 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 11 | if (P) \ | 875 | 11 | return pj_projection_specific_setup_##name(P); \ | 876 | 11 | 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 | 951 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 951 | if (P) \ | 875 | 951 | return pj_projection_specific_setup_##name(P); \ | 876 | 951 | P = pj_new(); \ | 877 | 479 | if (nullptr == P) \ | 878 | 479 | return nullptr; \ | 879 | 479 | P->short_name = #name; \ | 880 | 479 | P->descr = des_##name; \ | 881 | 479 | P->need_ellps = NEED_ELLPS; \ | 882 | 479 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 479 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 479 | return P; \ | 885 | 479 | } \ |
Line | Count | Source | 873 | 149 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 149 | if (P) \ | 875 | 149 | return pj_projection_specific_setup_##name(P); \ | 876 | 149 | 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 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 32 | if (P) \ | 875 | 32 | return pj_projection_specific_setup_##name(P); \ | 876 | 32 | 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 | 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 | 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 | 20 | if (nullptr == P) \ | 878 | 20 | return nullptr; \ | 879 | 20 | P->short_name = #name; \ | 880 | 20 | P->descr = des_##name; \ | 881 | 20 | P->need_ellps = NEED_ELLPS; \ | 882 | 20 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 20 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 20 | return P; \ | 885 | 20 | } \ |
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 | 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 | 3.19k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 3.19k | if (P) \ | 875 | 3.19k | return pj_projection_specific_setup_##name(P); \ | 876 | 3.19k | P = pj_new(); \ | 877 | 1.60k | if (nullptr == P) \ | 878 | 1.60k | return nullptr; \ | 879 | 1.60k | P->short_name = #name; \ | 880 | 1.60k | P->descr = des_##name; \ | 881 | 1.60k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.60k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.60k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.60k | return P; \ | 885 | 1.60k | } \ |
Line | Count | Source | 873 | 1.72k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.72k | if (P) \ | 875 | 1.72k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.72k | P = pj_new(); \ | 877 | 867 | if (nullptr == P) \ | 878 | 867 | return nullptr; \ | 879 | 867 | P->short_name = #name; \ | 880 | 867 | P->descr = des_##name; \ | 881 | 867 | P->need_ellps = NEED_ELLPS; \ | 882 | 867 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 867 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 867 | return P; \ | 885 | 867 | } \ |
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 | 573 | if (nullptr == P) \ | 878 | 573 | return nullptr; \ | 879 | 573 | P->short_name = #name; \ | 880 | 573 | P->descr = des_##name; \ | 881 | 573 | P->need_ellps = NEED_ELLPS; \ | 882 | 573 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 573 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 573 | return P; \ | 885 | 573 | } \ |
Line | Count | Source | 873 | 463 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 463 | if (P) \ | 875 | 463 | return pj_projection_specific_setup_##name(P); \ | 876 | 463 | P = pj_new(); \ | 877 | 233 | if (nullptr == P) \ | 878 | 233 | return nullptr; \ | 879 | 233 | P->short_name = #name; \ | 880 | 233 | P->descr = des_##name; \ | 881 | 233 | P->need_ellps = NEED_ELLPS; \ | 882 | 233 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 233 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 233 | return P; \ | 885 | 233 | } \ |
Line | Count | Source | 873 | 1.41k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.41k | if (P) \ | 875 | 1.41k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.41k | P = pj_new(); \ | 877 | 752 | if (nullptr == P) \ | 878 | 752 | return nullptr; \ | 879 | 752 | P->short_name = #name; \ | 880 | 752 | P->descr = des_##name; \ | 881 | 752 | P->need_ellps = NEED_ELLPS; \ | 882 | 752 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 752 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 752 | return P; \ | 885 | 752 | } \ |
Line | Count | Source | 873 | 1.20k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.20k | if (P) \ | 875 | 1.20k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.20k | P = pj_new(); \ | 877 | 602 | if (nullptr == P) \ | 878 | 602 | return nullptr; \ | 879 | 602 | P->short_name = #name; \ | 880 | 602 | P->descr = des_##name; \ | 881 | 602 | P->need_ellps = NEED_ELLPS; \ | 882 | 602 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 602 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 602 | return P; \ | 885 | 602 | } \ |
Line | Count | Source | 873 | 343 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 343 | if (P) \ | 875 | 343 | return pj_projection_specific_setup_##name(P); \ | 876 | 343 | P = pj_new(); \ | 877 | 173 | if (nullptr == P) \ | 878 | 173 | return nullptr; \ | 879 | 173 | P->short_name = #name; \ | 880 | 173 | P->descr = des_##name; \ | 881 | 173 | P->need_ellps = NEED_ELLPS; \ | 882 | 173 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 173 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 173 | return P; \ | 885 | 173 | } \ |
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 | 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 | 8.36k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 8.36k | if (P) \ | 875 | 8.36k | return pj_projection_specific_setup_##name(P); \ | 876 | 8.36k | P = pj_new(); \ | 877 | 4.18k | if (nullptr == P) \ | 878 | 4.18k | return nullptr; \ | 879 | 4.18k | P->short_name = #name; \ | 880 | 4.18k | P->descr = des_##name; \ | 881 | 4.18k | P->need_ellps = NEED_ELLPS; \ | 882 | 4.18k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 4.18k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 4.18k | return P; \ | 885 | 4.18k | } \ |
Line | Count | Source | 873 | 354 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 354 | if (P) \ | 875 | 354 | return pj_projection_specific_setup_##name(P); \ | 876 | 354 | P = pj_new(); \ | 877 | 178 | if (nullptr == P) \ | 878 | 178 | return nullptr; \ | 879 | 178 | P->short_name = #name; \ | 880 | 178 | P->descr = des_##name; \ | 881 | 178 | P->need_ellps = NEED_ELLPS; \ | 882 | 178 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 178 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 178 | return P; \ | 885 | 178 | } \ |
Line | Count | Source | 873 | 1.67k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.67k | if (P) \ | 875 | 1.67k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.67k | P = pj_new(); \ | 877 | 839 | if (nullptr == P) \ | 878 | 839 | return nullptr; \ | 879 | 839 | P->short_name = #name; \ | 880 | 839 | P->descr = des_##name; \ | 881 | 839 | P->need_ellps = NEED_ELLPS; \ | 882 | 839 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 839 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 839 | return P; \ | 885 | 839 | } \ |
Unexecuted instantiation: pj_tobmerc Line | Count | Source | 873 | 768 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 768 | if (P) \ | 875 | 768 | return pj_projection_specific_setup_##name(P); \ | 876 | 768 | P = pj_new(); \ | 877 | 385 | if (nullptr == P) \ | 878 | 385 | return nullptr; \ | 879 | 385 | P->short_name = #name; \ | 880 | 385 | P->descr = des_##name; \ | 881 | 385 | P->need_ellps = NEED_ELLPS; \ | 882 | 385 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 385 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 385 | return P; \ | 885 | 385 | } \ |
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 | 711 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 711 | if (P) \ | 875 | 711 | return pj_projection_specific_setup_##name(P); \ | 876 | 711 | P = pj_new(); \ | 877 | 356 | if (nullptr == P) \ | 878 | 356 | return nullptr; \ | 879 | 356 | P->short_name = #name; \ | 880 | 356 | P->descr = des_##name; \ | 881 | 356 | P->need_ellps = NEED_ELLPS; \ | 882 | 356 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 356 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 356 | return P; \ | 885 | 356 | } \ |
Line | Count | Source | 873 | 89 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 89 | if (P) \ | 875 | 89 | return pj_projection_specific_setup_##name(P); \ | 876 | 89 | P = pj_new(); \ | 877 | 45 | if (nullptr == P) \ | 878 | 45 | return nullptr; \ | 879 | 45 | P->short_name = #name; \ | 880 | 45 | P->descr = des_##name; \ | 881 | 45 | P->need_ellps = NEED_ELLPS; \ | 882 | 45 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 45 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 45 | return P; \ | 885 | 45 | } \ |
Line | Count | Source | 873 | 259 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 259 | if (P) \ | 875 | 259 | return pj_projection_specific_setup_##name(P); \ | 876 | 259 | P = pj_new(); \ | 877 | 130 | if (nullptr == P) \ | 878 | 130 | return nullptr; \ | 879 | 130 | P->short_name = #name; \ | 880 | 130 | P->descr = des_##name; \ | 881 | 130 | P->need_ellps = NEED_ELLPS; \ | 882 | 130 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 130 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 130 | return P; \ | 885 | 130 | } \ |
Unexecuted instantiation: pj_apian Line | Count | Source | 873 | 899 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 899 | if (P) \ | 875 | 899 | return pj_projection_specific_setup_##name(P); \ | 876 | 899 | P = pj_new(); \ | 877 | 453 | if (nullptr == P) \ | 878 | 453 | return nullptr; \ | 879 | 453 | P->short_name = #name; \ | 880 | 453 | P->descr = des_##name; \ | 881 | 453 | P->need_ellps = NEED_ELLPS; \ | 882 | 453 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 453 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 453 | return P; \ | 885 | 453 | } \ |
Unexecuted instantiation: pj_bertin1953 Line | Count | Source | 873 | 308 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 308 | if (P) \ | 875 | 308 | return pj_projection_specific_setup_##name(P); \ | 876 | 308 | P = pj_new(); \ | 877 | 155 | if (nullptr == P) \ | 878 | 155 | return nullptr; \ | 879 | 155 | P->short_name = #name; \ | 880 | 155 | P->descr = des_##name; \ | 881 | 155 | P->need_ellps = NEED_ELLPS; \ | 882 | 155 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 155 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 155 | return P; \ | 885 | 155 | } \ |
Line | Count | Source | 873 | 168 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 168 | if (P) \ | 875 | 168 | return pj_projection_specific_setup_##name(P); \ | 876 | 168 | P = pj_new(); \ | 877 | 84 | if (nullptr == P) \ | 878 | 84 | return nullptr; \ | 879 | 84 | P->short_name = #name; \ | 880 | 84 | P->descr = des_##name; \ | 881 | 84 | P->need_ellps = NEED_ELLPS; \ | 882 | 84 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 84 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 84 | return P; \ | 885 | 84 | } \ |
Unexecuted instantiation: pj_lagrng Unexecuted instantiation: pj_larr 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 | 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 | 39.5k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 39.5k | if (P) \ | 875 | 39.5k | return pj_projection_specific_setup_##name(P); \ | 876 | 39.5k | P = pj_new(); \ | 877 | 19.7k | if (nullptr == P) \ | 878 | 19.7k | return nullptr; \ | 879 | 19.7k | P->short_name = #name; \ | 880 | 19.7k | P->descr = des_##name; \ | 881 | 19.7k | P->need_ellps = NEED_ELLPS; \ | 882 | 19.7k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 19.7k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 19.7k | return P; \ | 885 | 19.7k | } \ |
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 | 618 | if (nullptr == P) \ | 878 | 618 | return nullptr; \ | 879 | 618 | P->short_name = #name; \ | 880 | 618 | P->descr = des_##name; \ | 881 | 618 | P->need_ellps = NEED_ELLPS; \ | 882 | 618 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 618 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 618 | return P; \ | 885 | 618 | } \ |
Line | Count | Source | 873 | 3.91k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 3.91k | if (P) \ | 875 | 3.91k | return pj_projection_specific_setup_##name(P); \ | 876 | 3.91k | P = pj_new(); \ | 877 | 1.95k | if (nullptr == P) \ | 878 | 1.95k | return nullptr; \ | 879 | 1.95k | P->short_name = #name; \ | 880 | 1.95k | P->descr = des_##name; \ | 881 | 1.95k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.95k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.95k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.95k | return P; \ | 885 | 1.95k | } \ |
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 | 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 | } \ |
Unexecuted instantiation: pj_nicol Line | Count | Source | 873 | 1.42k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.42k | if (P) \ | 875 | 1.42k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.42k | P = pj_new(); \ | 877 | 717 | if (nullptr == P) \ | 878 | 717 | return nullptr; \ | 879 | 717 | P->short_name = #name; \ | 880 | 717 | P->descr = des_##name; \ | 881 | 717 | P->need_ellps = NEED_ELLPS; \ | 882 | 717 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 717 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 717 | return P; \ | 885 | 717 | } \ |
Line | Count | Source | 873 | 11 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 11 | if (P) \ | 875 | 11 | return pj_projection_specific_setup_##name(P); \ | 876 | 11 | 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 | 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 | 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 | 593 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 593 | if (P) \ | 875 | 593 | return pj_projection_specific_setup_##name(P); \ | 876 | 593 | P = pj_new(); \ | 877 | 299 | if (nullptr == P) \ | 878 | 299 | return nullptr; \ | 879 | 299 | P->short_name = #name; \ | 880 | 299 | P->descr = des_##name; \ | 881 | 299 | P->need_ellps = NEED_ELLPS; \ | 882 | 299 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 299 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 299 | return P; \ | 885 | 299 | } \ |
Line | Count | Source | 873 | 308 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 308 | if (P) \ | 875 | 308 | return pj_projection_specific_setup_##name(P); \ | 876 | 308 | P = pj_new(); \ | 877 | 155 | if (nullptr == P) \ | 878 | 155 | return nullptr; \ | 879 | 155 | P->short_name = #name; \ | 880 | 155 | P->descr = des_##name; \ | 881 | 155 | P->need_ellps = NEED_ELLPS; \ | 882 | 155 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 155 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 155 | return P; \ | 885 | 155 | } \ |
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 | 55 | if (nullptr == P) \ | 878 | 55 | return nullptr; \ | 879 | 55 | P->short_name = #name; \ | 880 | 55 | P->descr = des_##name; \ | 881 | 55 | P->need_ellps = NEED_ELLPS; \ | 882 | 55 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 55 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 55 | return P; \ | 885 | 55 | } \ |
Line | Count | Source | 873 | 57 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 57 | if (P) \ | 875 | 57 | return pj_projection_specific_setup_##name(P); \ | 876 | 57 | 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 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 32 | if (P) \ | 875 | 32 | return pj_projection_specific_setup_##name(P); \ | 876 | 32 | 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 | 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 | 284 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 284 | if (P) \ | 875 | 284 | return pj_projection_specific_setup_##name(P); \ | 876 | 284 | P = pj_new(); \ | 877 | 143 | if (nullptr == P) \ | 878 | 143 | return nullptr; \ | 879 | 143 | P->short_name = #name; \ | 880 | 143 | P->descr = des_##name; \ | 881 | 143 | P->need_ellps = NEED_ELLPS; \ | 882 | 143 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 143 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 143 | return P; \ | 885 | 143 | } \ |
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 | 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 | } \ |
Unexecuted instantiation: pj_collg Line | Count | Source | 873 | 428 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 428 | if (P) \ | 875 | 428 | return pj_projection_specific_setup_##name(P); \ | 876 | 428 | P = pj_new(); \ | 877 | 216 | if (nullptr == P) \ | 878 | 216 | return nullptr; \ | 879 | 216 | P->short_name = #name; \ | 880 | 216 | P->descr = des_##name; \ | 881 | 216 | P->need_ellps = NEED_ELLPS; \ | 882 | 216 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 216 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 216 | return P; \ | 885 | 216 | } \ |
Line | Count | Source | 873 | 51 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 51 | if (P) \ | 875 | 51 | return pj_projection_specific_setup_##name(P); \ | 876 | 51 | 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 | } \ |
Unexecuted instantiation: pj_denoy Line | Count | Source | 873 | 1.95k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.95k | if (P) \ | 875 | 1.95k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.95k | P = pj_new(); \ | 877 | 980 | if (nullptr == P) \ | 878 | 980 | return nullptr; \ | 879 | 980 | P->short_name = #name; \ | 880 | 980 | P->descr = des_##name; \ | 881 | 980 | P->need_ellps = NEED_ELLPS; \ | 882 | 980 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 980 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 980 | return P; \ | 885 | 980 | } \ |
Line | Count | Source | 873 | 1.08k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.08k | if (P) \ | 875 | 1.08k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.08k | P = pj_new(); \ | 877 | 544 | if (nullptr == P) \ | 878 | 544 | return nullptr; \ | 879 | 544 | P->short_name = #name; \ | 880 | 544 | P->descr = des_##name; \ | 881 | 544 | P->need_ellps = NEED_ELLPS; \ | 882 | 544 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 544 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 544 | return P; \ | 885 | 544 | } \ |
Line | Count | Source | 873 | 223 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 223 | if (P) \ | 875 | 223 | return pj_projection_specific_setup_##name(P); \ | 876 | 223 | P = pj_new(); \ | 877 | 112 | if (nullptr == P) \ | 878 | 112 | return nullptr; \ | 879 | 112 | P->short_name = #name; \ | 880 | 112 | P->descr = des_##name; \ | 881 | 112 | P->need_ellps = NEED_ELLPS; \ | 882 | 112 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 112 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 112 | return P; \ | 885 | 112 | } \ |
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 | 46 | if (nullptr == P) \ | 878 | 46 | return nullptr; \ | 879 | 46 | P->short_name = #name; \ | 880 | 46 | P->descr = des_##name; \ | 881 | 46 | P->need_ellps = NEED_ELLPS; \ | 882 | 46 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 46 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 46 | return P; \ | 885 | 46 | } \ |
Line | Count | Source | 873 | 553 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 553 | if (P) \ | 875 | 553 | return pj_projection_specific_setup_##name(P); \ | 876 | 553 | P = pj_new(); \ | 877 | 278 | if (nullptr == P) \ | 878 | 278 | return nullptr; \ | 879 | 278 | P->short_name = #name; \ | 880 | 278 | P->descr = des_##name; \ | 881 | 278 | P->need_ellps = NEED_ELLPS; \ | 882 | 278 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 278 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 278 | return P; \ | 885 | 278 | } \ |
Line | Count | Source | 873 | 284 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 284 | if (P) \ | 875 | 284 | return pj_projection_specific_setup_##name(P); \ | 876 | 284 | P = pj_new(); \ | 877 | 144 | if (nullptr == P) \ | 878 | 144 | return nullptr; \ | 879 | 144 | P->short_name = #name; \ | 880 | 144 | P->descr = des_##name; \ | 881 | 144 | P->need_ellps = NEED_ELLPS; \ | 882 | 144 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 144 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 144 | return P; \ | 885 | 144 | } \ |
Line | Count | Source | 873 | 1.16k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.16k | if (P) \ | 875 | 1.16k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.16k | P = pj_new(); \ | 877 | 586 | if (nullptr == P) \ | 878 | 586 | return nullptr; \ | 879 | 586 | P->short_name = #name; \ | 880 | 586 | P->descr = des_##name; \ | 881 | 586 | P->need_ellps = NEED_ELLPS; \ | 882 | 586 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 586 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 586 | return P; \ | 885 | 586 | } \ |
Line | Count | Source | 873 | 129 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 129 | if (P) \ | 875 | 129 | return pj_projection_specific_setup_##name(P); \ | 876 | 129 | P = pj_new(); \ | 877 | 65 | if (nullptr == P) \ | 878 | 65 | return nullptr; \ | 879 | 65 | P->short_name = #name; \ | 880 | 65 | P->descr = des_##name; \ | 881 | 65 | P->need_ellps = NEED_ELLPS; \ | 882 | 65 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 65 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 65 | return P; \ | 885 | 65 | } \ |
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 | } \ |
Unexecuted instantiation: pj_fouc_s Unexecuted instantiation: pj_gins8 Line | Count | Source | 873 | 384 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 384 | if (P) \ | 875 | 384 | return pj_projection_specific_setup_##name(P); \ | 876 | 384 | P = pj_new(); \ | 877 | 193 | if (nullptr == P) \ | 878 | 193 | return nullptr; \ | 879 | 193 | P->short_name = #name; \ | 880 | 193 | P->descr = des_##name; \ | 881 | 193 | P->need_ellps = NEED_ELLPS; \ | 882 | 193 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 193 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 193 | return P; \ | 885 | 193 | } \ |
Line | Count | Source | 873 | 3.81k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 3.81k | if (P) \ | 875 | 3.81k | return pj_projection_specific_setup_##name(P); \ | 876 | 3.81k | P = pj_new(); \ | 877 | 1.90k | if (nullptr == P) \ | 878 | 1.90k | return nullptr; \ | 879 | 1.90k | P->short_name = #name; \ | 880 | 1.90k | P->descr = des_##name; \ | 881 | 1.90k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.90k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.90k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.90k | return P; \ | 885 | 1.90k | } \ |
Line | Count | Source | 873 | 312 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 312 | if (P) \ | 875 | 312 | return pj_projection_specific_setup_##name(P); \ | 876 | 312 | 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 | 1.30k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.30k | if (P) \ | 875 | 1.30k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.30k | P = pj_new(); \ | 877 | 655 | if (nullptr == P) \ | 878 | 655 | return nullptr; \ | 879 | 655 | P->short_name = #name; \ | 880 | 655 | P->descr = des_##name; \ | 881 | 655 | P->need_ellps = NEED_ELLPS; \ | 882 | 655 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 655 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 655 | return P; \ | 885 | 655 | } \ |
Unexecuted instantiation: pj_gn_sinu Line | Count | Source | 873 | 2.02k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2.02k | if (P) \ | 875 | 2.02k | return pj_projection_specific_setup_##name(P); \ | 876 | 2.02k | P = pj_new(); \ | 877 | 1.01k | if (nullptr == P) \ | 878 | 1.01k | return nullptr; \ | 879 | 1.01k | P->short_name = #name; \ | 880 | 1.01k | P->descr = des_##name; \ | 881 | 1.01k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.01k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.01k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.01k | return P; \ | 885 | 1.01k | } \ |
Line | Count | Source | 873 | 249 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 249 | if (P) \ | 875 | 249 | return pj_projection_specific_setup_##name(P); \ | 876 | 249 | P = pj_new(); \ | 877 | 125 | if (nullptr == P) \ | 878 | 125 | return nullptr; \ | 879 | 125 | P->short_name = #name; \ | 880 | 125 | P->descr = des_##name; \ | 881 | 125 | P->need_ellps = NEED_ELLPS; \ | 882 | 125 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 125 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 125 | return P; \ | 885 | 125 | } \ |
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 | 26 | if (nullptr == P) \ | 878 | 26 | return nullptr; \ | 879 | 26 | P->short_name = #name; \ | 880 | 26 | P->descr = des_##name; \ | 881 | 26 | P->need_ellps = NEED_ELLPS; \ | 882 | 26 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 26 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 26 | return P; \ | 885 | 26 | } \ |
Unexecuted instantiation: pj_imoll Unexecuted instantiation: pj_imoll_o 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 | 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 | 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 | } \ |
Unexecuted instantiation: pj_mbt_fps Line | Count | Source | 873 | 76 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 76 | if (P) \ | 875 | 76 | return pj_projection_specific_setup_##name(P); \ | 876 | 76 | P = pj_new(); \ | 877 | 38 | if (nullptr == P) \ | 878 | 38 | return nullptr; \ | 879 | 38 | P->short_name = #name; \ | 880 | 38 | P->descr = des_##name; \ | 881 | 38 | P->need_ellps = NEED_ELLPS; \ | 882 | 38 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 38 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 38 | return P; \ | 885 | 38 | } \ |
Line | Count | Source | 873 | 670 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 670 | if (P) \ | 875 | 670 | return pj_projection_specific_setup_##name(P); \ | 876 | 670 | P = pj_new(); \ | 877 | 335 | if (nullptr == P) \ | 878 | 335 | return nullptr; \ | 879 | 335 | P->short_name = #name; \ | 880 | 335 | P->descr = des_##name; \ | 881 | 335 | P->need_ellps = NEED_ELLPS; \ | 882 | 335 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 335 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 335 | return P; \ | 885 | 335 | } \ |
Line | Count | Source | 873 | 3.80k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 3.80k | if (P) \ | 875 | 3.80k | return pj_projection_specific_setup_##name(P); \ | 876 | 3.80k | P = pj_new(); \ | 877 | 1.90k | if (nullptr == P) \ | 878 | 1.90k | return nullptr; \ | 879 | 1.90k | P->short_name = #name; \ | 880 | 1.90k | P->descr = des_##name; \ | 881 | 1.90k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.90k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.90k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.90k | return P; \ | 885 | 1.90k | } \ |
Line | Count | Source | 873 | 105 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 105 | if (P) \ | 875 | 105 | return pj_projection_specific_setup_##name(P); \ | 876 | 105 | P = pj_new(); \ | 877 | 54 | if (nullptr == P) \ | 878 | 54 | return nullptr; \ | 879 | 54 | P->short_name = #name; \ | 880 | 54 | P->descr = des_##name; \ | 881 | 54 | P->need_ellps = NEED_ELLPS; \ | 882 | 54 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 54 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 54 | return P; \ | 885 | 54 | } \ |
Line | Count | Source | 873 | 216 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 216 | if (P) \ | 875 | 216 | return pj_projection_specific_setup_##name(P); \ | 876 | 216 | P = pj_new(); \ | 877 | 109 | if (nullptr == P) \ | 878 | 109 | return nullptr; \ | 879 | 109 | P->short_name = #name; \ | 880 | 109 | P->descr = des_##name; \ | 881 | 109 | P->need_ellps = NEED_ELLPS; \ | 882 | 109 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 109 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 109 | return P; \ | 885 | 109 | } \ |
Line | Count | Source | 873 | 205 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 205 | if (P) \ | 875 | 205 | return pj_projection_specific_setup_##name(P); \ | 876 | 205 | 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 | } \ |
Unexecuted instantiation: pj_nell_h Line | Count | Source | 873 | 2 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2 | if (P) \ | 875 | 2 | return pj_projection_specific_setup_##name(P); \ | 876 | 2 | P = pj_new(); \ | 877 | 1 | if (nullptr == P) \ | 878 | 1 | return nullptr; \ | 879 | 1 | P->short_name = #name; \ | 880 | 1 | P->descr = des_##name; \ | 881 | 1 | P->need_ellps = NEED_ELLPS; \ | 882 | 1 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1 | return P; \ | 885 | 1 | } \ |
Line | Count | Source | 873 | 312 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 312 | if (P) \ | 875 | 312 | return pj_projection_specific_setup_##name(P); \ | 876 | 312 | P = pj_new(); \ | 877 | 157 | if (nullptr == P) \ | 878 | 157 | return nullptr; \ | 879 | 157 | P->short_name = #name; \ | 880 | 157 | P->descr = des_##name; \ | 881 | 157 | P->need_ellps = NEED_ELLPS; \ | 882 | 157 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 157 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 157 | return P; \ | 885 | 157 | } \ |
Line | Count | Source | 873 | 766 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 766 | if (P) \ | 875 | 766 | return pj_projection_specific_setup_##name(P); \ | 876 | 766 | P = pj_new(); \ | 877 | 384 | if (nullptr == P) \ | 878 | 384 | return nullptr; \ | 879 | 384 | P->short_name = #name; \ | 880 | 384 | P->descr = des_##name; \ | 881 | 384 | P->need_ellps = NEED_ELLPS; \ | 882 | 384 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 384 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 384 | return P; \ | 885 | 384 | } \ |
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 | 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 | 34 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 34 | if (P) \ | 875 | 34 | return pj_projection_specific_setup_##name(P); \ | 876 | 34 | 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 | 112 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 112 | if (P) \ | 875 | 112 | return pj_projection_specific_setup_##name(P); \ | 876 | 112 | 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 | 526 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 526 | if (P) \ | 875 | 526 | return pj_projection_specific_setup_##name(P); \ | 876 | 526 | P = pj_new(); \ | 877 | 264 | if (nullptr == P) \ | 878 | 264 | return nullptr; \ | 879 | 264 | P->short_name = #name; \ | 880 | 264 | P->descr = des_##name; \ | 881 | 264 | P->need_ellps = NEED_ELLPS; \ | 882 | 264 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 264 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 264 | return P; \ | 885 | 264 | } \ |
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 | 192 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 192 | if (P) \ | 875 | 192 | return pj_projection_specific_setup_##name(P); \ | 876 | 192 | 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 | 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 | 213 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 213 | if (P) \ | 875 | 213 | return pj_projection_specific_setup_##name(P); \ | 876 | 213 | P = pj_new(); \ | 877 | 107 | if (nullptr == P) \ | 878 | 107 | return nullptr; \ | 879 | 107 | P->short_name = #name; \ | 880 | 107 | P->descr = des_##name; \ | 881 | 107 | P->need_ellps = NEED_ELLPS; \ | 882 | 107 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 107 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 107 | return P; \ | 885 | 107 | } \ |
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 | 904 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 904 | if (P) \ | 875 | 904 | return pj_projection_specific_setup_##name(P); \ | 876 | 904 | P = pj_new(); \ | 877 | 452 | if (nullptr == P) \ | 878 | 452 | return nullptr; \ | 879 | 452 | P->short_name = #name; \ | 880 | 452 | P->descr = des_##name; \ | 881 | 452 | P->need_ellps = NEED_ELLPS; \ | 882 | 452 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 452 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 452 | return P; \ | 885 | 452 | } \ |
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 | 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 | } \ |
Unexecuted instantiation: pj_fouc Line | Count | Source | 873 | 76 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 76 | if (P) \ | 875 | 76 | return pj_projection_specific_setup_##name(P); \ | 876 | 76 | P = pj_new(); \ | 877 | 38 | if (nullptr == P) \ | 878 | 38 | return nullptr; \ | 879 | 38 | P->short_name = #name; \ | 880 | 38 | P->descr = des_##name; \ | 881 | 38 | P->need_ellps = NEED_ELLPS; \ | 882 | 38 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 38 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 38 | return P; \ | 885 | 38 | } \ |
Line | Count | Source | 873 | 1.18k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.18k | if (P) \ | 875 | 1.18k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.18k | P = pj_new(); \ | 877 | 595 | if (nullptr == P) \ | 878 | 595 | return nullptr; \ | 879 | 595 | P->short_name = #name; \ | 880 | 595 | P->descr = des_##name; \ | 881 | 595 | P->need_ellps = NEED_ELLPS; \ | 882 | 595 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 595 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 595 | return P; \ | 885 | 595 | } \ |
Line | Count | Source | 873 | 40 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 40 | if (P) \ | 875 | 40 | return pj_projection_specific_setup_##name(P); \ | 876 | 40 | 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 | } \ |
Unexecuted instantiation: pj_urm5 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 | 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 | 4.72k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 4.72k | if (P) \ | 875 | 4.72k | return pj_projection_specific_setup_##name(P); \ | 876 | 4.72k | P = pj_new(); \ | 877 | 2.36k | if (nullptr == P) \ | 878 | 2.36k | return nullptr; \ | 879 | 2.36k | P->short_name = #name; \ | 880 | 2.36k | P->descr = des_##name; \ | 881 | 2.36k | P->need_ellps = NEED_ELLPS; \ | 882 | 2.36k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 2.36k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 2.36k | return P; \ | 885 | 2.36k | } \ |
Line | Count | Source | 873 | 441 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 441 | if (P) \ | 875 | 441 | return pj_projection_specific_setup_##name(P); \ | 876 | 441 | 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 | 1.75k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.75k | if (P) \ | 875 | 1.75k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.75k | P = pj_new(); \ | 877 | 880 | if (nullptr == P) \ | 878 | 880 | return nullptr; \ | 879 | 880 | P->short_name = #name; \ | 880 | 880 | P->descr = des_##name; \ | 881 | 880 | P->need_ellps = NEED_ELLPS; \ | 882 | 880 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 880 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 880 | return P; \ | 885 | 880 | } \ |
Line | Count | Source | 873 | 286 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 286 | if (P) \ | 875 | 286 | return pj_projection_specific_setup_##name(P); \ | 876 | 286 | P = pj_new(); \ | 877 | 145 | if (nullptr == P) \ | 878 | 145 | return nullptr; \ | 879 | 145 | P->short_name = #name; \ | 880 | 145 | P->descr = des_##name; \ | 881 | 145 | P->need_ellps = NEED_ELLPS; \ | 882 | 145 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 145 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 145 | return P; \ | 885 | 145 | } \ |
Line | Count | Source | 873 | 325 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 325 | if (P) \ | 875 | 325 | return pj_projection_specific_setup_##name(P); \ | 876 | 325 | P = pj_new(); \ | 877 | 165 | if (nullptr == P) \ | 878 | 165 | return nullptr; \ | 879 | 165 | P->short_name = #name; \ | 880 | 165 | P->descr = des_##name; \ | 881 | 165 | P->need_ellps = NEED_ELLPS; \ | 882 | 165 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 165 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 165 | return P; \ | 885 | 165 | } \ |
Line | Count | Source | 873 | 640 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 640 | if (P) \ | 875 | 640 | return pj_projection_specific_setup_##name(P); \ | 876 | 640 | P = pj_new(); \ | 877 | 321 | if (nullptr == P) \ | 878 | 321 | return nullptr; \ | 879 | 321 | P->short_name = #name; \ | 880 | 321 | P->descr = des_##name; \ | 881 | 321 | P->need_ellps = NEED_ELLPS; \ | 882 | 321 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 321 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 321 | return P; \ | 885 | 321 | } \ |
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 | 26 | if (nullptr == P) \ | 878 | 26 | return nullptr; \ | 879 | 26 | P->short_name = #name; \ | 880 | 26 | P->descr = des_##name; \ | 881 | 26 | P->need_ellps = NEED_ELLPS; \ | 882 | 26 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 26 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 26 | return P; \ | 885 | 26 | } \ |
Unexecuted instantiation: pj_natearth Unexecuted instantiation: pj_natearth2 Line | Count | Source | 873 | 89 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 89 | if (P) \ | 875 | 89 | return pj_projection_specific_setup_##name(P); \ | 876 | 89 | P = pj_new(); \ | 877 | 45 | if (nullptr == P) \ | 878 | 45 | return nullptr; \ | 879 | 45 | P->short_name = #name; \ | 880 | 45 | P->descr = des_##name; \ | 881 | 45 | P->need_ellps = NEED_ELLPS; \ | 882 | 45 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 45 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 45 | return P; \ | 885 | 45 | } \ |
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 | 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 | 231 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 231 | if (P) \ | 875 | 231 | return pj_projection_specific_setup_##name(P); \ | 876 | 231 | 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 | 514 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 514 | if (P) \ | 875 | 514 | return pj_projection_specific_setup_##name(P); \ | 876 | 514 | 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 | 32 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 32 | if (P) \ | 875 | 32 | return pj_projection_specific_setup_##name(P); \ | 876 | 32 | 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 | 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 | 87 | if (nullptr == P) \ | 878 | 87 | return nullptr; \ | 879 | 87 | P->short_name = #name; \ | 880 | 87 | P->descr = des_##name; \ | 881 | 87 | P->need_ellps = NEED_ELLPS; \ | 882 | 87 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 87 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 87 | return P; \ | 885 | 87 | } \ |
Line | Count | Source | 873 | 1.64k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.64k | if (P) \ | 875 | 1.64k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.64k | P = pj_new(); \ | 877 | 824 | if (nullptr == P) \ | 878 | 824 | return nullptr; \ | 879 | 824 | P->short_name = #name; \ | 880 | 824 | P->descr = des_##name; \ | 881 | 824 | P->need_ellps = NEED_ELLPS; \ | 882 | 824 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 824 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 824 | return P; \ | 885 | 824 | } \ |
Line | Count | Source | 873 | 16.0k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 16.0k | if (P) \ | 875 | 16.0k | return pj_projection_specific_setup_##name(P); \ | 876 | 16.0k | P = pj_new(); \ | 877 | 8.03k | if (nullptr == P) \ | 878 | 8.03k | return nullptr; \ | 879 | 8.03k | P->short_name = #name; \ | 880 | 8.03k | P->descr = des_##name; \ | 881 | 8.03k | P->need_ellps = NEED_ELLPS; \ | 882 | 8.03k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 8.03k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 8.03k | return P; \ | 885 | 8.03k | } \ |
Line | Count | Source | 873 | 326 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 326 | if (P) \ | 875 | 326 | return pj_projection_specific_setup_##name(P); \ | 876 | 326 | P = pj_new(); \ | 877 | 163 | if (nullptr == P) \ | 878 | 163 | return nullptr; \ | 879 | 163 | P->short_name = #name; \ | 880 | 163 | P->descr = des_##name; \ | 881 | 163 | P->need_ellps = NEED_ELLPS; \ | 882 | 163 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 163 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 163 | return P; \ | 885 | 163 | } \ |
Line | Count | Source | 873 | 5.92k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 5.92k | if (P) \ | 875 | 5.92k | return pj_projection_specific_setup_##name(P); \ | 876 | 5.92k | P = pj_new(); \ | 877 | 2.96k | if (nullptr == P) \ | 878 | 2.96k | return nullptr; \ | 879 | 2.96k | P->short_name = #name; \ | 880 | 2.96k | P->descr = des_##name; \ | 881 | 2.96k | P->need_ellps = NEED_ELLPS; \ | 882 | 2.96k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 2.96k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 2.96k | return P; \ | 885 | 2.96k | } \ |
Line | Count | Source | 873 | 79 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 79 | if (P) \ | 875 | 79 | return pj_projection_specific_setup_##name(P); \ | 876 | 79 | P = pj_new(); \ | 877 | 41 | if (nullptr == P) \ | 878 | 41 | return nullptr; \ | 879 | 41 | P->short_name = #name; \ | 880 | 41 | P->descr = des_##name; \ | 881 | 41 | P->need_ellps = NEED_ELLPS; \ | 882 | 41 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 41 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 41 | return P; \ | 885 | 41 | } \ |
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 | 2.30k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2.30k | if (P) \ | 875 | 2.30k | return pj_projection_specific_setup_##name(P); \ | 876 | 2.30k | P = pj_new(); \ | 877 | 1.15k | if (nullptr == P) \ | 878 | 1.15k | return nullptr; \ | 879 | 1.15k | P->short_name = #name; \ | 880 | 1.15k | P->descr = des_##name; \ | 881 | 1.15k | P->need_ellps = NEED_ELLPS; \ | 882 | 1.15k | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1.15k | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1.15k | return P; \ | 885 | 1.15k | } \ |
Line | Count | Source | 873 | 1.19k | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 1.19k | if (P) \ | 875 | 1.19k | return pj_projection_specific_setup_##name(P); \ | 876 | 1.19k | P = pj_new(); \ | 877 | 600 | if (nullptr == P) \ | 878 | 600 | return nullptr; \ | 879 | 600 | P->short_name = #name; \ | 880 | 600 | P->descr = des_##name; \ | 881 | 600 | P->need_ellps = NEED_ELLPS; \ | 882 | 600 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 600 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 600 | return P; \ | 885 | 600 | } \ |
Unexecuted instantiation: pj_defmodel Line | Count | Source | 873 | 2 | C_NAMESPACE PJ *pj_##name(PJ *P) { \ | 874 | 2 | if (P) \ | 875 | 2 | return pj_projection_specific_setup_##name(P); \ | 876 | 2 | P = pj_new(); \ | 877 | 1 | if (nullptr == P) \ | 878 | 1 | return nullptr; \ | 879 | 1 | P->short_name = #name; \ | 880 | 1 | P->descr = des_##name; \ | 881 | 1 | P->need_ellps = NEED_ELLPS; \ | 882 | 1 | P->left = PJ_IO_UNITS_RADIANS; \ | 883 | 1 | P->right = PJ_IO_UNITS_CLASSIC; \ | 884 | 1 | return P; \ | 885 | 1 | } \ |
Unexecuted instantiation: pj_vertoffset |
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 | 45.8k | #define RAD_TO_DEG 57.295779513082321 |
1036 | 4.80k | #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 */ |