tt.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // IGL Lib - Simple C++ mesh library
  3. //
  4. // Copyright 2011, Daniele Panozzo. All rights reserved.
  5. #ifndef IGL_TT_H
  6. #define IGL_TT_H
  7. #include "igl_inline.h"
  8. #include <Eigen/Core>
  9. #include <vector>
  10. namespace igl
  11. {
  12. // Preprocessing
  13. template<typename T, typename S>
  14. IGL_INLINE void tt_preprocess(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& V, const Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& F, std::vector<std::vector<int> >& TTT);
  15. // Extract the face adjacencies
  16. template<typename S>
  17. IGL_INLINE void tt_extractTT(const Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& F, std::vector<std::vector<int> >& TTT, Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& TT);
  18. // Extract the face adjacencies indices (needed for fast traversal)
  19. template<typename S>
  20. IGL_INLINE void tt_extractTTi(const Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& F, std::vector<std::vector<int> >& TTT, Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& TTi);
  21. // Compute triangle-triangle adjacency
  22. template<typename T, typename S>
  23. IGL_INLINE void tt(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& V, const Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& F, Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& TT);
  24. // Compute triangle-triangle adjacency with indices
  25. template<typename T, typename S>
  26. IGL_INLINE void tt(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& V, const Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& F, Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& TT, Eigen::Matrix<S,Eigen::Dynamic, Eigen::Dynamic>& TTi);
  27. }
  28. #ifdef IGL_HEADER_ONLY
  29. # include "tt.cpp"
  30. #endif
  31. #endif