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