is_self_intersecting.h 973 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef IGL_COPYLEFT_CGAL_IS_SELF_INTERSECTING_H
  2. #define IGL_COPYLEFT_CGAL_IS_SELF_INTERSECTING_H
  3. #include "../../igl_inline.h"
  4. #include <Eigen/Core>
  5. namespace igl
  6. {
  7. namespace copyleft
  8. {
  9. namespace cgal
  10. {
  11. /// Determine if a mesh has _any_ self-intersections. Skips any
  12. /// `(IGL_COLLAPSE_EDGE_NULL,IGL_COLLAPSE_EDGE_NULL,IGL_COLLAPSE_EDGE_NULL)`
  13. /// faces and returns true if any faces have zero area.
  14. ///
  15. /// @param[in] V #V by 3 list of vertex positions
  16. /// @param[in] F #F by 3 list of triangle indices into V
  17. /// @return true if any faces intersect
  18. ///
  19. /// \see remesh_self_intersections, SelfIntersectMesh
  20. template <
  21. typename DerivedV,
  22. typename DerivedF>
  23. bool is_self_intersecting(
  24. const Eigen::MatrixBase<DerivedV> & V,
  25. const Eigen::MatrixBase<DerivedF> & F);
  26. }
  27. }
  28. }
  29. #ifndef IGL_STATIC_LIBRARY
  30. # include "is_self_intersecting.cpp"
  31. #endif
  32. #endif