51 lines
1.2 KiB
C++
51 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <filesystem>
|
|
#include <system_error>
|
|
|
|
#include "assets/prefetch_queue.hpp"
|
|
#include "generic/base_dynamic_loader.hpp"
|
|
#include "assets/data/point_cloud_data.hpp"
|
|
#include "assets/data_stores/point_cloud_store.hpp"
|
|
#include "assets/prefetch_lookups/point_cloud_prefetch_lookup.hpp"
|
|
#include "util/string_list.hpp"
|
|
|
|
#include "assets/file_parsers/kitti_parser.hpp"
|
|
#include "assets/file_parsers/uos_loader.hpp"
|
|
#include "assets/file_parsers/uos_normal_loader.hpp"
|
|
#include "assets/file_parsers/uos_rgb_loader.hpp"
|
|
#include "assets/file_parsers/uosr_loader.hpp"
|
|
|
|
namespace assets
|
|
{
|
|
|
|
class point_cloud_loader : public base_dynamic_loader<
|
|
point_cloud_vertex_components::flags,
|
|
kitti_parser,
|
|
uos_loader,
|
|
uos_normal_loader,
|
|
uos_rgb_loader,
|
|
uos_loader,
|
|
uosr_loader
|
|
> {
|
|
public:
|
|
[[nodiscard]] std::error_code prefetch(
|
|
loader_id_type loader_id,
|
|
const ztu::string_list& directories,
|
|
prefetch_queue& queue
|
|
);
|
|
|
|
[[nodiscard]] std::error_code load(
|
|
loader_id_type loader_id,
|
|
const ztu::string_list& directories,
|
|
point_cloud_store& store,
|
|
point_cloud_prefetch_lookup& id_lookup,
|
|
bool pedantic = false
|
|
);
|
|
|
|
private:
|
|
point_cloud_data m_buffer{};
|
|
};
|
|
|
|
}
|