artemp
a73e8537d8
shape.input - add support for reading offset/record_length from *.shx in shape_featureset (no *.index) - ref #3126
2015-10-14 16:44:43 +01:00
artemp
8c6bf0eef6
update copyright notice
2015-06-16 12:49:16 +02:00
artemp
8fa314c418
follow up from be731f17ce
- fix read_polyline (-fsanitize=address)
2015-06-02 17:50:10 +01:00
artemp
be731f17ce
use vec.resize() ref #2846 (this fixes -fsanitize=address error on OS X)
2015-06-02 14:24:19 +01:00
Dane Springmeyer
84e4d8bf22
Start calling geometry::correct everywhere possible - refs #2834
2015-05-20 14:00:30 -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
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
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
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
18183aed2a
fix a few -Wunused-parameter warnings
2014-10-20 22:28:40 -07: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
artemp
22aa3f4aef
create shape_io object per featureset to allow datasource sharing
2014-05-30 15:37:44 +01:00
artemp
ecc5acbdb9
attempt to handle multi-polygons in shape.input
2014-02-24 15:20:06 +00:00
artemp
7adee4ab36
c++11 : remove boost::make_shared includes
2013-10-17 15:09:56 +01:00
artemp
b315eb2167
+ use std::shared_ptr and std::make_shared
2013-09-20 14:01:27 +01: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
0365d3e081
start centralizing filesystem operations in mapnik::util::fs - refs #1177
2013-06-02 19:28:24 -07:00
artemp
c73e48fa58
+ use std::unique_ptr instead of std::auto_ptr (deprecated!)
2013-04-19 09:50:50 +01: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
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
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
a12b8f1d2f
c++ style
2012-09-03 10:27:48 -07:00
artemp
618bc1ba0f
+ close polygon
2012-07-26 15:20:23 +01:00
artemp
4ddddba254
+ use pre-increment op
2012-07-26 11:58:48 +01:00
artemp
690b56a511
+ use std::auto_ptr
2012-07-26 11:57:41 +01:00
kunitoki
74342e3083
- no need to #ifdef all the time: the compiler should optimize out the log calls when no MAPNIK_LOG is defined
...
- initially got rid of those ifdefs in plugins only
2012-04-09 12:05:49 +02:00
kunitoki
8c58a9aa73
- improved again the logging facilities
...
- aligned the plugins to using the new methods with severity
- implemented per object severity, with fallback to global (with global functions to set them programmatically)
- initial check in of logger python bindings (todo)
2012-04-09 03:00:51 +02:00
kunitoki
1f351e0e09
implement new debug system
2012-04-08 02:20:56 +02:00
Dane Springmeyer
b36739fd88
apply mapnik_format.el formatting
2012-03-13 07:59:22 -07:00
Dane Springmeyer
5bdaf44a7a
Revert "shape: check if multiple parts are interior rings or separate"
...
This reverts commit faaa4f6e3f
.
2012-02-26 22:11:22 -08:00
Dane Springmeyer
820b9a2b25
merge master with feature_impl
2012-01-17 17:47:27 -05:00
Dane Springmeyer
6a2a847c3b
remove unused shx code
2012-01-17 10:06:59 -05:00
Dane Springmeyer
b0d0d06564
finish refactor, moving to separate method off datasources to get_geometry_type and using enums all around
2012-01-17 01:09:46 -05:00
Artem Pavlenko
faaa4f6e3f
shape: check if multiple parts are interior rings or separate
...
polygons. Currently only test if first coordinate inside exterior
ring and assume first ring is exterior.
If this approach is not robust enough we can calculate ring orientations
instead. Shape file convention is: CW - exterior, CCW - interior.
very simple
2012-01-05 16:24:38 +00:00
Artem Pavlenko
02dce6a756
make shape_io work with geometry_container concept
2011-12-09 12:25:13 +00:00