+void Camera::set_up_direction(const Vector3 &u)
+{
+ up_dir = normalize(u);
+ update_object_matrix();
+}
+
+void Camera::set_object_matrix(const Matrix &m)
+{
+ position = m.column(3).slice<3>(0);
+ look_dir = normalize(-m.column(2).slice<3>(0));
+ up_dir = normalize(m.column(1).slice<3>(0));
+ update_object_matrix();
+}
+