Coverage Report

Created: 2024-02-25 06:14

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