Classes | |
struct | h_mat |
N-Dimensional matrix with homogeneous coordinates. More... | |
struct | h_vec |
N-Dimensional vector with homogeneous coordinates. More... | |
class | mat |
class | quat |
class | vec |
Namespaces | |
namespace | internal |
Functions | |
bool | about_equal (const quat &p, const quat &q) |
template<typename T> | |
bool | about_equal (const T &f, const T &q) |
template<typename T> | |
mln::trait::value_< typename mln::trait::op::times< T, T > ::ret >::sum | det (const mat< 3, 3, T > &m) |
template<typename T> | |
mln::trait::value_< typename mln::trait::op::times< T, T > ::ret >::sum | det (const mat< 2, 2, T > &m) |
quat | exp (const quat &q) |
bool | interpol_ok (const quat &p, const quat &q, float h) |
template<unsigned N, typename T> | |
bool | ldlt_decomp (mat< N, N, T > &A, vec< N, T > &rdiag) |
Perform LDL^T decomposition of a symmetric positive definite matrix. | |
template<unsigned N, typename T> | |
void | ldlt_solve (const mat< N, N, T > &A, const vec< N, T > &rdiag, const vec< N, T > &B, vec< N, T > &x) |
Solve A x = B after mln::algebra::ldlt_decomp. | |
quat | lerp (const quat &p, const quat &q, float h) |
quat | log (const quat &q) |
template<typename T> | |
mat< 3, 3, T > | make (const T &t00, const T &t01, const T &t02, const T &t10, const T &t11, const T &t12, const T &t20, const T &t21, const T &t22) |
template<typename T> | |
mat< 2, 2, T > | make (const T &t00, const T &t01, const T &t10, const T &t11) |
template<unsigned n, typename T, typename S> | |
vec< n, typename mln::trait::op::times< T, S > ::ret > | operator* (const vec< n, T > &lhs, const mln::value::scalar_< S > &s) |
template<unsigned n, typename T, typename U> | |
mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum | operator* (const vec< n, T > &lhs, const vec< n, U > &rhs) |
Scalar product (dot product). | |
template<typename S> | |
quat | operator* (const quat &lhs, const value::scalar_< S > &rhs) |
quat | operator* (const quat &lhs, const quat &rhs) |
template<unsigned n, unsigned m, typename T, typename S> | |
mat< n, m, typename mln::trait::op::times< T, S > ::ret > | operator* (const mat< n, m, T > &lhs, const value::scalar_< S > &s) |
template<unsigned m, typename T, typename U> | |
mat< m, m, typename mln::trait::op::times< T, U > ::ret > | operator* (const vec< m, T > &lhs, const mat< 1, m, U > &rhs) |
template<unsigned m, typename T, typename U> | |
mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum | operator* (const mat< 1, m, T > &lhs, const vec< m, U > &rhs) |
template<unsigned n, unsigned m, typename T, typename U> | |
vec< n, typename mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum > | operator* (const mat< n, m, T > &lhs, const vec< m, U > &rhs) |
template<unsigned o, typename T, typename U> | |
mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum | operator* (const mat< 1, o, T > &lhs, const mat< o, 1, U > &rhs) |
template<unsigned n, unsigned o, typename T, unsigned m, typename U> | |
mat< n, m, typename mln::trait::value_< typename mln::trait::op::times< T, U > ::ret >::sum > | operator* (const mat< n, o, T > &lhs, const mat< o, m, U > &rhs) |
template<unsigned n, typename T, typename U> | |
vec< n, typename mln::trait::op::plus< T, U > ::ret > | operator+ (const vec< n, T > &lhs, const vec< n, U > &rhs) |
quat | operator+ (const quat &lhs, const quat &rhs) |
template<unsigned n, unsigned m, typename T, typename U> | |
mat< n, m, typename mln::trait::op::plus< T, U > ::ret > | operator+ (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs) |
template<unsigned n, typename T, typename U> | |
vec< n, typename mln::trait::op::minus< T, U > ::ret > | operator- (const vec< n, T > &lhs, const vec< n, U > &rhs) |
template<unsigned n, typename T> | |
vec< n, typename mln::trait::op::uminus< T > ::ret > | operator- (const vec< n, T > &rhs) |
quat | operator- (const quat &lhs, const quat &rhs) |
template<unsigned n, unsigned m, typename T, typename U> | |
mat< n, m, typename mln::trait::op::minus< T, U > ::ret > | operator- (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs) |
template<unsigned n, unsigned m, typename T> | |
mat< n, m, typename mln::trait::op::uminus< T > ::ret > | operator- (const mat< n, m, T > &lhs) |
template<unsigned n, typename T, typename S> | |
vec< n, typename mln::trait::op::div< T, S > ::ret > | operator/ (const vec< n, T > &lhs, const mln::value::scalar_< S > &s) |
template<typename S> | |
quat | operator/ (const quat &lhs, const value::scalar_< S > &rhs) |
template<unsigned n, unsigned m, typename T, typename S> | |
mat< n, m, typename mln::trait::op::div< T, S > ::ret > | operator/ (const mat< n, m, T > &lhs, const value::scalar_< S > &s) |
template<unsigned n, typename T> | |
std::ostream & | operator<< (std::ostream &ostr, const vec< n, T > &v) |
std::ostream & | operator<< (std::ostream &ostr, const quat &q) |
template<unsigned n, unsigned m, typename T> | |
std::ostream & | operator<< (std::ostream &ostr, const mat< n, m, T > &v) |
template<unsigned n, typename T, typename U> | |
bool | operator== (const vec< n, T > &lhs, const vec< n, U > &rhs) |
template<unsigned n, unsigned m, typename T, typename U> | |
bool | operator== (const mat< n, m, T > &lhs, const mat< n, m, U > &rhs) |
template<unsigned n, typename T> | |
std::istream & | operator>> (std::istream &istr, vec< n, T > &v) |
quat | pow (const quat &q, double t) |
quat | slerp (const quat &p, const quat &q, float h) |
quat | slerp_2 (const quat &p, const quat &q, float h) |
quat | slerp_3 (const quat &p, const quat &q, float h) |
quat | slerp_4 (const quat &p, const quat &q, float h) |
quat | slerp_5 (const quat &p, const quat &q, float h) |
template<typename P> | |
P | to_point (const vec< P::dim, float > &v) |
template<unsigned n, typename T> | |
mln::value::props< T >::sum | tr (const mat< n, n, T > &m) |
template<typename T, typename U> | |
vec< 3, typename mln::trait::op::times< T, U > ::ret > | vprod (const vec< 3, T > &lhs, const vec< 3, U > &rhs) |
Vectorial product (cross product). |
bool mln::algebra::about_equal | ( | const quat & | p, | |
const quat & | q | |||
) | [inline] |
Definition at line 599 of file quat.hh.
References mln::norm::l2(), and mln::algebra::quat::to_vec().
bool mln::algebra::about_equal | ( | const T & | f, | |
const T & | q | |||
) | [inline] |
Definition at line 593 of file quat.hh.
References mln::math::abs().
Referenced by exp(), mln::algebra::quat::is_null(), mln::algebra::quat::is_pure(), mln::algebra::quat::is_unit(), mln::algebra::quat::set_unit(), slerp(), slerp_2(), slerp_3(), slerp_4(), and slerp_5().
mln::trait::value_< typename mln::trait::op::times< T, T >::ret >::sum mln::algebra::det | ( | const mat< 3, 3, T > & | m | ) | [inline] |
Definition at line 841 of file algebra/mat.hh.
mln::trait::value_< typename mln::trait::op::times< T, T >::ret >::sum mln::algebra::det | ( | const mat< 2, 2, T > & | m | ) | [inline] |
quat mln::algebra::exp | ( | const quat & | q | ) | [inline] |
Definition at line 573 of file quat.hh.
References about_equal(), mln::norm::l2(), mln::algebra::quat::quat(), mln::algebra::quat::s(), mln::algebra::quat::theta(), mln::algebra::quat::uv(), and mln::algebra::quat::v().
Referenced by pow().
bool mln::algebra::interpol_ok | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
bool mln::algebra::ldlt_decomp | ( | mat< N, N, T > & | A, | |
vec< N, T > & | rdiag | |||
) | [inline] |
Perform LDL^T decomposition of a symmetric positive definite matrix.
Like Cholesky, but no square roots. Overwrites lower triangle of matrix.
From Trimesh's ldltdc routine.
Definition at line 81 of file misc.hh.
Referenced by mln::geom::mesh_curvature().
void mln::algebra::ldlt_solve | ( | const mat< N, N, T > & | A, | |
const vec< N, T > & | rdiag, | |||
const vec< N, T > & | B, | |||
vec< N, T > & | x | |||
) | [inline] |
Solve A x = B after mln::algebra::ldlt_decomp.
Definition at line 114 of file misc.hh.
Referenced by mln::geom::mesh_curvature().
quat mln::algebra::lerp | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
quat mln::algebra::log | ( | const quat & | q | ) | [inline] |
Definition at line 565 of file quat.hh.
References mln::algebra::quat::is_unit(), mln::algebra::quat::quat(), mln::algebra::quat::theta(), and mln::algebra::quat::uv().
Referenced by pow().
mat< 3, 3, T > mln::algebra::make | ( | const T & | t00, | |
const T & | t01, | |||
const T & | t02, | |||
const T & | t10, | |||
const T & | t11, | |||
const T & | t12, | |||
const T & | t20, | |||
const T & | t21, | |||
const T & | t22 | |||
) | [inline] |
Definition at line 628 of file algebra/mat.hh.
mat< 2, 2, T > mln::algebra::make | ( | const T & | t00, | |
const T & | t01, | |||
const T & | t10, | |||
const T & | t11 | |||
) | [inline] |
vec< n, typename mln::trait::op::times< T, S >::ret > mln::algebra::operator* | ( | const vec< n, T > & | lhs, | |
const mln::value::scalar_< S > & | s | |||
) | [inline] |
mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::algebra::operator* | ( | const vec< n, T > & | lhs, | |
const vec< n, U > & | rhs | |||
) | [inline] |
Scalar product (dot product).
Definition at line 632 of file algebra/vec.hh.
References mln::literal::zero.
quat mln::algebra::operator* | ( | const quat & | lhs, | |
const value::scalar_< S > & | rhs | |||
) | [inline] |
Definition at line 543 of file quat.hh.
References mln::value::scalar_< T >::to_equiv(), and mln::algebra::quat::to_vec().
quat mln::algebra::operator* | ( | const quat & | lhs, | |
const quat & | rhs | |||
) | [inline] |
Definition at line 534 of file quat.hh.
References mln::algebra::quat::s(), mln::algebra::quat::v(), and vprod().
mat< n, m, typename mln::trait::op::times< T, S >::ret > mln::algebra::operator* | ( | const mat< n, m, T > & | lhs, | |
const value::scalar_< S > & | s | |||
) | [inline] |
mat< m, m, typename mln::trait::op::times< T, U >::ret > mln::algebra::operator* | ( | const vec< m, T > & | lhs, | |
const mat< 1, m, U > & | rhs | |||
) | [inline] |
mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::algebra::operator* | ( | const mat< 1, m, T > & | lhs, | |
const vec< m, U > & | rhs | |||
) | [inline] |
vec< n, typename mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum > mln::algebra::operator* | ( | const mat< n, m, T > & | lhs, | |
const vec< m, U > & | rhs | |||
) | [inline] |
mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum mln::algebra::operator* | ( | const mat< 1, o, T > & | lhs, | |
const mat< o, 1, U > & | rhs | |||
) | [inline] |
mat< n, m, typename mln::trait::value_< typename mln::trait::op::times< T, U >::ret >::sum > mln::algebra::operator* | ( | const mat< n, o, T > & | lhs, | |
const mat< o, m, U > & | rhs | |||
) | [inline] |
vec< n, typename mln::trait::op::plus< T, U >::ret > mln::algebra::operator+ | ( | const vec< n, T > & | lhs, | |
const vec< n, U > & | rhs | |||
) | [inline] |
Definition at line 590 of file algebra/vec.hh.
quat mln::algebra::operator+ | ( | const quat & | lhs, | |
const quat & | rhs | |||
) | [inline] |
mat< n, m, typename mln::trait::op::plus< T, U >::ret > mln::algebra::operator+ | ( | const mat< n, m, T > & | lhs, | |
const mat< n, m, U > & | rhs | |||
) | [inline] |
vec< n, typename mln::trait::op::minus< T, U >::ret > mln::algebra::operator- | ( | const vec< n, T > & | lhs, | |
const vec< n, U > & | rhs | |||
) | [inline] |
Definition at line 618 of file algebra/vec.hh.
vec< n, typename mln::trait::op::uminus< T >::ret > mln::algebra::operator- | ( | const vec< n, T > & | rhs | ) | [inline] |
Definition at line 604 of file algebra/vec.hh.
quat mln::algebra::operator- | ( | const quat & | lhs, | |
const quat & | rhs | |||
) | [inline] |
mat< n, m, typename mln::trait::op::minus< T, U >::ret > mln::algebra::operator- | ( | const mat< n, m, T > & | lhs, | |
const mat< n, m, U > & | rhs | |||
) | [inline] |
mat< n, m, typename mln::trait::op::uminus< T >::ret > mln::algebra::operator- | ( | const mat< n, m, T > & | lhs | ) | [inline] |
vec< n, typename mln::trait::op::div< T, S >::ret > mln::algebra::operator/ | ( | const vec< n, T > & | lhs, | |
const mln::value::scalar_< S > & | s | |||
) | [inline] |
Definition at line 670 of file algebra/vec.hh.
References mln::value::equiv(), mln::value::scalar_< T >::to_equiv(), and mln::literal::zero.
quat mln::algebra::operator/ | ( | const quat & | lhs, | |
const value::scalar_< S > & | rhs | |||
) | [inline] |
Definition at line 552 of file quat.hh.
References mln::rhs, mln::value::scalar_< T >::to_equiv(), and mln::algebra::quat::to_vec().
mat< n, m, typename mln::trait::op::div< T, S >::ret > mln::algebra::operator/ | ( | const mat< n, m, T > & | lhs, | |
const value::scalar_< S > & | s | |||
) | [inline] |
std::ostream & mln::algebra::operator<< | ( | std::ostream & | ostr, | |
const vec< n, T > & | v | |||
) | [inline] |
std::ostream & mln::algebra::operator<< | ( | std::ostream & | ostr, | |
const quat & | q | |||
) | [inline] |
std::ostream & mln::algebra::operator<< | ( | std::ostream & | ostr, | |
const mat< n, m, T > & | v | |||
) | [inline] |
bool mln::algebra::operator== | ( | const vec< n, T > & | lhs, | |
const vec< n, U > & | rhs | |||
) | [inline] |
Definition at line 577 of file algebra/vec.hh.
bool mln::algebra::operator== | ( | const mat< n, m, T > & | lhs, | |
const mat< n, m, U > & | rhs | |||
) | [inline] |
std::istream & mln::algebra::operator>> | ( | std::istream & | istr, | |
vec< n, T > & | v | |||
) | [inline] |
Definition at line 700 of file algebra/vec.hh.
quat mln::algebra::pow | ( | const quat & | q, | |
double | t | |||
) | [inline] |
quat mln::algebra::slerp | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
Definition at line 630 of file quat.hh.
References about_equal(), interpol_ok(), lerp(), mln::algebra::quat::quat(), and mln::algebra::quat::sprod().
Referenced by slerp_2(), slerp_3(), slerp_4(), and slerp_5().
quat mln::algebra::slerp_2 | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
Definition at line 641 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
quat mln::algebra::slerp_3 | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
Definition at line 650 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
quat mln::algebra::slerp_4 | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
Definition at line 659 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
quat mln::algebra::slerp_5 | ( | const quat & | p, | |
const quat & | q, | |||
float | h | |||
) | [inline] |
Definition at line 668 of file quat.hh.
References about_equal(), mln::algebra::quat::conj(), interpol_ok(), pow(), and slerp().
P mln::algebra::to_point | ( | const vec< P::dim, float > & | v | ) | [inline] |
Definition at line 726 of file algebra/vec.hh.
mln::value::props< T >::sum mln::algebra::tr | ( | const mat< n, n, T > & | m | ) | [inline] |
vec< 3, typename mln::trait::op::times< T, U >::ret > mln::algebra::vprod | ( | const vec< 3, T > & | lhs, | |
const vec< 3, U > & | rhs | |||
) | [inline] |
Vectorial product (cross product).
Definition at line 713 of file algebra/vec.hh.
Referenced by mln::geom::mesh_corner_point_area(), mln::geom::mesh_curvature(), mln::geom::mesh_normal(), and operator*().