15 float radians(
const float deg );
17 float degrees(
const float rad );
24 const float t00= 1,
const float t01= 0,
const float t02= 0,
const float t03= 0,
25 const float t10= 0,
const float t11= 1,
const float t12= 0,
const float t13= 0,
26 const float t20= 0,
const float t21= 0,
const float t22= 1,
const float t23= 0,
27 const float t30= 0,
const float t31= 0,
const float t32= 0,
const float t33= 1 );
35 Transform&
column(
const unsigned id,
const float t0,
const float t1,
const float t2,
const float t3 );
42 Transform&
row(
const unsigned id,
const float t0,
const float t1,
const float t2,
const float t3 );
44 vec4 row(
const unsigned id )
const;
75 const float *
data( )
const {
return &m[0][0]; }
114 Transform Perspective(
const float fov,
const float aspect,
const float znear,
const float zfar );
116 Transform Ortho(
const float left,
const float right,
const float bottom,
const float top,
const float znear,
const float zfar );
127 inline std::ostream& operator<<(std::ostream& o,
const Transform& t)
129 o << t.m[0][0] <<
" " << t.m[0][1] <<
" " << t.m[0][2] <<
" " << t.m[0][3] <<
" " << std::endl;
130 o << t.m[1][0] <<
" " << t.m[1][1] <<
" " << t.m[1][2] <<
" " << t.m[1][3] <<
" " << std::endl;
131 o << t.m[2][0] <<
" " << t.m[2][1] <<
" " << t.m[2][2] <<
" " << t.m[2][3] <<
" " << std::endl;
132 o << t.m[3][0] <<
" " << t.m[3][1] <<
" " << t.m[3][2] <<
" " << t.m[3][3] <<
" " << std::endl;
Transform Inverse(const Transform &m)
renvoie l'inverse de la matrice.
Transform Transpose(const Transform &m)
renvoie la transposee de la matrice.
Transform Normal(const Transform &m)
renvoie la transformation a appliquer aux normales d'un objet transforme par la matrice m.
Transform Rotation(const Vector &axis, const float angle)
renvoie la matrice representation une rotation de angle degree autour de l'axe axis.
Transform Viewport(const float width, const float height)
renvoie la matrice representant une transformation viewport.
float degrees(const float rad)
conversion en degres.
Transform Identity()
construit la transformation identite.
Transform RotationX(const float angle)
renvoie la matrice representation une rotation de angle degree autour de l'axe X.
Transform compose_transform(const Transform &a, const Transform &b)
renvoie la composition des transformations a et b, t= a * b.
Transform RotationY(const float angle)
renvoie la matrice representation une rotation de a degree autour de l'axe Y.
Transform Perspective(const float fov, const float aspect, const float znear, const float zfar)
renvoie la matrice representant une transformation projection perspective.
Transform Ortho(const float left, const float right, const float bottom, const float top, const float znear, const float zfar)
renvoie la matrice representant une transformation orthographique, passage d'un cube []x[]x[] vers [-...
Transform operator*(const Transform &a, const Transform &b)
renvoie la composition des transformations a et b, t = a * b.
float radians(const float deg)
conversion en radians.
Transform Translation(const Vector &v)
renvoie la matrice representant une translation par un vecteur.
Transform Lookat(const Point &from, const Point &to, const Vector &up)
renvoie la matrice representant le placement et l'orientation d'une camera pour observer le point to.
Transform RotationZ(const float angle)
renvoie la matrice representation une rotation de angle degree autour de l'axe Z.
Transform Scale(const float x, const float y, const float z)
renvoie la matrice representant une mise a l'echelle / etirement.
representation d'un point 3d.
representation d'un vecteur 3d.
vecteur generique 4d, ou 3d homogene, utilitaire.