33#ifndef DVD_EDITOR_GIZMO_H_
34#define DVD_EDITOR_GIZMO_H_
94 [[nodiscard]] ImGuiContext&
getContext() noexcept;
95 [[nodiscard]] const ImGuiContext&
getContext() const noexcept;
98 [[nodiscard]]
bool hovered() const noexcept;
99 void enable(
bool state) noexcept;
100 [[nodiscard]]
bool enabled() const noexcept;
101 [[nodiscard]]
bool active() const noexcept;
104 [[nodiscard]]
bool onKey(
bool pressed, const Input::KeyEvent& key);
108 void render(const
Camera* camera, const
Rect<
I32>& targetViewport, GFX::CommandBuffer& bufferInOut, GFX::MemoryBarrierCommand& memCmdInOut);
142 gizmo->
render(camera, targetViewport, bufferInOut, memCmdInOut);
150 gizmo->
update(deltaTimeUS);
154 gizmo->setTransformSettings(settings);
158 return gizmo->getTransformSettings();
162 gizmo->onSceneFocus(state);
static void updateSelection(Gizmo *gizmo, const vector< SceneGraphNode * > &nodes)
static void setTransformSettings(Gizmo *gizmo, const TransformSettings &settings) noexcept
static void render(Gizmo *gizmo, const Camera *camera, const Rect< I32 > &targetViewport, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
static void onSceneFocus(Gizmo *gizmo, const bool state) noexcept
static void update(Gizmo *gizmo, const U64 deltaTimeUS)
static const TransformSettings & getTransformSettings(const Gizmo *gizmo) noexcept
void applyTransforms(const SelectedNode &node, const vec3< F32 > &position, const vec3< Angle::DEGREES< F32 > > &euler, const vec3< F32 > &scale)
void onSceneFocus(bool state) noexcept
ImGuiContext & getContext() noexcept
bool active() const noexcept
void updateSelections(const vector< SceneGraphNode * > &nodes)
void renderSingleSelection(const Camera *camera)
bool onKey(bool pressed, const Input::KeyEvent &key)
void render(const Camera *camera, const Rect< I32 > &targetViewport, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
bool enabled() const noexcept
void update(U64 deltaTimeUS)
void setTransformSettings(const TransformSettings &settings) noexcept
vector< SelectedNode > _selectedNodes
void enable(bool state) noexcept
TransformSettings _transformSettings
const TransformSettings & getTransformSettings() const noexcept
void renderMultipleSelections(const Camera *camera)
void onMouseButton(bool pressed) noexcept
ImGuiContext * _imguiContext
bool hovered() const noexcept
mat4< F32 > _localToWorldMatrix
Handle console commands that start with a forward slash.
FORCE_INLINE bool IsRotationOperation(const TransformSettings &settings)
FORCE_INLINE bool IsTranslationOperation(const TransformSettings &settings)
FORCE_INLINE bool IsScaleOperation(const TransformSettings &settings)
eastl::vector< Type > vector
TransformValues _initialValues