Commit graph

431 commits

Author SHA1 Message Date
Brendan Zabarauskas
b8521f289c Rename cast module to conv and NumCast trait to NumConv
These names will be more appropriate once the cast function has been completely phased out.
2012-12-05 10:33:27 +10:00
Brendan Zabarauskas
e2857c6e7e Create and implement MutableGeometricVector trait 2012-12-05 08:21:40 +10:00
Brendan Zabarauskas
ea17c63200 Add cross_self method 2012-12-05 01:34:41 +10:00
Brendan Zabarauskas
9012589f5f Create and implement MutableNumericVector trait 2012-12-04 23:32:34 +10:00
Brendan Zabarauskas
7e4a7e180b Fix to_ptr method impls 2012-12-04 21:43:10 +10:00
Brendan Zabarauskas
a1fcfff9ed Move methods operating on &mut self to a separate trait 2012-12-04 21:42:32 +10:00
Brendan Zabarauskas
6c14df7fda Move methods operating on &mut self to a separate trait 2012-12-04 21:42:24 +10:00
Brendan Zabarauskas
0b9af30b38 Add swap methods 2012-12-04 17:58:03 +10:00
Brendan Zabarauskas
969e57591d Fix to_ptr method impls and use in the index methods where appropriate 2012-12-04 17:50:15 +10:00
Brendan Zabarauskas
f9778adf17 Document future intentions regarding the cast function. 2012-12-04 14:56:06 +10:00
Brendan Zabarauskas
54953a8f01 Find more trouble spots where Number::from causes ICEs 2012-12-04 14:41:21 +10:00
Brendan Zabarauskas
2ba45477a5 Change the orientation of the matrix diagrams in the doc comments 2012-12-04 14:34:09 +10:00
Brendan Zabarauskas
660c423d46 Update trait names 2012-12-04 14:07:44 +10:00
Brendan Zabarauskas
07bed0a9c1 Add to_identity and to_zero methods 2012-12-04 12:51:38 +10:00
Brendan Zabarauskas
c7571e4d50 Remove rhs module 2012-12-04 12:51:14 +10:00
Brendan Zabarauskas
d9c3edbeee Add return value description to the doc comment of inverse 2012-12-04 11:56:10 +10:00
Brendan Zabarauskas
492fdc3b2b Formatting 2012-12-04 11:41:23 +10:00
Brendan Zabarauskas
60f17d846e Rename functions and inherit Number trait 2012-12-04 11:41:06 +10:00
Brendan Zabarauskas
91fd819b79 Add comments an rename some functions 2012-12-04 11:38:59 +10:00
Brendan Zabarauskas
d4c7abab84 Add documentation comments to Number trait and impls 2012-12-04 11:38:33 +10:00
Brendan Zabarauskas
0c47707436 Comment out Number::from(0) to prevent internal compiler error 2012-12-04 11:25:25 +10:00
Brendan Zabarauskas
1125a94ec8 Add comments for matrix constructors and identity functions 2012-12-04 10:58:19 +10:00
Brendan Zabarauskas
bc3e338c25 Improve documentation 2012-12-04 08:31:26 +10:00
Brendan Zabarauskas
9e23c06281 Remove number cast 2012-12-04 08:24:03 +10:00
Brendan Zabarauskas
53fc6d15ab Remove default eq implementations and use fuzzy_eq instead 2012-12-04 08:23:13 +10:00
Brendan Zabarauskas
4fcd71be8e Rename invert method to inverse 2012-12-04 08:12:22 +10:00
Brendan Zabarauskas
b2de264caf Rename parameter from other to vec 2012-12-04 08:06:00 +10:00
Brendan Zabarauskas
9563455b47 Add documentation for Vector traits 2012-12-04 02:32:40 +10:00
Brendan Zabarauskas
fdbc3ed139 Use explicit self 2012-12-03 16:37:19 +10:00
Brendan Zabarauskas
f266d54654 Use Number::from instead of cast 2012-12-03 16:28:32 +10:00
Brendan Zabarauskas
248242dda5 Add and use Number::from static method 2012-12-03 16:19:53 +10:00
Brendan Zabarauskas
ddc7559153 Remove zero and one methods from NumCast 2012-12-03 15:39:32 +10:00
Brendan Zabarauskas
e62e914035 Use explicit self 2012-12-03 15:25:34 +10:00
Brendan Zabarauskas
566fffdac6 Use Float type bound for rgb/hsv conversions 2012-12-03 13:14:25 +10:00
Brendan Zabarauskas
e1ed642f76 Restore boolean vectors in gltypes module and relational traits
I forgot that these would be useful for the AABB struct that will be implemented in the future.
2012-12-03 11:24:24 +10:00
Brendan Zabarauskas
ecc91acbbe Rename num::ext module to num::kinds 2012-12-03 11:12:57 +10:00
Brendan Zabarauskas
7b3ae88c57 Use num::ext traits to simplify trait bounds 2012-12-03 11:10:14 +10:00
Brendan Zabarauskas
3d293dce5a Rename det method to determinant 2012-12-03 11:08:36 +10:00
Brendan Zabarauskas
668186a2e2 Merge matrix traits, simplify gltypes, remove relational functions
Let's try to simplify this thing!
2012-12-03 08:15:40 +10:00
Brendan Zabarauskas
9595449b71 Formatting 2012-12-02 23:16:38 +10:00
Brendan Zabarauskas
005daf46e4 Remove consts mod reference 2012-12-02 23:16:26 +10:00
Brendan Zabarauskas
5de6fbe5bb Move methods from FloatConsts into Float trait and remove num::consts 2012-12-02 16:59:03 +10:00
Brendan Zabarauskas
edca099681 Comment pi constants 2012-12-02 16:25:23 +10:00
Brendan Zabarauskas
3a48006ba7 Use absolute values for radian constants 2012-12-02 16:18:39 +10:00
Brendan Zabarauskas
90802b1713 Fix angle wrapping 2012-12-02 15:39:49 +10:00
Brendan Zabarauskas
2b931aee21 Add zero constant 2012-12-02 15:36:10 +10:00
Brendan Zabarauskas
4515c9f7e0 Remove unwrap operators 2012-12-01 22:55:14 +10:00
Brendan Zabarauskas
4ce43ff18e Add temporary fixes for weird type mismatch errors 2012-12-01 22:49:24 +10:00
Brendan Zabarauskas
0adbbd478b Implement explicit self for DefaultEq trait 2012-12-01 15:05:11 +10:00
Brendan Zabarauskas
1d4825e005 Move to_ptr method into new ToPtr trait 2012-12-01 14:55:45 +10:00
Brendan Zabarauskas
2ad204a424 Add missing trait bounds 2012-12-01 14:19:37 +10:00
Brendan Zabarauskas
10f8570441 Divide up trait implementations 2012-12-01 14:19:21 +10:00
Brendan Zabarauskas
7316fa4397 Make NumCast trait public 2012-12-01 13:40:16 +10:00
Luqman Aden
e837ab52f3 Explicitly specify paths in crate. 2012-11-30 19:17:30 -05:00
Brendan Zabarauskas
6c4ead0990 Add color type aliases 2012-11-30 22:47:40 +10:00
Brendan Zabarauskas
390240ba03 Add color module 2012-11-30 22:46:44 +10:00
Brendan Zabarauskas
7d559c09e2 Add opposite method 2012-11-30 22:28:58 +10:00
Brendan Zabarauskas
f352cd68b4 Make projection functions public (woops!) 2012-11-30 15:15:11 +10:00
Brendan Zabarauskas
03a1c4581d Improve channel conversions 2012-11-30 15:12:38 +10:00
Brendan Zabarauskas
6d3620c9d7 Implement explicit self in trait methods 2012-11-30 13:13:20 +10:00
Brendan Zabarauskas
ea074faef5 Merge MinMax and Clamp traits together to form Extent trait 2012-11-29 22:19:42 +10:00
Brendan Zabarauskas
2e1e6ca0a0 Use == instead of default_eq 2012-11-29 21:30:40 +10:00
Brendan Zabarauskas
126c5f4501 Improve constant names 2012-11-29 18:29:08 +10:00
Brendan Zabarauskas
9b05325a31 Implement ToStr for angle types 2012-11-29 16:31:14 +10:00
Brendan Zabarauskas
eeaf6cb3c1 Change fovy parameter to accept a generic angle 2012-11-29 15:59:45 +10:00
Brendan Zabarauskas
93d228f2f9 Remove apparently unnecessary Copy bounds 2012-11-29 15:49:43 +10:00
Brendan Zabarauskas
60388118d2 Implement common functions for angle types 2012-11-29 15:39:55 +10:00
Brendan Zabarauskas
8e7ae0d4ae Remove enum unwrapping 2012-11-29 13:50:15 +10:00
Brendan Zabarauskas
f44d2aa540 Use == instead of default_eq 2012-11-29 13:49:57 +10:00
Brendan Zabarauskas
49d055a3dc Update operator overloads to use explicit self 2012-11-29 13:14:42 +10:00
Brendan Zabarauskas
64761478dd Formatting 2012-11-29 11:17:36 +10:00
Brendan Zabarauskas
26a22e0cc7 Implement wrap method 2012-11-29 11:16:28 +10:00
Brendan Zabarauskas
4ea08253a7 Remove is_col_major and is_square methods 2012-11-29 08:49:31 +10:00
Brendan Zabarauskas
ba132fc2a8 Set functions to inline 2012-11-28 18:01:33 +10:00
Brendan Zabarauskas
9b1e984564 Add channel module 2012-11-28 17:50:26 +10:00
Brendan Zabarauskas
22a0ad4093 Remove TypeConsts trait 2012-11-28 14:18:29 +10:00
Brendan Zabarauskas
e6ca5297dc Add skeleton tests with TODO comments 2012-11-27 12:40:05 +10:00
Brendan Zabarauskas
953301c38f Add skeleton wrap method 2012-11-27 12:36:34 +10:00
Brendan Zabarauskas
e274d884b9 Add inline attributes 2012-11-27 12:35:53 +10:00
Brendan Zabarauskas
ca40caee81 Separate operator overload implementations 2012-11-27 12:35:29 +10:00
Brendan Zabarauskas
d7d1c786fb Add angle constants 2012-11-27 12:34:15 +10:00
Brendan Zabarauskas
4600d80ce3 Add GLSL aliases for Angle, Rotation and Euler types 2012-11-27 09:55:51 +10:00
Brendan Zabarauskas
f7008b8f3b Implement inverse trigonometry functions for vector types 2012-11-27 09:54:09 +10:00
Brendan Zabarauskas
2cb00d8c0e Add Rotation constructor, reorganise feilds 2012-11-27 09:48:01 +10:00
Brendan Zabarauskas
44fa552950 Update comment documentation 2012-11-26 22:45:55 +10:00
Brendan Zabarauskas
a59a701efa Formatting 2012-11-26 17:31:26 +10:00
Brendan Zabarauskas
c3071b6260 Move axial rotation conversions to angle module 2012-11-26 17:31:02 +10:00
Brendan Zabarauskas
11b5b12d0a Reorganise funs module to mirror chapter 8 of the GLSL spec 2012-11-26 16:48:46 +10:00
Brendan Zabarauskas
7bc7565f56 Implement Eq and Ord on angle types 2012-11-26 16:23:34 +10:00
Brendan Zabarauskas
c3e43b9b9b Fix operator overloads 2012-11-26 16:04:32 +10:00
Brendan Zabarauskas
13fef22fc9 Update module comment and organisation 2012-11-26 16:03:35 +10:00
Brendan Zabarauskas
57d24153f1 Add rhs module 2012-11-26 14:52:44 +10:00
Brendan Zabarauskas
512b024350 Remove returns 2012-11-26 11:52:48 +10:00
Brendan Zabarauskas
e004fa8edd Add degrees and radians tests 2012-11-26 11:22:49 +10:00
Brendan Zabarauskas
5ebc44bdb1 Add abs and sign tests 2012-11-26 10:45:31 +10:00
Brendan Zabarauskas
351c0f91ff Implement Trig and Hyp for vector types 2012-11-26 05:37:12 +10:00
Brendan Zabarauskas
5393e9a1f6 Divide Angle enum into separate Radians and Degrees types 2012-11-26 04:28:41 +10:00
Brendan Zabarauskas
eda42604b7 Use Angle type with triganomic functions 2012-11-26 03:44:24 +10:00
Brendan Zabarauskas
035d9e751a Implement operator overloads for Angle type 2012-11-26 03:43:48 +10:00
Brendan Zabarauskas
287fae7114 Add angle module 2012-11-26 02:26:01 +10:00
Brendan Zabarauskas
10f2b9b0b1 Remove generic type from pow method 2012-11-26 00:49:26 +10:00
Brendan Zabarauskas
b06c4c1459 Add smooth and smooth_step methods 2012-11-26 00:41:27 +10:00
Brendan Zabarauskas
89f5c6c3e7 Remove *_v methods 2012-11-26 00:08:35 +10:00
Brendan Zabarauskas
911eb6bbc1 Add dim, size_of, rows, and cols static methods to appropriate type aliases 2012-11-25 23:32:52 +10:00
Brendan Zabarauskas
b753d27ac8 Remove useless import 2012-11-25 22:21:27 +10:00
Brendan Zabarauskas
af2ca2be45 Add size_of static method 2012-11-25 22:05:47 +10:00
Brendan Zabarauskas
7ce41e6e9e Add extent function unit tests 2012-11-25 21:27:49 +10:00
Brendan Zabarauskas
b6f6c37ce3 Add trait implementations for vector structs 2012-11-25 21:26:40 +10:00
Brendan Zabarauskas
167ca9a84d Divide funs::common up into separate modules 2012-11-22 11:09:04 +10:00
Brendan Zabarauskas
c6a7018aec Merge branch 'refs/heads/luqmana-master' 2012-11-22 10:46:47 +10:00
Brendan Zabarauskas
161860c7dc Update deprecated addr_of calls to the newer to_unsafe_ptr 2012-11-22 10:39:47 +10:00
Brendan Zabarauskas
bb63eb39b5 Fix capitalization of matrix conversion methods 2012-11-22 10:39:47 +10:00
Luqman Aden
ad27c97d76 Added standard inner (dot) product for matricies. 2012-11-21 18:24:43 -05:00
Luqman Aden
a4c2bacc46 Added trace function. 2012-11-21 17:49:11 -05:00
Luqman Aden
118fcdf7e3 Doing transpose twice is equivalent to not doing it at all. 2012-11-21 16:03:33 -05:00
Brendan Zabarauskas
0c21294a53 Add from_value matrix constructor wrappers 2012-11-22 06:59:37 +10:00
Brendan Zabarauskas
1e0d410eb6 Minor comment update 2012-11-22 06:58:42 +10:00
Brendan Zabarauskas
3874cccde8 Further refine the organisation of the matrix traits 2012-11-21 18:35:26 +10:00
Brendan Zabarauskas
e2013002b5 Rename NumericMatrix_NxN to NumericMatrixNxN 2012-11-21 18:08:08 +10:00
Brendan Zabarauskas
e892f4db37 Add from_value gltype vector tests 2012-11-21 15:15:55 +10:00
Brendan Zabarauskas
85444f1980 Add example to gltypes module comment. Simplify other comments in gltypes module 2012-11-21 15:07:57 +10:00
Brendan Zabarauskas
e13732f2ec Add description to gltypes module 2012-11-21 14:52:16 +10:00
Brendan Zabarauskas
6472eac775 Add unit tests for gltypes module 2012-11-21 14:33:20 +10:00
Brendan Zabarauskas
473dbfb3a2 Comment formatting 2012-11-21 14:08:36 +10:00
Brendan Zabarauskas
2463a3244c Change quaternion type from four scalars (wxyz), to a scalar and vec3 (sv) 2012-11-21 14:01:21 +10:00
Brendan Zabarauskas
8a9668c39c Change quaternion constructors to static methods 2012-11-21 11:56:39 +10:00
Brendan Zabarauskas
525c3f9354 Change matrix constructors to static methods 2012-11-20 22:27:17 +10:00
Brendan Zabarauskas
a030f4cf19 Add comments 2012-11-20 21:37:10 +10:00
Brendan Zabarauskas
16e687c25e Rename MatrixN traits 2012-11-20 21:32:20 +10:00
Brendan Zabarauskas
8eab1d86f2 Make matN alias definitions dependent on their respective matNxN alias 2012-11-20 19:23:11 +10:00
Brendan Zabarauskas
b6cc803ecf Formatting 2012-11-20 19:09:33 +10:00
Brendan Zabarauskas
0482e268ae Switch matrix zero and identity functions to static methods 2012-11-20 19:06:49 +10:00
Brendan Zabarauskas
a06d2cff54 Make vector constructors static functions 2012-11-20 17:58:24 +10:00
Brendan Zabarauskas
59abaf7f87 Add zero and identity static methods 2012-11-20 16:57:32 +10:00
Brendan Zabarauskas
d7fb5fdd6b Remove TODO comments 2012-11-20 15:40:36 +10:00
Brendan Zabarauskas
3aad63bf2c Remove math module 2012-11-20 15:36:29 +10:00
Brendan Zabarauskas
491a82ec28 Implement DefaultEq for matrix, vector and quaternion types 2012-11-20 15:35:06 +10:00
Brendan Zabarauskas
be6ee9a7f4 Create an extension trait for bool 2012-11-20 12:57:56 +10:00
Brendan Zabarauskas
211e9deee3 Inherit TypeConst and DefaultEq for base types 2012-11-20 12:57:08 +10:00
Brendan Zabarauskas
05cb44dd60 Add TypeConsts trait 2012-11-20 12:55:45 +10:00
Brendan Zabarauskas
ef18db9f28 Add default_eq module 2012-11-20 12:55:02 +10:00
Brendan Zabarauskas
2d47523736 Rename gl module to gltypes, add to cratefile 2012-11-16 16:55:20 +10:00
Brendan Zabarauskas
0736136165 Add hack to get around the "expected item" error 2012-11-16 16:53:53 +10:00
Brendan Zabarauskas
f6966abf21 Fix cmath function calls 2012-11-16 16:23:02 +10:00
Brendan Zabarauskas
b8498b827b Move OpenGL type aliases to separate module 2012-11-16 16:21:44 +10:00
Brendan Zabarauskas
d85c968620 Remove Eq from dimensional trait 2012-11-15 13:16:44 +10:00
Brendan Zabarauskas
788420b33f Rename modules to short, idiomatic names 2012-11-15 12:23:39 +10: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
29e1231eef Add component-wise map, map2 and fold performance tests 2012-11-15 09:02:20 +10:00
Brendan Zabarauskas
0bc896581c Start creating Euler struct 2012-11-14 18:27:10 +10:00
Brendan Zabarauskas
aada68c23e Add mat3_from_rotation function 2012-11-14 18:23:15 +10:00
Brendan Zabarauskas
a9273389ea Improve length tests and add distance tests 2012-11-14 17:55:55 +10:00
Brendan Zabarauskas
d62cefc543 Use trait inheritance 2012-11-14 16:13:27 +10:00
Brendan Zabarauskas
f22c261b65 Create and implement IntConsts and FloatConsts traits 2012-11-14 15:45:01 +10:00
Brendan Zabarauskas
5f8b30d993 Add one and zero static methods 2012-11-14 15:17:35 +10:00
Brendan Zabarauskas
bfe1a272ec Rename type parameters 2012-11-14 14:53:13 +10:00
Brendan Zabarauskas
b860a63cbc Simplify length2 method 2012-11-14 14:42:40 +10:00
Brendan Zabarauskas
342817610d Move add_m and sub_m methods 2012-11-14 14:00:26 +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
bac59d2332 Inherit Vector trait 2012-11-13 18:44:28 +10:00
Brendan Zabarauskas
ef3432bcc6 Remove mod_ method and function 2012-11-13 11:46:25 +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
16ba5ccb9b Use abs function 2012-11-12 11:52:32 +10:00
Brendan Zabarauskas
1a60dfa095 Idiomatic range loops 2012-11-12 11:41:28 +10:00
Brendan Zabarauskas
a3e4d090d6 Replace from_int function calls with cast for consistency 2012-11-11 13:43:37 +10:00
Brendan Zabarauskas
683ebf88eb Fix purity 2012-11-11 13:36:28 +10:00
Brendan Zabarauskas
9d73f0e94b Moved mix methods into Mix trait 2012-11-11 13:35:13 +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
f0ca91e452 Update Trig, add AngleConv trait, remove Degrees and Radians types for the time being 2012-11-09 16:18:14 +10:00
Brendan Zabarauskas
d8bfafa552 Improved argument name 2012-11-08 17:05:53 +10:00
Brendan Zabarauskas
57fd8a5a41 Rename Numeric type to Extent 2012-11-08 17:05:11 +10:00
Brendan Zabarauskas
aeab46451e Implemented exponential functions for each vector type 2012-11-08 14:09:15 +10:00
Brendan Zabarauskas
ede4575b2d OCD formatting 2012-11-08 13:46:01 +10:00
Brendan Zabarauskas
de72215d05 Rename SquareMatrix to NumericMatrix_NxN 2012-11-08 13:30:00 +10:00
Luqman Aden
e904f91105 Determinant is only defined for square matricies. 2012-11-07 22:04:11 -05:00
Luqman Aden
520ba818e6 Fix determinant/inver for 2x2. 2012-11-07 21:52:16 -05:00
Luqman Aden
a76378e83e Big oops, not all 2x2 matricies are upper/lower triangular. 2012-11-07 21:37:41 -05:00
Luqman Aden
f7fb7f7100 Added determinants and inversion. 2012-11-07 21:34:38 -05:00
Brendan Zabarauskas
8a4489c4ef Add transform unit test 2012-11-08 11:48:50 +10:00
Brendan Zabarauskas
e06117f29c Add Radian and Degree types 2012-11-08 11:48:29 +10:00
Brendan Zabarauskas
c30aca03e6 Rename FloatingPoint to Float for brevity 2012-11-08 11:47:56 +10:00
Brendan Zabarauskas
53a04a03f6 Remove vector-scalar addition/subtraction 2012-11-08 11:40:03 +10:00
Brendan Zabarauskas
499e5cfeae Fix function visibility 2012-11-07 14:01:01 +10:00
Brendan Zabarauskas
bc30f193e7 Move projection.rs to funs module 2012-11-07 12:38:44 +10:00
Brendan Zabarauskas
3316a77192 Add mat4_from_rotation function 2012-11-07 12:36:35 +10:00
Brendan Zabarauskas
bfe318aff5 Add explanation to matrix multiplication 2012-11-07 11:07:13 +10:00
Brendan Zabarauskas
1fe0d52fe4 Improve matrix multiplication 2012-11-07 08:38:44 +10:00
Brendan Zabarauskas
b792b8d7cd Add NumericMatrix trait 2012-11-06 20:03:55 +10:00
Brendan Zabarauskas
9cf0f2887a Update crate url 2012-11-06 14:03:14 +10:00
Brendan Zabarauskas
e2cfe36b9d Make type aliases public 2012-11-06 12:23:06 +10:00
Brendan Zabarauskas
6d7b81648b Fix purity and visibility modifiers 2012-11-06 12:06:34 +10:00