#pragma once #include #include #include #include class ViewportPanel : public sophia::Panel { public: ViewportPanel(sophia::UI& ui, sophia::RenderTargetHandle target) : Panel{{.name = "Viewport", .windowFlags = ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse}}, ui{ui}, target{target} {} void onUpdate(const sophia::FrameInfo& frameInfo) override; private: sophia::UI& ui; sophia::RenderTargetHandle target; enum class GizmoMode { Move, Rotate, Scale }; GizmoMode gizmoMode = GizmoMode::Move; bool showGrid = true; };