Image Component Library (ICL)
Namespaces | Typedefs | Functions
HomogeneousMath.h File Reference
#include <ICLMath/FixedMatrix.h>
#include <ICLMath/FixedVector.h>

Go to the source code of this file.

Namespaces

 icl
 undocument this line if you encounter any issues!
 
 icl::math
 

Typedefs

typedef FixedColVector< icl32f, 3 > icl::math::Vec3
 another shortcut for 3D vectors More...
 
typedef FixedColVector< icl32f, 4 > icl::math::Vec4
 another shortcut for 3D vectors More...
 
typedef FixedMatrix< icl32f, 3, 3 > icl::math::Mat3
 typedef for 3x3 fixed matrices More...
 
typedef FixedMatrix< icl32f, 4, 4 > icl::math::Mat4
 typedef for 4x4 fixed matrices More...
 

Functions

template<class T >
icl::math::linear_interpolate (const T &a, const T &b, float x)
 linearly interpolates between a, b (x must be in range [0,1]) More...
 
ICLMath_API float icl::math::dist_point_linesegment (const Vec4 &p, const Vec4 &lineStart, const Vec4 &lineEnd, Vec4 *nearestPoint=0)
 distance from point p to line segment (lineStart -> lineEnd) More...
 
ICLMath_API float icl::math::dist_point_triangle (const Vec4 &p, const Vec4 &a, const Vec4 &b, const Vec4 &c, Vec4 *nearestPoint=0)
 distance from point p to triangle (a - b - c) More...
 
Vec4 icl::math::bilinear_interpolate (const Vec4 corners[4], float x, float y)
 bilinear vector interpolation More...
 
template<class T >
math::FixedColVector< T, 4 > icl::math::normalize (const math::FixedMatrix< T, 1, 4 > &v)
 normalize a vector to length 1 More...
 
template<class T >
math::FixedColVector< T, 4 > icl::math::normalize3 (const math::FixedMatrix< T, 1, 4 > &v, const double &h=1)
 normalize a vector to length 1 More...
 
float icl::math::sprod3 (const Vec3 &a, const Vec3 &b)
 3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component) More...
 
template<class T >
FixedMatrix< T, 3, 3 > icl::math::gramSchmidtOrtho (FixedMatrix< T, 3, 3 > const &mat)
 
float icl::math::sprod3 (const Vec4 &a, const Vec4 &b)
 3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component) More...
 
float icl::math::sqrnorm3 (const Vec4 &a)
 sqared norm for 4D homogeneous vectors (ignoring the homegeneous component) More...
 
float icl::math::norm3 (const Vec4 &a)
 3D- euclidian norm for 4D homogeneous vectors (ignoring the homegeneous component) More...
 
float icl::math::dist3 (const Vec4 &a, const Vec4 &b)
 3d euclidian distance More...
 
template<class T >
math::FixedColVector< T, 4 > icl::math::homogenize (const math::FixedMatrix< T, 1, 4 > &v)
 homogenize a vector by normalizing 4th component to 1 More...
 
template<class T >
math::FixedColVector< T, 4 > icl::math::project (math::FixedMatrix< T, 1, 4 > v, T z)
 perform perspective projection More...
 
template<class T >
math::FixedColVector< T, 4 > icl::math::cross (const math::FixedMatrix< T, 1, 4 > &v1, const math::FixedMatrix< T, 1, 4 > &v2)
 homogeneous 3D cross-product More...
 
template<class T >
math::FixedColVector< T, 3 > icl::math::cross (const math::FixedMatrix< T, 1, 3 > &v1, const math::FixedMatrix< T, 1, 3 > &v2)
 
Vec4 icl::math::rotate_vector (const Vec4 &axis, float angle, const Vec4 &vec)
 rotates a vector around a given axis More...