16#ifndef AEONGAMES_WORLDEDITOR_H
17#define AEONGAMES_WORLDEDITOR_H
20#include <QApplication>
24#include "aeongames/Pipeline.hpp"
25#include "aeongames/Mesh.hpp"
26#include "aeongames/Material.hpp"
27#include "aeongames/Renderer.hpp"
28#include "aeongames/StringId.hpp"
30Q_DECLARE_METATYPE ( std::string );
31Q_DECLARE_METATYPE ( std::filesystem::path );
33#define qWorldEditorApp (reinterpret_cast<WorldEditor*> ( qApp ))
93 int mStringIdMetaType{};
94 int mStringMetaType{};
97 std::string mRendererName{};
98 std::unique_ptr<Renderer> mRenderer{};
99 std::unique_ptr<Pipeline> mGridPipeline{};
100 std::unique_ptr<Mesh> mGridMesh{};
101 std::unique_ptr<Material> mXGridMaterial{};
102 std::unique_ptr<Material> mYGridMaterial{};
103 std::unique_ptr<Pipeline> mSolidColorPipeline{};
104 std::unique_ptr<Material> mSolidColorMaterial{};
105 std::unique_ptr<Mesh> mAABBWireMesh{};
Represents a surface material with uniform properties and texture samplers.
Represents a polygon mesh with vertex attributes and index data.
Rendering pipeline resource.
Abstract base class for rendering backends.
CRC-based compile-time string identifier.
const Material & GetYGridMaterial() const
Get the Y-axis grid material.
~WorldEditor() final
Destructor.
const Pipeline & GetGridPipeline() const
Get the grid rendering pipeline.
int GetStringIdMetaType() const
Get the Qt meta-type ID for StringId.
int GetStringMetaType() const
Get the Qt meta-type ID for std::string.
void DetachWindowFromRenderer(void *aWindow)
Detach a native window from the renderer.
const Material & GetSolidColorMaterial() const
Get the solid color material.
void AttachWindowToRenderer(void *aWindow)
Attach a native window to the renderer.
const Mesh & GetAABBWireMesh() const
Get the axis-aligned bounding box wireframe mesh.
WorldEditor(int &argc, char *argv[])
Construct the world editor application.
const Mesh & GetGridMesh() const
Get the grid mesh.
Renderer * GetRenderer()
Get the current renderer.
int GetPathMetaType() const
Get the Qt meta-type ID for std::filesystem::path.
const Pipeline & GetSolidColorPipeline() const
Get the solid color rendering pipeline.
const Material & GetXGridMaterial() const
Get the X-axis grid material.
<- This is here just for the literals