1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #include <igl/copyleft/marching_cubes.h>
- #include <igl/sparse_voxel_grid.h>
- #include <igl/opengl/glfw/Viewer.h>
- #include <Eigen/Core>
- #include <iostream>
- #include "tutorial_shared_path.h"
- int main(int argc, char * argv[])
- {
-
-
- std::function<double(const Eigen::RowVector3d&)> scalar_func = [](const Eigen::RowVector3d& pt) -> double {
- return pt.norm() - 1.0;
- };
-
- Eigen::RowVector3d p0(0., 0., 1.);
-
-
- const double eps = 0.1;
-
-
- Eigen::VectorXd CS;
-
- Eigen::MatrixXd CV;
-
-
- Eigen::MatrixXi CI;
-
- igl::sparse_voxel_grid(p0, scalar_func, eps, 1024 , CS, CV, CI);
-
- Eigen::MatrixXi F;
- Eigen::MatrixXd V;
- igl::copyleft::marching_cubes(CS, CV, CI, V, F);
-
- igl::opengl::glfw::Viewer viewer;
- viewer.data().clear();
- viewer.data().set_mesh(V,F);
- viewer.data().set_face_based(true);
- viewer.launch();
- }
|