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
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