49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
namespace Cesium3DTilesSelection {
|
|
|
|
class Tile;
|
|
class Tileset;
|
|
|
|
/**
|
|
* @brief Helps debug the tile selection algorithm by recording the state of
|
|
* tiles each frame to a SQLite database.
|
|
*/
|
|
class DebugTileStateDatabase {
|
|
public:
|
|
/**
|
|
* @brief Creates a new instance.
|
|
*
|
|
* @param databaseFilename The full path and filename of the output SQLite
|
|
* database.
|
|
*/
|
|
DebugTileStateDatabase(const std::string& databaseFilename);
|
|
~DebugTileStateDatabase() noexcept;
|
|
|
|
/**
|
|
* @brief Records the state of all tiles that are currently loaded by the
|
|
* given tileset.
|
|
*
|
|
* @param frameNumber The current frame number.
|
|
* @param tileset The tileset.
|
|
*/
|
|
void recordAllTileStates(int32_t frameNumber, const Tileset& tileset);
|
|
|
|
/**
|
|
* @brief Records the state of a given tile.
|
|
*
|
|
* @param frameNumber The current frame number.
|
|
* @param tile The tile.
|
|
*/
|
|
void recordTileState(int32_t frameNumber, const Tile& tile);
|
|
|
|
private:
|
|
struct Impl;
|
|
std::unique_ptr<Impl> _pImpl;
|
|
};
|
|
|
|
} // namespace Cesium3DTilesSelection
|