ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
filter_utils.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Povl Filip Sonne-Frederiksen
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <reusex/types.hpp>
7#include <string>
8
9namespace reusex {
10class ProjectDB;
11} // namespace reusex
12
13namespace rux::filters {
14
17 bool valid;
18 std::string error_message;
19 std::string resolution_hint;
20
21 operator bool() const { return valid; }
22};
23
30auto evaluate_filter(const std::string &filter_expr, reusex::ProjectDB &db,
31 size_t expected_size) -> reusex::IndicesPtr;
32
36auto validate_expression_syntax(const std::string &expr) -> ValidationResult;
37
39auto validate_clouds_exist(const std::string &expr, reusex::ProjectDB &db)
41
43auto validate_cloud_sizes(const std::string &expr, reusex::ProjectDB &db)
45
46} // namespace rux::filters
pcl::IndicesPtr IndicesPtr
Definition types.hpp:23
auto validate_cloud_sizes(const std::string &expr, reusex::ProjectDB &db) -> ValidationResult
Validate that all referenced clouds have matching sizes.
auto evaluate_filter(const std::string &filter_expr, reusex::ProjectDB &db, size_t expected_size) -> reusex::IndicesPtr
Evaluate filter expression and generate Indices.
auto validate_clouds_exist(const std::string &expr, reusex::ProjectDB &db) -> ValidationResult
Validate that all referenced clouds exist in database.
auto validate_expression_syntax(const std::string &expr) -> ValidationResult
Validate that filter expression is syntactically correct.
Validation result for filter expressions.