45 lines
958 B
C++
45 lines
958 B
C++
![]() |
#pragma once
|
||
|
|
||
|
#include "prismeditor.hpp"
|
||
|
#include "engine.hpp"
|
||
|
|
||
|
class AddObjectCommand : public Command {
|
||
|
public:
|
||
|
Object id;
|
||
|
std::string name;
|
||
|
|
||
|
std::string fetch_name() override {
|
||
|
return "Add object " + name;
|
||
|
}
|
||
|
|
||
|
void undo() override {
|
||
|
engine->get_scene()->remove_object(id);
|
||
|
}
|
||
|
|
||
|
void execute() override {
|
||
|
engine->get_scene()->add_object_by_id(id);
|
||
|
engine->get_scene()->get(id).name = name;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
class SceneEditor : public Editor {
|
||
|
public:
|
||
|
Scene* scene = nullptr;
|
||
|
|
||
|
bool showSceneSettings = true;
|
||
|
bool showOutliner = true;
|
||
|
bool showProperties = true;
|
||
|
bool showViewport = true;
|
||
|
bool showAssets = true;
|
||
|
bool showUndoStack = false;
|
||
|
|
||
|
bool has_menubar() const override;
|
||
|
std::string get_title() const override;
|
||
|
|
||
|
Scene* get_scene() const override;
|
||
|
|
||
|
void setup_windows(ImGuiID dockspace) override;
|
||
|
|
||
|
void draw(CommonEditor* editor) override;
|
||
|
};
|