| Age | Commit message (Collapse) | Author |
|
* Ensure C89 compliance and enable more warnings
According to the contributing guidelines, the library is developed
strictly in ANSI C 89. However, this is not enforced.
Additionally, we enable more warnings: apart from -Wall and -Wextra we
enable a warning that makes sure all enumeration values are covered in
a switch statement.
When compiling with Clang, we also turn on the warnings -Wc99-extensions
and -Wc11-extensions.
* Enable all warnings that are used on Travis
This makes it easier to notice problems before pushing.
|
|
|
|
* enter proj_angular_input and proj_angular_output, exit proj_angular_left and proj_angular_right
* remove unused variable 'unit'
* In gie: remove unused func 'torad_if_needed', and add static keyword where needed
* In gie: add some comments
|
|
|
|
Change the initialization type of the some operations
|
|
|
|
CONVERSIONS that are not PROJECTIONS
|
|
Use enumerations where appropriate
|
|
Enumerations have the following advantages over #define:
- they clearly connect a variable and the allowed constants,
- the meaning of code is not obfuscated by integer values,
- they are visible to the compiler, which can warn about (possibly)
incorrect usage.
There should be no functional change.
|
|
Pipeline initialisation improvements
|
|
of special cases to handle in pj_init.c
|
|
PJ_OBS eliminated, API adjusted to reflect that we now have only one 4D data type.
2 new API functions added to determine output types of a PJ.
|
|
|
|
PJ_OBS eliminated, API adjusted to reflect that we now have only one 4D data type.
2 new API functions added to determine output types of a PJ.
|
|
|
|
Add Clifford J. Mugnier notes about LCCA from PROJ.4 mailing list
|
|
* Discern between conversions and transformations
|
|
* Remove a number of debugging calls and memory management from the inner loop of the pipeline drivers
* An attempt at handling inverted steps in a more straightforward way
|
|
|
|
Add 'axisswap' operation - swap axes in pipelines
|
|
Resolves several OSS-Fuzz issues: 3944, 3947, 3955.
|
|
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3944
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3947
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3955
Credit to OSS-Fuzz.
|
|
|
|
Resolves https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3940
Credit to OSS-Fuzz.
|
|
* change suspicious loop exit condition in nad_cvt
* touch up nad_cvt.c
* ...and remove tabs
|
|
Kinematic gridshifting
|
|
Make sure to use the same context for pipeline childs as for the parent
|
|
|
|
|
|
|
|
Kinematic deformation models are used in some geodetic transformations.
This commit introduces the ability to do transformations involving a
gridded deformation/velocity model. For practical reasons a gridded deformation
model needs to be split into two seperate files, one for the horizontal
components and one for the vertical component. For this we use formats
already known to PROJ.4, namely the CTable/CTable2 and the GTX formats.
Grids are specified in the proj-string with +xy_grids and +z_grids.
Grid values are expected to be in m/year. The kinematic part of the
operation is controlled by the +t_epoch parameter, which is the central
epoch of the transformation. An observation epoch is also needed. It can
be specified either in the PJ_OBS input as the fourth element in the
coordinate, or in the proj-string with +t_obs. If +t_obs is present in
the proj-string it takes presedence over the value in the PJ_OBS
coordinate.
|
|
This refactoring of the grid shift functions allows for easier access to
the actual grid values, as well as making it possible to perform
horizontal grid shift on a single coordinate without using the
pj_apply_gridshift* functions. The latter simplifies the execution path
of the forward and inverse functions in PJ_hgridshift.c.
This commit introduces proj_*grid_init, proj_*grid_value
and proj_hgrid_apply. The init functions initialises horizontal and
vertical grids respectivelive (wrappers for pj_gridlist_from_nadgrids
with simpler parameters). The proj_*grid_value functions returns the
specific grid value at coordinate lp. The proj_hgrid_apply function
applies the grid offset to the input coordinate and outputs the adjusted
coordinate.
|
|
patterns PJ_f....c and PJ_e....c
|
|
* Repair gie and cct after breakage due to proj_strtod update
* Remove unused variables
|
|
* Remove PJ_OBS from the API surface, rename pj_obs_api.c to pj_4D_api.c
* Repair proj.def
|
|
In order to mimic strtod, proj_strtod now returns 0 and not HUGE_VAL on nonnumeric input. Hence, we must check the return pointers to identify an error.
|
|
|
|
Allow nested pipelines when wrapped in +init's.
The previous behaviour was to quit pipeline initialization when
encountering a nested pipeline definition. With this commit that
behaviour is changed so that it is possible to nest pipelines as
long as they are defined elsewhere in a init-file.
This is useful in init-files where steps in complicated transformations
can be grouped in "sub-pipelines". These "sub-pipelines" can then be
used as individual steps in a larger and more complicated pipeline.
Nested pipelines are governed by the following rules:
1. You can't have more than one literal +proj=pipeline in a proj-string
2. Pipelines can be nested if they are wrapped up in a +init
3. More than one +init is disallowed in non-pipeline proj-strings
4. +inits are expanded as late as possible, that is they will only be
expanded in single operations (that can be a part of a pipeline)
|
|
Add ellipsoids for the Russian coordinate systems PZ-90 and GSK-2011
|
|
|
|
* Linguistics: Clarify this and that, here and there
* Revert nullification of PJ_cart->fwd, inv
|
|
Repair and improve broken cct output routine and do a few minor cleanups
|
|
Remove superfluous internal selftests from projection files matching PJ_f...c and PJ_g...c
|
|
patterns PJ_f....c and PJ_e....c
|
|
* Repair gie and cct after breakage due to proj_strtod update
* Remove unused variables
|
|
* Remove PJ_OBS from the API surface, rename pj_obs_api.c to pj_4D_api.c
* Repair proj.def
|
|
In order to mimic strtod, proj_strtod now returns 0 and not HUGE_VAL on nonnumeric input. Hence, we must check the return pointers to identify an error.
|
|
Extend proj_strtod test cases and improve strtod-replication
|
|
|
|
Added 4D fwd/inv functions and unit descriptors to the latlong PJ object to work properly in pipelines.
|