123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include <igl/opengl/glfw/Viewer.h>
- #include <igl/copyleft/tetgen/tetrahedralize.h>
- #include <igl/readOBJ.h>
- #include <igl/marching_tets.h>
- #include <Eigen/Core>
- #include "tutorial_shared_path.h"
- int main(int argc, char * argv[])
- {
-
- Eigen::MatrixXd surfaceV;
- Eigen::MatrixXi surfaceF;
- igl::readOBJ(TUTORIAL_SHARED_PATH "/cube.obj", surfaceV, surfaceF);
-
- Eigen::RowVector3d surfaceCenter = surfaceV.colwise().sum() / surfaceV.rows();
-
- surfaceV.rowwise() -= surfaceCenter;
-
- Eigen::MatrixXd TV;
- Eigen::MatrixXi TF;
- Eigen::MatrixXi TT;
- igl::copyleft::tetgen::tetrahedralize(surfaceV, surfaceF, "pq1.414a0.0001", TV, TT, TF);
-
- Eigen::VectorXd S = TV.rowwise().norm();
-
- Eigen::MatrixXd SV;
- Eigen::MatrixXi SF;
- igl::marching_tets(TV, TT, S, 0.45, SV, SF);
-
- igl::opengl::glfw::Viewer viewer;
- viewer.data().set_mesh(SV, SF);
- viewer.callback_key_down =
- [&](igl::opengl::glfw::Viewer & viewer, unsigned char key, int mod)->bool
- {
- viewer.data().set_face_based(true);
- return true;
- };
- viewer.launch();
- }
|