VoxelEngine/src/presets/NotePreset.hpp
2025-04-13 13:53:59 +03:00

35 lines
903 B
C++

#pragma once
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
#include <string>
#include "interfaces/Serializable.hpp"
#include "util/EnumMetadata.hpp"
enum class NoteDisplayMode {
STATIC_BILLBOARD,
Y_FREE_BILLBOARD,
XY_FREE_BILLBOARD,
PROJECTED
};
VC_ENUM_METADATA(NoteDisplayMode)
{"static_billboard", NoteDisplayMode::STATIC_BILLBOARD},
{"y_free_billboard", NoteDisplayMode::Y_FREE_BILLBOARD},
{"xy_free_billboard", NoteDisplayMode::XY_FREE_BILLBOARD},
{"projected", NoteDisplayMode::PROJECTED},
VC_ENUM_END
struct NotePreset : public Serializable {
NoteDisplayMode displayMode = NoteDisplayMode::STATIC_BILLBOARD;
glm::vec4 color {1.0f};
float scale = 1.0f;
float renderDistance = 32.0f;
float xrayOpacity = 0.0f;
float perspective = 1.0f;
dv::value serialize() const override;
void deserialize(const dv::value& src) override;
};