Commit graph

672 commits

Author SHA1 Message Date
Dzmitry Malyshau 21f10ee0ec Rotation2 and Rotation3 improved with from_* methods. Betwee_vecs implemented for all rotations. 2014-01-29 19:27:39 -05:00
Colin Sherratt fb13dc4566 Implement to_mat4 for Transform3D and quaternion
Add a translate builder for Transform3D
2014-01-28 22:10:38 -05:00
Brendan Zabarauskas 7435ae16bf Merge pull request #32 from rlane/iterbytes
derive IterBytes for all structs
2014-01-26 22:26:27 -08:00
Rich Lane f3e680fc34 derive IterBytes for vectors, points, and angles
It's useful to be able to have types like `Vec3<i32>` as hashtable keys.
2014-01-26 22:19:40 -08:00
Lennart e9fcf971da Fix comments on Quat::from_angle_{x|y|z} functions 2014-01-26 22:12:56 -08:00
Lennart ba71cb4a37 Fix quat::Quat::from_angle_{x|y|z}
These functions were broken due to mistakenly using the full angle theta
in one place instead of theta / 2. This resulted in non-unit
quaternions that definitely did not rotate things correctly.
2014-01-26 22:11:58 -08:00
Dzmitry Malyshau 1789f26ea1 look_at() implemented as a part of Transform trait 2014-01-25 17:26:06 -05:00
Brendan Zabarauskas 6b33f5d7e5 Remove unnecessary parentheses 2014-01-26 05:02:30 +11:00
Brendan Zabarauskas 337061bd82 Call rustc directly in .travis.yml 2014-01-26 05:02:19 +11:00
Brendan Zabarauskas c2054e4993 Reduce code duplication
We can now have multiple definitions in macros!
2014-01-24 03:13:53 +11:00
Brendan Zabarauskas ac991aaec0 Impl appropriate operators for implementors of Zero and One 2014-01-24 03:00:24 +11:00
Colin Sherratt e3183110ad Fix renamed structures:
VecIterator -> Items
	MutVecIterator -> MutItems
2014-01-19 21:04:48 -05:00
kvark 522d20ffe5 Fixed tests that used assert_approx_eq 2014-01-08 20:06:02 -05:00
kvark 2fdf34cd18 New ApproxEq replaced the one in std 2014-01-08 19:26:50 -05:00
Corey Richardson 2992fd5f51 pkgid and make dead code public 2013-12-17 20:44:28 -05:00
Jarrett Billingsley 234634695d Changed 'self lifetime to 'a 2013-12-12 00:26:01 -08:00
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