Commit Graph

68 Commits

Author SHA1 Message Date
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
ba878238af region: add vector addition operator 2015-02-20 15:26:59 +11:00
cb5e76cff9 region: rename far to away
far is a reserved word in win32
2015-02-18 02:32:52 +11:00
c7a868beac region: add two point constructor 2015-02-17 18:25:29 +11:00
e1ebacb16a region: add far corner query 2015-02-17 16:24:33 +11:00
8ea1a04f57 region: add extent query method 'size' 2015-02-17 16:24:16 +11:00
6bd9ad333c region: try to use unsigned types for extent 2015-02-17 16:23:54 +11:00
93ec5be1f3 coord: add elements and value_type constants 2015-02-17 16:22:12 +11:00
f7f84ef6b8 region: add dimension and value_type constants
for interoperability with vector and point classes
2015-02-16 23:38:08 +11:00
1db9057c95 region: add per-axis expansion calls 2015-02-04 15:44:51 +11:00
c185ea7226 region: add integer typedef, region2i 2015-01-22 15:00:35 +11:00
a782a61983 region: allow uninitialized construction 2015-01-22 15:00:20 +11:00
d23abfc727 region: use position_type for x,y 2015-01-22 14:58:42 +11:00
76b51e04b2 region: add expansion methods 2015-01-22 14:58:29 +11:00
91ecc49d68 region: add inset method 2015-01-21 23:40:13 +11:00
fe143717c5 region: style, comments, namespacing 2015-01-21 23:40:13 +11:00
1f93f907af region: add region2f convenience typedef 2015-01-16 14:44:04 +11:00
a9c723326b whitespace 2015-01-16 14:42:56 +11:00
19317eb3ea region: add convenience typedef region2u 2015-01-15 14:01:15 +11:00
0112d663ff region: add point/extent constructor 2015-01-15 14:01:05 +11:00
5956d0421e parameterise point, vector, region, matrix on type 2014-12-15 20:10:56 +11:00
d1ed7107ae region: remove vector addition operator
It is unclear what this operator was supposed to do, and triggers a
number of sign and type warnings. Re-add later if necessary under a more
descriptive name.
2014-07-02 15:47:53 +10:00
0e36781721 Add manhattan closest calculation 2013-09-18 13:52:11 +10:00
f256f4d0e9 Add a point constrain method to region
Force a point to not exceed the region boundaries.
2013-08-05 16:38:05 +10:00
1f37a8d04c Add constrain operation for points in regions 2013-07-30 23:52:09 +10:00
847242a59f Add scale operation for regions 2013-07-30 23:51:55 +10:00
baf8ded43d Add UNIT and MAX region objects 2012-06-15 16:38:57 +10:00
71c0f02873 Make region dimensions the same type as positions
There are just far too many warnings issued for signedness differences
for it to be practical to cast every time.
Unsignedness was hiding the issue of dimensions being larger than
positions could express anyway.
2012-06-14 18:30:08 +10:00
9447910061 Add structure for region iterator
It is not currently enabled as the exact semantics aren't really known,
but as we're likely to want something similar later then we shouldn't
throw the code away.
2012-06-14 18:29:09 +10:00
4fa7789786 Instantiate templates in their enclosing namespace 2012-06-13 16:01:42 +10:00
b960319436 Add position_type typedef for regions 2012-06-08 16:49:09 +10:00