renaming viewport panel to scene panel
This commit is contained in:
+3
-3
@@ -6,7 +6,7 @@
|
||||
#include "panels/asset_browser_panel.hpp"
|
||||
#include "panels/inspector_panel.hpp"
|
||||
#include "panels/scene_hierarchy_panel.hpp"
|
||||
#include "panels/viewport_panel.hpp"
|
||||
#include "panels/scene_panel.hpp"
|
||||
|
||||
class Editor : public sophia::Application {
|
||||
public:
|
||||
@@ -29,13 +29,13 @@ class Editor : public sophia::Application {
|
||||
sophia::RenderTargetHandle sceneTarget =
|
||||
resources().create<sophia::RenderTarget>();
|
||||
sceneViews().create({.scene = sceneHandle, .target = sceneTarget});
|
||||
panels().emplace<ViewportPanel>(ui(), sceneTarget, scene, selected);
|
||||
panels().emplace<ScenePanel>(ui(), sceneTarget, scene, selected);
|
||||
|
||||
panels().setDefaultLayout(
|
||||
{.left = {"Scene Hierarchy"},
|
||||
.right = {"Inspector", "Frame Stats", "PanelRegistry"},
|
||||
.bottom = {"Asset Browser", "Console"},
|
||||
.center = {"Viewport"}});
|
||||
.center = {"Scene"}});
|
||||
}
|
||||
|
||||
void onUpdate(const sophia::FrameInfo& frameInfo) override {}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "viewport_panel.hpp"
|
||||
#include "scene_panel.hpp"
|
||||
|
||||
#include <imgui.h>
|
||||
|
||||
@@ -18,7 +18,7 @@ const ImU32 SELECTION_COLOR = IM_COL32(255, 170, 40, 255);
|
||||
|
||||
} // namespace
|
||||
|
||||
ImVec2 ViewportPanel::ViewportTransform::worldToScreen(
|
||||
ImVec2 ScenePanel::ViewportTransform::worldToScreen(
|
||||
const glm::vec3& world) const {
|
||||
glm::vec4 clip = viewProjection * glm::vec4{world, 1.f};
|
||||
glm::vec2 ndc = glm::vec2{clip} / clip.w;
|
||||
@@ -27,7 +27,7 @@ ImVec2 ViewportPanel::ViewportTransform::worldToScreen(
|
||||
origin.y + (ndc.y * 0.5f + 0.5f) * size.y};
|
||||
}
|
||||
|
||||
glm::vec2 ViewportPanel::ViewportTransform::screenToWorld(
|
||||
glm::vec2 ScenePanel::ViewportTransform::screenToWorld(
|
||||
const ImVec2& screen) const {
|
||||
glm::vec2 ndc{(screen.x - origin.x) / size.x * 2.f - 1.f,
|
||||
(screen.y - origin.y) / size.y * 2.f - 1.f};
|
||||
@@ -35,7 +35,7 @@ glm::vec2 ViewportPanel::ViewportTransform::screenToWorld(
|
||||
return glm::vec2{world} / world.w;
|
||||
}
|
||||
|
||||
void ViewportPanel::onUpdate(const sophia::FrameInfo&) {
|
||||
void ScenePanel::onUpdate(const sophia::FrameInfo&) {
|
||||
drawToolbar();
|
||||
ImGui::Separator();
|
||||
|
||||
@@ -81,9 +81,9 @@ void ViewportPanel::onUpdate(const sophia::FrameInfo&) {
|
||||
ImGui::TextDisabled("%.0f x %.0f", size.x, size.y);
|
||||
}
|
||||
|
||||
void ViewportPanel::drawToolbar() { ImGui::Checkbox("Grid", &showGrid); }
|
||||
void ScenePanel::drawToolbar() { ImGui::Checkbox("Grid", &showGrid); }
|
||||
|
||||
void ViewportPanel::drawGrid(ImVec2 origin, ImVec2 size) {
|
||||
void ScenePanel::drawGrid(ImVec2 origin, ImVec2 size) {
|
||||
constexpr float GRID_STEP = 40.0f;
|
||||
const ImU32 gridColor = IM_COL32(255, 255, 255, 18);
|
||||
const ImVec2 end(origin.x + size.x, origin.y + size.y);
|
||||
@@ -99,7 +99,7 @@ void ViewportPanel::drawGrid(ImVec2 origin, ImVec2 size) {
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportPanel::handleInput(const ViewportTransform& viewport) {
|
||||
void ScenePanel::handleInput(const ViewportTransform& viewport) {
|
||||
const ImGuiIO& io = ImGui::GetIO();
|
||||
|
||||
if (ImGui::IsItemActivated()) {
|
||||
@@ -124,7 +124,7 @@ void ViewportPanel::handleInput(const ViewportTransform& viewport) {
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportPanel::drawSelection(const ViewportTransform& viewport) {
|
||||
void ScenePanel::drawSelection(const ViewportTransform& viewport) {
|
||||
if (!selected) {
|
||||
return;
|
||||
}
|
||||
@@ -151,7 +151,7 @@ void ViewportPanel::drawSelection(const ViewportTransform& viewport) {
|
||||
drawList->AddCircle(center, 4.0f, SELECTION_COLOR, 0, 2.0f);
|
||||
}
|
||||
|
||||
sophia::Entity ViewportPanel::pick(glm::vec2 world) {
|
||||
sophia::Entity ScenePanel::pick(glm::vec2 world) {
|
||||
sophia::Entity best;
|
||||
std::optional<std::tuple<sophia::s32, float>> bestOrder;
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
* Picking and moving are 2D: they assume an orthographic camera rotated only
|
||||
* around Z, and work in the z = 0 plane.
|
||||
*/
|
||||
class ViewportPanel : public sophia::Panel {
|
||||
class ScenePanel : public sophia::Panel {
|
||||
public:
|
||||
ViewportPanel(sophia::UI& ui, sophia::RenderTargetHandle target,
|
||||
ScenePanel(sophia::UI& ui, sophia::RenderTargetHandle target,
|
||||
sophia::Scene& scene, sophia::Entity& selected)
|
||||
: Panel{{.name = "Viewport",
|
||||
: Panel{{.name = "Scene",
|
||||
.windowFlags = ImGuiWindowFlags_NoScrollbar |
|
||||
ImGuiWindowFlags_NoScrollWithMouse}},
|
||||
ui{ui},
|
||||
Reference in New Issue
Block a user