Commit Graph

1111 Commits

Author SHA1 Message Date
Sébastien Crozet 05a0c12c4a Add a missing file that defines the `Unit` type. 2016-08-16 12:47:11 +02:00
Sébastien Crozet c4728a33d4 Fix quaternion polar decomposition. 2016-08-16 12:40:39 +02:00
Sébastien Crozet 9c4bff1f85 Rename methods starting with `new_with_` to `from_`. 2016-08-16 10:48:41 +02:00
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