#pragma once #include "assets/components/point_cloud_vertex_components.hpp" #include #include #include "generic/component_array_set.hpp" namespace assets { class point_cloud_data : detail::component_array_set< point_cloud_vertex_components::flags, point_cloud_vertex_components::all > { public: [[nodiscard]] inline std::vector& positions(); [[nodiscard]] inline std::vector& normals(); [[nodiscard]] inline std::vector& colors(); [[nodiscard]] inline std::vector& reflectances(); [[nodiscard]] inline const std::vector& positions() const; [[nodiscard]] inline const std::vector& normals() const; [[nodiscard]] inline const std::vector& colors() const; [[nodiscard]] inline const std::vector& reflectances() const; inline void clear(); }; } #define INCLUDE_DYNAMIC_TEXTURE_DATA_IMPLEMENTATION #include "assets/data/point_cloud_data.ipp" #undef INCLUDE_DYNAMIC_TEXTURE_DATA_IMPLEMENTATION