Mathis Logemann
7ef431ece2
use std::optional instead of boost::optional
2024-05-18 10:22:29 +02:00
Mathis Logemann
dd38dd18f9
rework enumeration<...>
2022-12-10 16:55:24 +01:00
Mathis Logemann
eb16e7a647
fix all files
...
format files
2022-08-14 22:26:31 +02:00
Johannes Schauer Marin Rodrigues
01e018eb0a
src/proj_transform.cpp: only use proj_context_errno_string for proj >= 8.0.0
2022-04-14 11:52:25 +02:00
Johannes Schauer Marin Rodrigues
4f72043bcd
src/proj_transform.cpp: improve error handling of proj_transform()
...
- set proj log level to PJ_LOG_ERROR
- let error message indicate whether proj_create_crs_to_crs or
proj_normalize_for_visualization failed
- output proj_context_errno_string when an error is thrown
2022-04-10 11:55:04 +02:00
Mathis Logemann
e7c3d04309
format dir include and src
...
format all files
Revert "format all files"
This reverts commit 95d5812e49e7f916b68e786596f5a8eb5bcac414.
Revert "format some files"
This reverts commit ed3c8762d4d828b2b28e7b18809fc33f4f8ccaf5.
format all files
fix formatting in dir include
fix formatting of debug macro
2022-01-27 00:12:08 +01:00
Artem Pavlenko
6099804559
Use POSIX definition of pi constant (M_PI) + define tau in terms of pi + better namings + remove deprecated proj4 style definitions
2021-03-15 18:06:26 +00:00
Artem Pavlenko
11ff758c38
Add proj_transform::definition() method
2021-03-02 17:07:13 +00:00
Artem Pavlenko
a149ebed16
use std::size_t consistently (proj API)
2021-03-02 16:39:32 +00:00
Artem Pavlenko
5c086b0cd5
Add proj_transform caching to minimise expensive initialisations calls in libproj >= 6 [WIP]
2021-01-27 09:40:28 +00:00
Artem Pavlenko
db9829d702
Fix missing proj context and cleanup/simplify proj_transform
2021-01-22 15:23:11 +00:00
Artem Pavlenko
88241b32ee
Initial implementation of new proj7 APIs support
2021-01-15 15:21:09 +00:00
Artem Pavlenko
bd961c4da2
update copyright year [skip ci]
2021-01-05 14:39:07 +00:00
Mickey Rose
68a7f5f63c
proj_transform: fix strided coordinate array transform
2018-07-16 14:18:49 +02:00
Mickey Rose
947e424f56
proj_transform: fix bbox reprojection
...
- remove buggy calculate_bbox, use boost::geometry::envelope instead
- move helper envelope_points to anonymous namespace and make it always
produce exactly the requested number of points, even if it's not
evenly divisible by 4
2018-07-10 11:31:06 +02:00
artemp
333ef9fde1
update copyright year
2017-05-05 13:02:01 +02:00
artemp
064b99168b
geometry.hpp
2017-03-27 16:14:51 +01:00
artemp
67d2a0e141
Merge branch 'master' into geometry-refactor
2016-06-20 15:01:29 +01:00
artemp
a24dfbf6a0
simplify logic a bit
2016-05-26 16:27:22 +02:00
artemp
081c003b0e
c++ style
2016-05-26 16:27:22 +02:00
artemp
633a2c1e07
Merge branch 'master' into geometry-refactor
2016-04-18 16:15:04 +02:00
artemp
c8902ac875
remove is_clockwise, use mapnik::util::is_clockwise to avoid duplication
2016-04-18 11:16:32 +02:00
artemp
2e0d83aa91
geometry::multi_point - derive from std::vector<point<T>> instead of line_string<T>
2016-04-12 10:12:16 +02:00
Dane Springmeyer
f8a8ec616a
c++ style: use nullptr rather than NULL
2016-04-05 15:27:32 -04:00
artemp
8c6bf0eef6
update copyright notice
2015-06-16 12:49:16 +02:00
Dane Springmeyer
352586e9d7
handle pj_transform HUGE_VAL results (aka inf)
...
- turns out pj_transform will not always return an error code for
failed transforms and may instead just set values as HUGE_VAL
- this commit handles this and calls it an error by return false
from forward/backward
Arguably if `point_count` > 1 some values might be correctly transformed
while others might be HUGE_VAL. For the purposes of Mapnik we will consider
any HUGE_VAL as an error because we have no way to handle partial failures.
2015-06-10 18:34:11 -07:00
artemp
2eaa90033a
move singleton to util/singleton.hpp
...
move windows UTF conversion routines to util/utf_conv_win.hpp
2015-06-02 11:10:41 +01:00
Blake Thompson
3e24c5a417
Doh, fixing stupid C++ that I wrote after properly writing a unit test
2015-05-15 13:21:51 -05:00
Blake Thompson
90de0d65cb
Corrected errors in palette unit test and corrected logic in bounding box projection transform
2015-05-15 12:15:27 -05:00
Blake Thompson
f98fd0da7c
Added tests for non standard projections, forcing use of proj4.
2015-04-10 14:05:58 -05:00
Blake Thompson
87fb41907a
Added template to geometries
2015-04-09 15:22:51 -05:00
Blake Thompson
5ca850a17e
Added proper use of auto in several for loops
2015-04-01 17:55:36 -05:00
Blake Thompson
78835c9d87
Initial commit for new method to provide geometry reprojection
2015-04-01 16:18:05 -05:00
Robert Coup
65ef3bc625
Handle bounds reprojections which cross the anti-meridian. #2648
...
When doing an envelope-points reprojection to a geographic CS, check
the points stay in clockwise order. Otherwise expand the resulting bounds
to include the world.
Includes visual test. Cairo tests aren't finding differences, but the renderer
is doing the right thing.
2015-01-28 11:18:16 +13:00
artemp
333965b588
update copyright year
2014-11-20 15:25:50 +01:00
Dane Springmeyer
a1314935af
fix initialization order in proj_transform
2014-10-22 15:34:17 -07:00
Dane Springmeyer
46a41f3ae1
initialize proj_transform::is_source_equal_dest_
2014-10-22 00:08:48 -07:00
Dane Springmeyer
bb897e0144
use fast path for bbox reprojection (skipping extra point-sampling)
2014-08-20 14:47:27 -07:00
Dane Springmeyer
64e70fb374
iwyu
2014-07-22 22:40:39 -07:00
Dane Springmeyer
3b2bdba7b0
iwyu
2013-06-02 20:19:33 -07:00
Dane Springmeyer
92b0e43d87
remove mutex around pj_transform
2013-01-29 03:36:38 -05:00
Dane Springmeyer
cf11a27a22
remove hardcoded define to enable proj4
2013-01-29 02:03:04 -05:00
Dane Springmeyer
b1581a1942
fall through to using proj4 if we do not have a known transformation
2013-01-28 15:10:24 -05:00
Dane Springmeyer
cda43b42ae
throw if attempting to transform between projections that require proj4 support if proj4 is not compiled in
2013-01-28 14:03:07 -05:00
Dane Springmeyer
3969ac246d
make proj4 able to be fully disabled at compile time - refs #1703
2013-01-28 13:45:41 -05:00
Dane Springmeyer
f8b1520d1a
refactor projection interface: 1. cleanup custom lonlat<->merc code. 2. centralize proj4 strings into constants, 3. tweak projection benchmarking to allocate objects in loop so we can test that specifically - refs #1703
2013-01-28 01:47:32 -05:00
Dane Springmeyer
e16567fecb
fixup std:: prefixing of cmath functions - closes #1694
2013-01-17 13:53:48 -08:00
artemp
2834b2ad92
+ not sure why we have do { } while(false); - removing
2012-09-19 13:51:53 +01:00
kunitoki
af201551b8
got rid of old CVS $Id comments kludge in files
2012-04-08 02:45:01 +02:00
kunitoki
1f351e0e09
implement new debug system
2012-04-08 02:20:56 +02:00