libigl v2.5.0
Loading...
Searching...
No Matches
dual_contouring.h
Go to the documentation of this file.
1#ifndef IGL_DUAL_CONTOURING_H
2#define IGL_DUAL_CONTOURING_H
3#include "igl_inline.h"
4#include <Eigen/Core>
5#include <Eigen/Dense>
6#include <functional>
7namespace igl
8{
29 template <
30 typename DerivedV,
31 typename DerivedQ>
33 const std::function<
34 typename DerivedV::Scalar(const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f,
35 const std::function<
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,
40 const int nx,
41 const int ny,
42 const int nz,
43 const bool constrained,
44 const bool triangles,
45 const bool root_finding,
46 Eigen::PlainObjectBase<DerivedV> & V,
47 Eigen::PlainObjectBase<DerivedQ> & Q);
54 template <
55 typename DerivedGf,
56 typename DerivedGV,
57 typename DerivedV,
58 typename DerivedQ>
60 const std::function<
61 typename DerivedV::Scalar(const Eigen::Matrix<typename DerivedV::Scalar,1,3> &)> & f,
62 const std::function<
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,
67 const int nx,
68 const int ny,
69 const int nz,
70 const bool constrained,
71 const bool triangles,
72 const bool root_finding,
73 Eigen::PlainObjectBase<DerivedV> & V,
74 Eigen::PlainObjectBase<DerivedQ> & Q);
82 template <
83 typename DerivedGf,
84 typename DerivedGV,
85 typename DerivedGI,
86 typename DerivedV,
87 typename DerivedQ>
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,
96 const bool triangles,
97 const bool root_finding,
98 Eigen::PlainObjectBase<DerivedV> & V,
99 Eigen::PlainObjectBase<DerivedQ> & Q);
100}
101
102#ifndef IGL_STATIC_LIBRARY
103# include "dual_contouring.cpp"
104#endif
105#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
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.