Commit Graph

74 Commits

Author SHA1 Message Date
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
3799135236 coord: add general vector comparison function 2017-08-27 12:32:00 +10:00
cde0fe882e vector: add more convenience typedefs for bools 2017-08-27 12:28:00 +10:00
a14847bb59 vector: add and correct 4-dimension types 2017-08-24 14:39:54 +10:00
a7caea16e1 vector: add 2d cross product 2016-12-21 20:23:43 +11:00
4bf160934c vector: prefer constexpr functions over static variables 2016-12-12 17:04:39 +11:00
ec78216813 coord: prefer int/unsigned to intmax/size_t 2016-10-25 17:46:36 +11:00
b927c8b8e7 vector: make cross function constexpr 2016-10-17 16:49:26 +11:00
9a798446b5 build: remove unnecessary includes
discovered with include-what-you-use
2016-10-12 15:08:22 +11:00
109d47e971 coord/ops: generalise vectors hypot function 2016-09-23 13:27:44 +10:00
ede9b75bad vector: fix hypot implementation 2016-09-21 22:24:02 +10:00
4544a594c3 vector: add hypot function
calculates the root of the sum of the squares. much like std::hypot, but
of arbitrary dimension.
2016-09-21 17:13:25 +10:00
b809925396 vector: rename UNIT to ONES
unit isn't a normalised vector, so it's misleading to call it a 'unit'
vector
2016-08-15 20:56:10 +10:00
ead926bed2 vector: remove difference methods 2016-08-11 16:33:42 +10:00
1f3b44a20e vector: move vector::is_zero to coord::almost_zero 2016-08-11 16:33:32 +10:00
606a9c4eb8 coord/ops: use free functions for normalisations 2016-08-11 14:58:46 +10:00
cf3d58074f vector: add convenience typedef vectoru 2016-08-10 18:26:13 +10:00
809e7b0421 iostream: use consistent ostream format 2016-03-11 13:01:57 +11:00
7753e37dc3 vector: add constant sized convenience typedefs 2015-10-06 15:19:29 +11:00
4ea5896d21 coord: use template typedefs 2015-07-24 01:34:44 +10:00
f4738fc010 vector: add vector3{u,i} typedefs 2015-07-22 02:54:52 +10:00
74d7f9c717 vector: add {to,from}_euler 2015-07-21 02:56:37 +10:00
5b8df525a2 vector: add homogenous converter
added for symmetry with point classes
2015-07-21 01:41:48 +10:00
19544076dd vector: add vector{2,3,4} convenience typedefs 2015-07-13 16:30:54 +10:00
71d8a30769 vector: operate on value types, not references 2015-04-15 14:06:49 +10:00
6f1278767f vector: add is_normalised 2015-04-15 13:52:37 +10:00
f87481c5e0 vector: add constant unit vector 2015-04-15 13:52:22 +10:00
2658b41ea1 relicence under Apache-2.0 2015-04-13 18:05:28 +10:00
bd88832df3 coord: move cast/redim operations to coord 2015-04-09 17:58:47 +10:00
5428c93b9a coord: pass client class to coord base
allows common typesafe implementation of cast and redim
2015-04-09 17:47:35 +10:00
c94535dfae vector: note the order of components for polar 2015-04-08 19:00:46 +10:00
a67edcde1a vector: add cast operator 2015-04-08 13:51:09 +10:00
5627c573eb coord: use size_t/intmax_t for u and i suffixes
size_t matches array indices we are likely to be used in conjuction with
these types.
2015-04-07 16:53:46 +10:00
a300f99b87 vector: add polar_to_cartesian 2015-04-02 15:01:17 +11:00
3da59aea2f vector: instantiate polar_to_cartesian 2015-04-01 17:05:24 +11:00
e461654de8 coord: split coord header into components 2015-03-06 01:46:01 +11:00
99ba406b4d coord: move base coord class into main namespace 2015-03-06 01:16:14 +11:00
439bb19679 coord: move operators out of subclasses 2015-03-06 01:09:58 +11:00
e5d99b3370 coord: use stricter member variable names
use tags for the core coordinate structures to specify what names should
be used for the data variables (in the data union)
2015-03-03 04:11:30 +11:00
d342ef72f5 vector: add free dot function 2015-02-19 13:29:16 +11:00
4bb5b7adb2 vector: add scalar variant of redim 2015-02-12 17:41:07 +11:00
60787655b3 json: split json impl files into tree and flat 2015-02-03 00:15:07 +11:00
cfc0f8ecd0 json: move tree parsing code to json::tree 2015-02-02 21:26:56 +11:00
cee9951f82 vector: add difference(2) methods 2015-01-28 15:00:20 +11:00
6abfd252d9 coord: move free maths func from point to vector 2015-01-28 14:59:33 +11:00
319a8ce616 coord: use inherited class for data definitions
keep as many operations centralised in the base coord class as possible.
2015-01-19 19:13:52 +11:00
fa52752629 vector: add vector2i and vector2u typedefs 2015-01-16 14:44:26 +11:00
7ef4cbcc1a vector: add redim operation 2015-01-15 14:01:51 +11:00
64c11bdcb0 point/vector: use coord constructors 2015-01-13 18:41:51 +11:00