aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-11-12Remove selftests from projection files starting with n,o,p,qThomas Knudsen
2017-11-12Merge pull request #656 from busstoptaktik/selftest-removal-hijkThomas Knudsen
Remove selftests from projection files starting with h, i, j, k
2017-11-12Remove selftests from projection files starting with l, mThomas Knudsen
2017-11-12Remove selftests from projection files starting with h, i, j, kThomas Knudsen
2017-11-11pj_apply_gridshift_3(): avoid illegal read access with point outside any ↵Even Rouault
grid area. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3960. Credit to OSS Fuzz. master only
2017-11-11PJ_ob_tran: avoid null pointer dereference when underling fwd method is ↵Even Rouault
NULL. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3645. Credit to OSS Fuzz
2017-11-11Fix various memory leaks. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3573 , https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3643 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3641 . Credit to OSS Fuzz
2017-11-11Merge pull request #647 from kbevers/use_have_c99_mathKristian Evers
Use HAVE_C99_MATH instead of _WIN32_ and __ANSI__
2017-11-10Use HAVE_C99_MATH instead of _WIN32_ and __ANSI__Kristian Evers
HAVE_C99_MATH was recently added to the build system as a safer way to determine if non-ansi math functions are available on the current system. Previously different combinations of tests including _WIN32_ and __ANSI__ have been in use, but cases where that strategy has failed is known. Hence this change to a hopefully more robust check of math function availability.
2017-11-10Do not require needless plusses (#651)Thomas Knudsen
proj_create is now indifferent whether or not proj definition terms start with a '+' character. Also, improve gie to support testing this.
2017-11-10Ensure C89 compliance and enable more warnings (#650)Aaron Puchert
* 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.
2017-11-08minor clean ups in and around proj_4D_api (#649)Thomas Knudsen
2017-11-08Improved IO predicates (#648)Thomas Knudsen
* 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
2017-11-07Fix misleading indent. Newer GCC's chokes on this when compiling with -Wall.Kristian Evers
2017-11-07Formally change the initialization type of the TRANSFORMATIONS and ↵Kristian Evers
CONVERSIONS that are not PROJECTIONS
2017-11-06Use enumerations where appropriateAaron Puchert
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.
2017-11-06Move pipeline initialization logic to PJ_pipeline.c and decrease the number ↵Kristian Evers
of special cases to handle in pj_init.c
2017-11-06Eliminate the last traces of PJ_OBS (#643)Thomas Knudsen
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.
2017-11-06Remove CVS echo in PJ_sch.cThomas Knudsen
2017-11-05Merge pull request #640 from busstoptaktik/lcca-add-mugnier-descriptionThomas Knudsen
Add Clifford J. Mugnier notes about LCCA from PROJ.4 mailing list
2017-11-05Improve ISO 19000 alignment (#639)Thomas Knudsen
* Discern between conversions and transformations
2017-11-05Pipeline cleanup (WIP) (#637)Thomas Knudsen
* 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
2017-11-04Add Clifford J. Mugnier notes about LCCA from PROJ.4 mailing listThomas Knudsen
2017-11-01Merge pull request #636 from kbevers/axisKristian Evers
Add 'axisswap' operation - swap axes in pipelines
2017-11-01Resolves several OSS-Fuzz issues: 3944, 3947, 3955.Kristian Evers
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.
2017-10-31Add 'axisswap' operation - swap axes in pipelinesKristian Evers
2017-10-31Fix heap-buffer-overflow in proj_hgrid_init.Kristian Evers
Resolves https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3940 Credit to OSS-Fuzz.
2017-10-30change suspicious loop exit condition in nad_cvt (#634)Thomas Knudsen
* change suspicious loop exit condition in nad_cvt * touch up nad_cvt.c * ...and remove tabs
2017-10-30Merge pull request #588 from kbevers/kinematic-gridsKristian Evers
Kinematic gridshifting
2017-10-29Make sure to use the same context for pipeline childs as for the parentKristian Evers
2017-10-29Merge branch 'master' into kinematic-gridsKristian Evers
2017-10-29Addition of 'deformation': Kinematic grid shifting.Kristian Evers
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.
2017-10-29Refactor grid shift functions.Kristian Evers
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.
2017-10-29Remove superfluous internal selftests from projection files matching ↵Thomas Knudsen
patterns PJ_f....c and PJ_e....c
2017-10-29Repair gie and cct after breakage due to proj_strtod update (#628)Thomas Knudsen
* Repair gie and cct after breakage due to proj_strtod update * Remove unused variables
2017-10-29Remove PJ_OBS from the API surface, rename pj_obs_api.c to pj_4D_api.c (#625)Thomas Knudsen
* Remove PJ_OBS from the API surface, rename pj_obs_api.c to pj_4D_api.c * Repair proj.def
2017-10-29Make gie roundtrips compatible with updated proj_strtodThomas Knudsen
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.
2017-10-29Extend proj_strtod test case collection and improve its strtod-replicationThomas Knudsen
2017-10-28Allow nested pipelines. (#629)Kristian Evers
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)
2017-10-28Add ellipsoids for the Russian coordinate systems PZ-90 and GSK-2011Ilya Oshchepkov
2017-10-27Linguistics: Clarify this and that, here and there (#632)Thomas Knudsen
* Linguistics: Clarify this and that, here and there * Revert nullification of PJ_cart->fwd, inv
2017-10-26Repair and improve broken cct output routine (#631)Thomas Knudsen
Repair and improve broken cct output routine and do a few minor cleanups
2017-10-25Remove superfluous internal selftests from projection files matching ↵Thomas Knudsen
patterns PJ_f....c and PJ_e....c
2017-10-25Repair gie and cct after breakage due to proj_strtod update (#628)Thomas Knudsen
* Repair gie and cct after breakage due to proj_strtod update * Remove unused variables
2017-10-25Remove PJ_OBS from the API surface, rename pj_obs_api.c to pj_4D_api.c (#625)Thomas Knudsen
* Remove PJ_OBS from the API surface, rename pj_obs_api.c to pj_4D_api.c * Repair proj.def
2017-10-24Make gie roundtrips compatible with updated proj_strtodThomas Knudsen
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.
2017-10-24Merge pull request #624 from busstoptaktik/proj_strtod-ugly-corner-casesThomas Knudsen
Extend proj_strtod test cases and improve strtod-replication
2017-10-24Extend proj_strtod test case collection and improve its strtod-replicationThomas Knudsen
2017-10-21Make sure units of latlong operations are treated correctly (#620)Kristian Evers
Added 4D fwd/inv functions and unit descriptors to the latlong PJ object to work properly in pipelines.
2017-10-20Addition of an "area of use" argument to proj_transform_crs_to_crs (#565)Kristian Evers
In anticipation of a late-binding implementation of the proj_transform_crs_to_crs function an area argument is added to the function prototype. The PJ_AREA struct is not in use yet, but will be when the function is more tightly coupled to the EPSG database in the future.