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