Commit graph

919 commits

Author SHA1 Message Date
Brendan Zabarauskas 0875ea4444 Merge pull request #284 from DerekBurch/fix-matrix3-to-quaternion
Fix conversion from Matrix3 to Quaternion
2015-12-23 13:12:03 +11:00
derekburch 744fb78662 Fix conversion from Matrix3 to Quaternion 2015-12-22 17:53:06 -08:00
Brendan Zabarauskas f60e85b61a Merge pull request #282 from bjz/assignment-ops
Implement most assignment operators
2015-12-23 07:35:16 +11:00
Brendan Zabarauskas e9dc8404ef Make Quaternion::magnitude pass self by-value 2015-12-22 23:14:16 +11:00
Brendan Zabarauskas 59d5e6f53a Implement most assignment operators 2015-12-22 22:34:34 +11:00
Brendan Zabarauskas 8c05db962a Implement by-ref negations for matrices 2015-12-22 00:43:15 +11:00
Brendan Zabarauskas 23c632acca Use SquareMatrix::ColumnRow instead of Matrix::Column 2015-12-21 22:10:28 +11:00
Brendan Zabarauskas 1d886f6197 Add all permutations of matrix ops, and remove operator methods
Completes #247
2015-12-21 21:02:40 +11:00
Brendan Zabarauskas 519af35d71 Remove Angle % Angle::Unitless 2015-12-14 04:42:02 +11:00
Brendan Zabarauskas db35af6ae9 Angle % Angle should return an Angle 2015-12-14 04:40:09 +11:00
Brendan Zabarauskas 1cc11d2c8b Simplify method implementations using From::from 2015-12-13 23:51:46 +11:00
Brendan Zabarauskas 612be7fecc Move free trigonometric functions onto Angle trait 2015-12-13 23:51:00 +11:00
Brendan Zabarauskas 5b9eeb15a0 Remove Debug constraint form Angle 2015-12-13 18:38:48 +11:00
Brendan Zabarauskas a49462426b Remove ScalarConv trait and Angle::from 2015-12-13 18:35:03 +11:00
Brendan Zabarauskas a1f73ddf0d Remove *_self methods from Angle 2015-12-13 18:13:11 +11:00
Brendan Zabarauskas e76921881f Remove operator methods on angles 2015-12-13 16:18:39 +11:00
Brendan Zabarauskas 369c1202c3 Fully impl operator permutations, and remove Zero and One impls 2015-12-13 15:54:10 +11:00
Brendan Zabarauskas 8f60f0a666 Angles should not implement Hash
Angles are implemented over floating point values - they will never be hashable.
2015-12-13 15:52:33 +11:00
Brendan Zabarauskas 981836626b Make Angle's type parameter an associated type 2015-12-13 13:09:44 +11:00
Brendan Zabarauskas de4389759b Merge pull request #273 from bjz/operator-method-sweep
Operator method sweep
2015-12-13 13:05:40 +11:00
Brendan Zabarauskas 7df65333cb Simplify projection type parameters 2015-12-13 12:35:09 +11:00
Brendan Zabarauskas a02b94fb70 Remove 'static constraints
These seem to be relics from an older Rust...
2015-12-13 12:24:30 +11:00
Brendan Zabarauskas 43634f0b49 Remove more *_self methods from Vector trait 2015-12-13 12:01:00 +11:00
Brendan Zabarauskas 534ba55d3e Remove Vector::one
Fixes #270
2015-12-13 12:01:00 +11:00
Brendan Zabarauskas 25f5dfd5fc Remove operator methods from Vector trait 2015-12-13 12:01:00 +11:00
Brendan Zabarauskas d468d76e0a Remove operator methods from Point trait 2015-12-13 12:00:34 +11:00
Brendan Zabarauskas 75b6548179 Remove ToComponents and CompositeTransform traits
Fixes #274

# Conflicts:
#	src/transform.rs
2015-12-13 10:20:53 +11:00
Brendan Zabarauskas 1bd67271f2 Remove vestigial crate attributes
These were added a looong time ago. They are not really useful these days.
2015-12-12 22:18:35 +11:00
Brendan Zabarauskas 577eafa654 Standardise macro use for code generation
This moves lots of the common code generation patterns into a macros module. In doing so, the code can be greatly reduced in size.
2015-12-12 22:17:03 +11:00
Brendan Zabarauskas 0b39e8f300 Add missing by-ref and by-val permutations of quaternion operators 2015-12-12 18:39:31 +11:00
Brendan Zabarauskas 74a771af79 Rename matrix scale functions for better ergonomics
Uniform scale matrices are probably the more common case. It probably makes sense that this has the shorter constructor.
2015-12-07 23:46:24 +11:00
Brendan Zabarauskas f75c8aa7f1 Merge pull request #261 from bjz/add-matrix-scale-functions
Add matrix scale functions
2015-12-06 21:08:27 +11:00
Brendan Zabarauskas 1a291c720c Simplify impl bounds
All the useful functions are implemented for BaseFloat, so it seems reasonable to not require such fine-grained impls. This should also make the generated documentation easier to read.
2015-12-06 19:53:23 +11:00
Brendan Zabarauskas 4f0aabb164 Clarify comments about the kind of matrices that are returned by the constructors 2015-12-06 19:53:23 +11:00
Brendan Zabarauskas 2d6b4e785c Add Matrix4::{from_scale, from_uniform_scale} functions 2015-12-06 19:53:23 +11:00
Brendan Zabarauskas 2dc0a4a43f Rename SquareMatrix::one to identity
Fixes #260
2015-12-06 19:36:38 +11:00
Brendan Zabarauskas 5b2b10d65f Rename Array::swap_elems to Array::swap_elements 2015-11-14 22:05:44 +11:00
Brendan Zabarauskas dcb0afd57b Remove Array::replace_elem
Doesn't seem very useful...
2015-11-14 22:04:04 +11:00
Brendan Zabarauskas 70dbef1eb1 Rename Array1 to Array 2015-11-14 22:02:17 +11:00
Brendan Zabarauskas ab24f3f8fe Make Matrix trait work for matrices of arbritrary dimensions 2015-11-14 22:02:17 +11:00
Brendan Zabarauskas ac2bba01cf Make pointer access function names match those in std 2015-11-14 22:02:17 +11:00
Brendan Zabarauskas 25ca567060 Move element-wise operations into Array1 trait 2015-11-14 12:17:03 +11:00
Brendan Zabarauskas 178272da3d Make lots of methods take vectors and points by value 2015-11-09 20:18:02 +11:00
Brendan Zabarauskas 7af4ebb28d Add some by-value operator overloads
Working towards #247
2015-11-08 17:45:33 +11:00
Brendan Zabarauskas 490997c93f Add an alias to Vector::Scalar in Point 2015-11-03 15:50:07 +11:00
Brendan Zabarauskas 89e656b1f6 Add comments noting rust bugs 2015-11-03 15:40:52 +11:00
Brendan Zabarauskas cda76e3bbb Remove type parameters from Matrix trait 2015-11-03 15:32:17 +11:00
Brendan Zabarauskas 669e43ab59 Make scalar type parametrs out of transform and rotation traits 2015-11-03 15:23:22 +11:00
Brendan Zabarauskas 25aea84e0d Make scalar an an associated type on Vector 2015-11-03 14:30:59 +11:00
Brendan Zabarauskas a434f18ba4 Make array type parameters associated types 2015-11-03 14:15:11 +11:00