瀏覽代碼

project() is now templated more generally

Former-commit-id: e59b30940d6dedf24b1bebc7e40e794037b25248
Yotam Gingold 8 年之前
父節點
當前提交
10999766a2
共有 2 個文件被更改,包括 8 次插入8 次删除
  1. 4 4
      include/igl/project.cpp
  2. 4 4
      include/igl/project.h

+ 4 - 4
include/igl/project.cpp

@@ -29,12 +29,12 @@ Eigen::Matrix<Scalar,3,1> igl::project(
   return tmp.head(3);
   return tmp.head(3);
 }
 }
 
 
-template <typename DerivedV, typename Scalar, typename DerivedP>
+template <typename DerivedV, typename DerivedM, typename DerivedN, typename DerivedO, typename DerivedP>
 IGL_INLINE void igl::project(
 IGL_INLINE void igl::project(
   const    Eigen::PlainObjectBase<DerivedV>&  V,
   const    Eigen::PlainObjectBase<DerivedV>&  V,
-  const    Eigen::Matrix<Scalar,4,4>& model,
-  const    Eigen::Matrix<Scalar,4,4>& proj,
-  const    Eigen::Matrix<Scalar,4,1>&  viewport,
+  const    Eigen::MatrixBase<DerivedM>& model,
+  const    Eigen::MatrixBase<DerivedN>& proj,
+  const    Eigen::MatrixBase<DerivedO>&  viewport,
   Eigen::PlainObjectBase<DerivedP> & P)
   Eigen::PlainObjectBase<DerivedP> & P)
 {
 {
   typedef typename DerivedP::Scalar PScalar;
   typedef typename DerivedP::Scalar PScalar;

+ 4 - 4
include/igl/project.h

@@ -32,12 +32,12 @@ namespace igl
   //   viewport  viewport vector
   //   viewport  viewport vector
   // Outputs:
   // Outputs:
   //   P  #V by 3 list of screen space points
   //   P  #V by 3 list of screen space points
-  template <typename DerivedV, typename Scalar, typename DerivedP>
+  template <typename DerivedV, typename DerivedM, typename DerivedN, typename DerivedO, typename DerivedP>
   IGL_INLINE void project(
   IGL_INLINE void project(
     const    Eigen::PlainObjectBase<DerivedV>&  V,
     const    Eigen::PlainObjectBase<DerivedV>&  V,
-    const    Eigen::Matrix<Scalar,4,4>& model,
-    const    Eigen::Matrix<Scalar,4,4>& proj,
-    const    Eigen::Matrix<Scalar,4,1>&  viewport,
+    const    Eigen::MatrixBase<DerivedM>& model,
+    const    Eigen::MatrixBase<DerivedN>& proj,
+    const    Eigen::MatrixBase<DerivedO>&  viewport,
     Eigen::PlainObjectBase<DerivedP> & P);
     Eigen::PlainObjectBase<DerivedP> & P);
 }
 }