mesh_boolean_beta.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef IGL_BOOLEAN_MESH_BOOLEAN_BETA_H
  2. #define IGL_BOOLEAN_MESH_BOOLEAN_BETA_H
  3. #include <igl/igl_inline.h>
  4. #include "MeshBooleanType.h"
  5. #include <Eigen/Core>
  6. #include <functional>
  7. namespace igl
  8. {
  9. namespace boolean
  10. {
  11. template <
  12. typename DerivedVA,
  13. typename DerivedFA,
  14. typename DerivedVB,
  15. typename DerivedFB,
  16. typename WindingNumberOp,
  17. typename IsInsideFunc,
  18. typename ResolveFunc,
  19. typename DerivedVC,
  20. typename DerivedFC,
  21. typename DerivedJ>
  22. IGL_INLINE void per_face_winding_number_binary_operation(
  23. const Eigen::PlainObjectBase<DerivedVA> & VA,
  24. const Eigen::PlainObjectBase<DerivedFA> & FA,
  25. const Eigen::PlainObjectBase<DerivedVB> & VB,
  26. const Eigen::PlainObjectBase<DerivedFB> & FB,
  27. const WindingNumberOp& wind_num_op,
  28. const IsInsideFunc& is_inside,
  29. const ResolveFunc& resolve_fun,
  30. Eigen::PlainObjectBase<DerivedVC > & VC,
  31. Eigen::PlainObjectBase<DerivedFC > & FC,
  32. Eigen::PlainObjectBase<DerivedJ > & J);
  33. template <
  34. typename DerivedVA,
  35. typename DerivedFA,
  36. typename DerivedVB,
  37. typename DerivedFB,
  38. typename DerivedVC,
  39. typename DerivedFC,
  40. typename DerivedJ>
  41. IGL_INLINE void mesh_boolean_beta(
  42. const Eigen::PlainObjectBase<DerivedVA > & VA,
  43. const Eigen::PlainObjectBase<DerivedFA > & FA,
  44. const Eigen::PlainObjectBase<DerivedVB > & VB,
  45. const Eigen::PlainObjectBase<DerivedFB > & FB,
  46. const MeshBooleanType & type,
  47. Eigen::PlainObjectBase<DerivedVC > & VC,
  48. Eigen::PlainObjectBase<DerivedFC > & FC,
  49. Eigen::PlainObjectBase<DerivedJ > & J);
  50. template <
  51. typename DerivedVA,
  52. typename DerivedFA,
  53. typename DerivedVB,
  54. typename DerivedFB,
  55. typename DerivedVC,
  56. typename DerivedFC>
  57. IGL_INLINE void mesh_boolean_beta(
  58. const Eigen::PlainObjectBase<DerivedVA > & VA,
  59. const Eigen::PlainObjectBase<DerivedFA > & FA,
  60. const Eigen::PlainObjectBase<DerivedVB > & VB,
  61. const Eigen::PlainObjectBase<DerivedFB > & FB,
  62. const MeshBooleanType & type,
  63. Eigen::PlainObjectBase<DerivedVC > & VC,
  64. Eigen::PlainObjectBase<DerivedFC > & FC);
  65. }
  66. }
  67. #ifndef IGL_STATIC_LIBRARY
  68. # include "mesh_boolean_beta.cpp"
  69. #endif
  70. #endif