Commit Graph

29 Commits

Author SHA1 Message Date
c6bce64af3 quaternion: clarify that from_to result is normalised 2020-01-30 15:06:36 +11:00
8706c39ab7 quaternion: add slerp and nlerp 2019-02-07 15:45:08 +11:00
cbf4a716ac quaternion: expand elementwise and scalar operators 2019-02-07 15:44:15 +11:00
becd1e24e3 build: add doxygen comments for various headers 2019-01-03 11:15:00 +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
749b5179a3 quaternion: add convenience quaternion-vector multiply 2018-05-08 15:51:39 +10:00
999ec1c35c quaternion: add matrix multiply convenience method 2018-04-18 21:48:55 +10:00
64ea4fb6d4 quaternion: add docstrings 2018-04-16 16:00:32 +10:00
2d7e3e5d7d build: prefer iosfwd over iostream 2018-03-22 16:11:13 +11:00
0e3fa05f05 build: migrate from ipp files to pure hpp files
ipp files weren't a great way of keeping things clean, and IDEs have a
little trouble dealing with the split configuration. this simplifies
debugging a great deal.
2018-02-28 11:49:13 +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
34788756d2 build: don't use './' as an include prefix
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
3a4b711467 quaternion: add assignment-multiply operator 2016-10-18 16:45:38 +11:00
e96ef7af32 quaternion: move out of coord infrastructure 2016-10-17 22:30:16 +11:00
db076ad6f4 quaternion: update look, from_to, rotate 2016-10-12 23:03:33 +11:00
94e60d8cd2 quaternion: add conjugation function 2016-09-15 21:41:54 +10:00
606a9c4eb8 coord/ops: use free functions for normalisations 2016-08-11 14:58:46 +10:00
517d7ce4a2 coord/ops: use distinct trait to enable scalar ops 2016-08-11 14:58:04 +10:00
974998cc48 quaternion: update to use coord framework 2016-08-10 17:42:52 +10:00
c2310d5d50 build: explicitly allow anonymous structs 2016-05-12 18:06:12 +10:00
809e7b0421 iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
5c72953653 coord: remove inadvertant warning disabling 2015-09-21 15:40:36 +10:00
6095c755cf quaternion: add convenience float typedef 2015-07-21 01:39:38 +10:00
fdc801628b quaternion: update with more operators 2015-07-13 16:30:54 +10:00
2658b41ea1 relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
5956d0421e parameterise point, vector, region, matrix on type 2014-12-15 20:10:56 +11:00
23b0a7b146 remove annotations header
The annotations were never particularly robust, and weren't used in many
locations (or consistently). And we should be migrating to c++14
annotation syntax anyway. By focusing on writing them all locally we
will be a little more standards compliant, and the attributes should be
more visible.
2014-10-17 19:24:53 +11:00
e54b43fd72 Add tiny quaternion stub 2012-07-31 14:40:21 +10:00