Ejemplo n.º 1
0
// repere de camera ---
//
mat4 esgiLookAt(const vec3 &eye, const vec3 &target, const vec3 &up)
{
	vec3 z = (target - eye).NormalizedSafe();
	if (z.Length() == 0.f)
		z.z = -1.f;
	vec3 y = up.Normalized();
	vec3 x = (z.Cross(y)).Normalized();
	y = x.Cross(z);
    vec4 eyePoint;
    eyePoint.set(-eye, 1.f);
	mat4 m;
    m.I.set(x, 0.f);
    m.J.set(y, 0.f);
    m.K.set(-z, 0.f);
	m.T.set(0.f, 0.f, 0.f, 1.f);
	m.Transpose();
    vec4 eyePrime = m*eyePoint;	
    m.T = eyePrime;
	return m;
}
Ejemplo n.º 2
0
float Camera::angleBetween(vec3 one, vec3 two) {
  return 180.0f / 3.14159265f *
    acos(one.Normalized().Dot(two.Normalized()));
}