template class sophus::Ray
#include <ray.h>
template <class TScalar, int kN>
class Ray {
public:
// structs
struct IntersectionResult;
// construction
Ray(
Eigen::Matrix<TScalar, kN, 1> const& origin,
UnitVector<TScalar, kN> const& direction
);
Ray(Ray const&);
// methods
Ray& operator=(Ray const&);
Eigen::Matrix<TScalar, kN, 1> const& origin() const;
Eigen::Matrix<TScalar, kN, 1>& origin();
UnitVector<TScalar, kN> const& direction() const;
UnitVector<TScalar, kN>& direction();
Eigen::Matrix<TScalar, kN, 1> pointAt(TScalar lambda) const;
std::optional<IntersectionResult> intersect(Eigen::Hyperplane<TScalar, kN> const& plane) const;
Eigen::Matrix<TScalar, kN, 1> projection(Eigen::Matrix<TScalar, kN, 1> const& point) const;
};