Commit Graph

98 Commits

Author SHA1 Message Date
b70c20d284 region: support default construction of step iterator
This allows use in some std::algorithms that assume the iterator
conforms to LegacyIterator
2020-03-16 14:13:25 +11:00
8697c103d6 region: add intersection operation 2020-03-12 12:45:29 +11:00
fd64ca6bce region: correct the point-region distance2 calculation 2019-08-30 13:45:08 +10:00
6367596537 region: add 'sample' convenience without generator parameter 2019-08-22 13:22:48 +10:00
426a3a3fde region: make area and diameter constexpr 2019-03-20 16:07:42 +11:00
976d44b1d9 region: use half-open range for region::step 2019-03-08 09:41:37 +11:00
f6056153e3 rename root namespace from util to cruft
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87 relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
3722c8aaa3 region: add union operator for region/region 2018-06-14 15:07:25 +10:00
0a599b4b14 region: add minimal docstrings for some queries 2018-06-07 15:20:37 +10:00
c4a8ff3424 region: add intersects overload for point/region
complements the existing region/point intersects test
2018-06-07 15:20:05 +10:00
50f43d2193 region: add free function point intersection test 2018-06-05 09:28:49 +10:00
11a077f63d region: add distance2 2018-05-30 14:35:11 +10:00
16fc2effb2 region: add uniform sampler 2018-05-30 14:35:03 +10:00
af77aad894 extent/region: simplify iteration over ranges 2018-03-23 16:38:54 +11:00
2d7e3e5d7d build: prefer iosfwd over iostream 2018-03-22 16:11:13 +11:00
0e3fa05f05 build: migrate from ipp files to pure hpp files
ipp files weren't a great way of keeping things clean, and IDEs have a
little trouble dealing with the split configuration. this simplifies
debugging a great deal.
2018-02-28 11:49:13 +11:00
6e32ad84a7 coord: use consistent naming for point coverage tests
use inclusive for tests that include all borders, and exclusive for
tests that do not accept the bottom right borders.
2017-08-24 15:56:58 +10:00
a016e98b12 region: add make_range for regions
introduces an object that provides iterators suitable for row-major
scanning of points covering a region object. mostly a wrapper for the
equivalent extent_range.
2017-08-21 18:48:52 +10:00
d6b77f879f region: add convenience zero() constructor 2017-08-16 17:25:56 +10:00
ec0cb7d2c1 region: remove scale operation
it's not immediately apparent how scale operates on both of point and
extent components. rather than complicate matters we remove them in
preference of letting the user construct it directly.
2017-08-11 15:20:48 +10:00
9abfef2769 region: remove mutating point constrain function 2017-08-11 15:19:14 +10:00
31d2e6bfd8 region: remove duplicate point/region coverage tests 2017-08-11 15:15:44 +10:00
f36a14973a region: add `encloses' test for subregions 2017-08-11 14:39:46 +10:00
72f631ab4b region: remove `expanded' function
we're trying to move away from mutating operators.

also, we do the bad thing of just renaming the non-mutating operator
given it appears no one is using the mutating operator in our code bases
anyway...
2017-08-09 17:28:53 +10:00
b6edf25cd8 region: remove the resize method
we're moving away from mutating operators so this is somewhat
out-of-place. it's not a huge functional change though as there are
enough locations where the internal representation of point/extent are
assumed that we just do it through the members.
2017-08-09 17:27:28 +10:00
fc41f0991d region: add overload of inset for vectors 2017-08-09 17:17:55 +10:00
01f6e5a1e8 region: add make_union function 2017-07-31 15:44:01 +10:00
d29276a427 region: add "has" point query 2017-07-25 17:10:16 +10:00
db5795c25a region: remove array constructor
the meaning of the array values weren't particularly clear. are they
point-point, point-extent, something else? also the implementation was
horribly incorrect for whatever it claimed to be doing. so we remove the
function entirely to avoid the aforementioned ambiguity.
2017-07-19 17:19:37 +10:00
2dcb315ce6 region: prefer constexpr functions over static variables 2016-12-12 17:07:53 +11:00
4f3fd9547d region: add three dimensional typedefs 2016-10-25 20:02:19 +11:00
77c7d87d60 region: remove incorrect union accessors
the union accessors x,y,w,h were predicated on the dimension being 2.
for higher/lower dimensions this resulted in the incorrect variable
being returned.

rather than do something fancy with unions and coord storage type for
access to the underlying data we force the user to acknowledge the split
storage of point/extent.

unfortunately we have pretty shitty names for the components as a
result.
2016-10-25 19:59:53 +11:00
9546526c1f region: remove extent_t/point_t distinction
it's too problematic to retain signedness distinctions between base
points and region extents. just use the same types, but retain the
named typedefs for compatibility.
2016-10-25 17:50:11 +11:00
ec78216813 coord: prefer int/unsigned to intmax/size_t 2016-10-25 17:46:36 +11:00
c2310d5d50 build: explicitly allow anonymous structs 2016-05-12 18:06:12 +10:00
efa52c60e9 build: remove unnecessary pedantic checks 2016-04-28 16:09:14 +10:00
809e7b0421 iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
4cd6dcc85c region: use size_type for scaling param 2015-10-19 17:08:08 +11:00
bcaa6c7428 region: add cast function 2015-09-21 15:33:58 +10:00
c4f773f129 coord: use explicit constructors consistently 2015-09-09 18:45:23 +10:00
2658b41ea1 relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
426fc1c848 region: remove two-scalar constructor
two-scalar constructor is too similar to extent and point constructors
leading to unexpected initialisation problems.
2015-04-02 15:01:17 +11:00
e461654de8 coord: split coord header into components 2015-03-06 01:46:01 +11:00
439bb19679 coord: move operators out of subclasses 2015-03-06 01:09:58 +11:00
31d1d741e9 extent/region: update to use size parameters 2015-03-03 04:13:29 +11:00
69864bdfcd region: add rebase method
sets region base point
2015-03-02 18:49:12 +11:00
3e2c70f251 region: add magnitude setter 2015-03-02 18:49:12 +11:00
84c957440b region: add extent-only constructor 2015-02-20 21:53:34 +11:00
0a153e8e12 region: add vector subtraction operator 2015-02-20 16:06:46 +11:00