gizmo のライブラリを整備したい

去年手を付けたのだが、放棄されていたのを発掘した。

GitHub - ousttrue/gizmesh: Linear Algebra experiment
Linear Algebra experiment. Contribute to ousttrue/gizmesh development by creating an account on GitHub.
GitHub - ousttrue/gizmesh: Linear Algebra experiment favicon https://github.com/ousttrue/gizmesh
GitHub - ousttrue/gizmesh: Linear Algebra experiment

tiny gizmo を改造しようとしてて、動かなくなっている。

既存の gizmo libraries

tinygizmo

GitHub - ddiakopoulos/tinygizmo: :triangular_ruler: An simple immediate-mode 3D gimzo/manipulator (translation, rotation, scale widget) in ~1200 LoC
:triangular_ruler: An simple immediate-mode 3D gimzo/manipulator (translation, rotation, scale widget) in ~1200 LoC - ddiakopoulos/tinygizmo
GitHub - ddiakopoulos/tinygizmo: :triangular_ruler: An simple immediate-mode 3D gimzo/manipulator (translation, rotation, scale widget) in ~1200 LoC favicon https://github.com/ddiakopoulos/tinygizmo
GitHub - ddiakopoulos/tinygizmo: :triangular_ruler: An simple immediate-mode 3D gimzo/manipulator (translation, rotation, scale widget) in ~1200 LoC

minalg.h. https://github.com/sgorsten/linalg の改造版

im3d

GitHub - john-chapman/im3d: Immediate mode rendering and 3d gizmos.
Immediate mode rendering and 3d gizmos. Contribute to john-chapman/im3d development by creating an account on GitHub.
GitHub - john-chapman/im3d: Immediate mode rendering and 3d gizmos. favicon https://github.com/john-chapman/im3d
GitHub - john-chapman/im3d: Immediate mode rendering and 3d gizmos.

im3d_math.h 300行くらいでシンプル。

ImGuizmo

GitHub - CedricGuillemet/ImGuizmo: Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui - CedricGuillemet/ImGuizmo
GitHub - CedricGuillemet/ImGuizmo: Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui favicon https://github.com/CedricGuillemet/ImGuizmo
GitHub - CedricGuillemet/ImGuizmo: Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui

ImGui のDrawListに相乗りするぽい。

memo

2021 0921

tinygizmo の改造を最初からやりなおし

GitHub - ousttrue/tinygizmo: :triangular_ruler: An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC
:triangular_ruler: An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC - ousttrue/tinygizmo
GitHub - ousttrue/tinygizmo: :triangular_ruler: An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC favicon https://github.com/ousttrue/tinygizmo/tree/custom
GitHub - ousttrue/tinygizmo: :triangular_ruler: An immediate mode 3D gimzo (translation, rotation, scale for scene editing) in ~1200 LoC

example を整理する。

  • glfw 依存を最小化して、 include が伝わらないように隔離
  • gizmo と OpenGL を分離

2021 1225

続き。 cython から使えるようにインターフェース改修。 c++ 視点で型が増えないように、std::array, std::tuple 等を多用する書き方をしていたのだけど、 cython 視点では使いにくかった。

TODO

  • examples/gl3examples/dx11 を共通化する
  • rendertarget への描画

2021 1226

マウス操作でモデルにポーズを付けられるところを目標に。

  • 小さい数学ライブラリ
  • TRS node hierarchy
  • AABB node selector
  • gizmo hover
  • logger / imgui ですべてのステート(mode etc)を表示する