artemp
c4fcee7b66
add geometry dir
2016-04-29 17:08:17 +02:00
artemp
3184034414
refactor geometry core and algorithms templates + add missing typedefs + prepare for geometry update
2016-04-29 14:24:57 +02:00
artemp
de927a1571
Merge branch 'master' into geometry-refactor
2016-04-29 10:47:43 +02:00
artemp
31e8cfc659
improve hash calc ref #3406
2016-04-26 15:29:27 +02:00
artemp
4b3b62a40c
minor formatting
2016-04-25 20:43:40 +02:00
artemp
650e8eea8a
bump up version to 3.0.12 in preparation to release
2016-04-25 20:43:40 +02:00
artemp
988aa3ea43
add guard to get_object_severity
ref #3322
2016-04-25 11:49:10 +02:00
artemp
ed87cd2883
c++ - make bbox standalone method
2016-04-22 12:54:57 +02:00
artemp
a89c3fc007
c++ - make bbox standalone method
2016-04-22 12:51:20 +02:00
artemp
4e57f7b115
Merge branch 'master' into geometry-refactor
2016-04-20 16:45:08 +02:00
artemp
6105463602
split box2d<T> implementation into *.hpp, *._impl.hpp and *.cpp ref #3405
2016-04-20 10:51:33 +02:00
Dane Springmeyer
b0894bfda3
fix debug assert compile
2016-04-18 08:06:30 -07:00
artemp
633a2c1e07
Merge branch 'master' into geometry-refactor
2016-04-18 16:15:04 +02:00
artemp
66160e9754
mapnik::util::is_clockwise - translate coordinates relative to the origin (0,0) to avoid numeric precision issues while using double precision.
...
(ref #3402 )
2016-04-18 16:08:30 +02:00
artemp
9caac23d3c
remove bogus fwd decl
2016-04-12 14:56:32 +02:00
artemp
271b70f960
geometry - template on container type + move multi geometries into separate headers
2016-04-12 14:49:23 +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
artemp
fb385180cf
include what you need
2016-04-12 09:27:37 +02:00
artemp
0f711c0863
geometry - move point/line_string/polygon into separate headers
2016-04-12 09:17:53 +02:00
Dane Springmeyer
15acb2b23f
Add missing files after revert
2016-04-11 17:58:58 -07:00
Dane Springmeyer
abe943c983
revert geometry changes for now - will develop them in branch to reduce downstream breakage
2016-04-11 14:00:27 -07:00
Dane Springmeyer
0025f70a6b
ensure geometry folder of headers is installed
2016-04-11 12:33:34 -07:00
artemp
19722595a9
move include/mapnik/geometry_fusion_adapted.hpp -> include/mapnik/geometry/fusion_adapted.hpp
2016-04-11 15:22:41 +02:00
artemp
caa03d78bd
move geometry_adapters.hpp to geometry/boost_geometry_adapters.hpp
2016-04-11 15:14:52 +02:00
artemp
fa717bc698
Remove bogus updates from 90f06093ae
"geometry - move point/line_string/polygon into separate headers"
2016-04-11 12:35:19 +02:00
artemp
90f06093ae
geometry - move point/line_string/polygon into separate headers
2016-04-11 12:23:11 +02:00
artemp
c6425b8027
cleanup + make operator==, operator!= standalone
2016-04-08 10:43:06 +02:00
artemp
9705844399
fix operator==,operator!= impl
2016-04-08 10:08:16 +02:00
Dane Springmeyer
7ec640e989
register gdal once at plugin load - refs #3093 #3339 #3340
2016-04-05 16:43:07 -04:00
Dane Springmeyer
61cb4effb8
more explicit name for callback type from dlsym
2016-04-05 15:31:19 -04:00
Dane Springmeyer
f8a8ec616a
c++ style: use nullptr rather than NULL
2016-04-05 15:27:32 -04:00
artemp
aac523f80e
add no_skip
directive in unquoted_ustring rule (ref: https://github.com/mapnik/mapnik/pull/3389#issuecomment-204344223 )
2016-04-01 12:54:40 +02:00
artemp
751b691ff6
move unquoted_string
to the end, remove ustring
from top rule
2016-04-01 11:14:47 +02:00
artemp
890a5cff17
add back support for bare
(unquoted strings)
2016-04-01 10:52:13 +02:00
artemp
7931295d33
quad_tree - fix offsets
2016-03-31 12:40:34 +02:00
artemp
51c1ed16ef
c++ format
2016-03-31 11:22:40 +02:00
artemp
99bfd03b22
spatial_index - make generic
2016-03-31 11:21:57 +02:00
artemp
4faa9896bb
quad_tree - make more generic by templating on bounding box type
2016-03-31 11:20:41 +02:00
artemp
450533ebc6
move boost::phoenix
usage into _impl.hpp
2016-03-24 17:11:06 +00:00
artemp
b73a42131a
box2<T> - add converting ctor
2016-03-24 17:08:44 +00:00
artemp
9bb20ce685
box2d<T> - expose value_type typedef + init(x, y) convinient method
2016-03-24 14:50:46 +00:00
artemp
0b18144859
GeoJSON - make extract_bounding_box
grammar configurable
2016-03-23 11:28:51 +00:00
artemp
7b0740c3b7
remove unused symbolizer_grammar.hpp (ref #3343 )
2016-03-18 18:52:17 +01:00
Dane Springmeyer
342b78dc52
more trimming of unneeded phoenix includes - refs #3343
2016-03-18 09:51:17 -07:00
artemp
8f9134c72d
file_io - rename open
to is_open
to be consistent with STL i/o via @lightmare ( 0d032c2618 (commitcomment-16753722)
)
2016-03-18 10:02:19 +01:00
artemp
3d555982fd
file_io - make operator bool() explicit via @lightmare ( 0d032c2618 (commitcomment-16753722)
)
2016-03-18 09:51:57 +01:00
artemp
04890c4915
topojson - move feature_generator into topojson_utils.hpp
2016-03-17 14:36:53 +01:00
artemp
0c2558c154
topojson bounding_box - fix multi_point logic (remove bogus if (num_arcs_ > 0)
condition)
2016-03-17 14:19:29 +01:00
artemp
0d032c2618
mapnik:util::file_io - add bool operator bool()
for STL I/O compatibility
2016-03-17 11:56:23 +01:00
artemp
b164e010fd
topojson_grammar - don't allocate generic_json structure holding boost::spirit::qi rules on stack (ref #3361 )
2016-03-15 17:19:16 +01:00
Dane Springmeyer
559ef78aca
more agg ignores [skip ci]
2016-03-11 13:48:51 -08:00
Dane Springmeyer
d1b594e886
more agg ignores [skip ci]
2016-03-11 13:44:30 -08:00
artemp
1f61aa3981
TWKB - port CartoDB implementation to mapnik 3.x.x
...
ref https://github.com/CartoDB/mapnik/blob/2.3.x.cartodb/plugins/input/postgis/postgis_utils.cpp
ref https://github.com/CartoDB/mapnik/tree/2.3.x.cartodb/plugins/input/postgis#23xcartodb
2016-03-11 16:20:07 +01:00
Dane Springmeyer
1a10f271d8
ignore -Wfloat-equal from third party headers [skip ci]
2016-03-10 16:07:30 -08:00
Dane Springmeyer
a1ffbe1ec8
suppress warnings from image_io libs
2016-03-10 12:58:29 -08:00
Dane Springmeyer
8f4e211ebd
suppress more third party warnings
2016-03-10 12:46:00 -08:00
Dane Springmeyer
192f5c26c1
use c++ style casts
2016-03-10 12:45:47 -08:00
Dane Springmeyer
51cabe0d34
ignore -Wshadow from agg
2016-03-10 11:45:48 -08:00
Dane Springmeyer
c715b142ec
suppress more third party warnings
2016-03-10 11:44:44 -08:00
Dane Springmeyer
aa8c543744
use c++ style casts
2016-03-10 11:44:01 -08:00
Dane Springmeyer
3985014c04
Add agg warning suppression header
2016-03-09 17:42:24 -08:00
Dane Springmeyer
341db51aa7
finish wrapping boost includes to suppress warnings - add agg wrapper - refs #2907
2016-03-09 16:42:15 -08:00
Dane Springmeyer
7ae0e6d902
share stringify macro from common header
2016-03-09 16:16:14 -08:00
artemp
bde9e61e21
split csv_line_grammar into *.hpp *_impl.hpp ref #3343
2016-03-09 12:26:07 +01:00
artemp
1c29054dea
csv_grammar - use expectation directives throughout
2016-03-09 12:26:07 +01:00
artemp
e3bd74aa55
remove unused phoenix include
2016-03-09 12:26:07 +01:00
artemp
d030fdd667
bump version to 3.0.11
2016-03-07 19:17:36 +01:00
Artem Pavlenko
cd3e484c04
Merge pull request #3349 from mapycz/raster-resample-division-by-zero
...
Raster resample division by zero
2016-03-07 14:54:44 +01:00
Mickey Rose
e75feceaca
markers_placement_finder: dispatch by switch(placement_type)
2016-03-06 13:18:25 +01:00
Mickey Rose
f96631f8e4
un-template markers_basic_placement
...
- move Locator/Detector-dependent stuff back to markers_point_placement
- slightly reduces library size, by about 20% of what #3338 added
2016-03-05 19:33:22 +01:00
Jiri Drbalek
d4ac105eca
raster scaling: use mapnik::safe_cast, fixes clipping negative floats
2016-03-04 16:59:12 +00:00
Jiri Drbalek
f1f65664cd
raster scaling: a bit of optimization
2016-03-04 15:14:01 +00:00
Jiri Drbalek
1054e1bddb
raster scaling: check for division by zero
2016-03-04 15:13:55 +00:00
artemp
71af6a8fe3
css_color_grammar + image_filters_grammar - move phoenix into ctors
2016-03-04 15:53:15 +01:00
artemp
a5cfd27594
split svg_path_grammar
,svg_points_grammar
,svg_transform_grammar
into *.hpp, *_impl.hpp + move boost::phoenix::function initialisation into ctor's
...
(ref #3343 )
2016-03-04 15:34:45 +01:00
Jiri Drbalek
4d402c5ef1
raster scaling: fix accessing out of bounds pixels
2016-03-04 13:55:01 +00:00
artemp
76bb2d9c01
make svg_transform_grammar
stateless ref #3343
...
(https://github.com/mapnik/mapnik/pull/2231 )
2016-03-04 13:15:11 +01:00
artemp
4659f40401
make svg_path_grammar
and svg_points_grammar
stateless ref #3343
...
(https://github.com/mapnik/mapnik/pull/2231 )
2016-03-04 12:42:44 +01:00
artemp
12aec35e2f
GeoJSON feature_grammar - make ctor explicit
2016-03-04 11:35:38 +01:00
artemp
4f8bc40b83
update old boost::phoenix syntax
2016-03-04 10:25:03 +01:00
Dane Springmeyer
9adafd71df
avoid -Wshadow warning from boost [skip ci]
2016-03-03 07:36:33 -08:00
artemp
cbef855743
spirit grammars - move BOOST_FUSION_ADAPT_ADT into implementation files (*_impl.hpp) + reduce boost::phoenix includes to make headers lighter to include
2016-03-03 11:50:41 +01:00
Mickey Rose
489631ca34
remove reference on template parameter Detector
2016-03-03 00:17:41 +01:00
Dane Springmeyer
b5ac75cdf0
MAPNIK_DECL breaks on windows when compiled into static libmapnik-json.a
2016-03-02 13:56:01 -08:00
Dane Springmeyer
296f8d467d
avoid grammar_impl usage in headers - other minor refactoring around json spirit
2016-03-02 12:48:07 -08:00
Dane Springmeyer
4edb57bf11
Merge pull request #3315 from mapnik/faster-csv-compile
...
Speed up CSV plugin / mapnik-index compile
2016-03-02 12:22:16 -08:00
Dane Springmeyer
10a9dba143
trim includes in json/error_handler.hpp
2016-03-02 12:17:12 -08:00
Dane Springmeyer
d148a966c8
from_geojson/to_geojson are now used in unit tests, csv plugin, and node-mapnik so move these to cpp
2016-03-02 11:26:56 -08:00
Dane Springmeyer
72459b3140
Merge branch 'master' of github.com:mapnik/mapnik into faster-csv-compile
2016-03-02 11:10:23 -08:00
artemp
9138d64725
value.hpp - fix error C2375: redefinition; different linkage
2016-03-02 17:15:05 +01:00
artemp
a549803b5b
to_utf8 : fix visibility via MAPNIK_DECL
2016-03-02 17:02:25 +01:00
artemp
f11cc5920f
revive lost to_utf8
method but move it into '<mapnik/unicode.hpp>'
2016-03-02 16:47:55 +01:00
artemp
65da617ec0
re-use vector_converter + move apply_marker_multi
into *.cpp
2016-03-02 16:20:10 +01:00
Mickey Rose
66e7ef58d7
refactor markers_placement_finder
...
- refs #3327
Replace member variant of placement-type implementations with plain
union. The active implementation is chosen at construction time like
before.
Make placement-type implementation classes virtual to allow invoking
the active union member through a base class pointer.
2016-03-02 00:53:45 +01:00
artemp
77eaaa1259
move vertex_adapters implementation into .cpp - mark extern
2016-03-01 21:55:47 +01:00
artemp
053faa8a27
remove unused vars/cleanup
2016-03-01 20:49:54 +01:00
artemp
bb78b178cd
reuse type
2016-03-01 20:37:23 +01:00
artemp
4c8928dd8c
Merge branch 'master' into value-cpp
2016-03-01 17:43:02 +01:00
artemp
d374829b30
refactor apply_markers_multi and help compiler a bit more (re-enable support for GEOMETRYCOLLECTION)
2016-03-01 17:29:03 +01:00
artemp
45b54c703c
apply_marker_multi - unroll template instantiation logic + drop 'GeometryCollection' support (experimental)
2016-03-01 17:28:09 +01:00
artemp
566c99807f
minor formatting
2016-03-01 17:27:59 +01:00
artemp
3ee109f46b
allow any trailing combinations of line-endings (unix, mac, dos) (ref #3320 )
2016-02-26 19:19:32 +01:00
Dane Springmeyer
5c0d496c82
setting up for mapnik v3.0.10 release [skip ci]
2016-02-25 16:37:35 -08:00
Dane Springmeyer
f2782d0b67
[csv] move spirit usage to cpp
2016-02-24 17:42:51 -08:00
artemp
eea68adb40
add required include
2016-02-24 12:10:25 +01:00
artemp
50db396760
move value implementation into *.cpp
2016-02-23 23:05:19 +01:00
artemp
0c9a615c24
restore back compatibility shim ref #1859 (TODO: must go away in 3.1.x!!)
2016-02-23 14:01:06 +01:00
Mickey Rose
ea54876d79
remove unused includes
2016-02-20 01:16:11 +01:00
artemp
96175554ae
Add explicit instantiation declaration of singleton<mapped_memory_cache, CreateStatic>
to avoid multiple instantiations across translation units. (ref #3306 )
2016-02-19 11:00:58 +01:00
artemp
5183c1da44
spatial_index - rename check_header
to check_spatial_index
and make it free function ref #3300
2016-02-18 11:38:29 +01:00
Mickey Rose
6557394dc8
re-add mapnik::to_utf8 stub for backward compatibility
2016-02-17 16:56:21 +01:00
Mickey Rose
1499475d04
remove to_utf8, instead use UnicodeString::toUTF8String
2016-02-15 21:07:01 +01:00
Mickey Rose
5d1fd56cef
csv_grammar: make csv_white_space_skipper a primitive_parser
2016-02-15 15:17:26 +01:00
Mickey Rose
ccf579f450
csv_grammar: simplify csv_line_grammar
2016-02-15 15:15:51 +01:00
artemp
a9e1388b3b
csv_grammar - always requre matching closing quoting character
2016-02-15 12:02:45 +01:00
Mickey Rose
2d88fec458
to_expression_string: fix backslash-escapes in strings
2016-02-15 02:45:29 +01:00
artemp
edc2e75474
Merge branch 'trim-filter-grammar' of https://github.com/lightmare/mapnik into lightmare-trim-filter-grammar
2016-02-11 15:43:18 +01:00
Dane Springmeyer
8ecb42894f
restore << operator for mapnik::enumeration + add unit test
2016-02-09 10:08:29 -08:00
Dane Springmeyer
6c1b6e301d
gradient does not need to be a fancy enumeration
2016-02-09 09:56:57 -08:00
artemp
f0cc65958f
Merge branch 'expr-no-barewords' of https://github.com/lightmare/mapnik into lightmare-expr-no-barewords
2016-02-09 14:15:22 +01:00
Mickey Rose
15f841213a
expression_grammar: restrict unquoted strings to single-atom expressions
...
- fixes #3017
- closes #3214
2016-02-08 17:15:13 +01:00
Mickey Rose
ed8c8df738
expression_grammar: use one symbol table for all constants
2016-02-06 18:40:33 +01:00
Mickey Rose
959d4ded23
image_filter_grammar: rewrite using Nabialek trick
2016-02-06 02:03:55 +01:00
artemp
cb708d7f5a
transform_grammar: correct and simplify rules per bcc7495a87 (commitcomment-15915607)
...
image_filter: relax `agg-stack-blur` rule to allow `agg-stack-blur,agg-stack-blur(),agg-stack-blur(1),agg-stack-blur(1,1)` syntax + add image filter parsing tests
2016-02-05 16:50:49 +01:00
artemp
bcc7495a87
transform grammar - fix optional seprator logic
2016-02-05 13:08:17 +01:00
artemp
7ab93a30f2
mapnik::value_null - correct <=, >= return values ref #3285
2016-02-04 10:06:11 +01:00
artemp
35ab8cccdc
follow up on previous commit - convert to common_type
prior applying /
(MSCV C4804)
2016-02-03 12:45:29 +01:00
artemp
376ffba7fe
convert value_bool to value_integer before operator / (fixes unsafe use of bool - MSVC C4804)
2016-02-03 12:35:09 +01:00
artemp
c0724a6d95
value comparison - deduct return type automatically (fixes MSVC C4800)
2016-02-03 12:33:15 +01:00
Dane Springmeyer
1600bfe981
remove dead code in enumeration.hpp
2016-02-02 12:35:19 -08:00
Dane Springmeyer
09f137796d
use std namespace for clib functions and fix spelling in comments
2016-02-02 12:35:19 -08:00
Dane Springmeyer
834028db7a
remove miniz support - library is unused in mapnik and unmaintained since 2013 ( https://code.google.com/archive/p/miniz/ )
2016-02-02 11:37:26 -08:00
artemp
39a97865fc
image_filter_grammar - move 'BOOST_FUSION_ADAPT_STRUCT` into *_impl.hpp
2016-02-02 11:30:00 +01:00
Mickey Rose
239623f976
remove unused variable [skip ci]
2016-01-30 03:24:07 +01:00
Mickey Rose
a8d8a0d74f
make clang happy - const default initialization
...
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
http://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a
http://stackoverflow.com/questions/21900237/do-i-really-need-to-implement-user-provided-constructor-for-const-objects
2016-01-30 02:03:25 +01:00
Mickey Rose
be5d772d6c
attempt to fortify mapnik::value conversion construction
...
- including correct noexcept specifier
- adding conversion-assignment operator wasn't really necessary,
but it might be more efficient since it avoids constructing an
intermediate variant
2016-01-30 02:03:25 +01:00
Mickey Rose
400e05585f
refine noexcept specifiers on forwarding conversion constructors
2016-01-30 02:03:25 +01:00
Mickey Rose
b2c14972de
remove explicitly-defaulted constructors and assignment operators ...
...
... where they should be implicitly defined by the compiler
2016-01-30 02:03:25 +01:00
Dane Springmeyer
bc89f7f877
upgrade to latest variant - refs mapbox/variant#73
2016-01-29 15:54:15 -08:00
artemp
64c2ad1e93
Just let the compiler generate move/copy for mapnik::value - via @lightmare ref https://github.com/mapnik/mapnik/issues/3274#issuecomment-176730124
2016-01-29 15:05:08 +01:00
artemp
a50036d421
value - make noexcept
conditional + add move assigment operator
2016-01-29 13:07:43 +01:00
Mickey Rose
1eb298f48c
fix text_render_thunk construction
...
- this reverts render_thunk_extractor visitation by text/shield
symbolizer back to how it works in master, only amended to avoid
passing temporaries to text_symbolizer_helper
2016-01-29 00:12:18 +01:00
Mickey Rose
6d84094f77
move render_markers_symbolizer to separate .cpp
2016-01-29 00:12:18 +01:00
Mickey Rose
f99c0e5a6f
refactor render_markers_symbolizer
2016-01-29 00:10:19 +01:00
Mickey Rose
8a55eefbb5
derive virtual_renderer_common from renderer_common
2016-01-29 00:10:19 +01:00
Mickey Rose
844021a892
make face_manager copyable
2016-01-29 00:10:18 +01:00
Mickey Rose
a7ecabcde3
move render_group_symbolizer to separate .cpp
...
- use abstract class render_thunk_list_dispatch for the callback
instead of template parameter render_thunks
- add class scoped_glyph_positions_offset for temporary shifting
of glyph positions
- remove render_offset_placements
2016-01-29 00:10:18 +01:00
Mickey Rose
9d7b3d00e1
minor namespace cleanup in group_layout_manager
2016-01-29 00:10:18 +01:00
Mickey Rose
7761d32ec5
split common group symbolizer stuff
2016-01-29 00:10:18 +01:00
lightmare
5663e2daaf
Merge pull request #3245 from lightmare/movable
...
add util::movable to complement util::noncopyable
2016-01-28 19:16:26 +01:00
artemp
ea68e202be
Merge branch 'master' into visitor-no-copy
2016-01-27 17:10:51 +01:00
artemp
d027ed67c7
more const
strictness, update to work with latest mapbox::variant/visitor-no-copy
branch
2016-01-27 14:50:17 +01:00
artemp
4e8bbe48df
fix return type
2016-01-27 12:05:39 +01:00
Dane Springmeyer
753a0ad216
give users a hint on what to do when they hit 'Invalid index file'
2016-01-26 12:19:34 -08:00
artemp
fa5bbd99fa
mapnik::value - refactor, synchronise and simplify comparisons implementations
2016-01-25 12:27:52 +01:00
artemp
9774f41b85
mapnik::value_null - add <,<=,>,>= implementations
2016-01-25 12:26:57 +01:00
Mickey Rose
0784e36754
add util::movable to complement util::noncopyable
2016-01-22 00:24:24 +01:00
artemp
0e836d7e20
mapnik::value - add value_bool/value_bool impl
2016-01-21 18:35:53 +01:00
artemp
85c3f5dbc1
improve type promotion across arithmetic ops
2016-01-21 18:14:55 +01:00
artemp
e100037288
mapnik::value - improve type promotion for impl::add
2016-01-21 12:47:56 +01:00
artemp
f41d515572
fix operator<<
2016-01-19 11:38:52 +00:00
artemp
c615708a2a
restore local variant_io.hpp with specialisation for bool
( https://github.com/mapnik/node-mapnik/issues/582 )
2016-01-15 09:26:42 +00:00
Artem Pavlenko
7997f3725e
Merge pull request #3235 from mapnik/raster_mem_ds
...
Raster Type Memory Datasource
2016-01-14 16:19:43 +00:00
artemp
3333f3e1fa
inherit mapnik::util::variant from mapbox::variant and add mapbox::variant as submodule
2016-01-14 15:02:41 +00:00
Blake Thompson
044c21db13
Made it possible to change the type of a memory datasource by inspecting the features that are added to the memory datasource
2016-01-14 08:36:12 -06:00
artemp
0a5f006bb9
SVG : add support for stroke-dashoffset
2016-01-11 10:56:04 +00:00
artemp
d3fc7f8fed
Merge branch 'master' into svg-dash-array
2016-01-08 16:08:11 +00:00
artemp
9494bc15d4
SVG path parser - correct handling optional separator (,) between multiple command parts ( #3225 )
...
http://www.w3.org/TR/SVG/paths.html#PathElement
2016-01-08 12:00:51 +00:00
artemp
a8bf7c72f9
Merge branch 'master' into svg-dash-array
2016-01-08 10:46:17 +00:00
artemp
c8932b3df3
svg2png : use SVG dimensions as a fallback when bounding box has zero width or height (e.g horizontal or vertical line)
2016-01-08 10:20:50 +00:00
artemp
b1c22ba853
SVG :initial support for "stroke-dasharray"
2016-01-07 15:54:34 +00:00
Artem Pavlenko
513cfa7c80
Merge pull request #3219 from mapnik/address-sanitizer-happy
...
keep address-sanitizer happy ref (https://github.com/mapbox/mapnik-ve …
2016-01-07 14:23:54 +00:00
artemp
ca83ca167d
svg - move stroke-dasharray setup into dash-array parser method
2016-01-07 11:20:22 +00:00
artemp
e296e554a8
sync with 3ac6e46d01
2016-01-06 12:24:24 +00:00
artemp
50905c3f9a
c++ style pedantic
2016-01-06 12:23:59 +00:00
artemp
7b2da35c01
fix typo doh
2016-01-05 19:52:36 +00:00
artemp
5cd3645cd1
keep address-sanitizer happy ref ( https://github.com/mapbox/mapnik-vector-tile/pull/171 )
2016-01-05 16:58:37 +00:00
artemp
ee0395df7a
add basic read/write header support (quad_tree + spatial_index) ref ( #3216 )
2016-01-05 10:20:21 +00:00
artemp
e0c756ee8d
geometry_envelope - add missing linear_ring
2015-12-17 12:07:05 +00:00
Dane Springmeyer
bd21e452d1
fix minor header glitches to allow headers to compile standalone
2015-12-16 14:22:36 -08:00
Dane Springmeyer
a0719870ab
remove out of date/unused header
2015-12-16 14:22:09 -08:00
Dane Springmeyer
ce98a5c811
fix header glitches uncovered by time-header script - refs #3208
2015-12-16 13:17:19 -08:00
artemp
599b021175
support arbitrary (nested) attributes in JSON Geometry
2015-12-14 11:46:39 +00:00
Dane Springmeyer
50d1e2fbb3
handle more gcc 4.9 -Wshadow warnings
2015-12-04 14:07:42 -05:00
Dane Springmeyer
a58ef62fc2
start fixing gcc 4.9 -Wshadow warnings
2015-12-02 15:54:58 -05:00
Jiri Drbalek
100e3c4995
centroid: enable algorithm on multi-geometries with empty sub-geometries
2015-11-24 15:41:34 +00:00
Dane Springmeyer
9a29b5005d
fix #3178
2015-11-19 20:57:05 -08:00
Dane Springmeyer
c6d6153964
fix multiple -Wunused-parameter warnings [skip ci]
2015-11-19 17:14:58 -08:00
artemp
da617f92eb
add scale_image_agg' and
reproject_and_scale_raster` overloads for backward caps
2015-11-19 12:26:16 +00:00
artemp
7d8f7357ed
GeoJSON - refactor FeatureCollection grammar to restore empty features
condition ( #3167 )
2015-11-18 14:44:39 +00:00
artemp
6d599dff0a
Merge branch 'fix-gray-scaling-2' of https://github.com/mapycz/mapnik into mapycz-fix-gray-scaling-2
2015-11-17 15:03:37 +00:00
Artem Pavlenko
4e922f6a64
Merge pull request #3164 from mapycz/postgis-empty-geoms
...
check input data of centroid algorithm
2015-11-11 10:21:39 +00:00
Jiri Drbalek
924aa62662
raster scaling: fixes nodata handling, acurracy when working with small floats and clipping floats by [0; 255]
2015-11-10 20:37:45 +00:00
Jiri Drbalek
071eeeb660
centroid algorithm: check for empty geometries
2015-11-10 13:49:12 +00:00
artemp
dd31b95bbb
better namings (post 9c7149aad5
itr_end
implies Iterator concept which is not the case) ref #3166
2015-11-10 10:42:39 +00:00
Dane Springmeyer
9c7149aad5
fix variable shadowing in simplify_converter - refs #3166
2015-11-09 12:25:10 -08:00
artemp
5370dac598
Merge branch 'issue-3050' of https://github.com/wmde/mapnik into wmde-issue-3050
2015-11-09 13:56:06 +00:00
Dane Springmeyer
3db15cb823
avoid warning on unknown pragmas with gcc and older clang
2015-11-07 18:09:38 -08:00
Dane Springmeyer
7608040906
centralize warning suppression
2015-11-07 17:53:09 -08:00
Johannes Kroll
d4eee42db4
comment harfbuzz shaper changes
2015-11-06 12:04:20 +01:00
Dane Springmeyer
90886e7992
now working on Mapnik v3.0.9 [skip ci]
2015-11-05 11:26:31 -08:00
artemp
32331e9b3e
GeoJSON parsing - add more expectation points + refactor code
2015-11-05 15:30:25 +00:00
artemp
85ec771573
move 'null' geometry to the top level
2015-11-05 15:30:25 +00:00
Dane Springmeyer
da624b9ef4
update test-data to pull in 9f471a25e3
-refs #3160
2015-11-04 13:57:14 -08:00
Artem Pavlenko
c3c7513c7f
Merge pull request #3160 from mapycz/FIX-offseting
...
Fix offsetting
2015-11-04 15:29:55 +00:00
Johannes Kroll
be98fb733d
fix khmer problem
2015-11-04 10:33:13 +01:00
artemp
c752cf2d1c
variant - update to 91ba0301a6
2015-11-03 15:32:52 +00:00
artemp
6aca4b17f8
extract_bounding_box - fail on nested "FeatureCollection" elements
2015-11-03 13:33:06 +00:00
artemp
47c93eaf15
more formatting
2015-11-03 13:33:06 +00:00
artemp
6f71ad56d4
format
2015-11-03 10:46:26 +00:00
artemp
2893ee4551
mapnik::value - add missing specialisations for mapnik::value_bool in comparison operators + update unit tests
2015-11-03 10:11:29 +00:00
Dane Springmeyer
dad4f64813
include mapnik/config to avoid BOOST_MPL_LIMIT_VECTOR_SIZE macro mismatch warnings
2015-11-02 09:09:14 -08:00
artemp
439fcd0426
correct clog message + formatting
2015-11-02 14:27:57 +00:00
artemp
58c7e5baa3
json - use unified error_handler accross grammars
2015-11-02 13:10:40 +00:00
artemp
25ed5d1e00
json error_handler : optional MAPNIK_LOG_ERROR + don't throw + return qi::fail
2015-11-02 12:46:18 +00:00
Roman Galacz
80fa21cc6f
Fix offsetting
2015-11-02 12:32:06 +01:00
Johannes Kroll
9088ae49e1
Merge remote-tracking branch 'origin-mapnik/master' into issue-3050
2015-11-02 10:16:45 +01:00
artemp
2366eaf2f5
value - fix typo (up-cast value_bool to value_double in operator==())
2015-10-30 14:48:10 +00:00
artemp
f3bed3a627
JSON - optimise geometry grammar
2015-10-30 13:10:51 +00:00
Johannes Kroll
47a2a22f60
less ternaries
2015-10-30 07:34:50 +01:00
Johannes Kroll
9d4134694c
use vector instead of map for glyph table
2015-10-30 07:30:41 +01:00
Johannes Kroll
e9ac686b49
add spaces
2015-10-29 16:39:23 +01:00
Johannes Kroll
a44e64864c
add spaces
2015-10-29 16:29:02 +01:00
artemp
8a762a0a19
GeoJSON - ensure error_handler doesn't read passed the end of stream re #3154
2015-10-29 14:08:51 +00:00
artemp
89aef9726a
sync variant => cd8fe9ce3f
2015-10-28 12:37:55 +00:00
artemp
7b4e21e242
more cleanups
2015-10-28 10:09:22 +00:00
artemp
4dee3d3b51
don't skip iter_pos
2015-10-28 09:07:09 +00:00
artemp
6122cdf7a8
cleanup - remove commented out code
2015-10-28 09:07:09 +00:00
Johannes Kroll
a28e0b1588
Merge branch 'master' of https://github.com/mapnik/mapnik
2015-10-27 23:29:24 +01:00
artemp
b99a20378d
remove swap
and implement assign
...
https://github.com/mapnik/mapnik/issues/3103
https://github.com/mapnik/mapnik/pull/3146
2015-10-27 14:59:17 +00:00
Johannes Kroll
7103ad6f35
change font handling in harfbuzz shaper (issue #3050 )
2015-10-26 18:33:53 +01:00
artemp
bfbc72c484
feature : put back set_id() for upstream compatibility
2015-10-20 14:36:19 +01:00
artemp
ab2d86c617
shape.input: remove set_id() method as it's no longer required ref #1020 #1019
2015-10-20 14:18:17 +01:00
Dane Springmeyer
ee873aa17d
fix compile with older harfbuzz that lacks HB_VERSION_ATLEAST
2015-10-16 14:55:43 -07:00
artemp
e88ecb86c4
add has_name(std::string const& name) const
method
2015-10-16 13:14:41 +01:00
artemp
2437473e74
c++11 - upfate to canonical operator= impl
2015-10-16 12:46:24 +01:00
artemp
584fc5a61a
Merge branch 'master' into smart-geojson
2015-10-16 10:33:32 +01:00
Dane Springmeyer
5da6563db4
maintain 'FT_LOAD_NO_HINTING' / adapt to changes upstream in harfbuzz 1.0.5 mapnik/test-data-visual#25
2015-10-15 13:56:02 -07:00
artemp
2906706a40
geojson.input - split parsing FeatureCollection and single Feature/Geometry into separate grammars
2015-10-15 15:12:16 +01:00
Dane Springmeyer
b75f075885
now working on mapnik v3.0.8 [skip ci]
2015-10-12 16:31:47 -07:00
Dane Springmeyer
03cc55f4f0
remove MAPNIK_VERSION_IS_RELEASE - refs #3123
2015-10-12 10:28:23 -07:00
Dane Springmeyer
393070ae6c
remove unused code
2015-10-12 10:10:08 -07:00
Jiri Drbalek
51878b3321
remove needless header file
2015-10-12 15:29:20 +00:00
Dane Springmeyer
719135d755
start working on Mapnik v3.0.7 ( https://github.com/mapnik/mapnik/milestones/Mapnik%203.0.7 ) [skip ci]
2015-10-08 10:24:17 -07:00
Blake Thompson
69a502043b
Bump down to non release
2015-10-07 16:59:13 -07:00
Dane Springmeyer
3cebe9726b
setting up for mapnik v3.0.6 release
2015-10-07 14:47:41 -07:00
Dane Springmeyer
20aaeac515
fix more boost -Wsign-compare warnings [skip ci]
2015-10-07 14:40:51 -07:00
artemp
0b1ae8bd01
csv_grammar - implament custom (white-space only) skipper + optimise grammar
2015-10-07 12:33:10 +01:00
Blake Thompson
6e47b1bd10
Updated the error handling of geojson parser so that it is more clear where an error orginates
2015-10-06 15:00:53 -07:00
artemp
8ec1e3e73d
geometry_is_simple - fix handling multi-geometries (1.59)
2015-10-06 16:14:20 +01:00
artemp
4d08e3f62c
spatial_index - implement `query_first_n'
2015-10-06 11:31:38 +01:00
Blake Thompson
c127620b6c
Updated the way that is_valid and is_simple operate in mapnik and added lots of testing around them.
2015-10-05 15:10:24 -07:00
artemp
860631acc5
jpeg: fix re-occuring boolean/TRUE/FALSE issue + prefer using c++ headers
2015-10-05 15:23:20 +01:00
artemp
dfba56b23b
quad_tree - pass node by *&
2015-10-05 15:23:20 +01:00
artemp
178e39e19a
make separator single character and simplify/optimise csv_grammar
2015-10-05 15:23:20 +01:00
artemp
1bccca9ff8
Merge remote-tracking branch 'origin/master'
...
Conflicts:
plugins/input/csv/csv_datasource.cpp
2015-10-02 12:27:28 +01:00
artemp
290c4d3e67
csv_grammar - handle 'quote' parameter dynamically
2015-10-02 12:19:09 +01:00
Jiri Drbalek
d6978c29b2
Merge pull request #3100 from mapycz/use_move
...
use move semantics instead of shared_ptr
2015-10-02 09:49:55 +02:00
Dane Springmeyer
be22a67b60
fix -Wshadow warnings
2015-10-01 13:35:23 -07:00
Dane Springmeyer
dd89552bc5
consistenly use pragma GCC for now instead of clang
2015-10-01 13:35:23 -07:00
Dane Springmeyer
5a97c3d541
fix variable shadowing
2015-10-01 13:35:23 -07:00
Jiri Drbalek
5c0aa52d22
apply constness
2015-10-01 20:11:37 +00:00
Jiri Drbalek
da678406b1
use move semantics instead of shared_ptr
2015-10-01 20:11:37 +00:00
Jiri Drbalek
68392f189b
fix build on linux
2015-10-01 19:56:57 +00:00
Dane Springmeyer
c414526802
Merge pull request #3099 from mapycz/fix-todo
...
remove Feature alias of feature_impl
2015-10-01 10:53:27 -07:00
artemp
4273e37278
Merge branch 'master' into csv-disk-index
2015-10-01 15:26:47 +01:00
Jiri Drbalek
a03081c367
remove Feature alias of feature_impl
2015-10-01 14:16:11 +00:00
Dane Springmeyer
d70725b218
fix variable shadowing in extract_bounding_box_grammar
2015-09-30 15:42:42 -07:00
Dane Springmeyer
aa2c28b89c
fix variable shadowing in image_any
2015-09-30 15:42:09 -07:00
Dane Springmeyer
761093457a
restore support for single threaded build
2015-09-30 14:23:46 -07:00
artemp
848098baeb
spatial_index/quad_tree - remove `operator>>' requirement, instead value_type stored must have standard layout for correct (de)serialisation + update unit test
2015-09-29 15:44:57 +01:00
artemp
2f35c71606
mapnik::quad_tree - add methods required for spatial_index construction and serialization
...
remove utils/shapeindex/quadtree.hpp
2015-09-29 12:20:46 +01:00
artemp
d87a04157c
spatial_index - bug fixes + cleanup
2015-09-28 15:51:38 +01:00
artemp
99617ad71c
spatial_index<...> - use operator>> for reading Value's + update shape_index_featureset
2015-09-25 10:43:10 +01:00
artemp
8c2f15c94a
mapnik::value - always upcast to the higher definition numeric value (rhs or lhs) in operator== and operator!=
...
add unit test for comparing numeric mapnik::values
2015-09-24 17:38:16 +01:00
artemp
813924a6f2
mapnik::value - always upcast to the higher definition numeric value (rhs or lhs) in operator== and operator!=
...
add unit test for comparing numeric mapnik::values
2015-09-24 17:36:13 +01:00
artemp
8c16f267bb
remove unused parameters from ctor
2015-09-24 11:36:24 +01:00
artemp
335f607c5a
fux namings and typedefs
2015-09-24 11:20:19 +01:00
artemp
7927a9143c
spatial_index - generalised 'on-disk' bounding box queyring interface
2015-09-24 11:19:03 +01:00
artemp
6eaf5b7b96
value - fix/add remaing static_cast<>
2015-09-21 15:38:17 +01:00
artemp
7938479bb4
value - apply explicit static_cast<lhs_value_type>(rhs) (ref #3078 )
2015-09-21 15:31:25 +01:00
artemp
e559619855
value - cast rhs to value_bool (ref #3078 )
2015-09-21 15:05:03 +01:00
Jiri Drbalek
91db109b37
fix parsing colors in hexadecimal notation
2015-09-18 13:54:05 +00:00
artemp
9ce2f337b3
post-release update
2015-09-17 14:21:20 +01:00
artemp
165c704b93
setting up for mapnik v3.0.5 release
2015-09-16 18:45:26 +01:00
artemp
d54eca9dca
image - fix copy/move implementation and update/improve tests
2015-09-16 14:28:55 +01:00
artemp
d7d3da6935
image - add iterator interface
2015-09-16 11:37:03 +01:00
artemp
acb8feea01
image - update shallow
constructor to take raw bytes pointer
...
detail::buffer - inline data() size() methods
update unit test
2015-09-16 10:14:40 +01:00
Artem Pavlenko
c4e0516ba6
Merge pull request #3061 from mapycz/colorize-alpha
...
colorize-alpha: add support for transparent colors
2015-09-15 16:11:28 +01:00
Dane Springmeyer
b2d08ea4ea
re-enable zero allocation image interface - refs #3069
2015-09-14 16:45:58 -07:00
artemp
d9ab7fd25f
CSV grammar : skip leading \n
and/or \r
which result from std::getline used with non-native line endings
...
The goal is to support LF, CR and CRLF on all platforms.
2015-09-14 11:46:11 +02:00
artemp
ad80c91657
cache processed layouts to ensure there are stay in scope (placement_finder) - via @talaj
2015-09-11 15:29:28 +02:00
Jiri Drbalek
6f0b4d438c
colorize-alpha: add support for transparent colors
2015-09-11 11:31:08 +00:00
artemp
8128a2b1ef
topojson - remove 'invalid' geometry type to avoid default constructed geometries
2015-09-10 19:28:15 +02:00
artemp
724bd56ec4
don't use curly brackets initializer for static member variables (keep vc++ happy)
2015-09-09 13:18:45 +02:00
Jiri Drbalek
a5f314fd87
colorize-alpha: remove needless conditions
2015-09-08 15:05:04 +00:00
Artem Pavlenko
282bdf178c
Merge pull request #3058 from mapycz/colorize-alpha-fix-color-value-normalization
...
colorize-alpha: fix normalization of color components
2015-09-08 12:50:46 +02:00
artemp
a32fbdf635
use atomic<> where possible to avoid locking
2015-09-08 12:28:16 +02:00
artemp
81ead3dc78
make destroyed_ atomic<>
2015-09-08 12:26:43 +02:00
Jiri Drbalek
79f4e3ac8f
colorize-alpha: fix normalization of color components
2015-09-08 10:14:20 +00:00
Jiri Drbalek
72222efad7
scale-hsla image filter: unlimit parameters
2015-09-03 11:33:53 +00:00
artemp
bd35054d27
update version
2015-08-27 13:07:51 +02:00
Jiri Drbalek
75a299ab1d
remove incorrect and meaningless comments
2015-08-26 14:29:09 +00:00
artemp
45d5e39e22
update CHANGELOG for mapnik v3.0.4 release
2015-08-26 12:06:51 +02:00
Artem Pavlenko
85eebaaf57
Merge pull request #3038 from zerebubuth/fix/deadlock-in-recursive-datasource-registration
...
Fix deadlock in recursive datasource registration.
2015-08-25 15:07:00 +02:00
artemp
3753d50b75
CSV - revive row_limit parameter + fix stderr
2015-08-25 15:05:04 +02:00
artemp
8709fb6f7c
CSV - optimise parsing by providing num_columns hint
2015-08-24 16:35:32 +02:00
Matt Amos
3d7b84a598
Fix deadlock in recursive datasource registration.
...
The datasource cache was taking an exclusive lock on the simple
mutex used to protect the singleton's data pointer. This works
okay when everyone always calls it non-recursively, but when the
recursive flag is true then it will always deadlock when called
on any directory with subdirectories.
Additionally, many methods which accessed private data members of
the cache were not protected by any locks.
Since the call pattern of registering datasources is strictly
tree-shaped then it's a good candidate for a recursive mutex. This
has a slightly higher overhead than a simple mutex, so rather than
change the singleton's mutex to be recursive, I've added a new
instance mutex to the datasource cache.
Also, added a very basic test which reproduces the problem and
shows that it's fixed with this patch.
2015-08-23 20:25:35 +01:00
artemp
4babec802a
CSV - implement spatial index access to features on disk + preserve support for inline data (work-in-progress)
2015-08-21 13:52:42 +02:00
artemp
f7d1cf82a9
Merge branch 'master' into large_csv
2015-08-13 13:28:35 +02:00
artemp
332d875839
set MAPNIK_VERSION_IS_RELEASE 0
2015-08-13 11:30:33 +02:00
Jiri Drbalek
507c556386
remove superfluous line
2015-08-13 10:11:18 +00:00
Blake Thompson
10ad41d218
Removed unrequired MAPNIK_DECL from src/image_util_jpeg added pragma to prevent warning on linux with clang.
2015-08-12 13:00:04 -05:00
Blake Thompson
3d262c7426
Fixed linking errors in parse jpeg. closes #3031
2015-08-12 09:32:32 -05:00
artemp
715cff3f2a
fix - pass by const ref
2015-08-12 12:09:40 +02:00
artemp
1f6c44a791
version : upate minor number
2015-08-12 11:38:10 +02:00
artemp
ebf4d66900
Merge branch 'master' into image_filters
2015-08-12 11:27:59 +02:00
artemp
751abba262
add parse_jpeg_quality method + uint test parsing jpegXX and jpeg:quality=XX options
...
ref #3024
2015-08-12 10:29:57 +02:00
Blake Thompson
0b6b11b9cf
Added the ability for filter_image to throw properly with bad input and added the ability for a new image to be returned
2015-08-11 19:22:09 -05:00
Blake Thompson
75522c0cc5
Merge branch 'master' into image_filters
2015-08-11 15:31:41 -05:00
Blake Thompson
792e94ae90
Removed image-filter from map object, made it so that premultiplication/demultiplication only took place when correctly required in image filters.
2015-08-11 14:31:29 -05:00
Blake Thompson
ab2855a130
Made it so that singleton deleted at exit could be turned off.
2015-08-11 11:34:35 -05:00
artemp
6c01870397
expose mapnik::geometry::polygon<double>::rings_container to allow specialising interior rings container
2015-08-11 17:13:04 +02:00
Artem Pavlenko
e68da0d083
Merge pull request #3016 from mapycz/text-null-bbox
...
Null text collision box
2015-08-10 12:18:31 +02:00
artemp
2913982d31
const
2015-08-10 11:19:11 +02:00
Blake Thompson
a492028f25
Initial commit of changes for image_filters so they can be called outside of agg renderer
2015-08-07 15:54:39 -05:00
Blake Thompson
ec73b50557
Added ability for image filters to be used on the map object, so that the entire map has an image filter applied. Corrected issues with colorblind algorithms due to incorrect algorithm used as colorspace was required to be in sRGBA rather then RGBA.
2015-08-05 12:35:17 -05:00
Blake Thompson
6245790e72
Added new image filters that allow an image to be viewed in colorblind modes, allow cartographers to see what their maps would appear like to a color blind person
2015-08-04 17:41:31 -05:00
Jiri Drbalek
162f82cba5
ensure null text has no bbox
2015-08-04 13:29:16 +00:00
Blake Thompson
8305e74eaf
setting up for mapnik v3.0.2 release
2015-07-31 14:31:21 -05:00
Artem Pavlenko
727341f41a
Merge pull request #3003 from mapnik/svg-parser-errors
...
SVG parser refactoring and improvements
2015-07-31 17:06:30 +02:00
artemp
f9bd21eeb5
Merge branch 'svg-parser-errors' into large_csv
2015-07-31 11:18:55 +02:00
Dane Springmeyer
a552518541
avoid a few -Wsign-conversion warnings
2015-07-30 11:10:23 -07:00
artemp
362a2ee0b1
use std::ptrdiff_t and remove static_cast's - ref #3006
2015-07-30 14:32:18 +02:00
artemp
42c8da72e9
Merge branch 'master' into svg-parser-errors
2015-07-28 10:29:59 +02:00
Dane Springmeyer
a78a89564b
back to development of > Mapnik 3.0.1 [skip ci]
2015-07-27 20:27:21 -07:00
Dane Springmeyer
28f6f4d63b
setting up for mapnik v3.0.1 release
2015-07-27 18:30:26 -07:00
Dane Springmeyer
4e2890bb18
iwyu for spirit_transform_attribute.hpp - closes #2993
2015-07-27 17:41:10 -07:00
Dane Springmeyer
411486eaf3
ignore warnings for karma
2015-07-27 17:38:36 -07:00
Dane Springmeyer
abf04d6305
Merge pull request #2988 from mapycz/collision-extent
...
do not store out of extent collision boxes
2015-07-27 17:25:45 -07:00
Dane Springmeyer
871a881634
Merge pull request #3002 from mapnik/issue-2971
...
Fix windows compile around glyph_info forward declare
2015-07-27 14:59:18 -07:00
Dane Springmeyer
ba8d51e029
include fixups
2015-07-27 14:57:57 -07:00
artemp
ce2eaa02ee
add operator==()
2015-07-23 12:58:14 +02:00
artemp
43b3770a95
make gradient movable
2015-07-21 14:12:47 +02:00
artemp
52007b8019
Merge branch 'master' into svg-parser-errors
2015-07-21 09:46:38 +02:00
Jiri Drbalek
43dcf35a93
do not store out of extent collision boxes ( fixes #2963 )
2015-07-20 15:37:05 +00:00
artemp
9da6b9b389
format
2015-07-20 15:41:04 +02:00
artemp
9ab1935a36
add boolean flag for tracking when to re-calculate extent (ref #2985 )
2015-07-17 20:17:51 +02:00
Dane Springmeyer
25af931f58
don't forward declare glyph_info in text_line.hpp
2015-07-17 07:49:41 -07:00
Dane Springmeyer
bb16cf90ff
make text_itemizer noncopyable
2015-07-17 07:49:16 -07:00