39 lines
939 B
C++
Executable File
39 lines
939 B
C++
Executable File
#pragma once
|
|
|
|
#include <array>
|
|
#include <tuple>
|
|
#include "util/enum_bitfield_operators.hpp"
|
|
|
|
namespace assets::point_cloud_vertex_components
|
|
{
|
|
|
|
using position = std::array<float, 3>;
|
|
using normal = std::array<float, 3>;
|
|
using color = std::array<float, 3>;
|
|
using reflectance = std::array<float, 1>;
|
|
|
|
namespace indices
|
|
{
|
|
using type = std::size_t;
|
|
inline constexpr type position = 0;
|
|
inline constexpr type normal = 1;
|
|
inline constexpr type color = 2;
|
|
inline constexpr type reflectance = 3;
|
|
} // namespace indices
|
|
|
|
enum class flags : std::uint8_t
|
|
{
|
|
none = 0,
|
|
position = 1 << indices::position,
|
|
normal = 1 << indices::normal,
|
|
color = 1 << indices::color,
|
|
reflectance = 1 << indices::reflectance
|
|
};
|
|
|
|
using all = std::tuple<position, normal, color, reflectance>;
|
|
constexpr inline auto count = std::tuple_size_v<all>;
|
|
|
|
} // namespace point_cloud_vertex_components
|
|
|
|
DEFINE_ENUM_BITFIELD_OPERATORS(assets::point_cloud_vertex_components::flags)
|