18#include "../util/GeospatialOperations.hpp"
23#include <shared_mutex>
45 std::string szClassification;
52 double dTraversalScore;
61 std::optional<std::string> szClassification = std::nullopt;
72 std::optional<Range<double>> dNormalX = std::nullopt;
73 std::optional<Range<double>> dNormalY = std::nullopt;
74 std::optional<Range<double>> dNormalZ = std::nullopt;
75 std::optional<Range<double>> dSlope = std::nullopt;
76 std::optional<Range<double>> dRoughness = std::nullopt;
77 std::optional<Range<double>> dCurvature = std::nullopt;
78 std::optional<Range<double>> dTraversalScore = std::nullopt;
89 bool OpenDB(
const std::string& szDBPath);
92 bool InsertLiDARData(
const std::vector<geoops::Waypoint>& vPoints);
107 std::vector<std::function<
void(sqlite3_stmt*,
int&)>>& vBinders,
115 sqlite3* m_pSQLDatabase;
116 sqlite3_stmt* m_pSQLStatement;
118 std::shared_mutex m_muQueryMutex;
Definition LiDARHandler.h:31
LiDARHandler()
Construct a new LiDARHandler::LiDARHandler object.
Definition LiDARHandler.cpp:21
std::vector< PointRow > GetLiDARData(const PointFilter &stPointFilter)
Retrieves LiDAR data points from the database based on the specified filter.
Definition LiDARHandler.cpp:155
bool OpenDB(const std::string &szDBPath)
Initializes the LiDARHandler by opening the SQLite database and preparing the query.
Definition LiDARHandler.cpp:60
void AddRangeFilter(std::vector< std::string > &vClauses, std::vector< std::function< void(sqlite3_stmt *, int &)> > &vBinders, const char *pColumn, const std::optional< PointFilter::Range< T > > &stdOptRange)
Adds a range filter to the SQL query clauses and binders.
Definition LiDARHandler.cpp:337
bool IsDBOpen()
Checks if the database is currently open.
Definition LiDARHandler.cpp:316
~LiDARHandler()
Destroy the LiDARHandler::LiDARHandler object.
Definition LiDARHandler.cpp:35
bool CloseDB()
Closes the currently open LiDAR database.
Definition LiDARHandler.cpp:104
Definition LiDARHandler.h:66
Definition LiDARHandler.h:56
Definition LiDARHandler.h:38