Commit graph

341 commits

Author SHA1 Message Date
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
Dane Springmeyer
84e4d8bf22 Start calling geometry::correct everywhere possible - refs #2834 2015-05-20 14:00:30 -07:00
Dane Springmeyer
613766b104 drop obsolete and unsupported big endian support - refs #2806 2015-05-12 10:19:37 -07:00
Dane Springmeyer
124362d2d4 stop correcting geometries at decode time
- the original motivation for this was to avoid needing to
   mutate a copy later on (for operations needing correct winding order)
 - but mutating a copy is looking feasible, so removing this now.
2015-04-22 14:27:43 +02:00
artemp
2768aa6a4a Merge branch 'mapnik-geometry' into mapnik-geometry-template 2015-04-22 12:13:29 +02:00
Dane Springmeyer
748fe3d228 fix polygon winding order for shapefiles + add test enforcing it 2015-04-14 15:35:32 +02:00
Blake Thompson
87fb41907a Added template to geometries 2015-04-09 15:22:51 -05:00
artemp
390fff5bb4 ensure we're returning the same object from multiple return paths
from_wkb now returns geometry::geometry_empty instead of throwing
update cpp_tests
2015-04-01 15:04:05 +02:00
artemp
3c2430150d add 'is_clockwise' as generic function
shape_io -- rely on RVO optimisation (remove an extra std::move)
2015-03-31 13:43:37 +02:00
artemp
4389c80d84 and finaly, rename 'new_geometry' namespace to 'geometry' 2015-03-24 14:21:28 +01:00
artemp
ac1ffa2bfb move geometry.hpp into path.hpp and update code base to reflect this change 2015-03-24 12:42:09 +01:00
artemp
1cf0a897ac move datasource::geometry_t into separate header and rename -> datasource_geometry_t to avoid cyclic dependencies issue
to_ds_type - return actual datasource_geometry_t (remove optional)
update across datasources
experssions - revert to using
2015-03-24 12:13:31 +01:00
artemp
8de2621b99 datasource : temporary reinstate get_geometry_type() method to increese test coverage and ease migration to mapnik-geometry 2015-03-19 12:09:07 +01:00
artemp
0885dfb15a rename polygon3 -> polygon 2015-02-24 14:13:00 +01:00
artemp
9fed6fd571 shape.input - fix multi-polygon handling 2015-02-19 14:32:45 +01:00
artemp
33d45db318 c++ style - better syntax 2015-02-19 10:20:17 +01:00
artemp
b49b8042c1 shape.input/agg - add polygon3 support 2015-02-18 18:12:47 +01:00
artemp
133f7d04ef agg_renderer - support multi_line_strings 2015-02-18 14:26:11 +01:00
artemp
8e34077aef more cleanups 2015-02-18 13:51:20 +01:00
artemp
604d7b08af use reserve to pre-allocate line_strings + cleanups 2015-02-18 13:48:05 +01:00
artemp
2e4e1f71b8 adapt to use mapnik::new_geometry::geometry (shape.input only) 2015-02-18 13:21:16 +01:00
artemp
5361d21beb move mapnik::noncopyable to mapnik::util::noncopyable where it belongs 2015-01-07 13:11:09 +01:00
artemp
34d96f3ef2 shape.input - avoid expensive hit_test and instead use relatively cheap orientation test to distinguish
between inner and outter rings (Polygon/NultiPolygon) -- ref #2151  https://github.com/mapbox/unpacker/issues/324

```txt
A polygon consists of one or more rings. A ring is a connected sequence of four or more
points that form a closed, non-self-intersecting loop. A polygon may contain multiple
outer rings. The order of vertices or orientation for a ring indicates which side of the ring
is the interior of the polygon. The neighborhood to the right of an observer walking along
the ring in vertex order is the neighborhood inside the polygon. Vertices of rings defining
holes in polygons are in a counterclockwise direction. Vertices for a single, ringed
polygon are, therefore, always in clockwise order. The rings of a polygon are referred to
as its parts.
```
2014-12-18 11:28:28 +01:00
artemp
333965b588 update copyright year 2014-11-20 15:25:50 +01:00
Dane Springmeyer
d25f0c316a silence more warnings 2014-10-21 17:44:47 -07:00
Dane Springmeyer
83588937b9 silence boost warnings 2014-10-21 16:37:27 -07:00
Dane Springmeyer
18183aed2a fix a few -Wunused-parameter warnings 2014-10-20 22:28:40 -07:00
Dane Springmeyer
4cbc139689 remove boost::format usage 2014-09-30 18:35:07 -07:00
Dane Springmeyer
6074e87bbb include optional - fix msvs compile - refs #2396 2014-08-28 19:29:07 -07:00
artemp
fe215a684e c++11 style : replace (almost) all typedef with type alias's 2014-07-07 18:23:15 +01:00
artemp
0702679bb0 don't call *params.get<std::string>("type"), instead use static datasource::name()
(FIXME: consider removing redundant 'name' in feature_layer_descriptor)
2014-06-26 10:51:24 +01:00
artemp
3ded23fbab move make_unique out of std namespace and allow building with c++14 compilers
( -std=c++1y )
2014-06-12 15:14:05 +01:00
Dane Springmeyer
d0b357cab7 scons: support MAPNIK_NAME option to customize libmapnik name for custom packaging 2014-06-09 13:55:56 -07:00
artemp
22aa3f4aef create shape_io object per featureset to allow datasource sharing 2014-05-30 15:37:44 +01:00
artemp
1cb03bac2f mark is_open as const 2014-05-30 15:37:23 +01:00
artemp
2812735dfd c++ style 2014-05-30 10:15:29 +01:00
artemp
99bbb10290 c++11 : use int types from <cstdint> 2014-05-06 18:06:47 +01:00
artemp
ecc5acbdb9 attempt to handle multi-polygons in shape.input 2014-02-24 15:20:06 +00:00
Dane Springmeyer
f286363ad0 more consistent memset/memcpy usage 2014-01-28 15:05:10 -08:00
Dane Springmeyer
777e067770 remove workaround for boost less than 1.46 since 1.47 is now the min needed - refs #1082 2014-01-27 12:24:20 -08:00
Dane Springmeyer
63ea37b4c2 further no terminal port 2014-01-26 14:49:03 -08:00
Dane Springmeyer
b492437505 avoid dereferencing pointer more than once 2013-12-11 07:27:51 -08:00
Dane Springmeyer
f998b2bda6 Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	deps/agg/build.py
	deps/clipper/build.py
	include/mapnik/feature_style_processor_impl.hpp
	plugins/input/csv/csv_datasource.cpp
2013-11-03 23:10:21 -08:00
Dane Springmeyer
b21b59b835 shape.input: conditionally include boost interprocess 2013-10-28 18:31:20 -07:00
Dane Springmeyer
710d558218 scons: simplify linkflags/ldflags setting / attempt to fix #2025 2013-10-22 16:35:46 -04:00
artemp
7adee4ab36 c++11 : remove boost::make_shared includes 2013-10-17 15:09:56 +01:00
artemp
09ce29489e use const std::unique_ptr<> instead of boost::scoped_ptr<> 2013-09-20 14:22:58 +01:00
artemp
62af2e6765 + replace <boost/shared_ptr.hpp> with <memory> 2013-09-20 14:13:23 +01:00
artemp
b315eb2167 + use std::shared_ptr and std::make_shared 2013-09-20 14:01:27 +01:00
Dane Springmeyer
111bdccebc various post-merge fixes 2013-09-18 19:51:14 -07:00
artemp
d4b9a48cb1 + geometry::types Exterior/Interior polygon loops 2013-09-03 12:15:31 +01:00
artemp
4f4e2b001e Merge branch 'master' into c++11
Conflicts:
	SConstruct
	benchmark/run.cpp
	bindings/python/mapnik_datasource.cpp
	bindings/python/mapnik_feature.cpp
	bindings/python/python_optional.hpp
	include/mapnik/css_color_grammar.hpp
	include/mapnik/expression_grammar.hpp
	include/mapnik/feature.hpp
	include/mapnik/feature_style_processor_impl.hpp
	include/mapnik/image_filter_types.hpp
	include/mapnik/image_util.hpp
	include/mapnik/json/geometry_generator_grammar.hpp
	include/mapnik/json/geometry_grammar.hpp
	include/mapnik/processed_text.hpp
	include/mapnik/tiff_io.hpp
	include/mapnik/util/geometry_svg_generator.hpp
	include/mapnik/util/geometry_wkt_generator.hpp
	include/mapnik/utils.hpp
	include/mapnik/webp_io.hpp
	include/mapnik/wkt/wkt_grammar.hpp
	plugins/input/shape/shape_datasource.cpp
	plugins/input/shape/shapefile.hpp
	src/expression_grammar.cpp
	src/expression_string.cpp
	src/image_util.cpp
	src/json/feature_collection_parser.cpp
	src/json/feature_parser.cpp
	src/miniz.c
	src/symbolizer_helpers.cpp
	src/tiff_reader.cpp
	src/webp_reader.cpp
	tests/cpp_tests/geometry_converters_test.cpp
	tests/cpp_tests/image_io_test.cpp
	tests/cpp_tests/map_request_test.cpp
	tests/python_tests/image_test.py
	tests/visual_tests/test.py
2013-08-30 09:46:09 +01:00
Dane Springmeyer
4eef244e73 move SHAPE_MEMORY_MAPPED_FILE to be a global define 2013-08-13 14:48:04 -04:00
Dane Springmeyer
134cbc3eec forward declare mapped_region in mapped_memory_cache.hpp and other shared memory fixups 2013-08-13 14:13:56 -04:00
Dane Springmeyer
d2000b465b Merge branch 'master' of github.com:mapnik/mapnik 2013-08-13 12:19:19 -04:00
Dane Springmeyer
28ed9a2cfd only include mapped_memory_cache.hpp if truly building shapefile plugin with -DSHAPE_MEMORY_MAPPED_FILE 2013-08-13 12:19:01 -04:00
Dane Springmeyer
e32c225307 fix handling of F and O type dbf fields and sync handling for attribute_descriptors - refs #1614 and closes #1976 2013-08-07 18:58:01 -04:00
Dane Springmeyer
4fb2e271f6 Revert "as discussed with @artemp - there should be no need or benefit to trying to handle F type in dbf since it is a foxpro extension that shapefiles do not commonly use"
This reverts commit 53acae94be.
2013-08-07 18:42:16 -04:00
Dane Springmeyer
31931b89cb git rid of a few fixme 2013-07-23 16:00:16 -04:00
Dane Springmeyer
19ce56b051 one more special case handling of utf8 in ogr plugin - refs #1177 2013-06-02 21:09:21 -07:00
Dane Springmeyer
3b2bdba7b0 iwyu 2013-06-02 20:19:33 -07:00
Dane Springmeyer
0365d3e081 start centralizing filesystem operations in mapnik::util::fs - refs #1177 2013-06-02 19:28:24 -07:00
Dane Springmeyer
370609feed shape.input: when reading from mapped memory cache keep a mapped_region_ptr member to ensure the memory stays alive - refs #1877 2013-05-30 14:32:20 -07:00
Dane Springmeyer
49933d7d0f remove tab 2013-05-21 12:54:48 -07:00
artem@windows
154c93017a * add support for unicode (utf16) paths on windows 2013-05-21 09:42:55 -07:00
artem@windows
871ac5b4bb * add support for unicode (utf16) paths on windows 2013-05-21 09:48:12 +01:00
Dane Springmeyer
3fbf4df67d add support for statically linking datasource input plugins - closes #1810 and #1821 - refs #249 2013-05-16 11:55:58 -07:00
artemp
c73e48fa58 + use std::unique_ptr instead of std::auto_ptr (deprecated!) 2013-04-19 09:50:50 +01:00
Dane Springmeyer
9da1f35b5e plugins do not need to store nulls / save space - refs #1644 2013-04-11 16:05:29 -07:00
artemp
bfaee4afae + avoid std::string->C-string->std::string round trip 2013-04-10 12:44:05 +01:00
Dane Springmeyer
e2c7283522 Added new mapnik-config options: git-describe, defines, includes, dep-includes, and cxxflags - closes #1443 2013-03-13 19:49:59 -07:00
Dane Springmeyer
5b3cca9d44 remove used variables 2013-03-11 12:59:11 -07:00
artemp
e9f03a565f + explicit polygon path closing 2013-03-01 11:08:58 -05:00
Dane Springmeyer
ceb8ffcc6f fixup includes for shape input 2013-01-14 01:49:35 -08:00
Dane Springmeyer
071c67d438 iwyu 2013-01-13 22:01:13 -08:00
Dane Springmeyer
b5c06965ac refactor expression and value type usage to speed up compile time 2013-01-08 14:17:31 -08:00
Dane Springmeyer
4bd5484cdb fixup includes and value type and params usage across plugins 2013-01-04 09:23:06 -08:00
Dane Springmeyer
4471c0f6f4 fixup includes 2013-01-03 18:53:00 -08:00
Dane Springmeyer
626e0056fd replace boost::trim with faster internal trim - refs #1633 2013-01-03 18:02:21 -08:00
Dane Springmeyer
000b714eae fix more clang++ -Wshadow warnings 2013-01-03 12:37:45 -08:00
artemp
f5dd9e53c4 + calc int_parser/generator type from mapnik::value_integer 2012-12-18 18:05:45 +00:00
artemp
a38b252ccd Merge branch 'master' into bigint
Conflicts:
	plugins/input/geojson/geojson_datasource.cpp
	plugins/input/postgis/postgis_featureset.cpp
2012-12-18 13:57:39 +00:00
artemp
274fbf8f7a + ensure 'close path' handled correcly
(currenlty SEG_CLOSE command must have valid x,y)
+ implement real_policies in wkt and geojson generators
2012-12-18 11:44:35 +00:00
Dane Springmeyer
43244efb7d Merge branch 'master' of github.com:mapnik/mapnik into no-bind 2012-12-17 13:03:11 -08:00
Dane Springmeyer
7b39333234 remove as much mutable as possible 2012-12-17 12:59:15 -08:00
Dane Springmeyer
c5410fac7e remove bind option for datasources - refs #962 2012-12-17 10:03:07 -08:00
Dane Springmeyer
bb27156df0 use internal noncopyable class to speed up compile times slightly 2012-12-16 18:19:52 -08:00
artemp
c4bae9d30a Merge branch 'master' into bigint
Conflicts:
	bindings/python/mapnik_feature.cpp
	plugins/input/shape/dbfile.cpp
2012-12-14 10:01:21 +00:00
Dane Springmeyer
9575bb8786 return value_null for null integer stored in shapefile dbf - closes #1638 - refs #1642 2012-12-11 19:40:46 -08:00
Dane Springmeyer
e928c483bf properly support tolerance in shape filter_at_point - refs #1640 2012-12-11 14:46:52 -08:00
artemp
02bb955b59 + simplify and refactor shape featuresets to be more resilient to various
quirky shapefiles.
+ fix io navigation functions to use std::streampos
2012-12-11 09:37:53 +00:00
Dane Springmeyer
c0021d0760 remove unused iostream includes and unnecessary usage of ostringstream - refs #1055 2012-12-06 23:06:12 -08:00
artemp
da0d74529d + fix record length check to account for OGR not writing PointZ according to
shapefile spec - PointZ: type,x,y,z,measure  (#1193, #504)
2012-12-06 15:14:06 +00:00
artemp
8fa88a71b6 Merge branch 'master' into bigint 2012-12-03 13:14:31 +00:00
artemp
855aea95e0 + mapnik::value and mapnik::parameters - initial support for 64-bit integers 2012-12-03 13:12:09 +00:00
Dane Springmeyer
e9ca5b47e2 finish support for dbf logical type, strip handling of memo, and add tests for all basic types - refs #1614 2012-12-02 21:37:39 -08:00
Dane Springmeyer
4e9f6c12eb Merge branch 'master' of github.com:mapnik/mapnik 2012-11-29 17:53:06 -08:00
Dane Springmeyer
53acae94be as discussed with @artemp - there should be no need or benefit to trying to handle F type in dbf since it is a foxpro extension that shapefiles do not commonly use 2012-11-29 17:44:06 -08:00
artemp
26889c4761 + support 'logical' type #1614 2012-11-29 17:19:34 +00:00
artemp
85e00d6596 Merge remote-tracking branch 'origin/master' 2012-11-29 10:36:18 +00:00