Commit graph

1031 commits

Author SHA1 Message Date
harrison 42cb73de8e fixed len for simd 2017-07-31 16:54:40 -04:00
harrison 9b84d804ae added len function to Array 2017-07-31 16:13:15 -04:00
Brendan Zabarauskas 343361a0d6 Merge pull request #418 from kvark/mint2
Mint flavour integration
2017-07-30 22:47:59 +10:00
Owen Sanchez 51b3d2d477 Add cast method to Quaternion 2017-07-13 12:24:30 -07:00
Dzmitry Malyshau d72fc08826 Mint flavour 2017-06-06 18:07:38 -04:00
Dzmitry Malyshau 7a21125c55 Refined serde dependencies 2017-06-06 16:48:55 -04:00
Dzmitry Malyshau 087336d0c0 Refinded simd feature 2017-06-06 16:44:13 -04:00
Brendan Zabarauskas a0e370ff7b Fix matrix inversions for small determinants
Closes #210
2017-05-13 18:51:59 +10:00
Brendan Zabarauskas b6199ca702 Remove PartialOrd
Closes #396

This removes `PartialOrd` and makes `BaseNum` and `BaseFloat` simple trait aliases. This should allow more types to be used as parameters in the cgmath data types at the expense of removing `Array::min` and `Array::max`.
2017-05-06 17:12:52 +10:00
Brendan Zabarauskas cb31bbdef6 Clean up some type projections 2017-05-02 21:15:32 +10:00
kennytm f524d40403
Workaround rust-lang/rust#41478.
Replace all `impl .. for Struct<<A as Angle>::Unitless>` by
`Struct<A::Unitless>`. This allows -Zsave-analysis to work on nightly, and
I think this is more readable too.
2017-05-02 01:15:46 +08:00
Brendan Zabarauskas ff2d15e0ff Implement Sum for Angle 2017-04-26 21:56:02 +10:00
Brendan Zabarauskas 77260934a1 Clean up Sum and Product impls
This is for consistency with other impls
2017-04-26 21:56:02 +10:00
Ben Boeckel 240559b941 iter traits: impl iter::{Sum, Product}
This adds `Sum` trait for the `MatrixN`, `VectorN`, `Quaternion`
structures and the `Product` trait for `MatrixN`, `BasisN` and
`Quaternion`.

It also add constraints on the `Rotation` and `SquareMatrix` to require
the `Product` trait and `VectorSpace` to require `Sum`.
2017-04-25 11:01:18 -04:00
Eyal Kalderon 6717b4714b Update serialization to serde v1.0 2017-04-22 18:31:50 -04:00
Brendan Zabarauskas 78555ec780 Drop rustc-serialize support
According to [Rust release milestone predictions](https://internals.rust-lang.org/t/rust-release-milestone-predictions/4591?u=dtolnay), rustc-serialize is scheduled to be deprecated in next month's beta release of Rust.

Closes #395
2017-04-16 16:35:24 +10:00
Brendan Zabarauskas b73180e908 Workaround compilation error on nightly rust 2017-04-14 23:36:02 +10:00
Brendan Zabarauskas 613d2b7f23 Merge pull request #400 from andystanton/fix_between_vectors_for_opposite_vectors
Fix between_vectors for opposite vectors
2017-04-14 22:10:33 +10:00
andystanton cd9e873739 Fix between_vectors for opposite vectors 2017-04-14 00:23:02 +01:00
Magnus Bergmark 1c3d30a1e8
Bump to serde 0.9 2017-04-04 23:47:01 +02:00
Brendan Zabarauskas 920e47526d Merge pull request #389 from bitshifter/serde_derive
Use serde_derive instead of serde_macros.
2017-03-21 17:13:13 +11:00
Dimitri Sabadie 06bf49eee5 Added dots at end of some phrases. 2017-03-21 00:10:38 +01:00
Dimitri Sabadie 530895993f or or -> or a. 2017-03-21 00:03:10 +01:00
Dimitri Sabadie b9f46af1ef subeset -> subset. 2017-03-21 00:00:45 +01:00
Brendan Zabarauskas dcb83e0ab7 Merge branch 'master' into serde_derive 2017-03-17 22:38:44 +11:00
Luxko 194c4770e9 add basic SIMD support for Quaternion<f32> 2017-03-12 20:44:58 +08:00
Luxko 09c8727c7c Add newline at end of file 2017-03-12 15:59:06 +08:00
Luxko 68d1d27222 Add SIMD support for determinant and inverse
Also:
- Change the travis script: no use `cargo bench`ing in beta or stable.
- Add bench test for Matrix4's determinant().
- clean code a bit
2017-02-25 20:31:38 +08:00
Luxko d45536f1bd Clean up a bit 2017-02-25 07:42:15 +08:00
Luxko 64924b954d [WIP]Add basic SIMD support
- Add an opt-in SIMD support for the module. The feature requires crate
`simd` and specialization, thus can only be enabled under nightly. Under
the given benchmark certain operations were able to be up to 60% faster.
Currently the supported types as well as operations are highly limited.
- Clean up some deadly tests. Also add new tests for SIMD.
2017-02-25 07:26:11 +08:00
Cameron Hart 4f13a96ae6 Use serde_derive instead of serde_macros. 2016-12-18 13:13:48 +11:00
Marckvdv d2d35b808b Added component wise casting number for the matrix and point types. 2016-10-03 12:51:41 +02:00
Mark Hintz f475822d9b Removes #[repr(packed)] from all structs where it was specified.
This is intended as a partial fix for #375. It doesn't also remove #[repr(C)],
since it's a bit unclear whether that's necessary.
2016-08-25 15:41:39 +02:00
Andrew Dudney f43e2e13c7 Converted serde serialization to new style 2016-08-23 12:23:07 -06:00
Andrew Dudney 0f8a96d9b8 Changed over to the approx crate. Currently breaks rotation's doc tests. 2016-08-22 09:21:22 -06:00
Andrew Dudney 3d3b9c96ca Moved angle types to tuple structs 2016-07-31 20:40:31 -07:00
Andrew Dudney 17d98af64f Made uses of Rad<S> more generic using Into<Rad<S>> 2016-07-26 17:30:05 -07:00
Brendan Zabarauskas 3e6974baa8 Merge pull request #364 from kvark/arc
Quaternion closest arc
2016-07-06 13:34:28 +10:00
Dzmitry Malyshau 55c212bde1 Styling fixes to the quaternion arc code 2016-07-05 21:30:13 -04:00
Dzmitry Malyshau f555074a44 Quaternion closest arc 2016-07-03 00:23:46 -04:00
Dzmitry Malyshau ec2ad0061b Fixed Decomposed::concat 2016-07-03 00:21:02 -04:00
Brendan Zabarauskas 7147180936 Merge pull request #359 from jminer/rotation-fixes
Rotation fixes
2016-05-18 00:19:43 +10:00
Romain Vaillant 118ec262fd Adds ApproxEq for Decomposed 2016-05-16 15:22:37 +02:00
Romain Vaillant cdbb9294e0 Adds serde support 2016-05-16 14:16:59 +02:00
Romain Vaillant f3673a1d4c makes rustc-serialize optional 2016-05-15 14:48:57 +02:00
Jordan Miner c11371794f Fix Euler angle to matrix conversion
The equations were written with rows horizontally instead of vertically
and some signs were wrong.
2016-05-12 01:28:16 -05:00
Jordan Miner b56119a42f Test converting axis angles to quaternions 2016-05-12 01:28:15 -05:00
Jordan Miner 467e87f3d3 Fix Euler angles to quaternion conversion and vise versa
Add tests that rotate a vector in all three axes, and tests to check
the axis rotation sequence.
2016-05-12 01:28:15 -05:00
Brendan Zabarauskas a1d8eaed10 Make Rotation trait depend on One 2016-05-12 08:36:34 +10:00
Brendan Zabarauskas 8518ce78e8 Remove transforma_as_point method 2016-05-12 08:31:56 +10:00