فهرست منبع

Add option to disable rotation (useful for 2D viewers).

Former-commit-id: 6cce7fa83a0bfaf924bdf592afeab8a1dfa76005
Jérémie Dumas 8 سال پیش
والد
کامیت
377b6d7061
2فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 7 1
      include/igl/viewer/Viewer.cpp
  2. 2 1
      include/igl/viewer/ViewerCore.h

+ 7 - 1
include/igl/viewer/Viewer.cpp

@@ -628,7 +628,11 @@ namespace viewer
     switch (button)
     {
       case MouseButton::Left:
-        mouse_mode = MouseMode::Rotation;
+        if (core.rotation_type == ViewerCore::ROTATION_TYPE_NO_ROTATION) {
+          mouse_mode = MouseMode::Translation;
+        } else {
+          mouse_mode = MouseMode::Rotation;
+        }
         break;
 
       case MouseButton::Right:
@@ -689,6 +693,8 @@ namespace viewer
           {
             default:
               assert(false && "Unknown rotation type");
+            case ViewerCore::ROTATION_TYPE_NO_ROTATION:
+              break;
             case ViewerCore::ROTATION_TYPE_TRACKBALL:
               igl::trackball(
                 core.viewport(2),

+ 2 - 1
include/igl/viewer/ViewerCore.h

@@ -88,7 +88,8 @@ public:
   {
     ROTATION_TYPE_TRACKBALL = 0,
     ROTATION_TYPE_TWO_AXIS_VALUATOR_FIXED_UP = 1,
-    NUM_ROTATION_TYPES = 2
+    ROTATION_TYPE_NO_ROTATION = 2,
+    NUM_ROTATION_TYPES = 3
   };
   IGL_INLINE void set_rotation_type(const RotationType & value);