Coverage Report

Created: 2025-08-26 07:08

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