18#include "../util/GeospatialOperations.hpp"
25#include <shared_mutex>
61 std::string szClassification;
68 double dTraversalScore;
84 std::optional<std::string> szClassification = std::nullopt;
95 std::optional<Range<double>> dNormalX = std::nullopt;
96 std::optional<Range<double>> dNormalY = std::nullopt;
97 std::optional<Range<double>> dNormalZ = std::nullopt;
98 std::optional<Range<double>> dSlope = std::nullopt;
99 std::optional<Range<double>> dRoughness = std::nullopt;
100 std::optional<Range<double>> dCurvature = std::nullopt;
101 std::optional<Range<double>> dTraversalScore = std::nullopt;
112 bool OpenDB(
const std::string& szDBPath);
138 std::unique_ptr<duckdb::DuckDB> m_pDB;
140 std::shared_mutex m_muQueryMutex;
The LiDARHandler class manages runtime queries against a LiDAR point cloud database for autonomy navi...
Definition LiDARHandler.h:40
void AddRangeFilter(std::vector< std::string > &vClauses, duckdb::vector< duckdb::Value > &vBindValues, const char *pColumn, const std::optional< PointFilter::Range< T > > &stdOptRange)
Adds a range filter to the SQL query clauses and dynamically bound values.
Definition LiDARHandler.cpp:308
LiDARHandler()
Construct a new LiDARHandler::LiDARHandler object.
Definition LiDARHandler.cpp:27
std::vector< PointRow > GetLiDARData(const PointFilter &stPointFilter)
Retrieves LiDAR data points from DuckDB based on the specified filter.
Definition LiDARHandler.cpp:136
bool OpenDB(const std::string &szDBPath)
Initializes the LiDARHandler by opening the DuckDB database.
Definition LiDARHandler.cpp:61
bool DeclareLiDARObstacle(const geoops::UTMCoordinate &stPoint, double dRadius)
Modifies all LiDAR points in radius to reflect bad terrain.
Definition LiDARHandler.cpp:332
bool IsDBOpen()
Checks if the database is currently open.
Definition LiDARHandler.cpp:289
~LiDARHandler()
Destroy the LiDARHandler::LiDARHandler object.
Definition LiDARHandler.cpp:40
bool CloseDB()
Closes the currently open LiDAR DuckDB connection.
Definition LiDARHandler.cpp:112
Definition duckdb.hpp:960
Definition LiDARHandler.h:89
Struct for filtering LiDAR points during queries.
Definition LiDARHandler.h:79
Struct representing a single LiDAR point row from the database.
Definition LiDARHandler.h:54
This struct stores/contains information about a UTM coordinate.
Definition GeospatialOperations.hpp:211