mesh_with_skeleton.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef IGL_MESH_WITH_SKELETON_H
  2. #define IGL_MESH_WITH_SKELETON_H
  3. #include "../igl_inline.h"
  4. #include <Eigen/Dense>
  5. namespace igl
  6. {
  7. // Mesh the interior of a given surface with tetrahedra which are graded (tend
  8. // to be small near the surface and large inside) and conform to the given
  9. // handles and samplings thereof.
  10. //
  11. // Inputs:
  12. // V #V by 3 list of mesh vertex positions
  13. // F #F by 3 list of triangle indices
  14. // C #C by 3 list of vertex positions
  15. // P #P list of point handle indices
  16. // BE #BE by 2 list of bone-edge indices
  17. // CE #CE by 2 list of cage-edge indices
  18. // samples_per_bone #samples to add per bone
  19. // Outputs:
  20. // VV #VV by 3 list of tet-mesh vertex positions
  21. // TT #TT by 4 list of tetrahedra indices
  22. // FF #FF by 3 list of surface triangle indices
  23. // Returns true only on success
  24. bool mesh_with_skeleton(
  25. const Eigen::MatrixXd & V,
  26. const Eigen::MatrixXi & F,
  27. const Eigen::MatrixXd & C,
  28. const Eigen::VectorXi & /*P*/,
  29. const Eigen::MatrixXi & BE,
  30. const Eigen::MatrixXi & CE,
  31. const int samples_per_bone,
  32. Eigen::MatrixXd & VV,
  33. Eigen::MatrixXi & TT,
  34. Eigen::MatrixXi & FF);
  35. }
  36. #ifdef IGL_HEADER_ONLY
  37. # include "mesh_with_skeleton.cpp"
  38. #endif
  39. #endif