Commit graph

706 commits

Author SHA1 Message Date
Boden Garman
3c9a6a531d Fixed Mat4::look_at 2013-12-07 14:36:11 +11:00
Brendan Zabarauskas
8d4a06005c Add Mat4::look_at
Hopefully I got this right...
2013-12-03 20:11:39 +10:00
Boden Garman
908d3c2800 Fix ortho asserts 2013-12-01 17:46:05 +11:00
Brendan Zabarauskas
b87aec64ac Merge pull request #11 from csherratt/mat4_opt_only
Improved the performance of mat4 multiply.
2013-11-27 15:34:50 -08:00
Colin Sherratt
810445d536 update to compile on latest rustc 2013-11-27 13:26:57 -05:00
Colin Sherratt
149c781e81 Documented the mat4 multiply optimization. 2013-11-27 12:20:13 -05:00
Colin Sherratt
e4689ce22b Improved the performance of mat4 multiply. 2013-11-26 12:29:07 -05:00
Colin Sherratt
c99ef02be1 Pad out the benchmarks to make the performance difference more pronounced.
This also speed the benchmarks up since the bench suite has trouble with
benchmarks that less then 100ns in length.
2013-11-26 03:14:48 -05:00
Colin Sherratt
bfd2729c29 cleaned up formatting in matrix.rs in both test and bench 2013-11-26 02:30:30 -05:00
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