Commit graph

1100 commits

Author SHA1 Message Date
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
Brendan Zabarauskas 0584bcac64 Make epsilon an associated type on ApproxEq 2015-11-03 14:00:39 +11:00
Brendan Zabarauskas 78f86a33cd Make vectors an associated type on Point 2015-11-03 11:32:15 +11:00
Brendan Zabarauskas 943a92e691 Remove collision types and traits from the library
Closes #244
2015-11-01 13:42:58 +11:00
Brendan Zabarauskas 9e53629459 Clean up index operator usages 2015-10-04 12:58:53 +11:00
Colin Sherratt c4e8d8ae69 Merge pull request #239 from bjz/method-renames
Method renames
2015-10-02 22:41:03 -04:00
Brendan Zabarauskas fc2943e27b Rename $Self_ in macros 2015-10-02 14:54:33 +10:00
Brendan Zabarauskas b168c03174 Rename identity to one
Zero is the additive identity, so this disambiguates it
2015-10-01 18:56:31 +10:00
Brendan Zabarauskas af38e8a8be Rename comp_{add, mul} to {sum, product} 2015-10-01 18:52:55 +10:00
Brendan Zabarauskas d9675f7c7e Formatting 2015-09-30 20:47:38 +10:00
Brendan Zabarauskas e845fd9b8c Reduce scope of dot_matrix4! macro 2015-09-30 20:06:17 +10:00
Brendan Zabarauskas 902215b532 Implement binary operators for matrices
We can't yet remove the operator methods, due to rust-lang/rust#20671
2015-09-30 19:01:30 +10:00
Brendan Zabarauskas 8b6fb94685 Implement binary operators for points
We can't yet remove the operator methods, due to rust-lang/rust#20671
2015-09-30 18:23:01 +10:00
Brendan Zabarauskas be5c6fb55b Compress point formatting 2015-09-30 18:09:40 +10:00
Brendan Zabarauskas b7b1f6c9cb Implement binary operators for quaternions 2015-09-30 18:05:20 +10:00
Brendan Zabarauskas e3e06297a0 Implement by-ref operators for vectors, and remove by-value implementations
We can't yet remove the operator methods, due to rust-lang/rust#20671

This also removes the implementations of `Zero` and `One` for vectors.
2015-09-30 17:37:52 +10:00
Brendan Zabarauskas 7a3f4f9e2d Fix formatting 2015-09-30 09:33:44 +10:00
Brendan Zabarauskas 5023b6c01e Consistently use associated functions throughout codebase 2015-09-30 09:32:25 +10:00
Brendan Zabarauskas 494f2b65ad Fix Quaternion::mul_self_q
Fixes #224

I haven't really thought about whether there is a faster way to do this, but at least it is fixed.
2015-09-29 18:36:41 +10:00
Colin Sherratt 5dd8bc7ef3 Merge pull request #233 from bjz/remove-map-method
Remove {Array1, Array2}::map method
2015-09-29 02:22:51 -04:00
Brendan Zabarauskas 4be95bcb7d Remove {Array1, Array2}::map method
This doesn't seem to be used anywhere - not sure how useful it is. It isn't really a proper `map` anyway, because it mutates `self`.
2015-09-29 09:47:57 +10:00
Brendan Zabarauskas 3ea0b3c5b2 Move some methods onto the Matrix trait
Now we can call them like `Matrix4::identity()`! Yay!
2015-09-29 09:34:41 +10:00
Brendan Zabarauskas 7f73c2cdd9 Add conversion tests for vectors, points, and quaternions 2015-09-27 17:20:02 +10:00
Brendan Zabarauskas 69caaf48b6 Add index tests 2015-09-27 13:01:14 +10:00
Brendan Zabarauskas aff340dc1e Add range index operators 2015-09-21 07:56:03 +10:00
Brendan Zabarauskas 0ce28fbe10 Remove FixedArray trait in favour of std::convert
Fixes #225
2015-09-21 06:49:33 +10:00
Tim Neumann 0469935161 fix rfc 1214 fallout 2015-09-12 13:07:22 +02:00
Pierre Krieger 9cd7f71875 Make functions in angle.rs more generic 2015-05-08 16:40:22 +02:00
Pierre Krieger 1a6dc52e51 Remove ToQuaternion 2015-05-06 16:27:03 +02:00
Pierre Krieger 6ce250b10d Remove ToBasis2/ToBasis3 in favor of Into 2015-05-06 16:27:03 +02:00
Pierre Krieger 151c6c6e64 Replace as_matrix* by impl AsRef<Matrix 2015-05-06 16:27:02 +02:00
Pierre Krieger 8ab8d7551d Replace ToMatrix* by Into 2015-05-06 16:27:02 +02:00
Pierre Krieger e5822e3864 Replace ToDeg/ToRad by From/Into 2015-05-06 16:27:02 +02:00
Pierre Krieger 8a34332f5f Rustup 2015-05-06 15:57:15 +02:00
Ryan Stewart a058142a2c Get cgmath building in beta by removing remaining unstable feature use. Benching is unstable and therefore only available on nightly; removed from travis in the interim. 2015-05-06 15:57:15 +02:00
Dzmitry Malyshau 16302ffa20 Fixed the num crate 2015-04-24 23:28:31 -04:00
Pierre Krieger d560242ed4 Allow writing matrix * scalar 2015-04-19 15:45:13 +02:00
Dzmitry Malyshau 498df01729 Fixed all the warnings, compile issues, and tests 2015-04-04 22:31:18 -04:00
Dzmitry Malyshau b56ad542b3 Fixed NumCast and angles 2015-04-04 21:32:12 -04:00
Dzmitry Malyshau 8db429acae Using rust-lang/num 2015-04-04 21:19:11 -04:00
Dzmitry Malyshau 94d428d23e Fixed the Neg disaster 2015-04-04 20:15:00 -04:00
Colin Sherratt 4d1e21d609 Use PhantomData for Line 2015-03-29 17:39:47 -04:00
Colin Sherratt f6b86fe4bd Add PhantomData to ray 2015-03-29 17:35:47 -04:00
Dzmitry Malyshau b36039a6ee Fixed the tests 2015-03-25 22:14:17 -04:00
Dzmitry Malyshau 05c4147cec Fixed Index implementations 2015-03-25 21:58:33 -04:00
Jonathan Neuschäfer 7b9a9aac69 compile the doctest in rotation.rs; use ``` instead of ~~~ 2015-03-18 18:21:39 +01:00
Jonathan Neuschäfer bc8a47fb8d use if/else if/else instead of match ()
It looks more idiomatic.
2015-03-18 18:21:39 +01:00
Jonathan Neuschäfer f4ac3952bd Grammar/spelling fixes 2015-03-18 17:51:38 +01:00
Jonathan Neuschäfer 4c527f8334 s/AUTHORS file/Cargo.toml file/ 2015-03-18 17:51:03 +01:00
Jonathan Neuschäfer 556c5f2375 line.rs: destructure self with let, save indentation 2015-03-18 17:44:31 +01:00
Dzmitry Malyshau 1e4271c2a6 Exposed Ortho fields as public (last time it was Perspective) 2015-03-18 01:04:21 +03:00
Dzmitry Malyshau c20350336e Exposed Ortho fields as public 2015-03-18 00:59:43 +03:00
Dzmitry Malyshau e0d85820e3 Fixed the frustum/bound relation. 2015-03-15 23:21:07 +03:00
Dzmitry Malyshau 6691dce420 Added Bound::relate_clip_space with default implementation 2015-03-15 22:37:11 +03:00
Dzmitry Malyshau fa3aacafcf Improved Plane, fixed Frustum computation from Matrix4, implemented Frustum contains() tests. 2015-03-15 22:36:09 +03:00
Dzmitry Malyshau 896c357ea8 Implemented Aabb to_corners() 2015-03-15 22:36:06 +03:00
Dzmitry Malyshau d3d7241c86 Moved bound implementations into the corresponding modules 2015-03-15 22:36:03 +03:00
Dzmitry Malyshau 2722815d84 Implemented Bound for Sphere 2015-03-15 22:36:01 +03:00
Dzmitry Malyshau e71887a848 Renamed the main entry point to be lib.rs 2015-03-15 22:36:00 +03:00
Dzmitry Malyshau 95c3b3608f Added Bound module, implemented for Point3 and Aabb3 2015-03-15 22:35:56 +03:00
Colin Sherratt 64fedca8e9 Manually add rand trait 2015-03-14 22:54:02 -04:00
Pierre Krieger 8895654f92 Remove dependencies to rand and rand_macros
Conflicts:
	src/cgmath.rs
2015-03-14 22:07:15 -04:00
tomaka 5ec45d1699 Update for rustc 2015-03-08 16:30:01 +01:00
Dzmitry Malyshau f03d4427ee Redesigned ToComponents, removed the implementation for AffineMatrix3 as incorrect. 2015-03-01 23:40:43 -05:00
Colin Sherratt 74707ed8d2 fix closure syntax 2015-03-01 13:28:38 -05:00
Dzmitry Malyshau 45c6fd630d Cleaned up public exports. Implemented ToComponents for Matrix3. Added tests. 2015-03-01 01:29:47 -05:00
Dzmitry Malyshau bf257a3e49 Added ToComponents. Moved from_value into . 2015-03-01 01:05:22 -05:00
Ben Foppa 562dfeb7a6 Add #[must_use] on functions with in-place variants. 2015-02-22 16:33:16 -05:00
Ben Foppa 1d9fc87f60 Points derive Eq. 2015-02-21 14:50:00 -05:00
Ben Foppa a1d4ba19d0 Add a phantom type annotation on Transform. 2015-02-20 23:29:11 -05:00
Bo Bakker a7d6c82f42 Fix for rustc
It works, and passes all tests.
2015-02-15 15:39:21 +01:00
Hyeon Kim f4b6782885 Suppress warnings: feature(hash) 2015-02-12 01:02:09 +09:00
Hyeon Kim 6937947a4a Rust version up
Fixes compile error
2015-02-12 01:01:31 +09:00
Andrey Lesnikov dbd6acaeb7 Fixed android build: added [no_link] to rand_macros 2015-02-09 15:57:27 +03:00
Colin Sherratt 662c7d7f68 cleanup some warnings around features 2015-02-08 13:36:33 -05:00
Colin Sherratt 778a3c13aa use the new rand_macros crate 2015-02-08 13:25:42 -05:00
Colin Sherratt e712bdee7c fmt::Show to fmt::Debug 2015-02-08 13:19:32 -05:00
Hyeon Kim 23fbac94e7 Update rust
`Output` is not a member of trait `IndexMut` anymore.
2015-02-09 02:50:35 +09:00
Dzmitry Malyshau 6ecbf2dbfd Implemented short vector constructors 2015-02-06 23:03:00 -05:00
Ty Overby 72d4460d81 rename fmt::Show to fmt::Debug 2015-01-23 15:01:24 -08:00
Colin Sherratt e064ea0e59 int to isize 2015-01-09 16:28:33 -07:00
Colin Sherratt bc89f14250 Fix tests 2015-01-09 15:30:19 -07:00
Colin Sherratt c0ce271e39 Updated to latest rustc 2015-01-09 15:06:45 -07:00
Colin Sherratt c7270a9077 Update to latest rustc 2015-01-07 15:34:42 -07:00
Colin Sherratt d6bb64fd65 Update for associated types changes 2015-01-04 18:56:01 -07:00
Connorcpu 22c2fe4755 Updated to rust nightly 2015-01-03 13:29:26 -08:00
Colin Sherratt 4bb12d6859 Switch to rustc_serialize 2014-12-26 16:18:29 -05:00
Jakob Fries 968adcd2cb Update to match latest Neg trait. 2014-12-21 18:28:59 +01:00
Connorcpu 43cfdd94ec Fixed macros with missing semicolons 2014-12-19 09:48:59 -08:00
Colin Sherratt b0187ddeaa Update to match the latest std::ops::* traits 2014-12-17 02:16:13 -05:00
Pierre Krieger 888dd6b18e Update for rustc 2014-12-15 13:49:57 +01:00
Jameson Ernst 5726e6c7dc Add deriving Copy to all structs that would previously be inferred to be Copy
Remove use of deprecated Equiv trait
Remove unsed attributes
2014-12-12 17:06:52 -08:00
Jameson Ernst 12ec7318d0 Remove deprecated Float use from tests. 2014-11-24 20:24:04 -08:00
Jameson Ernst 08f9354efc Fix ambiguous trait call; Remove deprecated Float calls. 2014-11-24 20:04:34 -08:00
Colin Sherratt 876e23b8cd export PartialOrd 2014-11-21 02:26:59 -05:00
Corey Richardson bcc4f11150 Merge pull request #142 from aepsil0n/vector_cast
Type-cast a vector component-wise
2014-11-20 10:46:30 -05:00
Eduard Bopp 4d2fb64482 Type-cast a vector component-wise
This allows one to e.g. cast a vector of f64s to an equivalent vector of f32s.
More generally this is allowed for arbitrary NumCast types.
2014-11-20 16:41:27 +01:00
Eduard Bopp 9f8580eeca Replace deprecated std::num traits
These traits are akin to the deprecated standard library traits (Zero, One,
Primitive) to keep everything running as before. However, for the long term a
better algebraic abstraction should be used/provided.
2014-11-20 16:28:02 +01:00
Martti Rannanjärvi 3ecf2eb5dd update to compile on nightly 2014-11-20 17:15:07 +02:00
Brendan Zabarauskas 1371f75165 Update for rustc 0.13.0-nightly
There are still some deprecation errors in the doc tests left
2014-11-16 01:59:43 +11:00
Sébastien Crozet 0bbefed4bc Improve the benchmark suite.
As a side effect, this adds `Rand` deriving to the benchmarked strucures.
2014-11-07 16:23:10 +01:00
Darkspear7 7ae16b3423 Removed constraints on ortographic projection function to allow bigger values for left, bottom, near than right, top, far. 2014-11-03 15:50:27 +02:00
Tomaka17 4fcfde13de fail! -> panic! 2014-10-30 10:11:33 +01:00
Eduard Bopp 666bb56670 Assertion macros for approximate equality
For sake of readability and consistency with the standard library macros
assert! and assert_eq!, the macros assert_approx_eq! and assert_approx_eq_eps!
have been implemented based on the ApproxEq trait.

Upon failure these macros yield readable error messages including the input
values and the tolerance (epsilon) used to determine their approximate
equality.

Resolves #131.
2014-10-23 10:22:34 +02:00
Colin Sherratt 0f0b960211 Added to_euler which allows moving from to and from euler coordinates.
I did not have much luck getting the old from_eular logic work the way I
expected so I updated the implementation to match my sources.

I believe this changed the order of the axis, I am unsure of what they were
before.
2014-10-13 21:05:49 -04:00
Colin Sherratt aae8747595 Fix ortho projection matrix 2014-10-04 20:12:09 -04:00
Tomaka17 1b5da61ccb Update for rustc 0e784e168 2014-09-16 23:26:11 +0000 2014-09-18 16:19:26 +02:00
HeroesGrave 896735a2b0 updated to latest Rust 2014-08-30 12:00:34 +12:00
Jeanne-Kamikaze 6f0573c79a Added 'from_point_normal' 2014-08-26 17:08:24 +02:00
bachm 825f5f2975 deriving Encodable, Decodable for all structs 2014-08-23 14:34:33 +02:00
Erik Hedvall cd5cdeacbf Removed duplicate Aabb3 re-export 2014-08-18 15:05:25 +02:00
Brendan Zabarauskas 379dc499ec Publicly re-export everything from the root crate
Closes #100
2014-08-16 14:53:54 +10:00
Brandon Waskiewicz 4f17d73f23 Add Ray2<>Aabb2 intersection impl 2014-08-13 20:51:51 -04:00
Brandon Waskiewicz 814b845de7 Update line intersection
*Change line<>line intersection to be ray<>line.
*Update tests accordingly
*Clean up and simplify intersection logic
2014-08-13 20:51:44 -04:00
Brendan Zabarauskas 3ff1eb583f Add fixed-length array conversions
Closes #111

`FixedArray::from_fixed` cannot yet be implemented due to  rust-lang/rust#16418
2014-08-11 21:10:38 +10:00
Brendan Zabarauskas f93963919a Transition codebase to the new method names 2014-08-11 18:55:14 +10:00
Brendan Zabarauskas 325ebad75e Use more self-explanatory names for indexing methods 2014-08-11 17:02:25 +10:00
Brendan Zabarauskas 8999d88216 Remove deprecated functions from array traits 2014-08-11 16:54:39 +10:00
Brendan Zabarauskas 8e5500d581 Switch to cargo 2014-08-11 16:15:14 +10:00
Vyacheslav Zeronov 535b5aa01f Added Matrix3::from_diagonal
Useful for creation of scale matrices.
2014-08-08 13:46:25 +06:00
Aaron Jacobs bfc8efff80 Fixes Matrix2::from_angle invocation and adds a test for the feature.
Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-08-05 22:28:03 -07:00
Corey Richardson e9a1723ef4 Merge pull request #106 from atheriel/vecdocs
Add a tutorial of sorts for working with cgmath's vectors.
2014-08-03 04:29:49 -07:00
Brendan Zabarauskas 1e1f60379e Deprecate element and column accessors in favour of index operators
Also removes some unnecessary `clone` calls.
2014-07-30 04:06:31 +10:00
Aaron Jacobs 5c25683cfb Adds a tutorial of sorts for working with cgmath's vectors.
There are several runnable code examples that should compile when
using `make doctest`.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 23:05:15 -07:00
Aaron Jacobs fddb3a7903 Implements the (mutable) index operator for vectors.
Again, this is possibly an oversight. The operators simply use the
mut_i() and i() methods which are demanded by the Array1<S> trait.

This means you may access the field `x` on a VectorN with vector[0]
syntax.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 22:37:49 -07:00
Aaron Jacobs 7e81b258a9 Implements division and remainder operators for vectors.
This might have been an oversight at one point. Although the `rem_v`
and `div_v` methods are available for vectors, the actual operators
were not.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-28 22:21:58 -07:00
OGINO Masanori e5f6d827da Remove crate_id.
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-07-29 11:16:15 +09:00
Brendan Zabarauskas 7ca114d5aa Merge pull request #103 from atheriel/rot_ex
Add a rotation example to the documentation.
2014-07-28 09:06:05 +10:00
Aaron Jacobs 993efcc7a8 Add a good rotation example to Basis2.
This ads an example (the first?) on a useful feature of cgmath, and
also a Make target for running just the examples in the docs. This
may come in useful if more examples are added.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-23 20:25:42 -07:00
Ben Foppa 784b9d8fa1 Fix inverted asserts 2014-07-18 11:55:53 -04:00
Brendan Zabarauskas 61a6810324 Merge pull request #96 from atheriel/vecmap
Add a map() method for vectors.
2014-07-05 19:24:12 -07:00
Aaron Jacobs d58fac1117 Use pointers for the column map.
Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-04 17:37:24 -07:00
HeroesGrave 047dbefd6f remove lifetime notations causing errors 2014-07-05 12:15:10 +12:00
Aaron Jacobs b0f706a96e Adds map() to Array1, and provides implementations for Vectors,
Points, Matrices, and Quaternions.

Signed-off-by: Aaron Jacobs <atheriel@gmail.com>
2014-07-02 21:34:26 -07:00
Colin Sherratt 1cf9f8d4ef - added translate to Matrix
- fixed spaces and tabs
2014-06-28 16:53:05 -04:00
Erick Tryzelaar 1c5b6f0b7a Update to compile with rust (9f8149e) 2014-06-25 21:26:15 -07:00
Corey Richardson 82529eec25 Update transform test to use Decomposed instead of Transform3D 2014-06-24 00:25:57 -07:00
Corey Richardson c9bdf838a5 Update for Cargo 2014-06-23 23:49:29 -07:00
Brendan Zabarauskas 1382c2ea4b Merge pull request #89 from bjz/transform
Remove Transform3D type
2014-06-15 11:19:15 -07:00
Brendan Zabarauskas f7364ce42a Clean up formatting 2014-06-15 11:18:31 -07:00
Brendan Zabarauskas b8996e124d Remove Transform3D type
Closes #86
2014-06-15 11:18:17 -07:00
Brendan Zabarauskas 1f9430399e Fix transmute build failure
Closes #87
2014-06-15 10:57:09 -07:00
Colin Sherratt b7a3a31156 Fix inverse matrix4, base it on Cramer's rule. 2014-06-05 15:53:23 -04:00
Colin Sherratt 25d67c7ec7 Added matrix that inverted incorrectly as part of #83. 2014-06-05 15:53:23 -04:00
ozkriff a850e37424 Updated to latest Rust: PartialEq, PartialOrd 2014-06-02 12:18:05 +04:00
ozkriff 63e53b1592 Removed 'extern crate debug', added fmt::Show for Angle 2014-05-28 21:53:45 +04:00
ozkriff 03005604b4 Updated to latest Rust: Added 'extern crate debug;' 2014-05-28 21:27:34 +04:00
ozkriff 1805c5b35a Made 'array' module public 2014-05-28 21:20:23 +04:00
Brendan Zabarauskas 3559ab2e35 Simplify type signatures and make function implementations more strait-forward
This results in more code duplication, but the resulting type signatures are much simpler and the implementations are far easier to understand. It should be easier for llvm to optimise things too, seeing as closures are not used.
2014-05-27 19:39:14 -07:00
Brendan Zabarauskas 5716dce205 Add matrix operator tests 2014-05-26 11:26:27 -07:00
Brendan Zabarauskas efe8cd9960 Fix matrix operator overloads
Closes #70
2014-05-26 11:26:26 -07:00
Brendan Zabarauskas d4ce9c7613 Clean up numeric traits 2014-05-26 10:31:55 -07:00
Corey Richardson ad970b94ec Expand crate documentation 2014-05-25 14:35:51 -07:00
Corey Richardson 322a5d0c38 AABB docs 2014-05-25 13:52:01 -07:00
Corey Richardson bf2cdfade3 Document Transform 2014-05-25 04:17:26 -07:00
Corey Richardson 27488b0dbc Touch up docs for Rotation 2014-05-25 04:10:44 -07:00
Corey Richardson 7416e5ce14 Touch up Ray docs 2014-05-25 03:17:57 -07:00
Corey Richardson 9828870380 Document Point 2014-05-25 03:09:33 -07:00
Corey Richardson c9573ad511 Touch up the Plane docs 2014-05-25 03:04:44 -07:00
Corey Richardson 8fa0f67333 Add some docs for Angle 2014-05-25 03:00:52 -07:00
Corey Richardson d6c0d1d65d Minor doc cleanup for Vector 2014-05-25 02:43:51 -07:00
Corey Richardson ed9e5d0929 Cleanup Quaternion docs 2014-05-25 01:29:19 -07:00
Corey Richardson fd2138bd88 Document Matrix
And remove `is_rotated`
2014-05-25 01:01:02 -07:00
Corey Richardson 5b1d1a0f01 Document Array 2014-05-24 18:22:23 -07:00
ozkriff f6a27cddba Updated for latest Rust 2014-05-17 00:11:27 +04:00
Brandon Waskiewicz 8ff2598dd9 Add line segment shape and functions
Create a new line segment struct that contains two Points in either
2D or 3D space.

Also create an implementation of the Intersect trait for testing
whether two line segments intersect, and where.
2014-05-13 21:39:38 -04:00
Luqman Aden d85dba915f Update crate attribute. 2014-05-12 21:09:16 -04:00
Luqman Aden 2a1ae1348c std::cast -> std::mem 2014-05-12 21:04:01 -04:00
Corey Richardson 9d618c37b3 Merge pull request #63 from xales/add-totaleq
Add deriving TotalEq for Vector.
2014-04-25 06:11:15 -04:00
Jake Greenfield 4a9999b11d Add deriving TotalEq for Vector. 2014-04-25 05:54:00 -04:00
ozkriff 8f018bfe0d Updated to latest Rust 2014-04-24 22:25:26 +04:00
Brendan Zabarauskas a1f23da32b Update bench to latest Rust 2014-04-14 12:16:25 +10:00
Brendan Zabarauskas 7c11ec250a Update formatting 2014-04-14 12:00:48 +10:00
Brendan Zabarauskas 64ae5fbd9a {Vec, Mat, Quat}->{Vector, Matrix, Quaternion}
The full names provide consistency with the other types. Also, Vec is now a type declared in libstd - this will reduce confusion.
2014-04-14 12:00:48 +10:00
ozkriff 3ee67019dd Updated to latest Rust: math changes 2014-04-02 13:24:04 +04:00
ozkriff 18fe0e74b5 Updated to latest Rust: priv/pub 2014-04-01 15:00:17 +04:00
ozkriff 01582f5649 Updated to latest Rust: std::vec -> std::slice 2014-03-21 14:18:04 +04:00
ozkriff 83943cd5b5 Replaced partial_{min,max} funcs with PartOrdPrim trait 2014-03-19 13:18:59 +04:00
ozkriff 1107ab8e6b aabb.rs: _{min,max} -> partial_{min,max} 2014-03-17 23:11:04 +04:00
ozkriff c026f520e1 Fixed warnings 2014-03-17 16:14:39 +04:00
ozkriff 385c3d7de8 Udated to latest Rust: TotalOrd/min/max changes 2014-03-17 15:13:54 +04:00
ozkriff 8868c793fe Updated to latest Rust 2014-03-14 12:27:24 +04:00
ozkriff 77d9a537fd Updated to latest Rust: Implemented Show for Mat{2,3,4} 2014-03-03 13:34:03 +04:00
ozkriff eb40fbce2a Updated to latest Rust: ToStr -> fmt::Show 2014-02-25 12:56:22 +04:00
ozkriff e5ec803fa5 Updated to latest Rust 2014-02-24 10:33:31 +04:00
ozkriff 141c4a8684 Updated to latest Rust 2014-02-22 01:44:56 +04:00
Colin Sherratt 4bcb1a5406 changed extern mod to extern crate 2014-02-15 22:46:33 -05:00
Colin Sherratt 5872ef347e Temporary workaround for the fact that std::num::Orderable is now removed. 2014-02-15 17:22:21 -05:00
Brendan Zabarauskas 11f8e29e17 Add Makefile and enable rust-ci doc export 2014-02-14 07:18:10 +11:00
Risto Saarelma fb03e2a660 Arguments directly used to construct AABB passed by value 2014-02-12 08:56:39 +02:00
Risto Saarelma a391d4450b Don't use abbrevations for the Aabb field names 2014-02-09 10:28:58 +02:00
Risto Saarelma 57ff382cf1 to_str for Aabbs 2014-02-07 08:50:10 +02:00
Risto Saarelma 907165075c Translate and scale methods for AABB 2014-02-07 08:48:46 +02:00
Risto Saarelma ff9fc767d4 Translate method for AABBs 2014-02-07 08:48:46 +02:00
Risto Saarelma 6ac1f09750 Utility methods for AA boxes 2014-02-07 08:48:46 +02:00
Rich Lane 17b9f5c066 replace fmt::Default with fmt::Show 2014-02-02 20:51:43 -08:00
Brendan Zabarauskas 0c903a7ec5 Merge pull request #38 from rsaarelm/master
Axis-aligned boxes use top and bottom corners
2014-01-30 22:43:44 -08:00
Risto Saarelma cdcae58c02 Axis-aligned boxes use top and bottom corners
Fixes issue #35.
2014-01-30 21:43:36 +02:00
Dzmitry Malyshau 21f10ee0ec Rotation2 and Rotation3 improved with from_* methods. Betwee_vecs implemented for all rotations. 2014-01-29 19:27:39 -05:00
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