Nathan Stoddard
9a20f1031c
Declare vector constructors to be const
...
This makes it easier to create vectors in constants.
2019-01-12 14:53:20 -08:00
Bastien Orivel
036604ed49
Update some dependencies and bump version
2018-12-28 21:01:18 +01:00
Vlad Shcherbina
5512b6a0f7
[breaking] Move lerp() from InnerSpace to VectorSpace
...
Because it does not require dot product.
Along the way, fix the comment.
Fixes #471 .
2018-11-22 17:43:21 +03:00
Lukas Kalbertodt
e58bd7b878
Fix links to OpenGL API in docs
...
Those links were broken before, since the [] and () part were split
into two different lines. This also caused warnings on nightly, which
are now fixed.
2018-07-11 10:56:06 +02:00
Victor Koenders
bd88d9e93f
Fixed a compiler issue with the 'simd' feature
2018-06-08 14:35:12 +02:00
Victor Koenders
cdb0e8c8a1
Bumped rand and fixed compiler issues
2018-06-08 13:39:02 +02:00
Alex Butler
a3965d414d
Update approx -> 0.2
2018-05-23 12:43:52 +01:00
Richard Dodd
2a7e2ebda3
Fix simd
2018-04-29 17:04:49 +01:00
Richard Dodd
f8e92ed327
Add is_finite to array and quaternion
2018-04-29 14:21:42 +01:00
Richard Dodd
f82e421e2c
Fix for simd
2018-04-28 15:09:45 +01:00
Richard Dodd
4fede94df5
Add is_finite method to vectors and matrices.
...
This method is useful in debug to error early when some kind of
singularity is encountered.
2018-04-28 11:34:45 +01:00
Osspial
def53ca371
Fix some documentation
2018-03-16 16:32:46 -04:00
Osspial
34da833e39
Add map functions to points and vectors
2018-01-20 23:54:59 -05:00
Osspial
d1cd15a45b
Implement ElementWise for PointN
2018-01-05 15:09:12 -05:00
Brendan Zabarauskas
574dd3b972
Run rustfmt on most files
2018-01-03 13:16:40 +11:00
Brendan Zabarauskas
68b9052be1
Remove experimantal must_use annotations
2018-01-03 12:41:43 +11:00
Aceeri
fe8ec2beb9
Fix docs for unit_z on Vector3
2017-12-03 17:57:37 -08:00
Martin Lindhe
2acb4a968a
fix some typos
2017-11-19 13:30:15 +01:00
Brendan Zabarauskas
43a6b2be8c
Merge pull request #426 from Osspial/point_ops
...
Add vector subtraction for all points
2017-10-23 23:11:41 +11:00
G. Endignoux
d1e6cc4a03
Add Matrix4::look_at_dir ( fix #433 ).
2017-10-23 12:40:35 +02:00
Osspial
0a9c51da82
Fix incorrect operator in sub_assign impl
2017-10-06 00:20:38 -04:00
Brendan Zabarauskas
ccc81b4760
Merge pull request #432 from elrnv/swizzle
...
Swizzle Operators
2017-10-02 09:13:07 +11:00
Egor Larionov
76f00b7941
Extend swizzles to increase the dimension of a vector.
...
For example this is now valid:
```
let p2 = Point2::new(1.0, 2.0);
let p3 = p2.xyx(); // producing Point3 { x:1.0, y:2.0, z:1.0 }
```
2017-09-30 15:09:03 -07:00
Egor Larionov
cc7047555d
Complete the list of generated swizzle operators.
2017-09-30 14:41:17 -07:00
Egor Larionov
985db6b604
Initial implementation of swizzle operators using a build script that generates
...
a macro, which is included in macros.rs and subsequently used to implement
swizzle operators in vectors and points
2017-09-30 01:38:03 -07:00
Simon Rönnberg
8343e40b48
Adding inverse transformation of a vector.
2017-09-28 22:32:23 +02:00
Brendan Zabarauskas
3543ac0274
Merge pull request #427 from Osspial/cast_option
...
Modify cast functions to return Option
2017-08-22 19:32:57 +10:00
Brendan Zabarauskas
bba6285f4d
Merge pull request #420 from DataAnalysisCosby/master
...
Added project_on to InnerSpace
2017-08-22 19:31:07 +10:00
Matthew Plant
bc9c5b7f79
Added project_on to InnerSpace
2017-08-21 13:47:15 -07:00
Osspial
bd1b2667bd
Fix building with SIMD enabled
2017-08-16 16:47:45 -04:00
Osspial
a6abd5bf02
Modify cast() functions to return Option
2017-08-16 16:21:51 -04:00
Osspial
b2b715c020
Add vector subtraction bound to EuclideanSpace
2017-08-10 18:50:11 -04:00
Osspial
66ee40e4c7
Re-export num_traits::Bounded
2017-08-09 23:47:35 -04:00
Osspial
4580cb3aca
Add Sub and SubAssign <Vector> for all Points
2017-08-09 14:12:51 -04:00
Osspial
6981d0cacd
Implement Bounded for angles
2017-08-08 19:17:16 -04:00
Osspial
1e98ef4dd4
Add Bounded impl for Vectors and Points
2017-08-08 19:11:14 -04:00
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
Brendan Zabarauskas
06a58e006b
Remove AffineMatrix3
2016-05-11 23:09:34 +10:00
Mark Hintz
ec3385ceab
Remove unused imports
...
Fixes compile warnings
2016-05-11 13:21:56 +02:00
Brendan Zabarauskas
266f4c1d0d
Fix export warning
2016-05-10 21:55:20 +10:00
Brendan Zabarauskas
65e744c8cd
Remove self inversion methods
2016-05-10 21:55:11 +10:00
Brendan Zabarauskas
a4763647ec
Merge pull request #339 from bjz/num-traits
...
Re-export num-traits crate
2016-05-09 22:31:51 +10:00
Mark Hintz
074cb2c36f
Change the name of methods on the Transform trait to avoid clashes
...
Transform::invert becomes Transform::inverse_transform, and Transform::invert_self becomes Transform::to_inverse. Tests passing for me now
2016-05-01 14:59:38 +02:00
Mark Hintz
0a78173e2b
impl Transform (2 dimensional) for Matrix3
2016-04-28 16:37:36 +02:00
Mark Hintz
a3539483b6
impl Transform (3 dimensional) for Matrix3
2016-04-28 16:37:36 +02:00
Mark Hintz
ab1d3d8622
imple Transform (and Transform3) for Matrix4
...
The change in transform.rs is to disambiguate which invert function is used
2016-04-28 16:37:36 +02:00
Mark Hintz
c32135a5d9
Move the From impls together
2016-04-28 16:37:36 +02:00
Mark Hintz
808a17fc22
implement from_angle{x, y, z} and from_axis_angle for Matrix4
...
All are duplicates of the same functions for Matrix3, with extra parameters added in to make up the full 4x4
2016-04-28 01:03:33 +02:00
Mark Hintz
c8b1d4b498
Minor documentation fix - cotangent and secant were swapped
2016-04-27 17:10:57 +02:00
Brendan Zabarauskas
6b48236cb6
Inherit Zero and One for core structural traits
2016-04-25 15:26:56 +10:00
Brendan Zabarauskas
54adacc2a8
Re-export Zero and One via structure module
2016-04-25 11:43:28 +10:00