Commit Graph

71 Commits

Author SHA1 Message Date
76c809f031 point/vector: homog no longer takes a size parameter 2018-04-17 14:26:23 +10:00
ea75b102d0 matrix: assert that fov is within 0-360
this will catch more cases where degrees are used where radians area
expected.
2018-04-11 18:23:17 +10:00
01b1c01a07 matrix: use longer names for look_at variables 2018-03-06 13:54:12 +11:00
048abab55e matrix: instantiate orth for floats 2018-03-06 13:53:57 +11:00
c2a880c290 matrix: fix missed negation on one component of ortho 2018-03-06 13:53:39 +11:00
35e3f69ad2 maths, view: rationalise equal,almost_equal,==
views should not do elementwise comparisons for equality operators.
they are pairs of iterators and are only equal if their iterators are
equal.

instead, use `equal` for elementwise equality. we update the name of
exactly_equal to perform this operation too.
2018-01-31 19:33:42 +11:00
9bb2bdbaba Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
c1036d8337 matrix: use vector ostream operator 2017-11-24 17:19:32 +11:00
a8088d03cd matrix: use vector for the row storage 2017-11-24 17:19:32 +11:00
0351313c36 Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
d3f434b523 coord: make template parameters more flexible
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.

We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.

The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
10f777c380 matrix: remove mutating operations 2017-08-22 15:05:58 +10:00
a56d1e339a matrix: parameterise on rows+cols+type 2017-02-21 21:19:28 +11:00
2e0fa64494 range: convert static members to constexpr methods 2016-12-21 16:44:48 +11:00
e549f3d554 matrix: move identity and zeroes into constexpr funcs 2016-10-17 22:34:53 +11:00
607aaceb29 matrix: fix transposed matrix in look_at 2016-10-17 16:51:26 +11:00
1af6ed4ca8 matrix: fix look_at multiply ordering 2016-10-12 23:03:33 +11:00
a1666a179b matrix: remove a divide in look_at 2016-10-11 20:56:41 +11:00
ced088f6b8 matrix: instantiate free function transposition 2016-10-11 20:51:49 +11:00
a78ed2b879 matrix: check that the look_at up vector is normalised 2016-10-07 17:33:03 +11:00
6054fd59a2 matrix: fix transposed matrix in look_at 2016-09-15 21:41:54 +10:00
0e88b4b324 matrix: add to_euler function 2016-09-14 17:56:27 +10:00
b9fbcd6866 matrix: clarify look_at parameter names
rename 'centre' to 'target'; it's a lot more descriptive
2016-09-14 17:56:27 +10:00
a4a08aaa72 matrix: add free 'transposed' function 2016-09-14 17:56:27 +10:00
28cd180c44 matrix: add expanded scalar operations 2016-08-15 20:56:10 +10:00
54a56e5d50 matrix: reduce use of indented namespacing 2016-08-15 20:56:10 +10:00
980018656b matrix: use begin/end to define most operators 2016-08-15 20:56:10 +10:00
18915b6610 matrix: use infix_iterator for ostream operator 2016-08-15 20:56:10 +10:00
606a9c4eb8 coord/ops: use free functions for normalisations 2016-08-11 14:58:46 +10:00
bb6678726f matrix: rename translate/rotate to translation/rotation 2016-08-10 17:42:19 +10:00
65bf7af24e matrix: perspective construction takes a Z-range 2015-12-02 10:03:25 +11:00
a73fb9307c matrix: extract size dependant operations 2015-11-04 23:23:46 +11:00
176b33604b matrix: parameterise on dimension 2015-10-30 23:40:13 +11:00
c41b58b47d matrix: avoid infinite recursion in invert 2015-09-09 18:45:23 +10:00
a4a93a1a72 matrix: add convenience homogenous point/vec mult 2015-07-21 01:41:48 +10:00
2658b41ea1 relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
0211ed5b37 matrix: add 2d translate convenience function 2015-04-02 15:01:17 +11:00
58ac6e910e matrix: use GLMs implementation of 4x4 inversion 2015-02-19 13:29:16 +11:00
70d752e5d0 matrix: prefer operators to functions 2015-02-19 13:29:16 +11:00
f97c932df7 matrix: add scalar multiply 2015-02-19 13:29:16 +11:00
52f53caee5 debug: drop support for CHECK_HARD
HARD vs SOFT assertions were never very well defined or supported.
Currently they just imply a level of functionality that isn't present;
it's better to remove them instead of expending the effort at this
point.
2015-01-28 14:49:34 +11:00
ca66f831f7 matrix: add scalar scaling matrix 2015-01-19 19:12:44 +11:00
0501d0a87a matrix: change rotate args to match opengl order 2015-01-15 14:05:17 +11:00
7f152e5350 matrix: add matrix multiplication assignment 2015-01-13 18:41:51 +11:00
616f6f1db9 matrix: add point multiplication 2015-01-13 18:41:51 +11:00
f6aeef594e matrix: remove to_{global/local}
functions were poorly specified
2015-01-13 18:41:51 +11:00
58fb2c942f matrix: remove instance functions translate/scale
functions were untested and poorly specified
2015-01-13 18:41:51 +11:00
6069edd0de matrix: add rotate implementation 2014-12-30 01:32:02 +11:00
ede1203ff7 matrix: add affine scale implementation 2014-12-16 15:28:40 +11:00
5956d0421e parameterise point, vector, region, matrix on type 2014-12-15 20:10:56 +11:00