Program Listing for File Tiles3dIO.hpp

Return to documentation for file (include/lvr2/io/Tiles3dIO.hpp)

#pragma once

#ifdef LVR2_USE_3DTILES

#include "lvr2/algorithm/HLODTree.hpp"

#include <Cesium3DTiles/Tile.h>

namespace lvr2
{

template<typename BaseVecT>
class Tiles3dIO
{
public:
    using TreePtr = typename HLODTree<BaseVecT>::Ptr;
    using TreeConstPtr = const typename HLODTree<BaseVecT>::Ptr;

    Tiles3dIO(const std::string& directory);
    ~Tiles3dIO() = default;

    void write(TreeConstPtr& tree, bool compress = false, float scale = 1.0f);
    void read(TreePtr& tree)
    {
        throw std::runtime_error("Not implemented yet");
    }

private:
    void writeTiles(Cesium3DTiles::Tile& tile,
                    TreeConstPtr& tree,
                    bool compress,
                    const std::string& outputDir,
                    const std::string& prefix,
                    lvr2::Monitor& progress);

    std::string m_rootDir;
};

} // namespace lvr2

#include "Tiles3dIO.tcc"

#endif // LVR2_USE_3DTILES