1#ifndef IGL_DUAL_CONTOURING_H
2#define IGL_DUAL_CONTOURING_H
34 typename DerivedV::Scalar(
const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f,
36 Eigen::Matrix<typename DerivedV::Scalar,1,3>(
37 const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f_grad,
38 const Eigen::Matrix<typename DerivedV::Scalar,1,3> & min_corner,
39 const Eigen::Matrix<typename DerivedV::Scalar,1,3> & max_corner,
43 const bool constrained,
45 const bool root_finding,
46 Eigen::PlainObjectBase<DerivedV> & V,
47 Eigen::PlainObjectBase<DerivedQ> & Q);
61 typename DerivedV::Scalar(
const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f,
63 Eigen::Matrix<typename DerivedV::Scalar,1,3>(
64 const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f_grad,
65 const Eigen::MatrixBase<DerivedGf> & Gf,
66 const Eigen::MatrixBase<DerivedGV> & GV,
70 const bool constrained,
72 const bool root_finding,
73 Eigen::PlainObjectBase<DerivedV> & V,
74 Eigen::PlainObjectBase<DerivedQ> & Q);
89 const std::function<
typename DerivedV::Scalar(
const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f,
90 const std::function<Eigen::Matrix<typename DerivedV::Scalar,1,3>(
const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f_grad,
91 const Eigen::Matrix<typename DerivedV::Scalar,1,3> & step,
92 const Eigen::MatrixBase<DerivedGf> & Gf,
93 const Eigen::MatrixBase<DerivedGV> & GV,
94 const Eigen::MatrixBase<DerivedGI> & GI,
95 const bool constrained,
97 const bool root_finding,
98 Eigen::PlainObjectBase<DerivedV> & V,
99 Eigen::PlainObjectBase<DerivedQ> & Q);
102#ifndef IGL_STATIC_LIBRARY
103# include "dual_contouring.cpp"
#define IGL_INLINE
Definition igl_inline.h:15
void dual_contouring(const std::function< typename DerivedV::Scalar(const Eigen::Matrix< typename DerivedV::Scalar, 1, 3 > &)> &f, const std::function< Eigen::Matrix< typename DerivedV::Scalar, 1, 3 >(const Eigen::Matrix< typename DerivedV::Scalar, 1, 3 > &)> &f_grad, const Eigen::Matrix< typename DerivedV::Scalar, 1, 3 > &min_corner, const Eigen::Matrix< typename DerivedV::Scalar, 1, 3 > &max_corner, const int nx, const int ny, const int nz, const bool constrained, const bool triangles, const bool root_finding, Eigen::PlainObjectBase< DerivedV > &V, Eigen::PlainObjectBase< DerivedQ > &Q)
Dual contouring to extract a pure quad mesh from differentiable implicit function using a dense grid.