18#include "../util/GeospatialOperations.hpp"
23#include <shared_mutex>
60 std::string szClassification;
67 double dTraversalScore;
83 std::optional<std::string> szClassification = std::nullopt;
94 std::optional<Range<double>> dNormalX = std::nullopt;
95 std::optional<Range<double>> dNormalY = std::nullopt;
96 std::optional<Range<double>> dNormalZ = std::nullopt;
97 std::optional<Range<double>> dSlope = std::nullopt;
98 std::optional<Range<double>> dRoughness = std::nullopt;
99 std::optional<Range<double>> dCurvature = std::nullopt;
100 std::optional<Range<double>> dTraversalScore = std::nullopt;
111 bool OpenDB(
const std::string& szDBPath);
114 bool InsertLiDARData(
const std::vector<geoops::Waypoint>& vPoints);
129 std::vector<std::function<
void(sqlite3_stmt*,
int&)>>& vBinders,
137 sqlite3* m_pSQLDatabase;
138 sqlite3_stmt* m_pSQLStatement;
140 std::shared_mutex m_muQueryMutex;
The LiDARHandler class manages runtime queries against a LiDAR point cloud database for autonomy navi...
Definition LiDARHandler.h:39
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:335
bool IsDBOpen()
Checks if the database is currently open.
Definition LiDARHandler.cpp:314
~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:88
Struct for filtering LiDAR points during queries.
Definition LiDARHandler.h:78
Struct representing a single LiDAR point row from the database.
Definition LiDARHandler.h:53