per_vertex_attribute_smoothing.h 776 B

12345678910111213141516171819202122232425
  1. #ifndef IGL_PER_VERTEX_ATTRIBUTE_SMOOTHING_H
  2. #define IGL_PER_VERTEX_ATTRIBUTE_SMOOTHING_H
  3. #include "igl_inline.h"
  4. #include <Eigen/Core>
  5. namespace igl
  6. {
  7. // Smooth vertex attributes using uniform Laplacian
  8. // Inputs:
  9. // Ain #V by #A eigen Matrix of mesh vertex attributes (each vertex has #A attributes)
  10. // F #F by 3 eigne Matrix of face (triangle) indices
  11. // Output:
  12. // Aout #V by #A eigen Matrix of mesh vertex attributes
  13. template <typename DerivedV, typename DerivedF>
  14. IGL_INLINE void per_vertex_attribute_smoothing(
  15. const Eigen::PlainObjectBase<DerivedV>& Ain,
  16. const Eigen::PlainObjectBase<DerivedF>& F,
  17. Eigen::PlainObjectBase<DerivedV> & Aout);
  18. }
  19. #ifdef IGL_HEADER_ONLY
  20. # include "per_vertex_attribute_smoothing.cpp"
  21. #endif
  22. #endif