Commit graph

1117 commits

Author SHA1 Message Date
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
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