Toast Engine
Loading...
Searching...
No Matches
voxel_mesh.hpp
Go to the documentation of this file.
1
7
8#pragma once
9#include "voxel_piece.hpp"
10
11namespace assets {
12class VoxelPalette;
13}
14
15namespace toast {
16
18class [[ToastNode, Icon("MeshItem")]] TOAST_API VoxelMesh : public VoxelPiece {
19public:
20 [[nodiscard, Reflect]]
21 auto getModel() const -> const assets::Handle<assets::VoxelModel>&;
22
24 [[Reflect]]
26
28 [[nodiscard, Reflect]]
30
31 [[Reflect]]
32 void setPalette(assets::Handle<assets::VoxelPalette> palette);
33
34 [[nodiscard]]
35 auto sourcePaletteUid() const -> uint64_t override;
36
38 [[nodiscard]]
39 auto resolvedModel() const -> const assets::VoxelModel*;
40
41protected:
42 auto prepareGrid() -> std::unique_ptr<voxel::Volume> override;
43 auto pieceSize() -> glm::ivec3 override;
44
45 [[Reflect, Name("Model")]]
47
48 [[Reflect, Name("Palette Override")]]
50};
51
52}
Type-safe smart pointer for assets.
Definition core_types.hpp:149
Definition voxel_model.hpp:43
Definition voxel_palette.hpp:40
Definition reflect.hpp:244
Definition voxel_mesh.hpp:18
void setModel(assets::Handle< assets::VoxelModel > model)
Definition voxel_mesh.cpp:16
auto sourcePaletteUid() const -> uint64_t override
Definition voxel_mesh.cpp:30
auto resolvedModel() const -> const assets::VoxelModel *
Definition voxel_mesh.cpp:38
auto pieceSize() -> glm::ivec3 override
Definition voxel_mesh.cpp:42
auto getPalette() const -> const assets::Handle< assets::VoxelPalette > &
Definition voxel_mesh.cpp:21
auto prepareGrid() -> std::unique_ptr< voxel::Volume > override
Definition voxel_mesh.cpp:47
Definition voxel_piece.hpp:41
Base of everything a ProceduralVoxel builds itself from.