Commit graph

621 commits

Author SHA1 Message Date
Brendan Zabarauskas
9c3f2e8774 Remove rot module def and rot::Rotation import 2013-01-29 21:24:08 +11:00
Brendan Zabarauskas
c89053f6ee Use capitalised Self type 2013-01-29 21:23:22 +11:00
Brendan Zabarauskas
58cfe4d32c Remove whitespace 2013-01-29 20:27:07 +11:00
Brendan Zabarauskas
d7f5efadbd Remove anonymous impls on types and transfer functionality to traits
Unfortunately this causes Rust's type inference to struggle, but this is a problem with the rust compiler and hopefully this will improve over time. Users are encouraged to use the type aliases and static method wrappers included with each module.
2013-01-29 20:26:48 +11:00
Brendan Zabarauskas
683ac4ad62 Re-define test mod names to remove the 'test_' prefix 2013-01-29 16:33:09 +11:00
Brendan Zabarauskas
0a4e19ba1e Move GLSL type aliases to vec, mat and quat mods 2013-01-29 12:13:44 +11:00
Brendan Zabarauskas
030af2a842 Add more static method wrappers for gltypes 2013-01-29 11:49:38 +11:00
Brendan Zabarauskas
153e5366c8 Remove FIXMEs 2013-01-29 11:48:41 +11:00
Brendan Zabarauskas
017791023d Impl 'new' constructors from VectorN traits 2013-01-28 10:33:02 +11:00
Brendan Zabarauskas
8f4e1e39d2 Use Matrix::{identity,zero} functions instead of MatN::{identity,zero} 2013-01-28 10:03:46 +11:00
Brendan Zabarauskas
ba64b42932 Fix tests 2013-01-28 10:02:40 +11:00
Brendan Zabarauskas
9b69ea222c Add vector constants for axis units 2013-01-28 09:50:49 +11:00
Brendan Zabarauskas
ddc617c925 Updates due to changes in numeric-rs 2013-01-28 09:22:15 +11:00
Brendan Zabarauskas
bee43bf004 Fix type inference issue 2013-01-26 08:43:44 +11:00
Brendan Zabarauskas
759baea596 Fix imports 2013-01-26 08:41:23 +11:00
Brendan Zabarauskas
8818c9ffbf Create separate ToHomogeneous trait 2013-01-02 16:59:24 +10:00
Brendan Zabarauskas
a16a41daad Change 'Approx' to 'Round' to reflect changes in numeric library 2012-12-31 12:29:47 +10:00
Brendan Zabarauskas
d39963b048 Remove unnecessary module specification 2012-12-31 12:25:23 +10:00
Brendan Zabarauskas
1295f574b2 Add to_homogeneous conversion method 2012-12-31 12:24:14 +10:00
Brendan Zabarauskas
73548ab1cb Made usages of Number::one and Number::zero prettier 2012-12-30 15:26:01 +10:00
Brendan Zabarauskas
a8da96eda4 Reduce the number of times normalize is called 2012-12-28 19:48:39 +10:00
Brendan Zabarauskas
cc465910de Redefine identity and zero methods as wrappers for Matrix::identity and Matrix::zero 2012-12-28 18:55:43 +10:00
Brendan Zabarauskas
aae354e3a6 Add component-wise vec/vec multiplication and division methods 2012-12-28 18:47:10 +10:00
Brendan Zabarauskas
bd91c24de0 Complete method implementations 2012-12-28 17:12:24 +10:00
Brendan Zabarauskas
0b55dc2105 Add methods in the Mat3 and Quat anonymous impls in preparation for implementing Rotation
rot::Rotation won't be able to be implemented until https://github.com/mozilla/rust/issues/4306 is fixed.
2012-12-28 16:41:21 +10:00
Brendan Zabarauskas
5c9d882efe Remove Quaternion trait 2012-12-28 13:47:34 +10:00
Brendan Zabarauskas
f4b6bf5572 Comment edits 2012-12-28 13:38:36 +10:00
Brendan Zabarauskas
6485ff070e Add Rotation trait
This will eventually be implemented on Mat3 and Quat
2012-12-28 13:37:18 +10:00
Brendan Zabarauskas
16e06c3855 Add is_zero method to Vector trait 2012-12-24 13:46:25 +10:00
Brendan Zabarauskas
dd973d2e49 Remove deprecated moves 2012-12-21 14:08:43 +10:00
Brendan Zabarauskas
65e301d52d Use #[deriving_eq] instead of Eq 2012-12-20 15:18:23 +10:00
Erick Tryzelaar
0af1594db4 Fix paths for rust 0.5. 2012-12-19 19:53:41 -08:00
Brendan Zabarauskas
f4a8e5b99f Add fuzzy_eq tests 2012-12-18 13:48:02 +10:00
Brendan Zabarauskas
7cf15d7f10 Minor formatting improvements in frustum function 2012-12-18 12:27:56 +10:00
Brendan Zabarauskas
896c7845e4 Fix license meta 2012-12-18 12:26:35 +10:00
Brendan Zabarauskas
02577eab7a Create vector-specific traits for common and exponential functions 2012-12-17 19:25:06 +10:00
Brendan Zabarauskas
a95405fde7 Fix imports from numeric 2012-12-17 17:25:41 +10:00
Brendan Zabarauskas
04e7ab0dfb Use traits from numeric library in funs module 2012-12-17 16:09:56 +10:00
Brendan Zabarauskas
49c27ad4f1 Comments 2012-12-17 16:09:00 +10:00
Brendan Zabarauskas
85047f58b6 Divide RelationalVector into OrdinalVector and EquableVector 2012-12-17 15:35:03 +10:00
Brendan Zabarauskas
5eff2e4992 Move relational vector traits to vec modules 2012-12-16 15:19:38 +10:00
Brendan Zabarauskas
ff336f0791 Switch to using numeric-rs for numeric type traits 2012-12-16 15:05:04 +10:00
Brendan Zabarauskas
00e2543b22 Fix imports 2012-12-16 09:57:42 +10:00
Brendan Zabarauskas
cfc1107d00 Fix exports 2012-12-16 09:38:55 +10:00
Brendan Zabarauskas
e939b5eb95 Long lines 2012-12-16 08:30:44 +10:00
Brendan Zabarauskas
645981efbf Add more rotation matrix constructors 2012-12-15 16:12:16 +10:00
Brendan Zabarauskas
563aa9495e Remove from_mat constructors
We already have the to_mat conversion methods, so these are redundant
2012-12-14 18:37:02 +10:00
Brendan Zabarauskas
9820436633 Remove random text
8^[
2012-12-14 16:31:07 +10:00
Brendan Zabarauskas
b51e66b19a Remove ToQuat trait 2012-12-14 16:22:45 +10:00
Brendan Zabarauskas
6c4c2fc1c8 Add more Quaternion unit tests. 2012-12-14 16:05:18 +10:00
Brendan Zabarauskas
889736bd61 Add identity and zero static methods to Quat's impl 2012-12-14 16:04:46 +10:00
Brendan Zabarauskas
5ce765367a Split up vec and mat modules 2012-12-13 23:01:42 +10:00
Brendan Zabarauskas
3d31797d8d Add angle calculation method to vectors, improve vector unit tests 2012-12-13 22:01:55 +10:00
Brendan Zabarauskas
965bade82c add normalize_to and normalize_self_to methods 2012-12-13 19:21:50 +10:00
Brendan Zabarauskas
7f14c6784b Move color module to new git repository 2012-12-13 16:57:09 +10:00
Brendan Zabarauskas
b429d91fcf Remove num::cast::cast function and num::cast::NumCast::from method 2012-12-13 11:10:53 +10:00
Brendan Zabarauskas
bc9104fdb5 Implement FuzzyEq for Angle and Color types 2012-12-12 14:19:19 +10:00
Brendan Zabarauskas
3a3034b7b6 Fix typo 2012-12-12 13:25:01 +10:00
Brendan Zabarauskas
a43c630ee9 Make from_float accept a generic Float argument 2012-12-12 13:24:38 +10:00
Brendan Zabarauskas
5aef15d9d7 Remove to_float method from Float trait
Conflicts with num::NumConv::to_float
2012-12-12 13:20:32 +10:00
Brendan Zabarauskas
1b24495c09 Remove Dimensional and ToPtr traits 2012-12-12 11:29:35 +10:00
Brendan Zabarauskas
3abc1df753 Rename kinds module to types 2012-12-12 09:55:42 +10:00
Brendan Zabarauskas
8e88baf06e Add methods to Signed and Float traits 2012-12-12 09:50:45 +10:00
Brendan Zabarauskas
1fbe5203e1 Remove comment and nested unsafe block 2012-12-10 11:47:36 +10:00
Brendan Zabarauskas
c8f3f1919a Unmark Mat4 inverse method as unsafe 2012-12-10 10:48:02 +10:00
Brendan Zabarauskas
e39f02ccf7 Fix to_int conflict 2012-12-10 10:40:32 +10:00
Brendan Zabarauskas
b6049b28e2 Remove comma separated inheritance lists 2012-12-10 10:38:41 +10:00
Brendan Zabarauskas
1a55784c81 Merge branch 'master' of https://github.com/luqmana/lmath-rs 2012-12-10 10:32:29 +10:00
Brendan Zabarauskas
9d03050ed1 Add size_of and bits methods 2012-12-08 21:15:52 +10:00
Brendan Zabarauskas
4d48591e80 Documentation 2012-12-08 21:14:33 +10:00
Brendan Zabarauskas
6169ef0ee3 Use Float::pi() instead of f64::consts::pi 2012-12-08 21:12:37 +10:00
Brendan Zabarauskas
5d7b3cfba4 Remove cast method 2012-12-08 21:11:08 +10:00
Brendan Zabarauskas
2e0521f4e5 Remove Euler type 2012-12-08 21:10:42 +10:00
Brendan Zabarauskas
4bd14e4d50 Make slerp method implementation a little easier to understand 2012-12-08 12:59:37 +10:00
Brendan Zabarauskas
b4fbb9c76a Remove Rotation struct and methods 2012-12-08 12:59:10 +10:00
Luqman Aden
d74cdb0dfa 4x4 matrix inversion now uses the mutable self operators. 2012-12-07 19:09:03 -05:00
Luqman Aden
fb59c90b88 More explicit self. 2012-12-07 19:00:50 -05:00
Brendan Zabarauskas
9669b7bccc Fix to_mat3 method 2012-12-07 14:16:28 +10:00
Brendan Zabarauskas
079199c275 Remove default_eq module 2012-12-07 02:19:48 +10:00
Brendan Zabarauskas
4a0cf79a85 Rix rotation to mat3 conversion 2012-12-06 11:11:08 +10:00
Brendan Zabarauskas
c442cf148e Fix some silly mistakes 2012-12-05 20:03:39 +10:00
Brendan Zabarauskas
bdb8605bd5 Remove convert_channel method 2012-12-05 20:03:04 +10:00
Brendan Zabarauskas
2efb96de16 Add todo, remove fixme 2012-12-05 18:10:51 +10:00
Brendan Zabarauskas
bb4154199b More documentation updates 2012-12-05 18:09:53 +10:00
Brendan Zabarauskas
c3512ecd57 Add methods for mutable colors 2012-12-05 15:42:01 +10:00
Brendan Zabarauskas
48f581f1f4 Document color conversions for the Color trait 2012-12-05 15:41:35 +10:00
Brendan Zabarauskas
e2b134d51f Add mut matrix methods 2012-12-05 13:49:59 +10:00
Brendan Zabarauskas
8acc8f6943 Improve mathematical terminology 2012-12-05 12:10:05 +10:00
Brendan Zabarauskas
b15c20c7fc Update documentation, add vector type parameter to quaternion 2012-12-05 11:51:18 +10:00
Brendan Zabarauskas
63f9cd38b7 Update documentation, rename quaternion length methods to magnitude
Although `magnitude` conflicts with the `length` in the vector implementations, it seems to be more in keeping with the correct mathematical terminology.
2012-12-05 11:38:30 +10:00
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
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
d2cf5c9da3 Use dot product for matrix-vector multiplication 2012-11-05 17:33:11 +10:00
Brendan Zabarauskas
8bab3a96ce Remove unnecessary type parameter 2012-11-05 17:03:32 +10:00
Brendan Zabarauskas
a1a31907d7 Add and implement SquareMatrix trait 2012-11-05 14:46:28 +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