Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Namespaces | Typedefs | Functions
HomogeneousMath.h File Reference
#include <ICLMath/FixedMatrix.h>
#include <ICLMath/FixedVector.h>

Go to the source code of this file.

Namespaces

namespace  icl
 

The ICL-namespace.


namespace  icl::math

Typedefs

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

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])
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)
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)
Vec4 icl::math::bilinear_interpolate (const Vec4 corners[4], float x, float y)
 bilinear vector interpolation
template<class T >
math::FixedColVector< T, 4 > icl::math::normalize (const math::FixedMatrix< T, 1, 4 > &v)
 normalize a vector to length 1
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
float icl::math::sprod3 (const Vec4 &a, const Vec4 &b)
 3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component)
float icl::math::sqrnorm3 (const Vec4 &a)
 sqared norm for 4D homogeneous vectors (ignoring the homegeneous component)
float icl::math::norm3 (const Vec4 &a)
 3D- euclidian norm for 4D homogeneous vectors (ignoring the homegeneous component)
float icl::math::dist3 (const Vec4 &a, const Vec4 &b)
 3d euclidian distance
template<class T >
math::FixedColVector< T, 4 > icl::math::homogenize (const math::FixedMatrix< T, 1, 4 > &v)
 homogenize a vector be normalizing 4th component to 1
template<class T >
math::FixedColVector< T, 4 > icl::math::project (math::FixedMatrix< T, 1, 4 > v, T z)
 perform perspective projection
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
Vec4 icl::math::rotate_vector (const Vec4 &axis, float angle, const Vec4 &vec)
 rotates a vector around a given axis
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines