Commit graph

67 commits

Author SHA1 Message Date
bors[bot]
f69e781b8f
Merge #491
491: Fix Matrix2::look_at, add look_at_stable r=kvark a=blargg

## Changes

1. Fixes `Matrix2::look_at`
2. Adds tests for `look_at`
3. Adds a new function, `look_at_stable`

## Notes
I added a new function for 2d look at rotation. `look_at` is a bit weird in practice for 2d. For example, if you are making a basis matrix to orient a 2d character to look at a point, `look_at` will flip the character as they rotate past `up` or `-up` vectors. This is the best match for what look_at is supposed to do, I think.

`look_at_stable` will not flip based on orientation, you just pass in which way to flip. This is a bit easier to use to rotate 2d characters.

`look_at_stable` could have a better name. I think we can also consider removing the flip param, and just let the user flip the matrix with a transform later.

Co-authored-by: blargg <tomjankauski@gmail.com>
2019-09-03 22:13:25 +00:00
blargg
dd9f08ccee Fix Matrix2::look_at, add look_at_stable
Fix bug in look_at

Use the up vector to determine turn direction

Add look_at_stable

Matrix2::look_at calls look_at_stable
2019-09-03 17:02:11 -05:00
Norbert Nemec
935f389983 replace deprecated try! macro by ? operator 2019-09-01 15:16:03 +02:00
Alex Butler
a3965d414d
Update approx -> 0.2 2018-05-23 12:43:52 +01:00
Brendan Zabarauskas
574dd3b972 Run rustfmt on most files 2018-01-03 13:16:40 +11:00
Dzmitry Malyshau
7a21125c55 Refined serde dependencies 2017-06-06 16:48:55 -04: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
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
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
Dimitri Sabadie
06bf49eee5 Added dots at end of some phrases. 2017-03-21 00:10:38 +01:00
Dimitri Sabadie
b9f46af1ef subeset -> subset. 2017-03-21 00:00:45 +01: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
7147180936 Merge pull request #359 from jminer/rotation-fixes
Rotation fixes
2016-05-18 00:19:43 +10: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
b56119a42f Test converting axis angles to quaternions 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
65e744c8cd Remove self inversion methods 2016-05-10 21:55:11 +10:00
Brendan Zabarauskas
0259acb87f Switch to an Euler angle type for defining rotations 2016-04-23 16:56:07 +10:00
Brendan Zabarauskas
8dd2874b59 Move traits into common module 2016-04-19 20:51:40 +10:00
Brendan Zabarauskas
b4063ea72a Rename Point to EuclideanSpace 2016-04-08 19:56:30 +10:00
Brendan Zabarauskas
b5f8e7646b Rename Point::Vector to Point::Diff 2016-04-08 15:35:11 +10:00
Brendan Zabarauskas
2b36ea2ef9 Rename Vector trait to VectorSpace and EuclideanVector to InnerSpace 2016-04-08 08:46:35 +10:00
Brendan Zabarauskas
2cd6f402df Move the dot method onto EuclideanVector
The Vector and EuclideanVector traits roughly line up with the concept of vector spaces and inner spaces respectively. It makes more sense to group `dot` with the other methods that depend on it.
2016-04-04 20:45:37 +10:00
Brendan Zabarauskas
429d2659fe Improve fmt::Debug impls 2015-12-29 21:50:43 +11:00
Brendan Zabarauskas
1d886f6197 Add all permutations of matrix ops, and remove operator methods
Completes #247
2015-12-21 21:02:40 +11:00
Brendan Zabarauskas
612be7fecc Move free trigonometric functions onto Angle trait 2015-12-13 23:51:00 +11:00
Brendan Zabarauskas
2dc0a4a43f Rename SquareMatrix::one to identity
Fixes #260
2015-12-06 19:36:38 +11:00
Brendan Zabarauskas
ab24f3f8fe Make Matrix trait work for matrices of arbritrary dimensions 2015-11-14 22:02:17 +11:00
Brendan Zabarauskas
178272da3d Make lots of methods take vectors and points by value 2015-11-09 20:18:02 +11:00
Brendan Zabarauskas
490997c93f Add an alias to Vector::Scalar in Point 2015-11-03 15:50:07 +11:00
Brendan Zabarauskas
89e656b1f6 Add comments noting rust bugs 2015-11-03 15:40:52 +11:00
Brendan Zabarauskas
669e43ab59 Make scalar type parametrs out of transform and rotation traits 2015-11-03 15:23:22 +11:00
Brendan Zabarauskas
0584bcac64 Make epsilon an associated type on ApproxEq 2015-11-03 14:00:39 +11:00
Brendan Zabarauskas
78f86a33cd Make vectors an associated type on Point 2015-11-03 11:32:15 +11:00
Brendan Zabarauskas
943a92e691 Remove collision types and traits from the library
Closes #244
2015-11-01 13:42:58 +11:00
Brendan Zabarauskas
b168c03174 Rename identity to one
Zero is the additive identity, so this disambiguates it
2015-10-01 18:56:31 +10:00
Brendan Zabarauskas
7a3f4f9e2d Fix formatting 2015-09-30 09:33:44 +10:00
Brendan Zabarauskas
5023b6c01e Consistently use associated functions throughout codebase 2015-09-30 09:32:25 +10:00
Tim Neumann
0469935161 fix rfc 1214 fallout 2015-09-12 13:07:22 +02:00
Pierre Krieger
1a6dc52e51 Remove ToQuaternion 2015-05-06 16:27:03 +02:00
Pierre Krieger
6ce250b10d Remove ToBasis2/ToBasis3 in favor of Into 2015-05-06 16:27:03 +02:00
Pierre Krieger
151c6c6e64 Replace as_matrix* by impl AsRef<Matrix 2015-05-06 16:27:02 +02:00
Pierre Krieger
8ab8d7551d Replace ToMatrix* by Into 2015-05-06 16:27:02 +02:00
Ryan Stewart
a058142a2c Get cgmath building in beta by removing remaining unstable feature use. Benching is unstable and therefore only available on nightly; removed from travis in the interim. 2015-05-06 15:57:15 +02:00
Colin Sherratt
f6b86fe4bd Add PhantomData to ray 2015-03-29 17:35:47 -04:00