Colin Sherratt
29104f2375
Add a benchmarking suite for matrix.
2013-11-26 00:39:39 -05:00
Brendan Zabarauskas
9f39bf67b2
Formatting cleanups
2013-11-09 12:15:51 +11:00
Brendan Zabarauskas
c916b65c6f
Merge pull request #8 from kvark/master
...
Transform::concat implemented
2013-11-08 06:34:51 -08:00
jeff
fd7003dc98
cleaning up from upstream merge
2013-11-06 18:43:56 -08:00
jeff
a53f9913a8
ray-plane and ray-sphere intersection
2013-11-06 18:29:08 -08:00
Brendan Zabarauskas
9e053f22f8
Merge branch 'master' of https://github.com/kvark/cgmath-rs into kvark-master
...
Conflicts:
src/tests/plane.rs
src/tests/vector.rs
2013-11-03 14:59:28 +11:00
Jeff Belgum
7a709525d5
change float to f64
2013-11-02 10:20:35 -07:00
kvark
42e3801715
Implemented missing rotation functions (rotate_point, rotate_ray)
2013-11-02 11:16:18 -04:00
kvark
c13ebf57ab
Added transform_as_point
2013-11-02 10:18:37 -04:00
kvark
efd3403bf2
ToStr implemented for transform::Decomposed
2013-11-02 09:51:20 -04:00
kvark
7f39520aa1
Transform::concat implemented
2013-11-02 09:11:13 -04:00
kvark
364d959784
Fixed tests to compile; added Point homogeneous transform & test; added Transform inversion & test; Implemented Transform for AffineMatrix3
2013-11-01 19:42:09 -04:00
kvark
04b257e217
Homogeneous transformations added for Point3; extend/truncate added for vectors; Transform3 is implemented for AffineMatrix3
2013-11-01 10:32:29 -04:00
kvark
6dd06103fc
Generalized transform trait over any-dimensional vectors and points
2013-11-01 08:29:01 -04:00
kvark
0c41aa3951
Rotation is generalized over dimensions
2013-11-01 07:34:39 -04:00
kvark
d81157fba5
Generalized Ray & Transform over dimensions
2013-11-01 07:09:57 -04:00
kvark
53ad086e5e
Enabled Transform3, implemented it for Transform3D
2013-10-31 17:36:21 -04:00
Brendan Zabarauskas
c283c9d1e7
Add trait for accessing the pointer to the first element of a type
2013-10-21 11:30:30 +11:00
Brendan Zabarauskas
ff3522a711
Replace usages of fmt! with format!
2013-10-20 01:00:44 +11:00
Brendan Zabarauskas
7fd9f582b6
Make point structs public
2013-10-14 22:48:45 +11:00
Brendan Zabarauskas
66a329c591
Initial commit of transform module
2013-10-13 11:00:51 +11:00
Brendan Zabarauskas
77aeff0785
Rename Rot->Basis
2013-10-13 11:00:07 +11:00
Brendan Zabarauskas
70d48ed37b
Force the client to perform Degree->Rad conversions by taking Rad parameters instead of generic Angles
...
This should make the overhead of conversions evident to the client.
2013-10-13 10:52:21 +11:00
Brendan Zabarauskas
3862e867ba
Update to latest Rust
2013-10-13 06:56:05 +11:00
Brendan Zabarauskas
2ac675ae10
Fix slerp
2013-10-13 06:55:26 +11:00
Brendan Zabarauskas
cae2839a3b
Merge pull request #2 from kvark/master
...
Fixed projection.to_mat4 checks
2013-10-10 05:46:07 -07:00
kvark
049b05fe3f
Fixed projection.to_mat4 checks
2013-10-09 04:35:51 -04:00
Brendan Zabarauskas
e4e9b6909e
Reduce the number of rotation types, shifting some of the functionality to the quaternion and matrix constructors.
2013-09-30 14:30:40 +10:00
kvark
e056f7d43e
Ported to Rust-0.8
2013-09-27 06:22:33 -04:00
Brendan Zabarauskas
f968784b9b
Add matrix tests
2013-09-20 02:44:06 +10:00
Brendan Zabarauskas
4c8e1445c1
Fix bug with macro expansion
2013-09-20 02:43:33 +10:00
Brendan Zabarauskas
34af62601b
Use .fold for comp_min and comp_max
2013-09-19 20:44:26 +10:00
Brendan Zabarauskas
0772d14d59
Rename Mat{2,3,4}::ident -> Mat{2,3,4}::identity
2013-09-19 20:43:36 +10:00
Brendan Zabarauskas
8ed39f3982
Clean up usages of std::num::cast
2013-09-19 14:57:36 +10:00
Brendan Zabarauskas
279aa261a8
Add frustum constructors and use to implement Projection->Frustum conversions
2013-09-19 14:56:40 +10:00
Brendan Zabarauskas
8c17832bf8
Use match instead of cond!
2013-09-18 20:52:07 +10:00
Brendan Zabarauskas
39234b7089
Add Plane::from_points test
2013-09-18 12:54:41 +10:00
Brendan Zabarauskas
46636ca8ef
Remove glob import
2013-09-18 11:37:06 +10:00
Brendan Zabarauskas
8519e0fb8e
Add Plane::from_points constructor and impl ApproxEq for Plane
2013-09-18 11:36:41 +10:00
Brendan Zabarauskas
d2dcd51428
Remove vector! macro
2013-09-18 11:35:33 +10:00
Brendan Zabarauskas
efbe4b199b
Simplify trait bounds
2013-09-17 18:50:42 +10:00
Brendan Zabarauskas
eade6cc18f
Implement inversions for AngleAxis rotations
2013-09-17 18:45:31 +10:00
Brendan Zabarauskas
7eb8bc50c9
Remove util module
2013-09-17 18:43:20 +10:00
Brendan Zabarauskas
8a184c39b4
Add equivalence test for angles
2013-09-17 17:02:45 +10:00
Brendan Zabarauskas
3449fe8a73
Add bisection method for angles
2013-09-17 16:40:29 +10:00
Brendan Zabarauskas
8df5b14477
Add some angle constants and normalisation methods
2013-09-17 15:28:27 +10:00
Brendan Zabarauskas
52e1f0819c
Follow rustic naming conventions
2013-09-17 14:39:18 +10:00
Brendan Zabarauskas
172c60277f
Flesh out Rotation{2, 3} traits, and impl for some types
2013-09-17 14:38:25 +10:00
Brendan Zabarauskas
03a5e94a60
Add more vector tests
2013-09-16 16:39:45 +10:00
Brendan Zabarauskas
44567f6103
Add Array::each_mut method and use it instead of iterators
2013-09-14 13:40:38 +10:00
Brendan Zabarauskas
59a46bc7ab
Rename Array::zip to Array::fold
...
(woops!)
2013-09-14 12:06:02 +10:00
Brendan Zabarauskas
1a94e8d06e
Add wrapper function for Array::build
2013-09-14 11:58:19 +10:00
Brendan Zabarauskas
68e03cd392
Remove Array::{map, bimap} functions
2013-09-14 11:53:12 +10:00
Brendan Zabarauskas
ce5b2e9243
Add some method impls for the Matrix trait
2013-09-14 11:39:51 +10:00
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
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