Commit graph

844 commits

Author SHA1 Message Date
OGINO Masanori e5f6d827da Remove crate_id.
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-07-29 11:16:15 +09:00
Brendan Zabarauskas 7ca114d5aa Merge pull request #103 from atheriel/rot_ex
Add a rotation example to the documentation.
2014-07-28 09:06:05 +10:00
Aaron Jacobs 993efcc7a8 Add a good rotation example to Basis2.
This ads an example (the first?) on a useful feature of cgmath, and
also a Make target for running just the examples in the docs. This
may come in useful if more examples are added.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-23 20:25:42 -07:00
Ben Foppa 784b9d8fa1 Fix inverted asserts 2014-07-18 11:55:53 -04:00
Brendan Zabarauskas 61a6810324 Merge pull request #96 from atheriel/vecmap
Add a map() method for vectors.
2014-07-05 19:24:12 -07:00
Aaron Jacobs d58fac1117 Use pointers for the column map.
Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-04 17:37:24 -07:00
HeroesGrave 047dbefd6f remove lifetime notations causing errors 2014-07-05 12:15:10 +12:00
Aaron Jacobs b0f706a96e Adds map() to Array1, and provides implementations for Vectors,
Points, Matrices, and Quaternions.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-02 21:34:26 -07:00
Colin Sherratt 1cf9f8d4ef - added translate to Matrix
- fixed spaces and tabs
2014-06-28 16:53:05 -04:00
Erick Tryzelaar 1c5b6f0b7a Update to compile with rust (9f8149e) 2014-06-25 21:26:15 -07:00
Corey Richardson 82529eec25 Update transform test to use Decomposed instead of Transform3D 2014-06-24 00:25:57 -07:00
Corey Richardson c9bdf838a5 Update for Cargo 2014-06-23 23:49:29 -07:00
Brendan Zabarauskas 1382c2ea4b Merge pull request #89 from bjz/transform
Remove Transform3D type
2014-06-15 11:19:15 -07:00
Brendan Zabarauskas f7364ce42a Clean up formatting 2014-06-15 11:18:31 -07:00
Brendan Zabarauskas b8996e124d Remove Transform3D type
Closes #86
2014-06-15 11:18:17 -07:00
Brendan Zabarauskas 1f9430399e Fix transmute build failure
Closes #87
2014-06-15 10:57:09 -07:00
Colin Sherratt b7a3a31156 Fix inverse matrix4, base it on Cramer's rule. 2014-06-05 15:53:23 -04:00
Colin Sherratt 25d67c7ec7 Added matrix that inverted incorrectly as part of #83. 2014-06-05 15:53:23 -04:00
ozkriff a850e37424 Updated to latest Rust: PartialEq, PartialOrd 2014-06-02 12:18:05 +04:00
ozkriff 63e53b1592 Removed 'extern crate debug', added fmt::Show for Angle 2014-05-28 21:53:45 +04:00
ozkriff 03005604b4 Updated to latest Rust: Added 'extern crate debug;' 2014-05-28 21:27:34 +04:00
ozkriff 1805c5b35a Made 'array' module public 2014-05-28 21:20:23 +04:00
Brendan Zabarauskas 3559ab2e35 Simplify type signatures and make function implementations more strait-forward
This results in more code duplication, but the resulting type signatures are much simpler and the implementations are far easier to understand. It should be easier for llvm to optimise things too, seeing as closures are not used.
2014-05-27 19:39:14 -07:00
Brendan Zabarauskas 5716dce205 Add matrix operator tests 2014-05-26 11:26:27 -07:00
Brendan Zabarauskas efe8cd9960 Fix matrix operator overloads
Closes #70
2014-05-26 11:26:26 -07:00
Brendan Zabarauskas d4ce9c7613 Clean up numeric traits 2014-05-26 10:31:55 -07:00
Corey Richardson ad970b94ec Expand crate documentation 2014-05-25 14:35:51 -07:00
Corey Richardson 322a5d0c38 AABB docs 2014-05-25 13:52:01 -07:00
Corey Richardson bf2cdfade3 Document Transform 2014-05-25 04:17:26 -07:00
Corey Richardson 27488b0dbc Touch up docs for Rotation 2014-05-25 04:10:44 -07:00
Corey Richardson 7416e5ce14 Touch up Ray docs 2014-05-25 03:17:57 -07:00
Corey Richardson 9828870380 Document Point 2014-05-25 03:09:33 -07:00
Corey Richardson c9573ad511 Touch up the Plane docs 2014-05-25 03:04:44 -07:00
Corey Richardson 8fa0f67333 Add some docs for Angle 2014-05-25 03:00:52 -07:00
Corey Richardson d6c0d1d65d Minor doc cleanup for Vector 2014-05-25 02:43:51 -07:00
Corey Richardson ed9e5d0929 Cleanup Quaternion docs 2014-05-25 01:29:19 -07:00
Corey Richardson fd2138bd88 Document Matrix
And remove `is_rotated`
2014-05-25 01:01:02 -07:00
Corey Richardson 5b1d1a0f01 Document Array 2014-05-24 18:22:23 -07:00
ozkriff f6a27cddba Updated for latest Rust 2014-05-17 00:11:27 +04:00
Brandon Waskiewicz 8ff2598dd9 Add line segment shape and functions
Create a new line segment struct that contains two Points in either
2D or 3D space.

Also create an implementation of the Intersect trait for testing
whether two line segments intersect, and where.
2014-05-13 21:39:38 -04:00
Luqman Aden d85dba915f Update crate attribute. 2014-05-12 21:09:16 -04:00
Luqman Aden 2a1ae1348c std::cast -> std::mem 2014-05-12 21:04:01 -04:00
Corey Richardson 9d618c37b3 Merge pull request #63 from xales/add-totaleq
Add deriving TotalEq for Vector.
2014-04-25 06:11:15 -04:00
Jake Greenfield 4a9999b11d Add deriving TotalEq for Vector. 2014-04-25 05:54:00 -04:00
ozkriff 8f018bfe0d Updated to latest Rust 2014-04-24 22:25:26 +04:00
Brendan Zabarauskas a1f23da32b Update bench to latest Rust 2014-04-14 12:16:25 +10:00
Brendan Zabarauskas 7c11ec250a Update formatting 2014-04-14 12:00:48 +10:00
Brendan Zabarauskas 64ae5fbd9a {Vec, Mat, Quat}->{Vector, Matrix, Quaternion}
The full names provide consistency with the other types. Also, Vec is now a type declared in libstd - this will reduce confusion.
2014-04-14 12:00:48 +10:00
ozkriff 3ee67019dd Updated to latest Rust: math changes 2014-04-02 13:24:04 +04:00
ozkriff 18fe0e74b5 Updated to latest Rust: priv/pub 2014-04-01 15:00:17 +04:00
ozkriff 01582f5649 Updated to latest Rust: std::vec -> std::slice 2014-03-21 14:18:04 +04:00
ozkriff 83943cd5b5 Replaced partial_{min,max} funcs with PartOrdPrim trait 2014-03-19 13:18:59 +04:00
ozkriff 1107ab8e6b aabb.rs: _{min,max} -> partial_{min,max} 2014-03-17 23:11:04 +04:00
ozkriff c026f520e1 Fixed warnings 2014-03-17 16:14:39 +04:00
ozkriff 385c3d7de8 Udated to latest Rust: TotalOrd/min/max changes 2014-03-17 15:13:54 +04:00
ozkriff 8868c793fe Updated to latest Rust 2014-03-14 12:27:24 +04:00
ozkriff 77d9a537fd Updated to latest Rust: Implemented Show for Mat{2,3,4} 2014-03-03 13:34:03 +04:00
ozkriff eb40fbce2a Updated to latest Rust: ToStr -> fmt::Show 2014-02-25 12:56:22 +04:00
ozkriff e5ec803fa5 Updated to latest Rust 2014-02-24 10:33:31 +04:00
ozkriff 141c4a8684 Updated to latest Rust 2014-02-22 01:44:56 +04:00
Colin Sherratt 4bcb1a5406 changed extern mod to extern crate 2014-02-15 22:46:33 -05:00
Colin Sherratt 5872ef347e Temporary workaround for the fact that std::num::Orderable is now removed. 2014-02-15 17:22:21 -05:00
Brendan Zabarauskas 11f8e29e17 Add Makefile and enable rust-ci doc export 2014-02-14 07:18:10 +11:00
Risto Saarelma fb03e2a660 Arguments directly used to construct AABB passed by value 2014-02-12 08:56:39 +02:00
Risto Saarelma a391d4450b Don't use abbrevations for the Aabb field names 2014-02-09 10:28:58 +02:00
Risto Saarelma 57ff382cf1 to_str for Aabbs 2014-02-07 08:50:10 +02:00
Risto Saarelma 907165075c Translate and scale methods for AABB 2014-02-07 08:48:46 +02:00
Risto Saarelma ff9fc767d4 Translate method for AABBs 2014-02-07 08:48:46 +02:00
Risto Saarelma 6ac1f09750 Utility methods for AA boxes 2014-02-07 08:48:46 +02:00
Rich Lane 17b9f5c066 replace fmt::Default with fmt::Show 2014-02-02 20:51:43 -08:00
Brendan Zabarauskas 0c903a7ec5 Merge pull request #38 from rsaarelm/master
Axis-aligned boxes use top and bottom corners
2014-01-30 22:43:44 -08:00
Risto Saarelma cdcae58c02 Axis-aligned boxes use top and bottom corners
Fixes issue #35.
2014-01-30 21:43:36 +02:00
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
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