Brendan Zabarauskas
6e548843c1
Add projection module
2013-09-03 15:23:56 +10:00
Brendan Zabarauskas
68bd70f78f
Remove algebraic traits to simplify library
...
Pragmatically, according to advice from zeuxcg, I have decided to remove the algebraic traits. This has simplified the library a great deal by reducing indirection and removing redundant code.cx
2013-09-03 13:54:03 +10:00
Brendan Zabarauskas
c404092879
Use iterators instead of Array::{map_mut, bimap_mut, fold}
2013-09-02 18:32:25 +10:00
Brendan Zabarauskas
00bd313b87
Use iterators in inner product impl
2013-09-02 14:01:16 +10:00
Brendan Zabarauskas
ac0732409e
Add ident and zero to matrices
2013-09-02 11:49:05 +10:00
Brendan Zabarauskas
e8d1dc98ad
Implement matrix inversion
2013-08-28 13:56:48 +10:00
Brendan Zabarauskas
2976de3ff4
'Array' is a better mathematical name for Indexable
2013-08-28 12:03:43 +10:00
Brendan Zabarauskas
ba8c6ac7d0
Make macro syntax clearer
2013-08-28 11:05:44 +10:00
Brendan Zabarauskas
a49578fe83
Use macros for Point impls
2013-08-28 10:19:47 +10:00
Brendan Zabarauskas
6ec0d47ecf
Use default method impl for swap_r
2013-08-27 21:24:13 +10:00
Brendan Zabarauskas
75988e45d2
Update directory structure to rustpkg conventions
2013-08-27 21:13:29 +10:00
Brendan Zabarauskas
026a5e89b5
Condense vector impls further using macros
2013-08-27 16:52:33 +10:00
Brendan Zabarauskas
9064b9d5c0
Add some matrix impls, add operator macros
2013-08-27 16:11:05 +10:00
Brendan Zabarauskas
b67b31b633
Add matrix traits, do lots of reorganisation/re-formatting
2013-08-27 08:59:18 +10:00
Brendan Zabarauskas
caadaa669a
Fix copyright notices
2013-08-26 15:51:19 +10:00
Brendan Zabarauskas
3673c4db6d
Overhaul library, rename to cgmath
...
Moved the old source code temporarily to src-old. This will be removed once the functionality has been transferred over into the new system.
The new design is based on algebraic principles. Thanks goes to sebcrozet and his nalgebra library for providing the inspiration for the algebraic traits: https://github.com/sebcrozet/nalgebra
2013-08-26 15:08:25 +10:00
Brendan Zabarauskas
c429ed839d
Remove noise and color modules
...
These have now been moved to separate repositories:
- https://github.com/bjz/noise-rs
- https://github.com/bjz/color-rs
2013-07-30 14:02:26 +10:00
Brendan Zabarauskas
994b135bcd
Rename map_as_vecN
to with_vecN
...
This brings the method names into line with standard Rust nomenclature, for example `extra::rc::RcMut::{with_borrow, with_mut_borrow}`.
2013-07-25 15:40:10 +10:00
Brendan Zabarauskas
5fecb8fc81
Generalise noise methods to take generic Dimensioned
types
2013-07-25 12:57:14 +10:00
Brendan Zabarauskas
df3ce2935c
Add general Dimensioned
and SwapComponents
impls
2013-07-25 12:55:57 +10:00
Brendan Zabarauskas
679db701c9
Impl ApproxEq for rotation matricies using macros
2013-07-25 12:38:43 +10:00
Brendan Zabarauskas
f68c488163
Implement Ken Perlin's 'Improved Noise' algorithm and add example
2013-07-23 15:11:05 +10:00
Brendan Zabarauskas
c206d7dc3c
Rename dimensional acessors
...
index->i
col->c
row->r
elem->cr
2013-07-22 14:41:31 +10:00
Brendan Zabarauskas
1538e6e528
Merge quat impls
2013-07-22 14:06:35 +10:00
Brendan Zabarauskas
a753602d34
Remove rotate methods, standardise some method names, add displacement method
...
We don't need the rotation methods now because of the types in transform::rotation
2013-07-21 15:11:25 +10:00
Brendan Zabarauskas
65aea95e7d
Add scalar and component-wise clamp methods
2013-07-21 15:09:20 +10:00
Brendan Zabarauskas
31be8b79df
Add map_as_vec{2,3,4} methods and document AsVec method impls
...
These are useful for when for reusing methods available on the Vec{2,3,4} types.
2013-07-21 13:20:28 +10:00
Brendan Zabarauskas
a5c00bfe97
Use _s suffix instead of _t for methods that take scalar values
...
This is what rust-geom uses, and it seems to make more sense. I originally used _t because it referred to the base generic type, but I think _s makes more sense.
2013-07-19 11:10:28 +10:00
Brendan Zabarauskas
58c1fe7e1c
Implement some rotation methods and fix method signatures
2013-07-16 23:36:17 +10:00
Brendan Zabarauskas
bc2c26928f
Add Rotation2 trait and do some documentation work
2013-07-16 10:27:31 +10:00
Brendan Zabarauskas
03bfe9b7a7
Move rotation module into transform module
...
This decouples these types from the more general math types. It also makes more sense, because rotations are indeed a type of transformation.
2013-07-16 09:23:57 +10:00
Brendan Zabarauskas
8d2d0d11bd
Remove Matrix trait impls for RotationMat
...
These operations could potentially mess up the orthoganality of the rotation matrix. We could have made these fail if an the resulting matrices were not orthogonal, but it is preferable to enforce this at compile time rather than run time. More operations should be added in the future with this restriction in mind.
2013-07-16 09:20:30 +10:00
Brendan Zabarauskas
3daea27696
Add Rotation trait, RotationMat type, and implement Mat4 conversions
2013-07-16 07:57:36 +10:00
Brendan Zabarauskas
aa2f9224ce
Re-organise matrix constants
2013-07-16 07:14:10 +10:00
Brendan Zabarauskas
e9cc75f06d
Add rotation module
2013-07-15 12:03:21 +10:00
Brendan Zabarauskas
2ecc99b6a7
Documentation work
2013-07-15 12:03:03 +10:00
Brendan Zabarauskas
d700a7b35f
Implement min and max methods for vectors
2013-07-15 02:02:38 +10:00
Brendan Zabarauskas
4008cf8121
Implement component-wise methods
2013-07-14 16:18:25 +10:00
Brendan Zabarauskas
19376dce32
Divide vec unit tests into separate functions
2013-07-14 15:32:43 +10:00
Brendan Zabarauskas
e321b1046b
Documentation work
2013-07-14 14:43:29 +10:00
Brendan Zabarauskas
1810444a0a
Rename Dimensioned and Swap traits
2013-07-14 13:22:45 +10:00
Brendan Zabarauskas
d5514fc982
Move contents of geom and core modules into new math module
...
Having these two modules separate made more sense when the library was divided into lmath and cgmath. Now that the two have been combined, it makes more sense to bundle these types in one module (I think).
2013-07-14 11:47:10 +10:00
Brendan Zabarauskas
3ce6578d56
Rename RealVec to FloatVec and use Float trait constraints
2013-07-14 07:53:37 +10:00
Brendan Zabarauskas
04c24a01fa
Traitify Mat methods and remove macros
2013-07-14 07:49:23 +10:00
Brendan Zabarauskas
6061395fd7
Add Vec trait that inherits from Dimensional and Swap
2013-07-14 07:48:54 +10:00
Brendan Zabarauskas
d19e874b76
Remove unneccesary derefs
2013-07-14 00:55:46 +10:00
Brendan Zabarauskas
6a9d690c79
Arrange vector methods into traits
2013-07-13 23:37:38 +10:00
Brendan Zabarauskas
0e483bb579
Add some doc comments to vec module
2013-07-13 23:06:17 +10:00
Brendan Zabarauskas
139cd6dbe9
Misc formatting
2013-07-13 23:03:37 +10:00
Brendan Zabarauskas
e1e6b90c1b
Move types related to bounding volumes to bounds module
2013-07-13 23:00:33 +10:00
Brendan Zabarauskas
8973179b0d
Add impl_to_vec! and impl_as_vec! macros and use for points and colors
2013-07-12 19:20:09 +10:00
Brendan Zabarauskas
ad59c9b16f
Decouple vec module from Point2 and Point3
2013-07-12 16:36:36 +10:00
Brendan Zabarauskas
7615a55d84
More module re-arrangement
2013-07-12 16:32:12 +10:00
Brendan Zabarauskas
0cbfa7d040
Remove unnecessary method impl (bools now impl Not)
2013-07-12 14:08:25 +10:00
Brendan Zabarauskas
2ed5e94710
Add ray_to method to point types
2013-07-12 14:07:21 +10:00
Brendan Zabarauskas
3d51d83c92
Rename length to magnitude and remove distance methods from vec
2013-07-12 13:42:28 +10:00
Brendan Zabarauskas
eb75d34636
Add vector conversion traits
2013-07-12 13:41:28 +10:00
Brendan Zabarauskas
4159a214da
Add skeleton structs and impls for noise types
2013-07-12 12:38:53 +10:00
Brendan Zabarauskas
8139e634fb
Remove conflicting ApproxEq impls
2013-07-12 12:19:40 +10:00
Brendan Zabarauskas
3656068f5c
Add impl_approx! macro
2013-07-12 11:22:14 +10:00
Brendan Zabarauskas
f30b79deb3
Add some more types to geom and improve field names
2013-07-12 10:33:20 +10:00
Brendan Zabarauskas
e6bb9362ed
Create space module
2013-07-12 09:17:37 +10:00
Brendan Zabarauskas
6300d4b539
Move swap and dimensional impls into separate modules
2013-07-12 07:44:20 +10:00
Brendan Zabarauskas
b06785fc89
Remove impl_approx! macro
2013-07-11 23:54:50 +10:00
Brendan Zabarauskas
c4c986c0ef
Remove yuv module
2013-07-11 16:41:43 +10:00
Brendan Zabarauskas
290861f952
Add conversions from points to homogenous coordinates
2013-07-11 15:14:32 +10:00
Brendan Zabarauskas
de649c3b50
Add a bit of documentation to the point module
2013-07-11 14:59:18 +10:00
Brendan Zabarauskas
50747703cf
Method rejiggering. Add origin method.
2013-07-11 14:49:14 +10:00
Brendan Zabarauskas
92ee628c06
Fix normalize_degrees impls
2013-07-11 13:05:29 +10:00
Brendan Zabarauskas
fd9fcd2075
Add normalize_channel method
2013-07-11 12:56:35 +10:00
Brendan Zabarauskas
659226b15e
Add more methods to Point trait and implement operator overloads
2013-07-11 12:19:29 +10:00
Brendan Zabarauskas
aedf317af1
Add rotate method to Point trait, remove from_vec function and move impl directly on types
2013-07-11 11:45:21 +10:00
Brendan Zabarauskas
f5d96ab398
Create transform module, move frustum module, add a little documentation
2013-07-11 11:11:43 +10:00
Brendan Zabarauskas
8ae7f3dbad
Add rgb tests
2013-07-11 07:58:40 +10:00
Brendan Zabarauskas
ff439c9b1d
Comments ahoy
2013-07-10 20:46:14 +10:00
Brendan Zabarauskas
0d24a87a8e
Add svg color constants
2013-07-10 20:45:42 +10:00
Brendan Zabarauskas
1188cba878
Fix build error
2013-07-10 20:14:11 +10:00
Brendan Zabarauskas
8bca8757c2
Add hsv conversion tests
2013-07-10 20:13:50 +10:00
Brendan Zabarauskas
49b9b85079
Add yuv and ycbcr skeleton modules
2013-07-10 15:51:05 +10:00
Brendan Zabarauskas
053586c8e2
Add point conversion methods for vec2 and vec3 types
2013-07-10 14:18:44 +10:00
Brendan Zabarauskas
e12f561930
Add channel and color normalization methods
2013-07-10 14:16:16 +10:00
Brendan Zabarauskas
58c3233fe3
Impl Color trait
2013-07-10 12:59:02 +10:00
Brendan Zabarauskas
a3f997e763
Make Channel::from private
2013-07-10 10:59:23 +10:00
Brendan Zabarauskas
290287a0b9
Add skeleton hex conversions
2013-07-10 10:58:55 +10:00
Brendan Zabarauskas
8adad636d1
Add RGBA and HSVA impls
2013-07-10 10:57:37 +10:00
Brendan Zabarauskas
7e70e826f2
Add generic to_channel method
2013-07-10 10:37:59 +10:00
Brendan Zabarauskas
c4728af209
Add channel tests
2013-07-10 00:06:14 +10:00
Brendan Zabarauskas
23e21ac1b3
Improve trait bounds
2013-07-09 23:10:59 +10:00
Brendan Zabarauskas
d65aa944b9
Simplify color::channel traits
2013-07-09 22:50:20 +10:00
Brendan Zabarauskas
49715e6479
Merge some color modules
2013-07-09 21:28:23 +10:00
Brendan Zabarauskas
29a99cea51
Reduce transmute ugliness
2013-07-09 21:17:04 +10:00
Brendan Zabarauskas
452decd3e2
Use upper case identifiers for static constants
2013-07-09 17:32:24 +10:00
Brendan Zabarauskas
128e645a20
Relax type bounds
2013-07-09 17:05:19 +10:00
Brendan Zabarauskas
b9369247bf
Remove free standing color conversion functions
2013-07-09 16:53:24 +10:00
Brendan Zabarauskas
afaa3af501
Re-export FrustumPoints from world module
2013-07-09 16:44:15 +10:00
Brendan Zabarauskas
5c3197a7fc
Rename Plane to Plane3 for consistency with other types
2013-07-09 16:43:33 +10:00
Brendan Zabarauskas
2ca90cb750
Fix color channel conversions
2013-07-09 16:42:19 +10:00
Brendan Zabarauskas
a5d4fc1ed4
Make point into standalone struct as opposed to a newtype struct
2013-07-08 18:17:36 +10:00
Brendan Zabarauskas
5b5d1f38b3
Add octree and quadtree mods (not yet implemented)
2013-07-08 17:48:11 +10:00
Brendan Zabarauskas
999782945c
Add color module
2013-07-08 17:39:33 +10:00
Brendan Zabarauskas
6925c5eaad
Add skeleton noise module
2013-07-08 17:04:48 +10:00
Brendan Zabarauskas
c0a5b29af1
Move files into submodules
2013-07-08 17:02:04 +10:00
Brendan Zabarauskas
288afe0898
Remove dimensional HOFs
2013-07-08 13:20:34 +10:00
Brendan Zabarauskas
c91b0747b3
Untangle mat macros
2013-07-04 10:59:21 +10:00
Brendan Zabarauskas
1819846a4c
Untangle vec macros
2013-07-01 13:25:45 +10:00
Brendan Zabarauskas
b7530c3512
Fix lifetime error
2013-07-01 11:39:13 +10:00
maikklein
d43629e2b9
fixes += operator etc
2013-06-30 18:28:39 +02:00
Brendan Zabarauskas
6fb6d57175
Use the Clone trait instead of Copy and switch from the copy keyword to calling the clone method.
...
impl_approx! is broken with a borrow issue. The library does not compile yet. Sorry!
2013-06-29 16:38:55 +10:00
maikklein
c36cb6e555
explicit copy
2013-06-29 02:26:26 +02:00
maikklein
547ac400fd
explicit copy
2013-06-29 02:25:07 +02:00
Brendan Zabarauskas
6cfb244b41
Merge vector and matrix source files
2013-06-16 18:03:14 +10:00
Brendan Zabarauskas
9d99347bbf
Add types from cgmath
2013-06-16 17:34:09 +10:00
Brendan Zabarauskas
11e1623dad
Rename macros file
2013-06-16 17:32:48 +10:00
Brendan Zabarauskas
f5ba7a7982
Remove duplicate Dimensional trait definition
2013-06-16 15:37:30 +10:00
Brendan Zabarauskas
a4c7332e2b
Move Dimensional trait and dimensional macros into separate files
2013-06-16 15:34:59 +10:00
Brendan Zabarauskas
f20eca5cc5
Use macros and higher-order functions to reduce code repetition
2013-06-16 15:21:32 +10:00
maikklein
8673cd6701
Fixing vec2.perp_dot and vec3.angle
2013-06-16 02:08:16 +02:00
Brendan Zabarauskas
e82ac511a5
Use higher order functions to reduce code repetition in some methods
2013-06-12 15:49:54 +10:00
Brendan Zabarauskas
b727dd2bf5
Implement Dimensional trait
2013-06-12 12:57:58 +10:00
Brendan Zabarauskas
5cb98d09cf
Add conversion traits
2013-06-12 11:30:18 +10:00
Brendan Zabarauskas
b2e7f2e4b1
Some constructors and functions don't need T:Copy
2013-06-12 11:15:12 +10:00
Brendan Zabarauskas
feb4ae2a00
Move tests into source files
2013-06-12 11:02:11 +10:00
Brendan Zabarauskas
f226ab2262
Re-organise modules
2013-06-12 10:02:39 +10:00
Brendan Zabarauskas
21ae345adc
Be more selective about inlining, #[inline(always)] -> #[inline] for functions other than map
2013-06-12 07:50:16 +10:00
Brendan Zabarauskas
17975b798d
De-traitify types, fix tests
2013-06-11 09:02:25 +10:00
Brendan Zabarauskas
3721167cdc
Fix std imports
2013-06-06 12:38:23 +10:00
Brendan Zabarauskas
288c49b474
Remove broken macros
2013-06-06 12:38:03 +10:00
Brendan Zabarauskas
d352577356
Use ///
style doc comments
2013-06-01 12:57:29 +10:00
Brendan Zabarauskas
f443203d4a
Create elem and elem_mut methods for accessing matrix elements
2013-06-01 11:56:11 +10:00
Brendan Zabarauskas
a485920354
Fix constructors, tests now pass (YAYAY!)
...
YAYYYYYYYYAYAYAYAYAYAYAY
*jumps for joy*
2013-06-01 11:07:25 +10:00
Brendan Zabarauskas
36039228b6
Don't use index operator in tests
2013-06-01 09:12:30 +10:00
Brendan Zabarauskas
a913be0373
Delete old files
2013-06-01 08:01:20 +10:00
Brendan Zabarauskas
d3bfcc194e
Add license/copyright notices to source files
2013-06-01 08:01:01 +10:00
Brendan Zabarauskas
e630faf239
Remove index operator impls to prevent copying
...
We could re-implement this once the Index trait has been improved
2013-05-31 21:42:46 +10:00
Brendan Zabarauskas
86241f69cb
Fix multiple borrow errors
2013-05-24 07:55:23 +10:00
Brendan Zabarauskas
f800a0ae04
Fixes for core->std and changes to use
2013-05-24 07:05:25 +10:00
Brendan Zabarauskas
0361be55c5
Simplify index methods
2013-05-22 17:01:52 +10:00
Brendan Zabarauskas
11d6d0259a
Use #[cfg(test)] instead of #[test].
2013-05-22 16:46:27 +10:00
Brendan Zabarauskas
0c1af624a7
Remove usages of the <-> operator
2013-05-22 15:44:54 +10:00
Brendan Zabarauskas
ebf6a9529d
Use the new ApproxEq trait in core
2013-05-08 01:00:06 +10:00
Brendan Zabarauskas
0cb3314bf8
Use the new core::num traits and remove numeric dependency
2013-05-06 13:52:22 +10:00
Brendan Zabarauskas
a6acab93c3
Simplify trait bounds
...
Requires the latest version of numeric
2013-04-15 07:09:43 +10:00
Brendan Zabarauskas
aad2d62f37
Make lifetimes explicit, as required in latest updates to rust
2013-04-15 06:43:21 +10:00
Brendan Zabarauskas
887544b0b2
Fix ortho
2013-04-07 23:18:32 +10:00
Brendan Zabarauskas
a57935ccea
Clean up 'orthographic' function and rename to 'ortho'
2013-04-07 23:04:54 +10:00
Mikko Perttunen
4293d9aa1b
Add function projection::orthographic.
2013-04-07 13:06:26 +03:00
Mikko Perttunen
5cf091656d
Fix projection::perspective.
2013-04-07 12:55:03 +03:00
Brendan Zabarauskas
9116917607
Make trait names more succinct
2013-04-02 16:12:13 +11:00
Brendan Zabarauskas
4614930ad3
Formatting
2013-04-02 15:01:38 +11:00
Brendan Zabarauskas
c906578c69
Remove NumCast type parameters
...
The NumCast type parameter is no longer needed as it is a constraint of numeric::Number
2013-04-02 11:59:33 +11:00
Brendan Zabarauskas
d2885fea52
Remove unnecessary imports
2013-04-02 11:57:58 +11:00
Brendan Zabarauskas
449705b760
Use core::num::{Zero, One, NumCast} traits for 'zero', 'one' and 'cast' methods
2013-04-02 11:25:05 +11:00
Brendan Zabarauskas
25c70a7e87
Create zip macros for automating repetitive code
2013-04-01 07:35:09 +11:00
Brendan Zabarauskas
e5879db08c
Use macro for generating wrapper impls
2013-03-31 22:02:36 +11:00
Brendan Zabarauskas
69615bee12
Fix unit test build
2013-03-31 22:01:50 +11:00
Brendan Zabarauskas
85e8677c9c
Combine vec*.rs and mat*.rs files into two respective modules
...
I hate to do this as I find huge long files annoying, but it'll help work around some weird export bugs.
2013-03-31 17:27:59 +11:00
Brendan Zabarauskas
a1f0980688
Remove imports from top of files
2013-03-30 23:36:34 +11:00
Brendan Zabarauskas
dfa4339912
Remove unused imports
2013-03-30 11:42:55 +11:00
Brendan Zabarauskas
4b61cca057
Capitalise rustic type aliases
2013-03-30 11:22:59 +11:00
Brendan Zabarauskas
9f7d10a580
Convert type alias comments to doc comments
2013-03-30 11:22:32 +11:00
Brendan Zabarauskas
a601881dd5
Add rustpkg support
2013-03-30 09:54:05 +11:00
Brendan Zabarauskas
c6c92dc3e3
Merge each mutable trait with its respective immutable trait
2013-03-29 22:51:34 +11:00
Brendan Zabarauskas
fdb8a73555
Remove usages of 'to_unsafe_ptr'
2013-03-29 22:09:15 +11:00
Brendan Zabarauskas
1c51fba5a6
Fix tests
2013-03-29 18:48:01 +11:00
Brendan Zabarauskas
4cefbf763c
Re-fix index operators
2013-03-29 13:47:19 +11:00
Luqman Aden
6b0711fe63
Unused imports.
2013-03-28 18:39:29 -07:00
Luqman Aden
062a5126e4
Workaround conflicting loans when using util::swap.
2013-03-28 18:39:29 -07:00
Luqman Aden
a467bf7032
Update index impls.
2013-03-28 18:39:29 -07:00
Brendan Zabarauskas
fbb484408b
Fix some conflicting loans
2013-03-29 12:04:59 +11:00
Brendan Zabarauskas
3869c24ec8
Remove unnecessary dereference-references
2013-03-29 10:42:54 +11:00
Brendan Zabarauskas
e8c6e78cf4
Fix unused variable errors
2013-03-29 10:39:19 +11:00
Brendan Zabarauskas
8989881365
Fix cargo cult syntax
2013-03-29 10:37:25 +11:00
Brendan Zabarauskas
39ad5169f2
Make anonymous impls public
2013-03-29 10:32:23 +11:00
Brendan Zabarauskas
9e8666c53f
Fix lifetime issues
2013-03-29 10:29:20 +11:00
Brendan Zabarauskas
c6816207e0
Remove unused imports
2013-03-29 09:50:51 +11:00
Brendan Zabarauskas
1342d52bfa
Fix index operator overloads
2013-03-29 09:14:20 +11:00
Brendan Zabarauskas
ce0a6bcd02
Add 'self lifetimes
2013-03-29 09:10:55 +11:00
Brendan Zabarauskas
61bf32d1e9
Update to deriving(Eq)
attribute syntax
2013-03-28 21:56:38 +11:00
Brendan Zabarauskas
faffdf8273
Remove test_rot module
2013-03-28 21:54:50 +11:00
Brendan Zabarauskas
1c09618aa4
Convert asserts to syntax extension form
2013-03-28 21:54:25 +11:00
Brendan Zabarauskas
ad4ee9c436
Update lifetime notation
2013-03-28 21:39:19 +11:00
Brendan Zabarauskas
2c2b7a71d0
Remove instances of 'static'
2013-03-28 21:37:25 +11:00
Brendan Zabarauskas
27603dd6bd
Remove instances of 'pure'
2013-03-28 21:35:51 +11:00
Brian Heylin
8b94369a38
updated syntax and added type bounds, scope ownership issues remain
2013-03-28 10:45:43 +01:00
Luqman Aden
97acf34dbb
Update to new impl Trait for Type
syntax.
2013-02-17 03:16:41 -05:00
Brendan Zabarauskas
5929ba09cb
Import vector traits
2013-02-10 09:42:41 +11:00
Brendan Zabarauskas
ff185b373c
Update FuzzyEq impls
2013-02-10 09:42:06 +11:00
Brendan Zabarauskas
238e034e07
Use explicit self for fuzzy_eq
2013-02-07 08:31:52 +11:00
Brendan Zabarauskas
c0fb48f861
Use capitalised Self type
2013-02-07 08:28:48 +11:00
Brendan Zabarauskas
fdff434325
Update uses of fail to macro calls
2013-02-07 08:26:33 +11:00
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
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