Commit graph

146 commits

Author SHA1 Message Date
Brendan Zabarauskas
a3e6cd26b5 Document fields 2016-04-09 13:47:17 +10:00
Brendan Zabarauskas
886e2fb240 Unify trait hierarchies for vectors, quaternions and matrices 2016-04-09 13:47:04 +10:00
Brendan Zabarauskas
2b36ea2ef9 Rename Vector trait to VectorSpace and EuclideanVector to InnerSpace 2016-04-08 08:46:35 +10:00
Brendan Zabarauskas
f7bc6dcc54 Rename Vector::length to Vector::magnitude 2016-03-27 16:17:11 +11:00
Brendan Zabarauskas
3d55187a7d Mark some types as #[repr(C, packed)]
Closes #296
2016-03-25 12:42:17 +11:00
Cameron Hart
9096e409d1 Added scalar arithmetic operators for Quaternions 2016-01-02 11:13:27 +11:00
Brendan Zabarauskas
429d2659fe Improve fmt::Debug impls 2015-12-29 21:50:43 +11:00
Brendan Zabarauskas
f60e85b61a Merge pull request #282 from bjz/assignment-ops
Implement most assignment operators
2015-12-23 07:35:16 +11:00
Brendan Zabarauskas
e9dc8404ef Make Quaternion::magnitude pass self by-value 2015-12-22 23:14:16 +11:00
Brendan Zabarauskas
59d5e6f53a Implement most assignment operators 2015-12-22 22:34:34 +11:00
Brendan Zabarauskas
8c05db962a Implement by-ref negations for matrices 2015-12-22 00:43:15 +11:00
Brendan Zabarauskas
612be7fecc Move free trigonometric functions onto Angle trait 2015-12-13 23:51:00 +11:00
Brendan Zabarauskas
e76921881f Remove operator methods on angles 2015-12-13 16:18:39 +11:00
Brendan Zabarauskas
de4389759b Merge pull request #273 from bjz/operator-method-sweep
Operator method sweep
2015-12-13 13:05:40 +11:00
Brendan Zabarauskas
a02b94fb70 Remove 'static constraints
These seem to be relics from an older Rust...
2015-12-13 12:24:30 +11:00
Brendan Zabarauskas
25f5dfd5fc Remove operator methods from Vector trait 2015-12-13 12:01:00 +11:00
Brendan Zabarauskas
577eafa654 Standardise macro use for code generation
This moves lots of the common code generation patterns into a macros module. In doing so, the code can be greatly reduced in size.
2015-12-12 22:17:03 +11:00
Brendan Zabarauskas
0b39e8f300 Add missing by-ref and by-val permutations of quaternion operators 2015-12-12 18:39:31 +11:00
Brendan Zabarauskas
25ca567060 Move element-wise operations into Array1 trait 2015-11-14 12:17:03 +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
7af4ebb28d Add some by-value operator overloads
Working towards #247
2015-11-08 17:45:33 +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
a434f18ba4 Make array type parameters associated types 2015-11-03 14:15:11 +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
b168c03174 Rename identity to one
Zero is the additive identity, so this disambiguates it
2015-10-01 18:56:31 +10:00
Brendan Zabarauskas
b7b1f6c9cb Implement binary operators for quaternions 2015-09-30 18:05:20 +10:00
Brendan Zabarauskas
e3e06297a0 Implement by-ref operators for vectors, and remove by-value implementations
We can't yet remove the operator methods, due to rust-lang/rust#20671

This also removes the implementations of `Zero` and `One` for vectors.
2015-09-30 17:37:52 +10:00
Brendan Zabarauskas
5023b6c01e Consistently use associated functions throughout codebase 2015-09-30 09:32:25 +10:00
Brendan Zabarauskas
494f2b65ad Fix Quaternion::mul_self_q
Fixes #224

I haven't really thought about whether there is a faster way to do this, but at least it is fixed.
2015-09-29 18:36:41 +10:00
Brendan Zabarauskas
4be95bcb7d Remove {Array1, Array2}::map method
This doesn't seem to be used anywhere - not sure how useful it is. It isn't really a proper `map` anyway, because it mutates `self`.
2015-09-29 09:47:57 +10:00
Brendan Zabarauskas
7f73c2cdd9 Add conversion tests for vectors, points, and quaternions 2015-09-27 17:20:02 +10:00
Brendan Zabarauskas
aff340dc1e Add range index operators 2015-09-21 07:56:03 +10:00
Brendan Zabarauskas
0ce28fbe10 Remove FixedArray trait in favour of std::convert
Fixes #225
2015-09-21 06:49:33 +10: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
8ab8d7551d Replace ToMatrix* by Into 2015-05-06 16:27:02 +02:00
Dzmitry Malyshau
16302ffa20 Fixed the num crate 2015-04-24 23:28:31 -04:00
Dzmitry Malyshau
8db429acae Using rust-lang/num 2015-04-04 21:19:11 -04:00
Dzmitry Malyshau
05c4147cec Fixed Index implementations 2015-03-25 21:58:33 -04:00
Jonathan Neuschäfer
4c527f8334 s/AUTHORS file/Cargo.toml file/ 2015-03-18 17:51:03 +01:00
Colin Sherratt
64fedca8e9 Manually add rand trait 2015-03-14 22:54:02 -04:00
Pierre Krieger
8895654f92 Remove dependencies to rand and rand_macros
Conflicts:
	src/cgmath.rs
2015-03-14 22:07:15 -04:00
Colin Sherratt
778a3c13aa use the new rand_macros crate 2015-02-08 13:25:42 -05:00
Colin Sherratt
e712bdee7c fmt::Show to fmt::Debug 2015-02-08 13:19:32 -05:00
Hyeon Kim
23fbac94e7 Update rust
`Output` is not a member of trait `IndexMut` anymore.
2015-02-09 02:50:35 +09:00
Colin Sherratt
e064ea0e59 int to isize 2015-01-09 16:28:33 -07:00
Colin Sherratt
c0ce271e39 Updated to latest rustc 2015-01-09 15:06:45 -07:00
Colin Sherratt
c7270a9077 Update to latest rustc 2015-01-07 15:34:42 -07:00
Colin Sherratt
d6bb64fd65 Update for associated types changes 2015-01-04 18:56:01 -07:00
Connorcpu
22c2fe4755 Updated to rust nightly 2015-01-03 13:29:26 -08:00
Colin Sherratt
4bb12d6859 Switch to rustc_serialize 2014-12-26 16:18:29 -05:00
Jakob Fries
968adcd2cb Update to match latest Neg trait. 2014-12-21 18:28:59 +01:00
Pierre Krieger
888dd6b18e Update for rustc 2014-12-15 13:49:57 +01:00
Jameson Ernst
5726e6c7dc Add deriving Copy to all structs that would previously be inferred to be Copy
Remove use of deprecated Equiv trait
Remove unsed attributes
2014-12-12 17:06:52 -08:00
Jameson Ernst
08f9354efc Fix ambiguous trait call; Remove deprecated Float calls. 2014-11-24 20:04:34 -08:00
Eduard Bopp
9f8580eeca Replace deprecated std::num traits
These traits are akin to the deprecated standard library traits (Zero, One,
Primitive) to keep everything running as before. However, for the long term a
better algebraic abstraction should be used/provided.
2014-11-20 16:28:02 +01:00
Brendan Zabarauskas
1371f75165 Update for rustc 0.13.0-nightly
There are still some deprecation errors in the doc tests left
2014-11-16 01:59:43 +11:00
Sébastien Crozet
0bbefed4bc Improve the benchmark suite.
As a side effect, this adds `Rand` deriving to the benchmarked strucures.
2014-11-07 16:23:10 +01:00
Colin Sherratt
0f0b960211 Added to_euler which allows moving from to and from euler coordinates.
I did not have much luck getting the old from_eular logic work the way I
expected so I updated the implementation to match my sources.

I believe this changed the order of the axis, I am unsure of what they were
before.
2014-10-13 21:05:49 -04:00
Tomaka17
1b5da61ccb Update for rustc 0e784e168 2014-09-16 23:26:11 +0000 2014-09-18 16:19:26 +02:00
bachm
825f5f2975 deriving Encodable, Decodable for all structs 2014-08-23 14:34:33 +02:00
Brendan Zabarauskas
1e1f60379e Deprecate element and column accessors in favour of index operators
Also removes some unnecessary `clone` calls.
2014-07-30 04:06:31 +10:00
Brendan Zabarauskas
61a6810324 Merge pull request #96 from atheriel/vecmap
Add a map() method for vectors.
2014-07-05 19:24:12 -07:00
HeroesGrave
047dbefd6f remove lifetime notations causing errors 2014-07-05 12:15:10 +12:00
Aaron Jacobs
b0f706a96e Adds map() to Array1, and provides implementations for Vectors,
Points, Matrices, and Quaternions.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-02 21:34:26 -07:00
Erick Tryzelaar
1c5b6f0b7a Update to compile with rust (9f8149e) 2014-06-25 21:26:15 -07:00
Corey Richardson
c9bdf838a5 Update for Cargo 2014-06-23 23:49:29 -07:00
Brendan Zabarauskas
8199cbe742 Create Dimensional trait 2012-11-15 12:22:41 +10:00
Brendan Zabarauskas
90ee516370 Move numeric-specific modules to num module, clean up imports 2012-11-15 10:31:35 +10:00
Brendan Zabarauskas
e582e5edf5 Move to_ptr methods 2012-11-14 11:55:54 +10:00
Brendan Zabarauskas
37d3bcd495 Inherit Neg and move neg method into appropriate impls 2012-11-14 10:20:36 +10:00
Brendan Zabarauskas
7492677366 Begin taking advantage of trait inheritance 2012-11-13 11:44:44 +10:00
Brendan Zabarauskas
f2e3181c16 Fix ToPtr trait implementations 2012-11-13 10:31:14 +10:00
Brendan Zabarauskas
a3e4d090d6 Replace from_int function calls with cast for consistency 2012-11-11 13:43:37 +10:00
Brendan Zabarauskas
eddffbc0dc Add mul_v method and from_axis_angle function (thanks Dzmitry) 2012-11-10 11:12:27 +10:00
Brendan Zabarauskas
b7681954d7 Implement nlerp and slerp methods
Still need to write unit tests for these...
2012-11-09 17:32:41 +10:00
Brendan Zabarauskas
59a9cdb8d7 Add normalize method 2012-11-09 17:31:40 +10:00
Brendan Zabarauskas
693a0adda0 Add dot product 2012-11-09 17:30:18 +10:00
Brendan Zabarauskas
b074ecafbd Formatting 2012-11-09 17:29:25 +10:00
Brendan Zabarauskas
e2cfe36b9d Make type aliases public 2012-11-06 12:23:06 +10:00
Brendan Zabarauskas
89d600af22 Formatting 2012-11-06 12:01:39 +10:00
Brendan Zabarauskas
40e847f34f Move functions to funs module. Add additional functions as per the GLSL spec 2012-11-06 11:57:15 +10:00
Brendan Zabarauskas
c3344b5a6f Use GLSL nomenclature 2012-11-05 17:40:31 +10:00
Brendan Zabarauskas
9491c4d93f Add GLSL type aliases 2012-11-05 12:39:58 +10:00
Brendan Zabarauskas
f3183dd0f1 Reduce zero and one casts 2012-11-04 14:39:33 +10:00
Brendan Zabarauskas
5080853cbe Reorganise modules 2012-11-02 10:10:27 +10:00
Brendan Zabarauskas
25de081805 Move values in constructors 2012-11-02 00:01:06 +10:00
Brendan Zabarauskas
35058611f3 Rename and move constructors 2012-11-01 17:41:42 +10:00
Brendan Zabarauskas
bf6bf8b3e6 Make library generic 2012-11-01 11:34:38 +10:00
Brendan Zabarauskas
891736a2d7 improve method names 2012-10-30 14:35:02 +10:00
Brendan Zabarauskas
28a9265568 Add and implement ToPtr trait 2012-10-30 13:24:50 +10:00
Brendan Zabarauskas
819c092321 Change inline attributes to inline(always) 2012-10-30 12:55:20 +10:00
Brendan Zabarauskas
6f0b49aa0c Move exact_eq to trait 2012-10-30 12:45:18 +10:00
Brendan Zabarauskas
c80b95da59 Moved constants to submodules 2012-10-30 00:11:27 +10:00
Brendan Zabarauskas
5d8319fff0 Fix collision of omath::vec and core::vec 2012-10-29 21:53:25 +10:00
Renamed from src/quat.rs (Browse further)