Commit Graph

847 Commits

Author SHA1 Message Date
Sébastien Crozet e2fc8aa764 Deprecate `to_pnt`, `as_pnt` and `VecAsPnt`.
Those are meaningless. Use `na::orig() + the_vector` instead.
2014-10-20 22:35:43 +02:00
Sébastien Crozet 276bf3f999 Update to the last rust-nightly.
Version of rustc: 0.13.0-nightly (222ae8b9b 2014-10-18 00:47:22 +0000).
2014-10-18 20:52:35 +02:00
Sébastien Crozet 8288ebdfab Add quaternions to the feature list. 2014-10-14 22:24:10 +02:00
Sébastien Crozet 5ba9f27530 Add quaternions.
Fix #24.
2014-10-14 22:20:49 +02:00
Sébastien Crozet 162346ab47 Fix typos. 2014-10-13 08:46:39 +02:00
Sébastien Crozet 0cf725f5f2 Add 3D orthogonal and perspective projection structures.
Fix #26.
2014-10-12 20:40:46 +02:00
Sébastien Crozet 03eda09084 Some documentation fixes.
Fix #25.
2014-10-12 10:35:56 +02:00
Sébastien Crozet b6090042ac Add a `Axpy` that implements y <- y + ax.
This is very useful for accumulations to compute, e.g. centers.
2014-10-12 09:24:16 +02:00
Sébastien Crozet de2479b70f Do not implement `Transform<Vec*> for Vec*`.
This is error prone as this is a no-op for vectors and a translation for points.
2014-10-11 00:23:10 +02:00
Sébastien Crozet 70de340498 Remove the `Iso * Vec` overload and the ability to Transform a Vector with an Iso.
This is too error prone as the user has to remember if he is using a vector or a point.
Istead, to transform a vector with an Isometry, use the internal rotation matrix of the isometry:
`iso.rotation * vector` instead of `iso * vector`.

The `Rotation` trait can also be used.
2014-10-10 22:21:05 +02:00
Sébastien Crozet bf67f079e7 Add a function `nalgebra::center(a, b)` that computes the center of two points. 2014-10-10 21:24:18 +02:00
Sébastien Crozet b3e7540b3c Delete the deprecated `na::` module. 2014-10-10 20:57:20 +02:00
Sébastien Crozet 6fb6d35980 Documentation fixes. 2014-10-10 20:56:40 +02:00
Sébastien Crozet e852eb4783 Fix the implementation of `ToHomogeneous` for `Iso*`. 2014-10-10 20:56:24 +02:00
Sébastien Crozet 7e9bb98823 Add `to_pnt` and `to_vec` methods. 2014-10-10 12:19:37 +02:00
Sébastien Crozet 924d8269d8 Add points.
This adds the Pnt{1,2,3,4,5,6} structures.
This adds the traits:
  − AnyPnt
  − FloatPnt
  − PntExt
  − FloatPntExt
  − Orig (to return the zero point)
  − PntAsVec
  − VecAsPnt
This adds operator overloading:
  − Pnt + Vec
  − Pnt - Vec
  − Pnt * Scalar
  − Pnt / Scalar
  − Pnt + Scalar
  − Pnt - Scalar
  − Iso * Pnt
  − Rot * Pnt
  − Pnt * Iso
  − Pnt * Rot
This changes some behavior:
  − Iso multiplication with a Vec does not translate the vector any more.
  − ToHomogeneous adds a 0.0 at the end of a Vec and a 1.0 at the end of a Pnt.
  − FromHomogeneous performs w-normalization on a Pnt, but not on a Vec.
  − The Translate<Vec> trait is never implemented (i-e. a Vec is not to be translated).

cc #25
2014-10-10 11:45:20 +02:00
Sébastien Crozet ba18f5aa70 Deprecate `na::`, move all reexport to the root crate.
This also moves the tests and benches to cargo-complient folders.

Fix #21.
2014-09-28 19:22:57 +02:00
Sébastien Crozet 8f89ac421c Update to the last rust.
Version of rustc: rustc 0.12.0-nightly (d64b4103d 2014-09-26 21:47:47 +0000).
2014-09-27 09:54:03 +02:00
Sébastien Crozet a9c7fe7420 Fix the matrix inversion test.
This prevent the test from failing when the matrix is non-inversible.
2014-09-19 23:53:36 +02:00
Sébastien Crozet 086088a0ed Fix the implementation of `Row` for fixed-size matrices.
Matrices are column-major.
2014-09-19 23:51:27 +02:00
Sébastien Crozet 1945cb09f2 Merge pull request #20 from bjz/warnings
Fix warnings
2014-09-19 23:43:46 +02:00
Sébastien Crozet 1a83622a2d Merge pull request #19 from bjz/index-operators
Implement index operators
2014-09-19 23:43:14 +02:00
Brendan Zabarauskas d3abbfcd4c Fix warnings 2014-09-18 15:20:04 +10:00
Brendan Zabarauskas b6959ef913 Implement index operators
Closes #18
2014-09-18 12:23:52 +10:00
Sébastien Crozet 972bbcc845 Merge pull request #17 from bfops/master
update for rustc 21d1f4d7c
2014-09-16 08:36:04 +02:00
Ben Foppa 6c8f14966c update for rustc 21d1f4d7c 2014-09-15 21:30:36 -04:00
Sébastien Crozet 560dff3891 Update to the last rust-nightly.
Version of rustc: 0.12.0-pre-nightly (2e92c67dc 2014-08-28 23:56:20 +0000).
2014-08-29 21:35:42 +02:00
Sébastien Crozet f83e7d25a8 Update .travis.yml. 2014-08-23 19:37:14 +02:00
Sébastien Crozet 1b7cd5fe1f Fix .travis.yml to use rustup. 2014-08-18 21:05:36 +02:00
Sébastien Crozet c408d5a0b2 Update to the last rust-nightly.
Version of rustc: 0.12.0-pre-nightly (01ec6fab2 2014-08-18 00:46:10 +0000).
2014-08-18 19:35:47 +02:00
Sébastien Crozet ff95e2a9d8 Remove the shifting from the qr algorithm. 2014-08-17 22:42:16 +02:00
Sébastien Crozet 844092205e Do not compute the matrix inverse if the determinant is near-zero. 2014-08-17 22:41:55 +02:00
Sébastien Crozet 314f0c0043 Add `na::eigen_qr` that performs an eigendecomposition using the qr algorithm. 2014-08-16 15:34:34 +02:00
Sébastien Crozet 663f8b3ccb Add a `Diag` to build, get and set a matrix diagonal. 2014-08-16 13:22:53 +02:00
Sébastien Crozet 40c9915870 Add the types: DVec1, .., DVec6.
They are stack-allocated, dynamically sized vectors with a maximum size.
This is useful for slicing small matrices, without allocation.
2014-08-16 12:16:26 +02:00
Sébastien Crozet 7d6884c3df Add a `Det` trait to compute the determinant + implement it for `Mat{1,2,3}`. 2014-08-11 19:54:13 +02:00
Sébastien Crozet 725f53d1e7 Add a `clean` rule to the makefile. 2014-07-27 09:13:43 +02:00
Sébastien Crozet 2f0234e7ac Avoid modulo on `DMat::from_fn`. 2014-07-27 09:13:13 +02:00
Sébastien Crozet 335bdd8a01 Merge pull request #16 from nathanic/master
Fix coordinate calculation in DMat::from_fn().
2014-07-27 09:11:18 +02:00
Nathan Stien ebe1ed1f16 Fix coordinate calculation in DMat::from_fn().
The builder function `f` was receiving incorrect coordinates, often
involving a uint underflow.

Added a test case to verify the new behavior.
2014-07-26 19:03:37 -05:00
Sébastien Crozet 97c2e71fd6 Remove `crate_type` from Cargo.toml. 2014-07-22 19:58:26 +02:00
Sébastien Crozet 5b1388888b Update the compilation section of the README. 2014-07-14 17:56:35 +02:00
Sébastien Crozet 65211aa89a Cleanup the Makefile + update travis.yml. 2014-07-14 16:27:46 +02:00
Sébastien Crozet 11ee4e46b1 Make cargo build a rlib too. 2014-07-14 13:48:31 +02:00
Sébastien Crozet 2ff660dfe1 Add a `ScalarMul` and a `ScalarDiv` trait.
Those might be useful to overcome rust limitations wrt operator overloading.
2014-07-13 11:43:05 +02:00
Sébastien Crozet 5929640883 Fix travis.yml. 2014-07-12 09:34:38 +02:00
Sébastien Crozet e3d1bf6f92 Update to the last rust-nightly.
Version of rustc: 0.11.0-nightly (5ad7286dc37839b7234ff51aab172e48935869d8 2014-07-12 00:31:46 +0000)
2014-07-12 09:30:49 +02:00
Sébastien Crozet 7b9a3f2bb9 Update to the last rust-nightly.
Version of rustc: 0.11.0-nightly (459f155f81291c46633e86a480628b50304ffb1c 2014-07-04 23:46:44 +0000).
2014-07-05 10:33:57 +02:00
Sébastien Crozet 997cd4f888 Add Cargo.toml. 2014-06-24 19:25:57 +02:00
Sébastien Crozet ecbc159521 Update some links to point on `nalgebra.org`. 2014-06-09 21:48:24 +02:00