|
@@ -7,22 +7,18 @@
|
|
|
// obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
#include "average_onto_faces.h"
|
|
|
|
|
|
-template <typename T, typename I>
|
|
|
-IGL_INLINE void igl::average_onto_faces(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &V,
|
|
|
- const Eigen::Matrix<I, Eigen::Dynamic, Eigen::Dynamic> &F,
|
|
|
- const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &S,
|
|
|
- Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &SF)
|
|
|
+template <typename DerivedF, typename DerivedS, typename DerivedSF>
|
|
|
+IGL_INLINE void average_onto_faces(
|
|
|
+ const Eigen::MatrixBase<DerivedF> & F,
|
|
|
+ const Eigen::MatrixBase<DerivedS> & S,
|
|
|
+ Eigen::PlainObjectBase<DerivedSF> & SF)
|
|
|
{
|
|
|
-
|
|
|
- SF = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>::Zero(F.rows(),S.cols());
|
|
|
-
|
|
|
+ SF.setConstant(F.rows(),S.cols(),0);
|
|
|
for (int i = 0; i <F.rows(); ++i)
|
|
|
for (int j = 0; j<F.cols(); ++j)
|
|
|
SF.row(i) += S.row(F(i,j));
|
|
|
-
|
|
|
SF.array() /= F.cols();
|
|
|
-
|
|
|
-};
|
|
|
+}
|
|
|
|
|
|
#ifdef IGL_STATIC_LIBRARY
|
|
|
// Explicit template instantiation
|