Commit graph

1071 commits

Author SHA1 Message Date
Colin Sherratt fb13dc4566 Implement to_mat4 for Transform3D and quaternion
Add a translate builder for Transform3D
2014-01-28 22:10:38 -05:00
Brendan Zabarauskas 7435ae16bf Merge pull request #32 from rlane/iterbytes
derive IterBytes for all structs
2014-01-26 22:26:27 -08:00
Rich Lane f3e680fc34 derive IterBytes for vectors, points, and angles
It's useful to be able to have types like `Vec3<i32>` as hashtable keys.
2014-01-26 22:19:40 -08:00
Lennart e9fcf971da Fix comments on Quat::from_angle_{x|y|z} functions 2014-01-26 22:12:56 -08:00
Lennart ba71cb4a37 Fix quat::Quat::from_angle_{x|y|z}
These functions were broken due to mistakenly using the full angle theta
in one place instead of theta / 2. This resulted in non-unit
quaternions that definitely did not rotate things correctly.
2014-01-26 22:11:58 -08:00
Dzmitry Malyshau 1789f26ea1 look_at() implemented as a part of Transform trait 2014-01-25 17:26:06 -05:00
Brendan Zabarauskas 6b33f5d7e5 Remove unnecessary parentheses 2014-01-26 05:02:30 +11:00
Brendan Zabarauskas 337061bd82 Call rustc directly in .travis.yml 2014-01-26 05:02:19 +11:00
Brendan Zabarauskas c2054e4993 Reduce code duplication
We can now have multiple definitions in macros!
2014-01-24 03:13:53 +11:00
Brendan Zabarauskas ac991aaec0 Impl appropriate operators for implementors of Zero and One 2014-01-24 03:00:24 +11:00
Colin Sherratt e3183110ad Fix renamed structures:
VecIterator -> Items
	MutVecIterator -> MutItems
2014-01-19 21:04:48 -05:00
kvark 522d20ffe5 Fixed tests that used assert_approx_eq 2014-01-08 20:06:02 -05:00
kvark 2fdf34cd18 New ApproxEq replaced the one in std 2014-01-08 19:26:50 -05:00
Corey Richardson 2992fd5f51 pkgid and make dead code public 2013-12-17 20:44:28 -05:00
Jarrett Billingsley 234634695d Changed 'self lifetime to 'a 2013-12-12 00:26:01 -08:00
Boden Garman 3c9a6a531d Fixed Mat4::look_at 2013-12-07 14:36:11 +11:00
Brendan Zabarauskas 8d4a06005c Add Mat4::look_at
Hopefully I got this right...
2013-12-03 20:11:39 +10:00
Boden Garman 908d3c2800 Fix ortho asserts 2013-12-01 17:46:05 +11:00
Brendan Zabarauskas b87aec64ac Merge pull request #11 from csherratt/mat4_opt_only
Improved the performance of mat4 multiply.
2013-11-27 15:34:50 -08:00
Colin Sherratt 810445d536 update to compile on latest rustc 2013-11-27 13:26:57 -05:00
Colin Sherratt 149c781e81 Documented the mat4 multiply optimization. 2013-11-27 12:20:13 -05:00
Colin Sherratt e4689ce22b Improved the performance of mat4 multiply. 2013-11-26 12:29:07 -05:00
Colin Sherratt c99ef02be1 Pad out the benchmarks to make the performance difference more pronounced.
This also speed the benchmarks up since the bench suite has trouble with
benchmarks that less then 100ns in length.
2013-11-26 03:14:48 -05:00
Colin Sherratt bfd2729c29 cleaned up formatting in matrix.rs in both test and bench 2013-11-26 02:30:30 -05:00
Colin Sherratt 29104f2375 Add a benchmarking suite for matrix. 2013-11-26 00:39:39 -05:00
Brendan Zabarauskas 9f39bf67b2 Formatting cleanups 2013-11-09 12:15:51 +11:00
Brendan Zabarauskas c916b65c6f Merge pull request #8 from kvark/master
Transform::concat implemented
2013-11-08 06:34:51 -08:00
jeff fd7003dc98 cleaning up from upstream merge 2013-11-06 18:43:56 -08:00
jeff a53f9913a8 ray-plane and ray-sphere intersection 2013-11-06 18:29:08 -08:00
Brendan Zabarauskas 9e053f22f8 Merge branch 'master' of https://github.com/kvark/cgmath-rs into kvark-master
Conflicts:
	src/tests/plane.rs
	src/tests/vector.rs
2013-11-03 14:59:28 +11:00
Jeff Belgum 7a709525d5 change float to f64 2013-11-02 10:20:35 -07:00
kvark 42e3801715 Implemented missing rotation functions (rotate_point, rotate_ray) 2013-11-02 11:16:18 -04:00
kvark c13ebf57ab Added transform_as_point 2013-11-02 10:18:37 -04:00
kvark efd3403bf2 ToStr implemented for transform::Decomposed 2013-11-02 09:51:20 -04:00
kvark 7f39520aa1 Transform::concat implemented 2013-11-02 09:11:13 -04:00
kvark 364d959784 Fixed tests to compile; added Point homogeneous transform & test; added Transform inversion & test; Implemented Transform for AffineMatrix3 2013-11-01 19:42:09 -04:00
kvark 04b257e217 Homogeneous transformations added for Point3; extend/truncate added for vectors; Transform3 is implemented for AffineMatrix3 2013-11-01 10:32:29 -04:00
kvark 6dd06103fc Generalized transform trait over any-dimensional vectors and points 2013-11-01 08:29:01 -04:00
kvark 0c41aa3951 Rotation is generalized over dimensions 2013-11-01 07:34:39 -04:00
kvark d81157fba5 Generalized Ray & Transform over dimensions 2013-11-01 07:09:57 -04:00
kvark 53ad086e5e Enabled Transform3, implemented it for Transform3D 2013-10-31 17:36:21 -04:00
Brendan Zabarauskas c283c9d1e7 Add trait for accessing the pointer to the first element of a type 2013-10-21 11:30:30 +11:00
Brendan Zabarauskas ff3522a711 Replace usages of fmt! with format! 2013-10-20 01:00:44 +11:00
Brendan Zabarauskas 7fd9f582b6 Make point structs public 2013-10-14 22:48:45 +11:00
Brendan Zabarauskas 66a329c591 Initial commit of transform module 2013-10-13 11:00:51 +11:00
Brendan Zabarauskas 77aeff0785 Rename Rot->Basis 2013-10-13 11:00:07 +11:00
Brendan Zabarauskas 70d48ed37b Force the client to perform Degree->Rad conversions by taking Rad parameters instead of generic Angles
This should make the overhead of conversions evident to the client.
2013-10-13 10:52:21 +11:00
Brendan Zabarauskas 3862e867ba Update to latest Rust 2013-10-13 06:56:05 +11:00
Brendan Zabarauskas 2ac675ae10 Fix slerp 2013-10-13 06:55:26 +11:00
Brendan Zabarauskas cae2839a3b Merge pull request #2 from kvark/master
Fixed projection.to_mat4 checks
2013-10-10 05:46:07 -07:00
kvark 049b05fe3f Fixed projection.to_mat4 checks 2013-10-09 04:35:51 -04:00
Brendan Zabarauskas e4e9b6909e Reduce the number of rotation types, shifting some of the functionality to the quaternion and matrix constructors. 2013-09-30 14:30:40 +10:00
kvark e056f7d43e Ported to Rust-0.8 2013-09-27 06:22:33 -04:00
Brendan Zabarauskas f968784b9b Add matrix tests 2013-09-20 02:44:06 +10:00
Brendan Zabarauskas 4c8e1445c1 Fix bug with macro expansion 2013-09-20 02:43:33 +10:00
Brendan Zabarauskas 34af62601b Use .fold for comp_min and comp_max 2013-09-19 20:44:26 +10:00
Brendan Zabarauskas 0772d14d59 Rename Mat{2,3,4}::ident -> Mat{2,3,4}::identity 2013-09-19 20:43:36 +10:00
Brendan Zabarauskas 8ed39f3982 Clean up usages of std::num::cast 2013-09-19 14:57:36 +10:00
Brendan Zabarauskas 279aa261a8 Add frustum constructors and use to implement Projection->Frustum conversions 2013-09-19 14:56:40 +10:00
Brendan Zabarauskas 8c17832bf8 Use match instead of cond! 2013-09-18 20:52:07 +10:00
Brendan Zabarauskas 39234b7089 Add Plane::from_points test 2013-09-18 12:54:41 +10:00
Brendan Zabarauskas 46636ca8ef Remove glob import 2013-09-18 11:37:06 +10:00
Brendan Zabarauskas 8519e0fb8e Add Plane::from_points constructor and impl ApproxEq for Plane 2013-09-18 11:36:41 +10:00
Brendan Zabarauskas d2dcd51428 Remove vector! macro 2013-09-18 11:35:33 +10:00
Brendan Zabarauskas efbe4b199b Simplify trait bounds 2013-09-17 18:50:42 +10:00
Brendan Zabarauskas eade6cc18f Implement inversions for AngleAxis rotations 2013-09-17 18:45:31 +10:00
Brendan Zabarauskas 7eb8bc50c9 Remove util module 2013-09-17 18:43:20 +10:00
Brendan Zabarauskas 8a184c39b4 Add equivalence test for angles 2013-09-17 17:02:45 +10:00
Brendan Zabarauskas 3449fe8a73 Add bisection method for angles 2013-09-17 16:40:29 +10:00
Brendan Zabarauskas 8df5b14477 Add some angle constants and normalisation methods 2013-09-17 15:28:27 +10:00
Brendan Zabarauskas 52e1f0819c Follow rustic naming conventions 2013-09-17 14:39:18 +10:00
Brendan Zabarauskas 172c60277f Flesh out Rotation{2, 3} traits, and impl for some types 2013-09-17 14:38:25 +10:00
Brendan Zabarauskas 03a5e94a60 Add more vector tests 2013-09-16 16:39:45 +10:00
Brendan Zabarauskas 44567f6103 Add Array::each_mut method and use it instead of iterators 2013-09-14 13:40:38 +10:00
Brendan Zabarauskas 59a46bc7ab Rename Array::zip to Array::fold
(woops!)
2013-09-14 12:06:02 +10:00
Brendan Zabarauskas 1a94e8d06e Add wrapper function for Array::build 2013-09-14 11:58:19 +10:00
Brendan Zabarauskas 68e03cd392 Remove Array::{map, bimap} functions 2013-09-14 11:53:12 +10:00
Brendan Zabarauskas ce5b2e9243 Add some method impls for the Matrix trait 2013-09-14 11:39:51 +10:00
Brendan Zabarauskas 00db4f17b4 Impl comp_add and comp_mul using Array::zip 2013-09-14 10:54:19 +10:00
Brendan Zabarauskas 28dd7963ba Add trait for defining intersections 2013-09-10 14:51:14 +10:00
Brendan Zabarauskas 6e3860f232 Remove util::half 2013-09-10 14:49:53 +10:00
Brendan Zabarauskas f95426173a Rename Plane3->Plane 2013-09-08 00:43:32 +10:00
Brendan Zabarauskas df9c66d1bb Use macro instead of loop for Array::build 2013-09-07 19:51:01 +10:00
Brendan Zabarauskas c84ca595b7 Add Vec{2, 3, 4}::unit_{x, y, z, w} functions 2013-09-07 15:08:59 +10:00
Brendan Zabarauskas 038b200338 Implement matrix to matrix conversions 2013-09-07 15:04:33 +10:00
Brendan Zabarauskas 15b69686b0 Further refine vector module, remove un-needed comment 2013-09-06 16:53:37 +10:00
Brendan Zabarauskas 56e718406a Add length tests 2013-09-06 16:39:34 +10:00
Brendan Zabarauskas 3e97a2446b Use macro to impl vector operations 2013-09-06 16:39:15 +10:00
Brendan Zabarauskas 408e86211c Begin work on testsuite 2013-09-06 15:44:58 +10:00
Brendan Zabarauskas 0d3d40637f Add comp_{min, max} and cross_self methods for vectors 2013-09-06 15:44:27 +10:00
Brendan Zabarauskas 4eff10a90e Shove the util functions unceremoniously into a separate file and hope nobody looks in there 2013-09-06 10:12:29 +10:00
Brendan Zabarauskas 28faaa2ccc Add collision types 2013-09-05 17:19:31 +10:00
Brendan Zabarauskas aef1d153a1 Simplify projection code 2013-09-05 16:44:27 +10:00
Brendan Zabarauskas 6534855673 Add rotation module 2013-09-05 16:43:52 +10:00
Brendan Zabarauskas 6d16999d29 The trigonometric functions don't have to be methods! 2013-09-04 15:52:44 +10:00
Brendan Zabarauskas bb17d95abe Clean up Mat3 to Quat conversion code 2013-09-04 15:42:12 +10:00
Brendan Zabarauskas 6117fef58b Use angle types in appropriate locations 2013-09-04 15:36:06 +10:00
Brendan Zabarauskas 9c65b38231 Add matrix algebra operations 2013-09-04 14:40:24 +10:00
Brendan Zabarauskas bf1dd601d7 Add projection types 2013-09-04 14:39:21 +10:00
Brendan Zabarauskas 37826e56bc Add angle unit types 2013-09-04 12:20:53 +10:00
Brendan Zabarauskas 2b8e36d4a3 Impl ApproxEq for vectors, matrices and points 2013-09-03 23:36:03 +10:00
Brendan Zabarauskas b84e154898 Impl One for vectors and matricies 2013-09-03 23:35:06 +10:00
Brendan Zabarauskas 7635d01276 Add normalize_self, normalize_self_to and lerp_self methods 2013-09-03 22:12:54 +10:00
Brendan Zabarauskas 11022618b3 Add ray types 2013-09-03 20:15:22 +10:00
Brendan Zabarauskas bd9f129b3a Add Mat2::from_angle constructor 2013-09-03 18:03:18 +10:00
Brendan Zabarauskas 0325af9a69 Add ToStr impls for point, vector and quaternion types 2013-09-03 17:33:33 +10:00
Brendan Zabarauskas 00991e00f3 Copy quaternion method impls over from src-old, and add conversion traits 2013-09-03 17:28:43 +10:00
Brendan Zabarauskas ca432e9728 Use Float for trait bounds instead of Real + ApproxEq<S> 2013-09-03 17:14:27 +10:00
Brendan Zabarauskas a89a5d70e8 Documentation work 2013-09-03 16:37:06 +10:00
Brendan Zabarauskas 8c173c8e51 Impl Neg operator trait for vectors and matricies 2013-09-03 15:43:27 +10:00
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