ImGuIZMO.quat Versions Save

ImGui GIZMO widget - 3D object manipulator / orientator

v3.0

4 years ago

New in the imGuIZMO.quat v3.0

  • New widgets with Pan/Dolly (Move/Zoom) features
    • Default key modifiers are Ctrl (Pan) and Shift (Dolly), but they can be changed with setPanModifier and setDollyModifier helper functions.
    • When press and hold a key modifier (Ctrl/Shift/Alt/Super) and hover the mouse over the widget, a graphical helper appears in the left bottom corner, now with the new symbols for Pan or Dolly features
rotation around X rotation around Y rotation around Z Pan / move Dolly / zoom
alt text alt text alt text alt text alt text

Please, read main-page for more information: imGuIZMO.quat

NOTE Already from v.2.2 is changed capitalization of search "include" path:

  • It changes from ImGui to imgui, to adapt it to the ImGui repository directory

Now you can set it from IMGUIZMO_IMGUI_FOLDER define in vgConfig.h, for more flexibility (#5)

//------------------------------------------------------------------------------
// imGuiZmo.quat - v3.0 and later - (used only inside it)
//
//      used to specify where ImGui include files should be searched
//          #define IMGUIZMO_IMGUI_FOLDER  
//              is equivalent to use:
//                  #include <imgui.h>
//                  #include <imgui_internal.h>
//          #define IMGUIZMO_IMGUI_FOLDER myLibs/ImGui/
//              (final slash is REQUIRED) is equivalent to use: 
//                  #include <myLib/ImGui/imgui.h>
//                  #include <myLib/ImGui/imgui_internal.h>
//          Default: IMGUIZMO_IMGUI_FOLDER commented/undefined
//              is equivalent to use:
//                  #include <imgui/imgui.h>
//                  #include <imgui/imgui_internal.h>
//
// N.B. Final slash to end of path is REQUIRED!
//------------------------------------------------------------------------------
// #define IMGUIZMO_IMGUI_FOLDER ImGui/

Or to use -D compiler flag, as described here: 5#-issue-comment

v2.2

4 years ago

New in the imGuIZMO.quat v2.2

  • Graphical helper for rotation around a fixed axis
    • When press and hold a key modifier (Ctrl/Shift/Alt/Super) and hover the mouse over the widget, a graphical helper appears in the left bottom corner, with the color that identifies the fixed axis.
  • Mouse sensibility
    • Now is possible adjust the mouse sensibility with setGizmoFeelingRot(float)
      • >1 more mouse sensitivity
      • <1 less mouse sensitivity

Helper2 Helper1

*You can try/view these new feature via live demo, accessible from main page

Changes / Fixes / Improvements

  • Changed capitalization of search include path
    • It changes from ImGui to imgui, to adapt to the ImGui repository directory, anyway you can use the IMGUIZMO_USE_ImGui_FOLDER define to maintain olden behavior
  • Update CMakeLists.txt to build example also with latest Emscripten releases (fix BINARYEN_METHOD no more supported)
  • Now the text (if you want it) appears inside the widget area, so the size is exactly what you chose.

v2.1.3

4 years ago

Fixes and bug fixed from v. 2.1

Bugs fixed

  • "nan" result when vec3 in widget have lenght<FLT_EPSILON, or y and z components are both ZERO

Comple/Build issues fixed

  • MinGW/GCC compiler issue when compiled w/o -DVGM_USES_TEMPLATE: #2
  • CMake issue with CMAKE_FIND_LIBRARY_PREFIXES, when compiles example
  • CMake issue when build with GLFW in windows, when compiles example

Example fixes/improvements

  • VirtualGIZMO disabled to default: pass -DUSE_VIRTUALGIZMO:BOOL=TRUE to cmake, or flag it in GUI, to enable it (readme.md)
  • CMake improvement: use of built-in macro_lib

v2.1

4 years ago

Changes from v. 2.02

Now the math library has been inserted in a proper repository, so I changed its name from vGizmoMath.h in vgMath.h. Anyway users no need to change anything in own source code, if they don't want, a vGizmoMath.h "frontend" has been created to load vgMath.h. (although I recommend to change anyway the #include name in your code)

The vGizmoConfig.h file name also changes in vgConfig.h, but it's used only internally: you don't have to do anything.

Is need only to copy your changes made in vGizmoConfig.h in the new file vgConfig.h. It contains also 2 new options described in Configure imGuIZMO.quat section to homepage

Also two #defines name are changed to do explicit reference to VGM and not more to VGIZMO: VGIZMO_USES_LEFT_HAND_AXES ==> VGM_USES_LEFT_HAND_AXES VGIZMO_USES_TEMPLATE ==> VGM_USES_TEMPLATE (it's important if you have used external defines to pass to compiler)

In vgMath the following constructors change:

  • Vec3(const VEC2_T& v, T s=T(0)) ==> Vec3(const VEC2_T& v, T s)
  • Vec4(const VEC3_T& v, T s=T(0)) ==> Vec4(const VEC3_T& v, T s)

(to avoid errors has been removed default assignment: now you explicitly need to add the "scalar".)

  • added MAT4_T scale(MAT4_T const& m, VEC3_T const& v) function
  • correct a typing error in frustum function name

v2.02

4 years ago

Changes from v. 1.1

Users of the previous versions need:

  • change #include <imGuIZMO.h>   ==>   #include <imGuIZMOquat.h>
  • in file vGizmoConfig.h uncomment #define VGIZMO_USES_GLM to continue to use glm, or add VGIZMO_USES_GLM to compiler preprocessor defines.
  • Read virtualGizmo3D Changes if you use it outside imGuIZMO.quat widget

v.1.1

4 years ago

Release 1.1

In anticipation of some and future changes, I freeze and make available this release