Commit graph

867 commits

Author SHA1 Message Date
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
Brendan Zabarauskas 59d4b33691 Remove superfluous type parameters 2012-11-05 11:58:08 +10:00
Brendan Zabarauskas 2790fda04e Add from_value vector constructors 2012-11-05 10:05:16 +10:00
Brendan Zabarauskas 4e90754263 Reduce zero and one casts 2012-11-05 00:37:52 +10:00
Brendan Zabarauskas 9c03ef1ccb Formatting 2012-11-05 00:35:52 +10:00
Brendan Zabarauskas 3dc5e26126 Add angle unit conversions 2012-11-04 18:11:32 +10:00
Brendan Zabarauskas 8a3a28481e Add trig functions and methods 2012-11-04 16:59:42 +10:00
Brendan Zabarauskas e96a1d007f Remove transformation functions 2012-11-04 16:35:58 +10:00
Brendan Zabarauskas b245244b7d Add more matrix constructors and corresponding tests 2012-11-04 16:27:41 +10:00
Brendan Zabarauskas f3183dd0f1 Reduce zero and one casts 2012-11-04 14:39:33 +10:00
Brendan Zabarauskas a0cd3f77d8 Reduce zero and one casts, implement new constructors 2012-11-04 14:39:09 +10:00
Brendan Zabarauskas 2904be296e Reduce casting of zero value 2012-11-04 14:28:17 +10:00
Brendan Zabarauskas 98091e0a2e Add uuid 2012-11-02 13:59:51 +10:00
Brendan Zabarauskas 436d6b89b8 Add moves 2012-11-02 10:52:33 +10:00
Brendan Zabarauskas 30bfd9af5a Rename cast methods to align with Rust's naming conventions 2012-11-02 10:47:34 +10:00
Brendan Zabarauskas 0689f2b217 Add Todo comments 2012-11-02 10:39:03 +10:00
Brendan Zabarauskas 5080853cbe Reorganise modules 2012-11-02 10:10:27 +10:00
Brendan Zabarauskas 02e3c70d65 Move utility modules to src/common 2012-11-02 09:15:57 +10:00
Brendan Zabarauskas aa304bedae Rename library to lmath
Yes, I still can't decide! I think this will be the last time though.
2012-11-02 09:14:07 +10:00
Brendan Zabarauskas c001329e14 Remove superfluous type bounds 2012-11-02 00:27:01 +10:00
Brendan Zabarauskas 5f307b1a26 Move values in matrix constructors 2012-11-02 00:19:43 +10:00
Brendan Zabarauskas cfed77185a Improve naming scheme in constructor parameters 2012-11-02 00:12:03 +10:00
Brendan Zabarauskas 12498701a1 Convert vector arrays to separate fields in matrix types 2012-11-02 00:06:12 +10:00
Brendan Zabarauskas 25de081805 Move values in constructors 2012-11-02 00:01:06 +10:00
Brendan Zabarauskas c453c9bfea Rename project to lm-rs
Yes, I think this a little more sensible… :)
2012-11-01 23:08:40 +10:00
Brendan Zabarauskas 35058611f3 Rename and move constructors 2012-11-01 17:41:42 +10:00
Brendan Zabarauskas 372d67f2c1 Implement MinMax for all numeric types 2012-11-01 16:17:38 +10:00
Brendan Zabarauskas afb8bcec4b Change name of library to 'llama' 2012-11-01 15:58:36 +10:00
Brendan Zabarauskas df921a105f Update metadata attributes 2012-11-01 11:59:53 +10:00
Brendan Zabarauskas 34537324ae Add Apache 2.0 License 2012-11-01 11:59:21 +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 d8f669da75 Correct abs argument sigil 2012-10-30 12:46:10 +10:00
Brendan Zabarauskas 6f0b49aa0c Move exact_eq to trait 2012-10-30 12:45:18 +10:00
Brendan Zabarauskas cc053d449d Add description 2012-10-30 12:35:39 +10:00
Brendan Zabarauskas aac71ddc16 Add vector index operator performance test 2012-10-30 12:32:06 +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
Brendan Zabarauskas 9c3dbc2658 Improve Index trait implementation 2012-10-29 15:47:53 +10:00
Brendan Zabarauskas e285c77238 Reorganise directories 2012-10-28 21:43:23 +10:00
Brendan Zabarauskas c92771a2ae Minor comments/formatting/imports cleanup 2012-10-28 17:32:23 +10:00
Brendan Zabarauskas 44ab57cb43 Implement Sqrt for more types 2012-10-28 17:00:49 +10:00
Brendan Zabarauskas 28a9a8250a Move abs method to Abs trait implementations 2012-10-28 16:59:19 +10:00
Brendan Zabarauskas 11c7ee06fa Implement Abs for i8 to i64 2012-10-28 16:57:41 +10:00
Brendan Zabarauskas d0124e10c8 Correct static zero methods 2012-10-28 16:55:42 +10:00
Brendan Zabarauskas 2438675384 Replaced data arrays with component fields 2012-10-28 14:26:37 +10:00
Brendan Zabarauskas 0cef6b55b8 Fix to_str purity 2012-10-18 15:40:36 +10:00
Brendan Zabarauskas 7b0b955ef5 De-mode index overloads 2012-10-07 16:42:47 +10:00
Brendan Zabarauskas 9e3f1d6252 De-mode min/max functions 2012-10-06 15:08:02 +10:00
Brendan Zabarauskas 688026f49a Fix find/replace mistake in comments 2012-10-06 15:06:52 +10:00
Brendan Zabarauskas 08748ad78b De-moded functions and methods 2012-10-01 16:23:49 +10:00
Brendan Zabarauskas 782b3aaca1 Implement index operator trait 2012-09-29 20:37:46 +10:00
Brendan Zabarauskas 0ba6f5a633 Implement operator traits 2012-09-29 20:25:49 +10:00
Brendan Zabarauskas bf144110b7 Add pub attributes 2012-09-29 18:41:48 +10:00
Brendan Zabarauskas 3df7d557bd Bring code into line with recent updates to Rust 2012-09-24 12:54:24 +10:00
Brendan Zabarauskas 0a60f09042 Add static constant functions (commented out) 2012-09-11 08:13:49 +10:00
Brendan Zabarauskas ca20071c0f Remove extraneous imports 2012-09-11 08:06:31 +10:00
Brendan Zabarauskas 22189867d4 Add static constructors for Vectors (commented out)
See https://github.com/mozilla/rust/issues/3427
2012-09-10 13:18:27 +10:00
Brendan Zabarauskas 9f3a6325d7 Improve generic traits 2012-09-10 12:55:15 +10:00
Brendan Zabarauskas 413a5ff047 Rename repository to 'omath' 2012-09-08 18:54:32 +10:00
Brendan Zabarauskas fc83b7a17d Change const functions to const values 2012-09-08 16:08:36 +10:00
Brendan Zabarauskas 820ea22407 Add min and max functions to vector 2012-09-08 15:54:31 +10:00
Brendan Zabarauskas 015f0d8eb1 OCD formatting 2012-09-08 12:41:04 +10:00
Brendan Zabarauskas 04bdd00576 Add matrix unittests 2012-09-08 11:54:32 +10:00
Brendan Zabarauskas e9b407b6a5 Clean up comments 2012-09-08 04:49:52 +10:00
Brendan Zabarauskas 7ce34360a2 Add new vector methods 2012-09-08 04:45:07 +10:00
Brendan Zabarauskas 57d8c4809b OCD - move dot product methods 2012-09-08 01:18:18 +10:00
Brendan Zabarauskas f5b46e2459 Fix circular imports and subsequent build errors 2012-09-08 00:17:26 +10:00
Brendan Zabarauskas aed74ae3c9 initial commit 2012-09-07 20:48:47 +10:00