Commit graph

57 commits

Author SHA1 Message Date
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
Dane Springmeyer
7c529600eb Revert "avoid mutex locks on pj_transform for proj 4.7 and above - closes #1072"
This reverts commit 0748d2beea.
2012-03-24 08:03:15 -07:00
Dane Springmeyer
0748d2beea avoid mutex locks on pj_transform for proj 4.7 and above - closes #1072 2012-02-09 17:28:31 -08:00
Dane Springmeyer
17d13cff67 whitespace fixes - closes #911 2012-02-01 17:53:35 -08:00
kunitoki
f1fb0c1939 - fix copyright to 2011 (script to do this will follow) 2011-10-23 15:04:25 +02:00
Artem Pavlenko
911981aefd + various win32 fixes, mainly adding extra namespace qualifiers
for vc++10, MAPNIK_DECL ...
2011-10-19 15:29:24 +01:00
Alberto Valverde
6ffbd07174 use AGG for interpolation when warping rasters 2011-09-13 15:41:39 +00:00
Dane Springmeyer
67df69834f allow reprojection of batches of points - patch cherry picked from albertov's work on optimizing raster reprojection performance (upcoming) - closes #877 2011-09-12 18:30:34 +00:00
Dane Springmeyer
ac3e43e5a4 support faster wgs84->merc transforms, a very common reprojection scenario in web mapping - added benefit of this approach is easy clipping for robust handling of out of bounds mercator coords - closes #839 2011-09-12 02:10:58 +00:00
Dane Springmeyer
c230ed6733 add alternative bbox forward/inverse functions 2011-05-31 22:38:15 +00:00
Dane Springmeyer
ac3488efb6 fix return from proj_transform when coordinates cannot be reprojected 2011-04-13 21:03:15 +00:00
Dane Springmeyer
383d8a3f15 add proj_transform forward/backward box2d implementation 2011-04-13 19:40:44 +00:00
Tom Hughes
05ab656b57 The upcoming 4.8.0 release of PROJ.4 is supposed to be threadsafe, so
lets believe them and not use any locks if we are building against
version 4.8.0 or later.

Instead we use the new proj_ctx_alloc routine to create a context and
pass that when initialising the projection structure.
2010-09-24 15:26:50 +00:00
Dane Springmeyer
6cce96dd06 upgrade default projection of epsg:4326 to match exactly what proj4 stores in /usr/local/share/epsg for 4326 (aka WGS84) 2010-08-10 18:18:31 +00:00
Dane Springmeyer
f802d21865 speed optimizations by more careful use (or avoidance) of locking around projection code 2010-07-21 23:05:22 +00:00
Artem Pavlenko
246731874b + apply 'mapnik-format' to *.cpp *.hpp 2010-06-02 11:03:30 +00:00