16 template <
class TPo
ints,
int kRows>
18 Matrix<typename TPoints::Scalar, kRows, TPoints::ColsAtCompileTime>;
25 template <
class TDerived>
26 static auto proj(Eigen::DenseBase<TDerived>
const& points_in_camera)
28 static_assert(TDerived::RowsAtCompileTime == 3);
29 return points_in_camera.template topRows<2>();
32 template <
class TDerived>
34 Eigen::DenseBase<TDerived>
const& points_in_cam_canonical,
35 typename TDerived::Scalar extension =
36 static_cast<typename TDerived::Scalar
>(0.0))
38 static_assert(TDerived::RowsAtCompileTime == 2);
40 unprojected.template topRows<2>() = points_in_cam_canonical;
41 unprojected.template bottomRows<1>() =
43 points_in_cam_canonical.cols(), extension);
50 template <
class TScalar>
51 static auto dxProjX(Eigen::Matrix<TScalar, 3, 1>
const& )
52 -> Eigen::Matrix<TScalar, 2, 3> {