Commit graph

889 commits

Author SHA1 Message Date
Colin Sherratt
bc89f14250 Fix tests 2015-01-09 15:30:19 -07:00
Colin Sherratt
c0ce271e39 Updated to latest rustc 2015-01-09 15:06:45 -07:00
Colin Sherratt
c7270a9077 Update to latest rustc 2015-01-07 15:34:42 -07:00
Colin Sherratt
d6bb64fd65 Update for associated types changes 2015-01-04 18:56:01 -07:00
Connorcpu
22c2fe4755 Updated to rust nightly 2015-01-03 13:29:26 -08:00
Colin Sherratt
4bb12d6859 Switch to rustc_serialize 2014-12-26 16:18:29 -05:00
Jakob Fries
968adcd2cb Update to match latest Neg trait. 2014-12-21 18:28:59 +01:00
Connorcpu
43cfdd94ec Fixed macros with missing semicolons 2014-12-19 09:48:59 -08:00
Colin Sherratt
b0187ddeaa Update to match the latest std::ops::* traits 2014-12-17 02:16:13 -05:00
Pierre Krieger
888dd6b18e Update for rustc 2014-12-15 13:49:57 +01:00
Jameson Ernst
5726e6c7dc Add deriving Copy to all structs that would previously be inferred to be Copy
Remove use of deprecated Equiv trait
Remove unsed attributes
2014-12-12 17:06:52 -08:00
Jameson Ernst
12ec7318d0 Remove deprecated Float use from tests. 2014-11-24 20:24:04 -08:00
Jameson Ernst
08f9354efc Fix ambiguous trait call; Remove deprecated Float calls. 2014-11-24 20:04:34 -08:00
Colin Sherratt
876e23b8cd export PartialOrd 2014-11-21 02:26:59 -05:00
Corey Richardson
bcc4f11150 Merge pull request #142 from aepsil0n/vector_cast
Type-cast a vector component-wise
2014-11-20 10:46:30 -05:00
Eduard Bopp
4d2fb64482 Type-cast a vector component-wise
This allows one to e.g. cast a vector of f64s to an equivalent vector of f32s.
More generally this is allowed for arbitrary NumCast types.
2014-11-20 16:41:27 +01:00
Eduard Bopp
9f8580eeca Replace deprecated std::num traits
These traits are akin to the deprecated standard library traits (Zero, One,
Primitive) to keep everything running as before. However, for the long term a
better algebraic abstraction should be used/provided.
2014-11-20 16:28:02 +01:00
Martti Rannanjärvi
3ecf2eb5dd update to compile on nightly 2014-11-20 17:15:07 +02:00
Brendan Zabarauskas
1371f75165 Update for rustc 0.13.0-nightly
There are still some deprecation errors in the doc tests left
2014-11-16 01:59:43 +11:00
Sébastien Crozet
0bbefed4bc Improve the benchmark suite.
As a side effect, this adds `Rand` deriving to the benchmarked strucures.
2014-11-07 16:23:10 +01:00
Darkspear7
7ae16b3423 Removed constraints on ortographic projection function to allow bigger values for left, bottom, near than right, top, far. 2014-11-03 15:50:27 +02:00
Tomaka17
4fcfde13de fail! -> panic! 2014-10-30 10:11:33 +01:00
Eduard Bopp
666bb56670 Assertion macros for approximate equality
For sake of readability and consistency with the standard library macros
assert! and assert_eq!, the macros assert_approx_eq! and assert_approx_eq_eps!
have been implemented based on the ApproxEq trait.

Upon failure these macros yield readable error messages including the input
values and the tolerance (epsilon) used to determine their approximate
equality.

Resolves #131.
2014-10-23 10:22:34 +02:00
Colin Sherratt
0f0b960211 Added to_euler which allows moving from to and from euler coordinates.
I did not have much luck getting the old from_eular logic work the way I
expected so I updated the implementation to match my sources.

I believe this changed the order of the axis, I am unsure of what they were
before.
2014-10-13 21:05:49 -04:00
Colin Sherratt
aae8747595 Fix ortho projection matrix 2014-10-04 20:12:09 -04:00
Tomaka17
1b5da61ccb Update for rustc 0e784e168 2014-09-16 23:26:11 +0000 2014-09-18 16:19:26 +02:00
HeroesGrave
896735a2b0 updated to latest Rust 2014-08-30 12:00:34 +12:00
Jeanne-Kamikaze
6f0573c79a Added 'from_point_normal' 2014-08-26 17:08:24 +02:00
bachm
825f5f2975 deriving Encodable, Decodable for all structs 2014-08-23 14:34:33 +02:00
Erik Hedvall
cd5cdeacbf Removed duplicate Aabb3 re-export 2014-08-18 15:05:25 +02:00
Brendan Zabarauskas
379dc499ec Publicly re-export everything from the root crate
Closes #100
2014-08-16 14:53:54 +10:00
Brandon Waskiewicz
4f17d73f23 Add Ray2<>Aabb2 intersection impl 2014-08-13 20:51:51 -04:00
Brandon Waskiewicz
814b845de7 Update line intersection
*Change line<>line intersection to be ray<>line.
*Update tests accordingly
*Clean up and simplify intersection logic
2014-08-13 20:51:44 -04:00
Brendan Zabarauskas
3ff1eb583f Add fixed-length array conversions
Closes #111

`FixedArray::from_fixed` cannot yet be implemented due to  rust-lang/rust#16418
2014-08-11 21:10:38 +10:00
Brendan Zabarauskas
f93963919a Transition codebase to the new method names 2014-08-11 18:55:14 +10:00
Brendan Zabarauskas
325ebad75e Use more self-explanatory names for indexing methods 2014-08-11 17:02:25 +10:00
Brendan Zabarauskas
8999d88216 Remove deprecated functions from array traits 2014-08-11 16:54:39 +10:00
Brendan Zabarauskas
8e5500d581 Switch to cargo 2014-08-11 16:15:14 +10:00
Vyacheslav Zeronov
535b5aa01f Added Matrix3::from_diagonal
Useful for creation of scale matrices.
2014-08-08 13:46:25 +06:00
Aaron Jacobs
bfc8efff80 Fixes Matrix2::from_angle invocation and adds a test for the feature.
Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-08-05 22:28:03 -07:00
Corey Richardson
e9a1723ef4 Merge pull request #106 from atheriel/vecdocs
Add a tutorial of sorts for working with cgmath's vectors.
2014-08-03 04:29:49 -07:00
Brendan Zabarauskas
1e1f60379e Deprecate element and column accessors in favour of index operators
Also removes some unnecessary `clone` calls.
2014-07-30 04:06:31 +10:00
Aaron Jacobs
5c25683cfb Adds a tutorial of sorts for working with cgmath's vectors.
There are several runnable code examples that should compile when
using `make doctest`.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 23:05:15 -07:00
Aaron Jacobs
fddb3a7903 Implements the (mutable) index operator for vectors.
Again, this is possibly an oversight. The operators simply use the
mut_i() and i() methods which are demanded by the Array1<S> trait.

This means you may access the field `x` on a VectorN with vector[0]
syntax.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 22:37:49 -07:00
Aaron Jacobs
7e81b258a9 Implements division and remainder operators for vectors.
This might have been an oversight at one point. Although the `rem_v`
and `div_v` methods are available for vectors, the actual operators
were not.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 22:21:58 -07:00
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