#include "face_areas.h" #include "edge_lengths.h" #include "doublearea.h" template IGL_INLINE void igl::face_areas( const Eigen::PlainObjectBase& V, const Eigen::PlainObjectBase& T, Eigen::PlainObjectBase& A) { assert(T.cols() == 4); typename Eigen::PlainObjectBase L; edge_lengths(V,T,L); return face_areas(L,A); } template IGL_INLINE void igl::face_areas( const Eigen::PlainObjectBase& L, Eigen::PlainObjectBase& A) { using namespace Eigen; assert(L.cols() == 6); const int m = L.rows(); // (unsigned) face Areas (opposite vertices: 1 2 3 4) Matrix A0(m,1), A1(m,1), A2(m,1), A3(m,1); Matrix L0(m,3), L1(m,3), L2(m,3), L3(m,3); L0<, Eigen::Matrix >(Eigen::PlainObjectBase > const&, Eigen::PlainObjectBase >&); #endif