Program Listing for File VirtualGrid.hpp
↰ Return to documentation for file (include/lvr2/reconstruction/VirtualGrid.hpp)
/*
* VirtualGrid.hpp
*
* @date 17.09.19
* @author Pao
*/
#ifndef VIRTUALGRID_H
#define VIRTUALGRID_H
#include "BigGrid.hpp"
#include "lvr2/geometry/BoundingBox.hpp"
#include <memory>
#include <vector>
namespace lvr2
{
template <typename BaseVecT>
class VirtualGrid
{
public:
VirtualGrid(BoundingBox<BaseVecT>& bb,
float gridCellSize,
float voxelsize);
virtual ~VirtualGrid() = default;
void calculateBoxes();
void setBoundingBox(BoundingBox<BaseVecT> bb);
const std::vector<BoundingBox<BaseVecT>>& getBoxes() { return m_boxes; }
private:
void findInitialBox();
void generateNeighbours();
// BoundingBox of the input PointCloud
BoundingBox<BaseVecT> m_pcbb;
// initial Bounding Box, around the left corner of the PointCloud-BB
BoundingBox<BaseVecT> m_initbox;
// List of (smaller) BoundingBox (aka Chunks), which overlap the original PointCloud
std::vector<BoundingBox<BaseVecT>> m_boxes;
// size of the "virtual" GridCell aka ChunkSize
float m_gridCellSize;
// voxelsize to verify the cellsize/chunksize
float m_voxelsize;
};
} // namespace lvr2
#include "lvr2/reconstruction/VirtualGrid.tcc"
#endif // VIRTUALGRID_H