Commit Graph

658 Commits

Author SHA1 Message Date
Sébastien Crozet
d45c242a15 Add a Unit wrapper type, remove UnitQuaternion.
The `Unit` wrapper type ensures that elements of the underlying type has a unit norm.
For example, `Unit<Vector3>` designates an element of S².
In particular `UnitQuaternion<N>` is now a type alias for `Unit<Quaternion<N>>`.
2016-08-16 10:27:07 +02:00
Sébastien Crozet
88a74ca4e5 Macro groupping. 2016-08-11 23:28:08 +02:00
Sébastien Crozet
7b4a57c224 Fix some clippy warning.
The following lints were disabled:

* wrong_self_convention
* needless_range_loop
* reverse_range_loop
* len_without_is_empty
* explicit_iter_loop
* many_single_char_names
* similar_names
* too_many_arguments
* float_cmp
* new_without_default
2016-08-11 23:08:21 +02:00
Sébastien Crozet
6a495013d3 Update changelog to account for quaternion modifications. 2016-08-09 21:52:16 +02:00
Sébastien Crozet
85819c5fed Make the link to the documentation more visible
Fix #194
2016-08-09 21:50:21 +02:00
Sébastien Crozet
d05ad00c41 Merge pull request #193 from phaazon/master
Added exp(), log() and powf() for Quaternion. + fixed One and Zero instances for Quaternion.
2016-08-09 21:41:16 +02:00
Dimitri 'phaazon' Sabadie
1fdd8979af Fixed Zero and One for Quaternion. 2016-07-30 14:08:55 +02:00
Dimitri Sabadie
f9c1a2fd98 Added a test for Quaternion::exp(). 2016-07-29 18:02:37 +02:00
Dimitri Sabadie
988d9272d2 Cleaned up exp(), log() and powf() for Quaternion. Also, they’re for Quaternion only as we cannot define them on UnitQuaternion. 2016-07-29 17:51:35 +02:00
Dimitri Sabadie
213cc41f7d Added exp(), log() and powf() for Quaternion / UnitQuaternion. 2016-07-29 15:56:04 +02:00
Sébastien Crozet
aa7d4b927c Implement Display for Identity. 2016-04-30 14:32:16 +02:00
Sébastien Crozet
a9c4bd0b78 Release v0.8.1 2016-04-19 09:43:13 +02:00
Sébastien Crozet
a6cee5afc8 Merge pull request #189 from sebcrozet/from_to_value
Implement From returning a value (instead of a ref only) for matrices and vectors.
2016-04-19 09:42:49 +02:00
Sébastien Crozet
13a5bee25f Implement From returning a value (instead of a ref only) for matrices and vectors. 2016-04-19 09:36:30 +02:00
Sébastien Crozet
847edafcfe Merge pull request #188 from sebcrozet/more_renamings
Replace "col" by "column" + other substitutions.
2016-04-18 08:49:25 +02:00
Sébastien Crozet
d98b7fb618 Update the changelog. 2016-04-18 08:40:16 +02:00
Sébastien Crozet
df872f407d Replace "col" by "column".
Related to #176.
2016-04-18 08:32:12 +02:00
Sébastien Crozet
830c19aeba Release v0.8.0. 2016-04-17 20:26:17 +02:00
Sébastien Crozet
c5a03254f2 Merge pull request #187 from sebcrozet/full_names
Use full names for everything.
2016-04-17 20:25:34 +02:00
Sébastien Crozet
0c84d18850 Substitute: diag -> diagonal. 2016-04-17 19:47:56 +02:00
Sébastien Crozet
0380661bd2 Remove some restrictions for NumVector.
This removes the following inheritances:
        * Mul<Self, Output = Self>
        * Div<Self, Output = Self>
        * Add<N, Output = Self>
        * Sub<N, Output = Self>
        * MulAssign<Self>
        * DivAssign<Self>
        * AddAssign<N>
        * SubAssign<N>

They silently overrided:
        * Mul<N, Output = Self>
        * Div<N, Output = Self>
        * Add<Self, Output = Self>
        * Sub<Self, Output = Self>
        * MulAssign<N>
        * DivAssign<N>
        * AddAssign<Self>
        * SubAssign<Self>
2016-04-17 19:26:18 +02:00
Sébastien Crozet
40c6675c30 Update the Changelog. 2016-04-17 17:58:17 +02:00
Sébastien Crozet
479cc7a7ff Fix compilation when the "generic_sizes" feature is enabled. 2016-04-17 17:42:14 +02:00
Sébastien Crozet
e6156727f2 Use full names for everything.
Note that `sqdist` becomes `distance_squared` and `sqnorm` becomes `norm_squared`.

Fix #176.
2016-04-17 17:26:58 +02:00
Sébastien Crozet
353d36639d Release v0.7.0.
This replaces the relase v0.6.1 which introduced breaking changes.
2016-04-17 13:41:01 +02:00
Sébastien Crozet
eee1eb5c5f Release v0.6.1. 2016-04-17 13:22:20 +02:00
Sébastien Crozet
9a87e2360d Implement Outer for DVec. (#186)
Fix #181.
2016-04-17 13:20:58 +02:00
Sébastien Crozet
9e739676a7 Implement *Assign traits for everything.
Fix #184.
2016-04-17 12:57:54 +02:00
Jason Orendorff
74fd3e1a04 Support f64 * Vec3<f64> and so on.
To be specific, support is added for `N op T<N>` where `N` is `f32` or `f64`,
`op` is one of `+` `-` `*`, and `T` is one of the `Vec`, `DVec`, `Mat`, or `DMat`
generic types. These are all cases where `T<N> op N` is already supported.

Rust does not support generic impls in this case, but `f32` and `f64` cover
many common cases.

 Fixes #182.
2016-04-17 09:25:08 +02:00
Jeroen Bollen
dea0ccc1fd Made PntAsVec use associated types. (#179)
Fix #177
2016-04-17 09:23:37 +02:00
Sébastien Crozet
f8c925c096 Renamed CHANGELOG to CHANGELOG.md 2016-03-31 21:57:46 +02:00
Sébastien Crozet
b910ce914f Merge pull request #175 from sebcrozet/sim_and_vecn
Release v0.6.0: similarity transformations, VecN, and computer-graphics fixes.
2016-03-31 21:54:00 +02:00
Sébastien Crozet
a52ecc73b1 Minor CHANGELOG fix. 2016-03-31 21:49:27 +02:00
Sébastien Crozet
0dc3b91abd Fix Ortho when the feature arbitrary is enabled. 2016-03-31 21:44:42 +02:00
Sébastien Crozet
2fa7ef0e00 Update the changelog. 2016-03-31 21:35:30 +02:00
Sébastien Crozet
20bb99c312 Minor documentation fixes.
Fix #174.
2016-03-31 21:30:23 +02:00
Sébastien Crozet
35ae97dc29 Fix benchmarks. 2016-03-31 21:24:37 +02:00
Sébastien Crozet
4c58e37910 Make look_at, perspective, and orthographic projection matrices conform to computer-graphics convensions.
The `look_at` method itself has been split into a right-handed and a left-handed variant:
`look_at_rh` and `look_at_lh`.

Fix #171, #158, #88, #79.
2016-03-31 21:22:02 +02:00
Sébastien Crozet
91e14670ed Add multiplications between Iso, Rot, and Sim. 2016-03-28 17:05:44 +02:00
Sébastien Crozet
5b7af11555 Add Sim/Rot, Sim/Iso, Iso/Rot multiplications. 2016-03-28 15:18:28 +02:00
Sébastien Crozet
02001667f7 Fix look_at matrices + implement Display for statically sized structures. 2016-03-28 14:56:25 +02:00
Sébastien Crozet
60c0f32e1c Feature-gate the VecN structure.
`rustc` is has a hard time compiling it from time to time.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
b4c6c99dd7 Update the changelog. 2016-03-24 19:44:08 +01:00
Sébastien Crozet
fe73e8743f Minor comment fix. 2016-03-24 19:44:08 +01:00
Sébastien Crozet
cbbf5f138d Remove the double-dispatch trick for Cast implementations.
It is obsolete now that rustc supports multiple trait implementations.
2016-03-24 19:44:08 +01:00
Sébastien Crozet
c1ec00cfe7 Complete the documentation. 2016-03-24 19:44:08 +01:00
Sébastien Crozet
87a80c2de6 Fix tests. 2016-03-24 19:44:08 +01:00
Sébastien Crozet
8dbfbe10a5 Add a changelog (at last!) 2016-03-24 19:44:08 +01:00
Sébastien Crozet
ceed9e52bd Implement Arbitrary for VecN. 2016-03-24 19:44:08 +01:00
Sébastien Crozet
88fb33cf44 Remove useless or incomplete structs: Vec0, Pnt0, Iso4, Rot4. 2016-03-24 19:43:50 +01:00