aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-11-17Merge pull request #671 from busstoptaktik/use-geoc-in-factorsThomas Knudsen
Switch pj_factors to use proj_geoc_lat
2017-11-16Repair non-standard aggregate initializationThomas Knudsen
2017-11-16Repair double cct io-blunderThomas Knudsen
2017-11-16Switch pj_factors to use proj_geoc_latThomas Knudsen
2017-11-16Introduce geodetic-geocentric conversions ... (#669)Thomas Knudsen
* Introduce geodetic-geocentric conversions, as PJ_xxx style conversion step and as API entry points * minor improvements and minor bug squashing
2017-11-15Merge pull request #667 from busstoptaktik/gie-misleading-errmsgThomas Knudsen
Give definition and def'n line no. in "Invalid operation" message
2017-11-15Adjust adjlon to use canonical M_PI defines (#665)Thomas Knudsen
A year or so ago, @micahcochran put quite some effort into rationalizing the PI usage in PROJ.4, by ensuring that a useful number of M_PI related constants were defined in projects.h. But apparently adjlon.c was left behind still using its own set of definitions - perhaps because it bends the values slightly, to avoid unwanted sign switching near the date line. In this PR the "bending trick" is reimplemented using the rationalized M_PI constants only.
2017-11-15Support numerical factors only (#664)Thomas Knudsen
* Support numerical factors only * Make sure h positive. Improve some comments * Let pole overshoot check have effect even for geocentric latitudes * Factor-typological constants, now all returning false, for backwards compatibility
2017-11-15Give definition and definition line no. in message about invalid operationsThomas Knudsen
2017-11-13Removed remaining traces of the built in selftest system (#661)Thomas Knudsen
* Removed remaining traces of the builtin selftest system. Moved all functionality to test/gie * Updated Appveyor and Travis build scripts * Another appveyor script update
2017-11-12Poder autochecking again (WIP) (#652)Thomas Knudsen
* Poder dual autochecking implementation * Debugging aid: Improvements in PJ_vgridshift.c and gie.c * Most likely, the bugbeing tripped is in the gridshift code, so. uncomment suspicious lines in deformation.gie and merge this to support the debugging effort
2017-11-12Merge pull request #660 from busstoptaktik/selftest-removal-vwThomas Knudsen
Remove selftests from projection files starting with v,w
2017-11-12Remove selftests from projection files starting with v,wThomas Knudsen
2017-11-12Merge pull request #659 from busstoptaktik/selftest-removal-rstuThomas Knudsen
Remove selftests from projection files starting with r,s,t,u
2017-11-12Merge pull request #657 from busstoptaktik/selftest-removal-lmThomas Knudsen
Remove selftests from projection files starting with l, m
2017-11-12Merge pull request #658 from busstoptaktik/selftest-removal-nopqThomas Knudsen
Remove selftests from projection files starting with n,o,p,q
2017-11-12Remove selftests from projection files starting with r,s,t,uThomas Knudsen
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.