#pragma once #include "assets/components/point_cloud_vertex_components.hpp" #include #include #include "generic/dynamic_vertex_buffer.hpp" class dynamic_point_cloud_buffer : public dynamic_vertex_buffer< components::point_cloud_vertex::flags, components::point_cloud_vertex::position, components::point_cloud_vertex::normal, components::point_cloud_vertex::color, components::point_cloud_vertex::reflectance > { 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/dynamic_read_buffers/dynamic_point_cloud_buffer.ipp" #undef INCLUDE_DYNAMIC_TEXTURE_DATA_IMPLEMENTATION