pub fn look_to_lh(dir: Vector3<S>, up: Vector3<S>) -> Matrix3<S> {
        let dir = dir.normalize();
        let side = up.cross(dir).normalize();
        let up = dir.cross(side).normalize();

        Matrix3::from_cols(side, up, dir).transpose()
    }
Create a rotation matrix that will cause a vector to point at
`dir`, using `up` for orientation.
src/matrix.rs