| #include "unproject_on_plane.h" |
| #include "projection_constraint.h" |
| void igl::unproject_on_plane( |
| const Eigen::MatrixBase<DerivedUV> & UV, |
| const Eigen::MatrixBase<DerivedM> & M, |
| const Eigen::MatrixBase<DerivedVP> & VP, |
| const Eigen::MatrixBase<DerivedP> & P, |
| Eigen::PlainObjectBase<DerivedZ> & Z) |
| typedef typename DerivedZ::Scalar Scalar; |
| projection_constraint(UV,M,VP,A,B); |
| AA.topRows(2) = A.template cast<Scalar>(); |
| AA.row(2) = P.head(3).template cast<Scalar>(); |
| BB.head(2) = B.template cast<Scalar>(); |
| Z = AA.fullPivHouseholderQr().solve(BB); |
| #ifdef IGL_STATIC_LIBRARY |
| // Explicit template instantiation |
| // generated by autoexplicit.sh |
| template void igl::unproject_on_plane<Eigen::Matrix<double, 2, 1, 0, 2, 1>, Eigen::Matrix<float, 4, 4, 0, 4, 4>, Eigen::Matrix<float, 4, 1, 0, 4, 1>, Eigen::Matrix<double, 1, 4, 1, 1, 4>, Eigen::Matrix<double, 3, 1, 0, 3, 1> >(Eigen::MatrixBase<Eigen::Matrix<double, 2, 1, 0, 2, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<float, 4, 4, 0, 4, 4> > const&, Eigen::MatrixBase<Eigen::Matrix<float, 4, 1, 0, 4, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 4, 1, 1, 4> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, 3, 1, 0, 3, 1> >&); |