Эх сурвалжийг харах

added init c-style callback, useful to add additional antweakbars
fixed bug in initialization of the void* for the data of the c-style callbacks


Former-commit-id: 08a9c509a36464bd073c53103d3e81e0d6dc1dfd

Daniele Panozzo 10 жил өмнө
parent
commit
a7db94812c

+ 15 - 8
include/igl/viewer/Viewer.cpp

@@ -410,6 +410,11 @@ namespace igl
                " indices'");
 
     core.init();
+
+    if (callback_init)
+      if (callback_init(*this))
+        return;
+
     init_plugins();
   }
 
@@ -425,6 +430,7 @@ namespace igl
     data.set_face_based(false);
 
     // C-style callbacks
+    callback_init         = 0;
     callback_pre_draw     = 0;
     callback_post_draw    = 0;
     callback_mouse_down   = 0;
@@ -434,14 +440,15 @@ namespace igl
     callback_key_down     = 0;
     callback_key_up       = 0;
 
-    callback_pre_draw_data = 0;
-    callback_post_draw     = 0;
-    callback_mouse_down    = 0;
-    callback_mouse_up      = 0;
-    callback_mouse_move    = 0;
-    callback_mouse_scroll  = 0;
-    callback_key_down      = 0;
-    callback_key_up        = 0;
+    callback_init_data          = 0;
+    callback_pre_draw_data      = 0;
+    callback_post_draw_data     = 0;
+    callback_mouse_down_data    = 0;
+    callback_mouse_up_data      = 0;
+    callback_mouse_move_data    = 0;
+    callback_mouse_scroll_data  = 0;
+    callback_key_down_data      = 0;
+    callback_key_up_data        = 0;
 
   }
 

+ 2 - 0
include/igl/viewer/Viewer.h

@@ -108,6 +108,7 @@ namespace igl
 
 
     // C-style callbacks
+    bool (*callback_init)(Viewer& viewer);
     bool (*callback_pre_draw)(Viewer& viewer);
     bool (*callback_post_draw)(Viewer& viewer);
     bool (*callback_mouse_down)(Viewer& viewer, int button, int modifier);
@@ -118,6 +119,7 @@ namespace igl
     bool (*callback_key_up)(Viewer& viewer, unsigned char key, int modifiers);
 
     // Pointers to per-callback data
+    void* callback_init_data;
     void* callback_pre_draw_data;
     void* callback_post_draw_data;
     void* callback_mouse_down_data;