Menelaos Karavelas
6dff815238
[extensions][ttmath] implement binary arithmetic operators for ttmath_big as free functions
2015-03-16 10:26:34 +02:00
Menelaos Karavelas
7b4798231e
[extensions][ttmath] add missing arithmetic operators for ttmath_big:
...
unary and binary +, binary *, binary /;
these operators are needed so that the result of arithmetic operations
on objects of type ttmath_big is also of type ttmath_big (instead of
ttmath:Big<1,4> which is the base class for ttmath_big);
2015-03-14 01:51:04 +02:00
Adam Wulkiewicz
e5c40ca188
[buffer] Fix unused variable MSVC warning in analyse_turn_wrt_point_piece.
2015-03-11 03:56:04 +01:00
Adam Wulkiewicz
6828fd5bda
[policies] Fix unused parameter warnings in direction policy.
2015-03-11 03:54:42 +01:00
Adam Wulkiewicz
666837bcb9
[algorithms] Fix the type of returned Range/Ring in sub_range(Polygon).
2015-03-09 16:05:29 +01:00
Adam Wulkiewicz
731ea108d7
Merge pull request #252 from sdebionne/fix/range_reference
...
[range] Use range_reference
2015-03-09 12:58:59 +01:00
Samuel Debionne
d7aae45daf
[util][range] Use range_reference
...
Use range_reference to determine the return type of boost::at,
boost::front and boost::back.
2015-03-09 09:52:11 +01:00
Menelaos Karavelas
b3b95ae92b
[strategies][cartesian][buffer][join_round] protect std::max with parentheses
2015-03-08 20:56:02 +02:00
Menelaos Karavelas
ca45ee76ac
[strategies][cartesian][buffer][join_round] optimize expression
...
calculating number of interior points
2015-03-08 20:11:53 +02:00
Barend Gehrels
64ee58ed46
[buffer] Fix calculation of the number of points. For an angle of 125 or more,
...
no points in between were generated, which was erroneous.
Thanks to Menelaos for spotting and Adam for the calculation
This changes some of the unit test results, because in some cases a point in between
is generated now, creating a larger polygon
2015-03-08 18:08:43 +01:00
Adam Wulkiewicz
a3db6b2ad1
Merge pull request #246 from mkaravel/fix/sqrt_for_32bit_platforms
...
Workaround for sqrt for some 32-bit platforms
2015-03-08 15:14:30 +01:00
Barend Gehrels
4e6a319fdb
Merge pull request #248 from mkaravel/feature/simplify_detail_not
...
Simplify detail::not_
2015-03-08 15:01:28 +01:00
Menelaos Karavelas
a3012c4beb
[strategies][cartesian][buffer][join_round] rename local variable so that it is more descriptive
2015-03-08 12:54:19 +02:00
Menelaos Karavelas
4fcf879b25
[algorithms][detail][not] modify the implementation of detail::not_ by moving
...
the geometry template parameters inside the class; this way it is simpler to
use detail::not_ as it is not required to specify the geometries;
2015-03-08 11:42:45 +02:00
Menelaos Karavelas
3312f4a03d
[algorithms][is_valid] apply coding rules (space after operator !)
2015-03-07 18:13:12 +02:00
Menelaos Karavelas
fc257347e2
[util][math] add comments at end of #ifdef BOOST_GEOMETRY_SQRT_CHECK_FINITENESS/#endif block
2015-03-07 16:34:19 +02:00
Menelaos Karavelas
0a6e1a6829
[util][math] guard inclusion of fpclassify.hpp by the macro
...
BOOST_GEOMETRY_SQRT_CHECK_FINITENESS
2015-03-07 09:33:45 +02:00
Menelaos Karavelas
b0a78785b7
[iterators][point iterator] add missing const in constructor
2015-03-06 08:29:33 +02:00
Adam Wulkiewicz
2e18afacce
Merge pull request #239 from sdebionne/fix/iterators
...
Fix point_iterator with raw pointer base
2015-03-06 06:17:08 +01:00
Menelaos Karavelas
0efb49d054
[algorithms][is_valid] fix comment
2015-03-05 15:12:22 +02:00
Menelaos Karavelas
75c3590aef
[util][math] implement workaround for 32-bit platforms for which sqrt(nan)
...
returns a finite value; workaround is activated by defining the macro
BOOST_GEOMETRY_SQRT_CHECK_FINITENESS;
2015-03-05 11:27:59 +02:00
Barend Gehrels
e80ec0babf
[buffer][doc] Make miter limit more clear in documentation
2015-03-04 12:26:49 +01:00
Barend Gehrels
ed2f52a16d
[buffer] Fix end caps with odd number of points, they were not closed
...
Including unit test. Issue was found by Oracle/MySQL testing
2015-03-04 11:40:44 +01:00
Menelaos Karavelas
90bb9a8a4f
[strategies][cartesian][buffer][join_round] revert change in strategy
2015-03-04 12:09:56 +02:00
Samuel Debionne
73a9a47598
[iterators] Use base_type from boost::iterator_adaptor
...
Use base_type from boost::iterator_adaptor. Remove base type definition
that clash with the base() function of boost::iterator_adaptor. Reformat
to follow coding guidelines.
2015-03-04 10:10:02 +01:00
Samuel Debionne
84463ae8ba
[iterators] Fix point_iterator with raw pointer base
...
Fix point_iterator (and adapt reverse_point_iterator to the fix) to
support curves implemented with raw pointer as iterator. The fix uses
boost::iterator_adaptor that implements base() a synonyme of base_ptr()
that consequently has been removed. The operators are also redondant and
removed.
2015-03-03 15:46:54 +01:00
Menelaos Karavelas
ac1a78f1cd
[strategies][cartesian][buffer][join_round] move the max outside the static cast
2015-03-03 16:04:32 +02:00
Menelaos Karavelas
a6a448f429
[strategies][cartesian][buffer][join_round] make sure that at least one
...
interior point is generated
2015-03-03 09:50:46 +02:00
Menelaos Karavelas
38fc1224c7
[strategies][cartesian][buffer][end_round] fix internal point count
...
for small input values (less than 4): when the input point count is less
than 4, set the internal point count to 4; for values less than 4 the
generated ends do not look round;
2015-03-02 21:11:40 +02:00
Adam Wulkiewicz
6bf022bedb
Merge pull request #236 from sdebionne/fix/range
...
Fix range back() function
2015-03-02 14:15:26 +01:00
Samuel Debionne
d9f95e6952
[algorithms][within] Use geometry::range
...
Make use of geometry::range algorithms to get front and back values of
Linestring (rather than Boost.Range begin() and front()).
2015-03-02 10:59:42 +01:00
Samuel Debionne
cae3bab2fe
[util][range] Fix back()
...
*(--boost::end(rng)); is not valid for range with pointer as iterators.
since the range is supposed to be BidirectionalRange, use rbegin
instead.
2015-03-02 10:59:32 +01:00
Barend Gehrels
f74180b084
[buffer] Enhance turn-in-piece for pieces around points. They now
...
make use of monotonic sections, and get special treatment because there
are no helper segments, basically the whole procedure is different
This can make buffers around points 3 times faster (if the buffered ring contains many points)
2015-03-01 14:08:16 +01:00
Barend Gehrels
cf167f9a36
[sectionalize] support sections in vector (so sections_type is redundant)
2015-03-01 13:57:39 +01:00
Barend Gehrels
f45df767d5
[buffer] remove obsolete file
2015-03-01 11:25:13 +01:00
Barend Gehrels
c244debf53
[buffer] calculate turns: use monotonic properties in two dimensions
...
(does not give improvements for circles, however it might do for ellipses
longer in y dimension)
2015-02-28 12:58:51 +01:00
Barend Gehrels
483c373cf5
Merge branch 'develop' of github.com:boostorg/geometry into develop
2015-02-27 22:15:39 +01:00
Barend Gehrels
a6d10d610c
[turns] use preceding/exceeding from headerfile
2015-02-27 22:15:08 +01:00
Barend Gehrels
6afc5a464a
[buffer] performance: use monotonic properties of monotonic sections to limit
...
quadratic iterations within two overlapping sections
This can improve performance with about 25%
2015-02-27 22:11:50 +01:00
Menelaos Karavelas
d31cabb067
[strategies][cartesian][buffer][point_circle] fix internal point count
...
for small input values (less than 3): when the input point count is less
than 3, set the internal point count to 3; this is important for generating
valid polygons;
2015-02-26 17:30:24 +02:00
Barend Gehrels
230be833e2
Merge pull request #231 from mkaravel/doc/is_valid_with_failure
...
Doc/is valid with failure
2015-02-25 18:06:12 +01:00
Barend Gehrels
f1fc6eaa59
Merge branch 'develop' of github.com:boostorg/geometry into develop
2015-02-25 17:54:26 +01:00
Barend Gehrels
979fd3cf96
[buffer] change model::box by already existing type
2015-02-25 17:53:45 +01:00
Barend Gehrels
3a5e2c20c4
[buffer] improve performance for multi_point with many generated points
...
by now using monotonic sections and calculate turns over overlapping sections only
2015-02-25 17:50:25 +01:00
Barend Gehrels
015953ce42
[sectionalize] add static assert for if ...part is used out of sectionalize
2015-02-25 17:33:43 +01:00
Barend Gehrels
a18c0c2ad1
[sectionalize] let sectionalize_part make use of iterators instead of range,
...
for next commit where that is used for buffer, and range is inconvenient
2015-02-25 17:33:16 +01:00
Barend Gehrels
e45fd0ef29
[get_turns] move two policies to separate headerfile
2015-02-25 17:28:09 +01:00
Menelaos Karavelas
040dd2a3a4
[doc][algorithms][validity_failure_type] add inline documentation
2015-02-25 15:06:54 +02:00
Menelaos Karavelas
5c8e300ba2
[doc][algorithms][is_valid] update inline documentation for the
...
various is_valid overloads; add documentation for the overload that
takes a reference to validity_failure_type;
2015-02-25 15:05:29 +02:00
Menelaos Karavelas
296e36a19d
[geometry] remove non-existent #include (file has been deleted)
2015-02-25 12:55:30 +02:00