Commit graph

51 commits

Author SHA1 Message Date
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
Eduard Bopp 4d2fb64482 Type-cast a vector component-wise
This allows one to e.g. cast a vector of f64s to an equivalent vector of f32s.
More generally this is allowed for arbitrary NumCast types.
2014-11-20 16:41:27 +01: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
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
Tomaka17 4fcfde13de fail! -> panic! 2014-10-30 10:11:33 +01:00
bachm 825f5f2975 deriving Encodable, Decodable for all structs 2014-08-23 14:34:33 +02:00
Brendan Zabarauskas 379dc499ec Publicly re-export everything from the root crate
Closes #100
2014-08-16 14:53:54 +10:00
Brendan Zabarauskas 3ff1eb583f Add fixed-length array conversions
Closes #111

`FixedArray::from_fixed` cannot yet be implemented due to  rust-lang/rust#16418
2014-08-11 21:10:38 +10:00
Corey Richardson e9a1723ef4 Merge pull request #106 from atheriel/vecdocs
Add a tutorial of sorts for working with cgmath's vectors.
2014-08-03 04:29:49 -07: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
Aaron Jacobs 5c25683cfb Adds a tutorial of sorts for working with cgmath's vectors.
There are several runnable code examples that should compile when
using `make doctest`.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 23:05:15 -07:00
Aaron Jacobs fddb3a7903 Implements the (mutable) index operator for vectors.
Again, this is possibly an oversight. The operators simply use the
mut_i() and i() methods which are demanded by the Array1<S> trait.

This means you may access the field `x` on a VectorN with vector[0]
syntax.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 22:37:49 -07:00
Aaron Jacobs 7e81b258a9 Implements division and remainder operators for vectors.
This might have been an oversight at one point. Although the `rem_v`
and `div_v` methods are available for vectors, the actual operators
were not.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 22:21:58 -07: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
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 a9273389ea Improve length tests and add distance tests 2012-11-14 17:55:55 +10:00
Brendan Zabarauskas b860a63cbc Simplify length2 method 2012-11-14 14:42:40 +10:00
Brendan Zabarauskas e582e5edf5 Move to_ptr methods 2012-11-14 11:55:54 +10:00
Brendan Zabarauskas 26bab58b0d Add distance methods 2012-11-14 11:09:35 +10:00
Brendan Zabarauskas 07df95313e Move index overload methods into main Vector/Matrix impls 2012-11-14 10:28:56 +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 b074ecafbd Formatting 2012-11-09 17:29:25 +10:00
Brendan Zabarauskas d8bfafa552 Improved argument name 2012-11-08 17:05:53 +10:00
Brendan Zabarauskas 53a04a03f6 Remove vector-scalar addition/subtraction 2012-11-08 11:40:03 +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 1f61701d00 Create relational module 2012-11-05 20:31:52 +10:00
Brendan Zabarauskas c3344b5a6f Use GLSL nomenclature 2012-11-05 17:40:31 +10:00
Brendan Zabarauskas 20a1596cf2 Add commented out constuctors 2012-11-05 13:25:11 +10:00
Brendan Zabarauskas ae9112452a Make Vector traits more specific, add BooleanVector trait 2012-11-05 13:18:44 +10:00
Brendan Zabarauskas 9491c4d93f Add GLSL type aliases 2012-11-05 12:39:58 +10:00
Brendan Zabarauskas 2790fda04e Add from_value vector constructors 2012-11-05 10:05:16 +10:00
Brendan Zabarauskas f3183dd0f1 Reduce zero and one casts 2012-11-04 14:39:33 +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 9563bd6be7 Remove unnecessary static methods 2012-10-30 14:23:35 +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