/** * Unproject a point from projection space to world space. If you only know the 2D screen coordinates of the point and not * its projected depth, use computePickRay(). * * @see project(), computePickRay() */ Vector3 unproject(Vector3 const & projection_space_point) const { return frame.pointToWorldSpace(getInverseProjectionTransform() * projection_space_point); }
/** * Unproject a point in homogenous coordinates from projection space to world space. If you only know the 2D screen * coordinates of the point and not its projected depth, use computePickRay(). * * @see project(), computePickRay() */ Vector4 unproject(Vector4 const & projection_space_point) const { return frame.toHomMatrix() * (getInverseProjectionTransform() * projection_space_point); }
/** * Unproject a point in homogeneous coordinates from projection space to world space. If you only know the 2D screen * coordinates of the point and not its projected depth, use computePickRay(). * * @see project(), computePickRay() */ Vector4 unproject(Vector4 const & projection_space_point) const { return frame.homogeneous() * (getInverseProjectionTransform() * projection_space_point); }