Browse Source

removed anttweakbar dependency from the viewer. Still problems rendering text
Cmake of the tutorials is now looking for nanogui


Former-commit-id: 0333b1d98f0ce047869c2058c46d63054095bf00

Daniele Panozzo 10 years ago
parent
commit
e4d961fb02

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "external/nanogui"]
+	path = external/nanogui
+	url = https://github.com/schuellc/nanogui.git

+ 83 - 80
include/igl/viewer/TextRenderer.cpp

@@ -7,94 +7,87 @@
 // obtain one at http://mozilla.org/MPL/2.0/.
 #include "TextRenderer.h"
 #include <igl/project.h>
+#include <nanovg.h>
+#define NANOVG_GL3
+#include <nanovg_gl.h>
 
-  IGL_INLINE igl::TextRenderer::TextRenderer() : m_shaderHandleBackup(0) { }
+using namespace std;
+
+  IGL_INLINE igl::TextRenderer::TextRenderer() { }
 
   IGL_INLINE int igl::TextRenderer::Init()
   {
-    int retval = CTwGraphOpenGLCore::Init();
-    if (retval == 1)
-    {
-      std::string vertexShader =
-          "#version 150\n"
-          "uniform vec2 offset;"
-          "uniform vec2 wndSize;"
-          "uniform vec4 color;"
-          "uniform float depth;"
-          "in vec2 vertex;"
-          "in vec2 uv;"
-          "out vec4 fcolor;"
-          "out vec2 fuv;"
-          "void main() {"
-          "  gl_Position = vec4(2.0*(vertex.x+offset.x-0.5)/wndSize.x - 1.0,"
-          "                     1.0 - 2.0*(vertex.y+offset.y-0.5)/wndSize.y,"
-          "                     depth, 1);"
-          " fuv = uv;"
-          " fcolor = color;"
-          "}";
-
-      std::string fragmentShader =
-        "#version 150\n"
-        "uniform sampler2D tex;"
-        "in vec2 fuv;"
-        "in vec4 fcolor;"
-        "out vec4 outColor;"
-        "void main() { outColor.rgb = fcolor.bgr; outColor.a = fcolor.a * texture(tex, fuv).r; }";
-
-      if (!m_shader.init(vertexShader, fragmentShader, "outColor"))
-        return 0;
-
-      /* Adjust location bindings */
-      glBindAttribLocation(m_shader.program_shader, 0, "vertex");
-      glBindAttribLocation(m_shader.program_shader, 1, "uv");
-      glBindAttribLocation(m_shader.program_shader, 2, "color");
-      glLinkProgram(m_shader.program_shader);
-
-      m_shaderHandleBackup = m_TriTexUniProgram;
-      m_TriTexUniProgram = m_shader.program_shader;
-      m_TriTexUniLocationOffset = m_shader.uniform("offset");
-      m_TriTexUniLocationWndSize = m_shader.uniform("wndSize");
-      m_TriTexUniLocationColor = m_shader.uniform("color");
-      m_TriTexUniLocationTexture = m_shader.uniform("tex");
-      m_TriTexUniLocationDepth = m_shader.uniform("depth");
-    }
-    return retval;
+    cerr << "Init TextRenderer" << endl;
+    #ifdef NDEBUG
+      ctx = nvgCreateGL3(NVG_STENCIL_STROKES | NVG_ANTIALIAS);
+    #else
+      ctx = nvgCreateGL3(NVG_STENCIL_STROKES | NVG_ANTIALIAS | NVG_DEBUG);
+    #endif
+
+    nvgFontSize(ctx, 16);
+    nvgFontFace(ctx, "sans");
+    nvgTextAlign(ctx, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE);
+    NVGcolor c;
+    c.r = 0.2;
+    c.g = 0.2;
+    c.b = 255;
+    c.a = 255;
+
+    nvgFillColor(ctx, c);
+    nvgStrokeColor(ctx, c);
+
   }
 
   IGL_INLINE int igl::TextRenderer::Shut()
   {
-    for (auto kv : m_textObjects)
-      DeleteTextObj(kv.second);
-    m_shader.free();
-    m_TriTexUniProgram = m_shaderHandleBackup;
-    return CTwGraphOpenGLCore::Shut();
+    cerr << "Shut TextRenderer" << endl;
+
+    nvgDeleteGL3(ctx);
   }
 
   IGL_INLINE void igl::TextRenderer::BeginDraw(const Eigen::Matrix4f &view, const Eigen::Matrix4f &proj,
     const Eigen::Vector4f &_viewport, float _object_scale)
   {
+    cerr << "BeginDraw TextRenderer" << endl;
+
+
     viewport = _viewport;
     proj_matrix = proj;
     view_matrix = view;
-    CTwGraphOpenGLCore::BeginDraw(viewport[2], viewport[3]);
-    glEnable(GL_DEPTH_TEST);
-    glDepthMask(GL_FALSE);
+    // CTwGraphOpenGLCore::BeginDraw(viewport[2], viewport[3]);
+    // glEnable(GL_DEPTH_TEST);
+    // glDepthMask(GL_FALSE);
     object_scale = _object_scale;
+
+
+    Eigen::Vector2i mFBSize;
+    Eigen::Vector2i mSize;
+
+    GLFWwindow* mGLFWWindow = glfwGetCurrentContext();
+    glfwGetFramebufferSize(mGLFWWindow,&mFBSize[0],&mFBSize[1]);
+    glfwGetWindowSize(mGLFWWindow,&mSize[0],&mSize[1]);
+    glViewport(0,0,mFBSize[0],mFBSize[1]);
+
+    /* Calculate pixel ratio for hi-dpi devices. */
+    float mPixelRatio = (float)mFBSize[0] / (float)mSize[0];
+    nvgBeginFrame(ctx,mSize[0],mSize[1],mPixelRatio);
+
   }
 
   IGL_INLINE void igl::TextRenderer::EndDraw()
   {
-    /* Limit the number of cached text objects */
-    for (auto it = m_textObjects.cbegin(); it != m_textObjects.cend(); )
-    {
-      if (m_textObjects.size() < 1000000)
-        break;
-      DeleteTextObj(it->second);
-      m_textObjects.erase(it++);
-    }
-
-    glDepthMask(GL_TRUE);
-    CTwGraphOpenGLCore::EndDraw();
+    // /* Limit the number of cached text objects */
+    // for (auto it = m_textObjects.cbegin(); it != m_textObjects.cend(); )
+    // {
+    //   if (m_textObjects.size() < 1000000)
+    //     break;
+    //   DeleteTextObj(it->second);
+    //   m_textObjects.erase(it++);
+    // }
+
+    // glDepthMask(GL_TRUE);
+    // CTwGraphOpenGLCore::EndDraw();
+    nvgEndFrame(ctx);
   }
 
   IGL_INLINE void igl::TextRenderer::DrawText(Eigen::Vector3d pos, Eigen::Vector3d normal, const std::string &text)
@@ -102,17 +95,27 @@
     pos += normal * 0.005f * object_scale;
     Eigen::Vector3f coord = igl::project(Eigen::Vector3f(pos(0), pos(1), pos(2)),
         view_matrix, proj_matrix, viewport);
-    auto it = m_textObjects.find(text);
-    void *text_obj = nullptr;
-    if (it == m_textObjects.end())
-    {
-      text_obj = NewTextObj();
-      BuildText(text_obj, &text, NULL, NULL, 1, g_DefaultNormalFont, 0, 0);
-      m_textObjects[text] = text_obj;
-    } else {
-      text_obj = it->second;
-    }
-    m_shader.bind();
-    glUniform1f(m_TriTexUniLocationDepth, 2*(coord(2)-0.5f));
-    CTwGraphOpenGLCore::DrawText(text_obj, coord[0], viewport[3] - coord[1], COLOR32_BLUE, 0);
+
+    // auto it = m_textObjects.find(text);
+    // void *text_obj = nullptr;
+    // if (it == m_textObjects.end())
+    // {
+    //   text_obj = NewTextObj();
+    //   BuildText(text_obj, &text, NULL, NULL, 1, g_DefaultNormalFont, 0, 0);
+    //   m_textObjects[text] = text_obj;
+    // } else {
+    //   text_obj = it->second;
+    // }
+    // m_shader.bind();
+    // glUniform1f(m_TriTexUniLocationDepth, 2*(coord(2)-0.5f));
+    //CTwGraphOpenGLCore::DrawText(text_obj, coord[0], viewport[3] - coord[1], COLOR32_BLUE, 0);
+
+    nvgText(ctx, coord[0], viewport[3] - coord[1], text.c_str(), nullptr);
+
+
+    nvgText(ctx, 10, 10, "Ciao", nullptr);
+
+    cerr << "Draw TextRenderer " << coord[0] << " " << viewport[3] - coord[1] << " " << text << endl;
+
+
   }

+ 8 - 7
include/igl/viewer/TextRenderer.h

@@ -13,15 +13,15 @@
 #define IGL_TEXT_RENDERER_H
 
 #include <igl/igl_inline.h>
-#include <igl/viewer/OpenGL_shader.h>
-#include <TwOpenGLCore.h>
+//#include <igl/viewer/OpenGL_shader.h>
+//#include <TwOpenGLCore.h>
 #include <map>
-
+#include <nanogui/opengl.h>
 
 namespace igl
 {
 
-class TextRenderer : public CTwGraphOpenGLCore
+class TextRenderer
 {
 public:
   IGL_INLINE TextRenderer();
@@ -37,13 +37,14 @@ public:
   IGL_INLINE void DrawText(Eigen::Vector3d pos, Eigen::Vector3d normal, const std::string &text);
 
 protected:
-  igl::OpenGL_shader m_shader;
+//  igl::OpenGL_shader m_shader;
   std::map<std::string, void *> m_textObjects;
-  GLuint m_shaderHandleBackup;
-  GLuint m_TriTexUniLocationDepth;
+  // GLuint m_shaderHandleBackup;
+  // GLuint m_TriTexUniLocationDepth;
   Eigen::Matrix4f view_matrix, proj_matrix;
   Eigen::Vector4f viewport;
   float object_scale;
+  NVGcontext *ctx;
 };
 
 }

+ 4 - 4
include/igl/viewer/Viewer.cpp

@@ -168,7 +168,7 @@ namespace igl
 
     ngui->setInputCellSize(Eigen::Vector2i(60,20));
 
-    // Create nanogui widgets    
+    // Create nanogui widgets
     ngui->addNewWindow(Eigen::Vector2i(10,10),"libIGL-Viewer");
 
     // ---------------------- LOADING ----------------------
@@ -750,7 +750,7 @@ namespace igl
   }
 
   IGL_INLINE bool Viewer::load_scene()
-  {    
+  {
     std::string fname = igl::file_dialog_open();
     if(fname.length() == 0)
       return false;
@@ -845,7 +845,7 @@ namespace igl
     #ifndef __APPLE__
       glewExperimental = true;
       GLenum err = glewInit();
-      if(GLEW_OK != err) 
+      if(GLEW_OK != err)
       {
         /* Problem: glewInit failed, something is seriously wrong. */
        fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
@@ -905,7 +905,7 @@ namespace igl
     }
 
     core.align_camera_center(data.V,data.F);
-    
+
     // Initialize IGL viewer
     init();
 

+ 19 - 19
include/igl/viewer/ViewerCore.cpp

@@ -160,13 +160,13 @@ IGL_INLINE void igl::ViewerCore::draw(ViewerData& data, OpenGL_state& opengl, bo
     model = Eigen::Matrix4f::Identity();
     view  = Eigen::Matrix4f::Identity();
     proj  = Eigen::Matrix4f::Identity();
-    
+
     // Set view
     look_at( camera_eye, camera_center, camera_up, view);
-    
+
     float width  = viewport(2);
     float height = viewport(3);
-    
+
     // Set projection
     if (orthographic)
     {
@@ -181,21 +181,21 @@ IGL_INLINE void igl::ViewerCore::draw(ViewerData& data, OpenGL_state& opengl, bo
       frustum(-fW, fW, -fH, fH, camera_dnear, camera_dfar,proj);
     }
     // end projection
-    
+
     // Set model transformation
     float mat[16];
     igl::quat_to_mat(trackball_angle.data(), mat);
-    
+
     for (unsigned i=0;i<4;++i)
       for (unsigned j=0;j<4;++j)
         model(i,j) = mat[i+4*j];
-    
+
     // Why not just use Eigen::Transform<double,3,Projective> for model...?
     model.topLeftCorner(3,3)*=camera_zoom;
     model.topLeftCorner(3,3)*=model_zoom;
     model.col(3).head(3) += model.topLeftCorner(3,3)*model_translation;
   }
-  
+
   // Send transformations to the GPU
   GLint modeli = opengl.shader_mesh.uniform("model");
   GLint viewi  = opengl.shader_mesh.uniform("view");
@@ -203,7 +203,7 @@ IGL_INLINE void igl::ViewerCore::draw(ViewerData& data, OpenGL_state& opengl, bo
   glUniformMatrix4fv(modeli, 1, GL_FALSE, model.data());
   glUniformMatrix4fv(viewi, 1, GL_FALSE, view.data());
   glUniformMatrix4fv(proji, 1, GL_FALSE, proj.data());
-  
+
   // Light parameters
   GLint specular_exponenti    = opengl.shader_mesh.uniform("specular_exponent");
   GLint light_position_worldi = opengl.shader_mesh.uniform("light_position_world");
@@ -326,10 +326,10 @@ IGL_INLINE void igl::ViewerCore::draw_buffer(ViewerData& data,
 {
   assert(R.rows() == G.rows() && G.rows() == B.rows() && B.rows() == A.rows());
   assert(R.cols() == G.cols() && G.cols() == B.cols() && B.cols() == A.cols());
-  
+
   int x = R.rows();
   int y = R.cols();
-  
+
   // Create frame buffer
   GLuint frameBuffer;
   glGenFramebuffers(1, &frameBuffer);
@@ -339,14 +339,14 @@ IGL_INLINE void igl::ViewerCore::draw_buffer(ViewerData& data,
   GLuint texColorBuffer;
   glGenTextures(1, &texColorBuffer);
   glBindTexture(GL_TEXTURE_2D, texColorBuffer);
-  
+
   glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
-  
+
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-  
+
   glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texColorBuffer, 0);
-  
+
   // Create Renderbuffer Object to hold depth and stencil buffers
   GLuint rboDepthStencil;
   glGenRenderbuffers(1, &rboDepthStencil);
@@ -365,13 +365,13 @@ IGL_INLINE void igl::ViewerCore::draw_buffer(ViewerData& data,
   // Save old viewport
   Eigen::Vector4f viewport_ori = viewport;
   viewport << 0,0,x,y;
-  
+
   // Draw
   draw(data,opengl,update_matrices);
-  
+
   // Restore viewport
   viewport = viewport_ori;
-  
+
   // Copy back in the given Eigen matrices
   GLubyte* pixels = (GLubyte*)calloc(x*y*4,sizeof(GLubyte));
   glReadPixels
@@ -380,7 +380,7 @@ IGL_INLINE void igl::ViewerCore::draw_buffer(ViewerData& data,
    x, y,
    GL_RGBA, GL_UNSIGNED_BYTE, pixels
    );
-    
+
   int count = 0;
   for (unsigned j=0; j<y; ++j)
   {
@@ -393,7 +393,7 @@ IGL_INLINE void igl::ViewerCore::draw_buffer(ViewerData& data,
       ++count;
     }
   }
-  
+
   // Clean up
   free(pixels);
   glBindFramebuffer(GL_FRAMEBUFFER, 0);

+ 441 - 0
lib/CMakeCache.txt

@@ -0,0 +1,441 @@
+# This is the CMakeCache file.
+# For build in directory: /Users/daniele/Dropbox/igl/libigl/lib
+# It was generated by CMake: /usr/local/Cellar/cmake/3.2.2/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a file.
+ANT_TWEAK_BAR_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/AntTweakBar/include
+
+//Path to a library.
+ANT_TWEAK_BAR_LIBRARY:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/AntTweakBar/lib/libAntTweakBar.a
+
+//The directory containing CGALConfig.cmake. This is either the
+// binary directory where CGAL was configured or PREFIX/lib/CGAL
+// for an installation.
+CGAL_DIR:PATH=/usr/local/lib/CGAL
+
+//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
+// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
+CMAKE_BUILD_TYPE:STRING=Debug
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//Flags used by the compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the compiler during debug builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the compiler during release builds for minimum
+// size.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the compiler during release builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the compiler during release builds with debug info.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Path to a program.
+CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Build architectures for OSX
+CMAKE_OSX_ARCHITECTURES:STRING=
+
+//Minimum OS X version to target for deployment (at runtime); newer
+// APIs weak linked. Set to empty string for default value.
+CMAKE_OSX_DEPLOYMENT_TARGET:STRING=
+
+//The product will be built against the headers and libraries located
+// inside the indicated SDK.
+CMAKE_OSX_SYSROOT:STRING=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=libigl
+
+//Flags used by the linker during the creation of dll's.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during debug builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during release minsize builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during release builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during Release with Debug Info builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If true, cmake will use relative paths in makefiles and projects.
+CMAKE_USE_RELATIVE_PATHS:BOOL=OFF
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//The directory containing a CMake configuration file for COMISO.
+COMISO_DIR:PATH=COMISO_DIR-NOTFOUND
+
+//Path to a file.
+CORK_INCLUDE_DIR:PATH=CORK_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+CORK_LIBRARIES:FILEPATH=CORK_LIBRARIES-NOTFOUND
+
+//Path to a file.
+EIGEN_INCLUDE_DIR:PATH=/usr/local/include/eigen3
+
+//The Eigen include path.
+EIGEN_INCLUDE_DIRS:PATH=/usr/local/include/eigen3
+
+//Path to a library.
+EMBREE_CORE_LIBRARY:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/embree/build/libembree_sse42.a
+
+//Path to a library.
+EMBREE_CORE_LIBRARY2:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/embree/build/libtransport.a
+
+//Path to a library.
+EMBREE_CORE_LIBRARY3:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/embree/build/libimage.a
+
+//Path to a library.
+EMBREE_CORE_LIBRARY4:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/embree/build/liblexers.a
+
+//Path to a library.
+EMBREE_CORE_LIBRARY5:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/embree/build/libembree.dylib
+
+//Path to a library.
+EMBREE_CORE_LIBRARY6:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/embree/build/libsys.a
+
+//Path to a file.
+EMBREE_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/embree/include
+
+//Path to a file.
+GLFW_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/glfw/include
+
+//Path to a library.
+GLFW_LIBRARIES:FILEPATH=/Users/daniele/Dropbox/igl/libigl/external/glfw/src/libglfw3.a
+
+//Path to a file.
+LIBCOMISO_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl
+
+//Path to a library.
+LIBCOMISO_LIBRARY:FILEPATH=/usr/local/lib/libCoMISo.dylib
+
+//Path to a file.
+LIM_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/lim
+
+//Path to a file.
+MATLAB_INCLUDE_DIR:PATH=/Applications/MATLAB_R2014b.app/extern/include
+
+//Path to a file.
+MOSEK_INCLUDE_DIR:PATH=MOSEK_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+MOSEK_LIBRARIES:FILEPATH=MOSEK_LIBRARIES-NOTFOUND
+
+//Include for OpenGL on OSX
+OPENGL_INCLUDE_DIR:PATH=/System/Library/Frameworks/OpenGL.framework
+
+//OpenGL lib for OSX
+OPENGL_gl_LIBRARY:FILEPATH=/System/Library/Frameworks/OpenGL.framework
+
+//AGL lib for OSX
+OPENGL_glu_LIBRARY:FILEPATH=/System/Library/Frameworks/AGL.framework
+
+//C++ compiler flags for OpenMP parallization
+OpenMP_CXX_FLAGS:STRING=
+
+//C compiler flags for OpenMP parallization
+OpenMP_C_FLAGS:STRING=
+
+//Path to a file.
+SVD3X3_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/Singular_Value_Decomposition
+
+//Path to a file.
+TETGEN_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/tetgen
+
+//Path to a file.
+TINYXML2_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/tinyxml2
+
+//Path to a file.
+TRIANGLE_INCLUDE_DIR:PATH=/Users/daniele/Dropbox/igl/libigl/external/triangle
+
+//Dependencies for target
+igl_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglbbw_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglboolean_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglcgal_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglcomiso_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglembree_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+igllim_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglmatlab_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglsvd3x3_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+igltetgen_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+igltriangle_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglviewer_LIB_DEPENDS:STATIC=
+
+//Dependencies for target
+iglxml_LIB_DEPENDS:STATIC=
+
+//Value Computed by CMake
+libigl_BINARY_DIR:STATIC=/Users/daniele/Dropbox/igl/libigl/lib
+
+//Value Computed by CMake
+libigl_SOURCE_DIR:STATIC=/Users/daniele/Dropbox/igl/libigl
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/Users/daniele/Dropbox/igl/libigl/lib
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=2
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=2
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.2.2/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.2.2/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.2.2/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Path to cache edit program executable.
+CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.2.2/bin/ccmake
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Start directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/Users/daniele/Dropbox/igl/libigl
+//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL
+CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/local/Cellar/cmake/3.2.2/share/cmake
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS
+CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: EIGEN_INCLUDE_DIR
+EIGEN_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//Details about finding Eigen
+FIND_PACKAGE_MESSAGE_DETAILS_Eigen:INTERNAL=[/usr/local/include/eigen3][TRUE][v(3.2.0)]
+//ADVANCED property for variable: LIM_INCLUDE_DIR
+LIM_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MATLAB_INCLUDE_DIR
+MATLAB_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_INCLUDE_DIR
+OPENGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_gl_LIBRARY
+OPENGL_gl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_glu_LIBRARY
+OPENGL_glu_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OpenMP_CXX_FLAGS
+OpenMP_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OpenMP_C_FLAGS
+OpenMP_C_FLAGS-ADVANCED:INTERNAL=1
+//Test OpenMP_FLAG_DETECTED
+OpenMP_FLAG_DETECTED:INTERNAL=
+//ADVANCED property for variable: SVD3X3_INCLUDE_DIR
+SVD3X3_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: TETGEN_INCLUDE_DIR
+TETGEN_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: TINYXML2_INCLUDE_DIR
+TINYXML2_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: TRIANGLE_INCLUDE_DIR
+TRIANGLE_INCLUDE_DIR-ADVANCED:INTERNAL=1
+

+ 1 - 0
lib/Makefile.REMOVED.git-id

@@ -0,0 +1 @@
+fbe9f6398c2f2233a0ef67f5358939cd75cf36c8

+ 39 - 0
lib/cmake_install.cmake

@@ -0,0 +1,39 @@
+# Install script for directory: /Users/daniele/Dropbox/igl/libigl
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/Users/daniele/Dropbox/igl/libigl/lib/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")

+ 3 - 5
tutorial/CMakeLists.shared

@@ -19,7 +19,7 @@ set(CMAKE_COLOR_MAKEFILE ON)
 find_package(OpenGL REQUIRED)
 find_package(EIGEN REQUIRED)
 find_package(LIBIGL REQUIRED)
-find_package(ANTTWEAKBAR REQUIRED)
+find_package(NANOGUI REQUIRED)
 find_package(GLFW REQUIRED)
 
 if(NOT APPLE)
@@ -36,9 +36,8 @@ if(UNIX AND NOT APPLE)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx")
 endif(UNIX AND NOT APPLE)
 
-include_directories( ${ANT_TWEAK_BAR_INCLUDE_DIR} )
+include_directories( ${NANOGUI_INCLUDE_DIRS} )
 
-# message(FATAL_ERROR ${ANT_TWEAK_BAR_INCLUDE_DIR})
 
 if(NOT APPLE)
 	include_directories( ${GLEW_INCLUDE_DIR} )
@@ -57,7 +56,6 @@ include_directories(
 link_directories(
 	/usr/local/lib
 	/opt/local/lib
-	${ANT_TWEAK_BAR_DIRS}
 	${EIGEN_DIRS}
 )
 
@@ -91,7 +89,7 @@ endif(NOT APPLE)
 set(SHARED_LIBRARIES
 		${LIBIGL_LIBRARIES}
 		${OPENGL_LIBRARIES}
-		${ANT_TWEAK_BAR_LIBRARY}
+		${NANOGUI_LIBRARY}
 		${EIGEN_LIBRARIES}
 		${GLEW_LIBRARIES}
 		${GLFW_LIBRARIES}

+ 69 - 0
tutorial/cmake/FindNANOGUI.cmake

@@ -0,0 +1,69 @@
+#
+# Try to find NANOGUI library and include path.
+# Once done this will define
+#
+# NANOGUI_FOUND
+# NANOGUI_INCLUDE_DIR
+# NANOGUI_LIBRARY
+#
+
+if(NOT NANOGUI_FOUND)
+
+FIND_PATH(NANOGUI_INCLUDE_DIR nanogui/nanogui.h
+  PATHS
+    ${PROJECT_SOURCE_DIR}/../../external/nanogui/include
+    ${PROJECT_SOURCE_DIR}/../external/nanogui/include
+    ${PROJECT_SOURCE_DIR}/external/nanogui/include
+    ${PROJECT_SOURCE_DIR}/../../libigl/external/nanogui/include
+    ${PROJECT_SOURCE_DIR}/../libigl/external/nanogui/include
+    ${PROJECT_SOURCE_DIR}/libigl/external/nanogui/include
+    /usr/local/include
+    /usr/X11/include
+    /usr/include
+    /opt/local/include
+    NO_DEFAULT_PATH
+    )
+
+FIND_LIBRARY( NANOGUI_LIBRARY NAMES nanogui
+  PATHS
+    ${PROJECT_SOURCE_DIR}/../../external/nanogui/build
+    ${PROJECT_SOURCE_DIR}/../external/nanogui/build
+    ${PROJECT_SOURCE_DIR}/external/nanogui/build
+    ${PROJECT_SOURCE_DIR}/../../libigl/external/nanogui/build
+    ${PROJECT_SOURCE_DIR}/../libigl/external/nanogui/build
+    ${PROJECT_SOURCE_DIR}/libigl/external/nanogui/build
+    ${PROJECT_SOURCE_DIR}/../../external/glfw/lib/x64
+    ${PROJECT_SOURCE_DIR}/../external/glfw/lib/x64
+    ${PROJECT_SOURCE_DIR}/external/glfw/lib/x64
+    ${PROJECT_SOURCE_DIR}/../../libigl/external/glfw/lib/x64
+    ${PROJECT_SOURCE_DIR}/../libigl/external/glfw/lib/x64
+    ${PROJECT_SOURCE_DIR}/libigl/external/glfw/lib/x64
+    /usr/local
+    /usr/X11
+    /usr
+    PATH_SUFFIXES
+    a
+    lib64
+    lib
+    NO_DEFAULT_PATH
+)
+
+SET(NANOGUI_FOUND "NO")
+IF (NANOGUI_INCLUDE_DIR AND NANOGUI_LIBRARY)
+	SET(NANOGUI_FOUND "YES")
+  SET(NANOGUI_INCLUDE_DIRS
+         ${NANOGUI_INCLUDE_DIR}
+         ${NANOGUI_INCLUDE_DIR}/../ext/nanovg/src
+         )
+
+ENDIF (NANOGUI_INCLUDE_DIR AND NANOGUI_LIBRARY)
+
+if(NANOGUI_FOUND)
+  message(STATUS "Found NANOGUI: ${NANOGUI_INCLUDE_DIR}")
+else(NANOGUI_FOUND)
+  if (NOT NANOGUI_FIND_QUIETLY)
+    message(FATAL_ERROR "could NOT find NANOGUI")
+  endif (NOT NANOGUI_FIND_QUIETLY)
+endif(NANOGUI_FOUND)
+
+endif(NOT NANOGUI_FOUND)