]> git.tdb.fi Git - libs/gl.git/blobdiff - source/camera.cpp
Adapt to the new vector/matrix slicing API in mspmath
[libs/gl.git] / source / camera.cpp
index a0c89e0efb6c2129354efa273545bb20605008b6..6cbcf6f492680f537559206d311049f26af5f1db 100644 (file)
@@ -82,7 +82,7 @@ void Camera::look_at(const Vector3 &p)
 Vector3 Camera::project(const Vector4 &p) const
 {
        Vector4 r = proj_matrix*(view_matrix*p);
-       return Vector3(r)/r.w;
+       return r.slice<3>(0)/r.w;
 }
 
 Vector3 Camera::project(const Vector3 &p) const
@@ -121,10 +121,10 @@ void Camera::update_object_matrix()
 {
        Vector3 right_dir = normalize(cross(look_dir, up_dir));
        Vector4 columns[4];
-       columns[0] = Vector4(right_dir, 0.0f);
-       columns[1] = Vector4(cross(right_dir, look_dir), 0.0f);
-       columns[2] = Vector4(-look_dir, 0.0f);
-       columns[3] = Vector4(position, 1.0f);
+       columns[0] = compose(right_dir, 0.0f);
+       columns[1] = compose(cross(right_dir, look_dir), 0.0f);
+       columns[2] = compose(-look_dir, 0.0f);
+       columns[3] = compose(position, 1.0f);
        object_matrix = Matrix::from_columns(columns);
        view_matrix = invert(object_matrix);
 }