#pragma once #include "config/primitives.hpp" #include "util/enum_bitfield_operators.hpp" #include #include namespace assets::point_cloud_shader_components { enum indices : z3d::size { square, lighting, luminance, color, alpha, uniform_color, rainbow }; enum class flags : std::uint16_t { none = 0, square = 1 << indices::square, lighting = 1 << indices::lighting, luminance = 1 << indices::luminance, color = 1 << indices::color, alpha = 1 << indices::alpha, uniform_color = 1 << indices::uniform_color, rainbow = 1 << indices::rainbow }; constexpr inline auto names = std::array{ "square", "lighting", "luminance", "color", "alpha", "uniform_color", "rainbow" }; } DEFINE_ENUM_BITFIELD_OPERATORS(assets::point_cloud_shader_components::flags)