Brendan Zabarauskas
00db4f17b4
Impl comp_add and comp_mul using Array::zip
2013-09-14 10:54:19 +10:00
Brendan Zabarauskas
28dd7963ba
Add trait for defining intersections
2013-09-10 14:51:14 +10:00
Brendan Zabarauskas
6e3860f232
Remove util::half
2013-09-10 14:49:53 +10:00
Brendan Zabarauskas
f95426173a
Rename Plane3->Plane
2013-09-08 00:43:32 +10:00
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