The code is pretty easy to compile. I only have to edit few files to update the LibIGL viewer API (see diff below). From the code, one can optimize some rod structres (many of the strucres presented in the paper are given as examples). However, the direction field part of the paper does not seem to be presented in the code (the author mentions another, no-yet-available, project for the field design. diff --git a/RodsHook.cpp b/RodsHook.cpp index ae8de98..11c6d49 100644 --- a/RodsHook.cpp +++ b/RodsHook.cpp @@ -144,8 +144,8 @@ void RodsHook::drawGUI(igl::opengl::glfw::imgui::ImGuiMenu &menu) menu.callback_draw_custom_window = [&]() { // Define next window position + size - ImGui::SetNextWindowPos(ImVec2(180.f * menu.menu_scaling(), 10), ImGuiSetCond_FirstUseEver); - ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); + ImGui::SetNextWindowPos(ImVec2(180.f * menu.menu_scaling(), 10), ImGuiCond_FirstUseEver); + ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiCond_FirstUseEver); ImGui::Begin( "Stats", nullptr, ImGuiWindowFlags_NoSavedSettings @@ -190,9 +190,9 @@ bool RodsHook::mouseClicked(igl::opengl::glfw::Viewer &viewer, int button) Eigen::Vector3f bc; // Cast a ray in the view direction starting from the mouse position double x = viewer.current_mouse_x; - double y = viewer.core.viewport(3) - viewer.current_mouse_y; - if (igl::unproject_onto_mesh(Eigen::Vector2f(x, y), viewer.core.view, - viewer.core.proj, viewer.core.viewport, this->Q, this->F, fid, bc)) + double y = viewer.core().viewport(3) - viewer.current_mouse_y; + if (igl::unproject_onto_mesh(Eigen::Vector2f(x, y), viewer.core().view, + viewer.core().proj, viewer.core().viewport, this->Q, this->F, fid, bc)) { int prevId = 0; int nextId = 0; @@ -1531,7 +1531,7 @@ void RodsHook::renderRenderGeometry(igl::opengl::glfw::Viewer &viewer) viewer.data().set_points(Eigen::MatrixXd(0, 3), Eigen::MatrixXd(0, 3)); } - viewer.core.lighting_factor = 0.; + viewer.core().lighting_factor = 0.; viewer.data().set_colors(faceColors); if(constraintEdges.rows() > 0) diff --git a/main.cpp b/main.cpp index 39dc709..d99844f 100755 --- a/main.cpp +++ b/main.cpp @@ -72,10 +72,10 @@ int main(int argc, char *argv[]) hook = new RodsHook(); - viewer.core.background_color = Eigen::Vector4f(.9, .9, .7, 1); + viewer.core().background_color = Eigen::Vector4f(.9, .9, .7, 1);^M viewer.data().set_face_based(true); - viewer.core.is_animating = true; + viewer.core().is_animating = true;^M viewer.callback_key_pressed = keyCallback; viewer.callback_mouse_down = mouseDownCallback; viewer.callback_pre_draw = drawCallback;
If you want to contribute with another review, please follow these instructions.
Please consider to cut/paste/edit the raw JSON data attached to this paper.