Commit graph

670 commits

Author SHA1 Message Date
Brendan Zabarauskas
df9c66d1bb Use macro instead of loop for Array::build 2013-09-07 19:51:01 +10:00
Brendan Zabarauskas
c84ca595b7 Add Vec{2, 3, 4}::unit_{x, y, z, w} functions 2013-09-07 15:08:59 +10:00
Brendan Zabarauskas
038b200338 Implement matrix to matrix conversions 2013-09-07 15:04:33 +10:00
Brendan Zabarauskas
15b69686b0 Further refine vector module, remove un-needed comment 2013-09-06 16:53:37 +10:00
Brendan Zabarauskas
56e718406a Add length tests 2013-09-06 16:39:34 +10:00
Brendan Zabarauskas
3e97a2446b Use macro to impl vector operations 2013-09-06 16:39:15 +10:00
Brendan Zabarauskas
408e86211c Begin work on testsuite 2013-09-06 15:44:58 +10:00
Brendan Zabarauskas
0d3d40637f Add comp_{min, max} and cross_self methods for vectors 2013-09-06 15:44:27 +10:00
Brendan Zabarauskas
4eff10a90e Shove the util functions unceremoniously into a separate file and hope nobody looks in there 2013-09-06 10:12:29 +10:00
Brendan Zabarauskas
28faaa2ccc Add collision types 2013-09-05 17:19:31 +10:00
Brendan Zabarauskas
aef1d153a1 Simplify projection code 2013-09-05 16:44:27 +10:00
Brendan Zabarauskas
6534855673 Add rotation module 2013-09-05 16:43:52 +10:00
Brendan Zabarauskas
6d16999d29 The trigonometric functions don't have to be methods! 2013-09-04 15:52:44 +10:00
Brendan Zabarauskas
bb17d95abe Clean up Mat3 to Quat conversion code 2013-09-04 15:42:12 +10:00
Brendan Zabarauskas
6117fef58b Use angle types in appropriate locations 2013-09-04 15:36:06 +10:00
Brendan Zabarauskas
9c65b38231 Add matrix algebra operations 2013-09-04 14:40:24 +10:00
Brendan Zabarauskas
bf1dd601d7 Add projection types 2013-09-04 14:39:21 +10:00
Brendan Zabarauskas
37826e56bc Add angle unit types 2013-09-04 12:20:53 +10:00
Brendan Zabarauskas
2b8e36d4a3 Impl ApproxEq for vectors, matrices and points 2013-09-03 23:36:03 +10:00
Brendan Zabarauskas
b84e154898 Impl One for vectors and matricies 2013-09-03 23:35:06 +10:00
Brendan Zabarauskas
7635d01276 Add normalize_self, normalize_self_to and lerp_self methods 2013-09-03 22:12:54 +10:00
Brendan Zabarauskas
11022618b3 Add ray types 2013-09-03 20:15:22 +10:00
Brendan Zabarauskas
bd9f129b3a Add Mat2::from_angle constructor 2013-09-03 18:03:18 +10:00
Brendan Zabarauskas
0325af9a69 Add ToStr impls for point, vector and quaternion types 2013-09-03 17:33:33 +10:00
Brendan Zabarauskas
00991e00f3 Copy quaternion method impls over from src-old, and add conversion traits 2013-09-03 17:28:43 +10:00
Brendan Zabarauskas
ca432e9728 Use Float for trait bounds instead of Real + ApproxEq<S> 2013-09-03 17:14:27 +10:00
Brendan Zabarauskas
a89a5d70e8 Documentation work 2013-09-03 16:37:06 +10:00
Brendan Zabarauskas
8c173c8e51 Impl Neg operator trait for vectors and matricies 2013-09-03 15:43:27 +10:00
Brendan Zabarauskas
6e548843c1 Add projection module 2013-09-03 15:23:56 +10:00
Brendan Zabarauskas
19aaf5c916 Update README with more information 2013-09-03 15:13:10 +10:00
Brendan Zabarauskas
68bd70f78f Remove algebraic traits to simplify library
Pragmatically, according to advice from zeuxcg, I have decided to remove the algebraic traits. This has simplified the library a great deal by reducing indirection and removing redundant code.cx
2013-09-03 13:54:03 +10:00
Brendan Zabarauskas
c404092879 Use iterators instead of Array::{map_mut, bimap_mut, fold} 2013-09-02 18:32:25 +10:00
Brendan Zabarauskas
00bd313b87 Use iterators in inner product impl 2013-09-02 14:01:16 +10:00
Brendan Zabarauskas
ac0732409e Add ident and zero to matrices 2013-09-02 11:49:05 +10:00
Brendan Zabarauskas
e8d1dc98ad Implement matrix inversion 2013-08-28 13:56:48 +10:00
Brendan Zabarauskas
2976de3ff4 'Array' is a better mathematical name for Indexable 2013-08-28 12:03:43 +10:00
Brendan Zabarauskas
ba8c6ac7d0 Make macro syntax clearer 2013-08-28 11:05:44 +10:00
Brendan Zabarauskas
a49578fe83 Use macros for Point impls 2013-08-28 10:19:47 +10:00
Brendan Zabarauskas
6ec0d47ecf Use default method impl for swap_r 2013-08-27 21:24:13 +10:00
Brendan Zabarauskas
75988e45d2 Update directory structure to rustpkg conventions 2013-08-27 21:13:29 +10:00
Brendan Zabarauskas
026a5e89b5 Condense vector impls further using macros 2013-08-27 16:52:33 +10:00
Brendan Zabarauskas
9064b9d5c0 Add some matrix impls, add operator macros 2013-08-27 16:11:05 +10:00
Brendan Zabarauskas
b67b31b633 Add matrix traits, do lots of reorganisation/re-formatting 2013-08-27 08:59:18 +10:00
Brendan Zabarauskas
caadaa669a Fix copyright notices 2013-08-26 15:51:19 +10:00
Brendan Zabarauskas
3673c4db6d Overhaul library, rename to cgmath
Moved the old source code temporarily to src-old. This will be removed once the functionality has been transferred over into the new system.

The new design is based on algebraic principles. Thanks goes to sebcrozet and his nalgebra library for providing the inspiration for the algebraic traits: https://github.com/sebcrozet/nalgebra
2013-08-26 15:08:25 +10:00
Brendan Zabarauskas
c429ed839d Remove noise and color modules
These have now been moved to separate repositories:

  - https://github.com/bjz/noise-rs
  - https://github.com/bjz/color-rs
2013-07-30 14:02:26 +10:00
Brendan Zabarauskas
994b135bcd Rename map_as_vecN to with_vecN
This brings the method names into line with standard Rust nomenclature, for example `extra::rc::RcMut::{with_borrow, with_mut_borrow}`.
2013-07-25 15:40:10 +10:00
Brendan Zabarauskas
5fecb8fc81 Generalise noise methods to take generic Dimensioned types 2013-07-25 12:57:14 +10:00
Brendan Zabarauskas
df3ce2935c Add general Dimensioned and SwapComponents impls 2013-07-25 12:55:57 +10:00
Brendan Zabarauskas
679db701c9 Impl ApproxEq for rotation matricies using macros 2013-07-25 12:38:43 +10:00