Commit Graph

78 Commits

Author SHA1 Message Date
f330b840e0 build: remove dead code 2021-04-14 14:17:18 +10:00
986e7d18d8 matrix: remove iostream include from the header 2021-04-12 17:17:24 +10:00
fdaa5e1392 assert: split CHECK_LIMIT into INCLUSIVE and INDEX
LIMIT hid an off-by-one bug when tests used end iterators. We rename the
assertion to uncover all uses of the flawed implementation, and split it
into an identical assertion, and one intended to protect against
iterator ends.
2020-09-24 08:03:41 +10:00
8beada1646 debug: split debug headers into components 2019-05-17 12:26:08 +10:00
340d873d3a iterator: move each iterator to their own unit 2019-03-18 16:18:27 +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
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