ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
validation.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/core/ProjectDB.hpp>
7#include <string>
8#include <vector>
9
10namespace rux::validation {
11
14 bool success;
15 std::string error_message; // What's missing/wrong
16 std::string resolution_hint; // Command to run to fix it
17 std::vector<std::string> missing_data; // Specific missing items
18
19 explicit operator bool() const { return success; }
20
21 static ValidationResult ok() { return ValidationResult{true, "", "", {}}; }
22
23 static ValidationResult error(std::string msg, std::string hint,
24 std::vector<std::string> missing = {}) {
25 return ValidationResult{false, std::move(msg), std::move(hint),
26 std::move(missing)};
27 }
28};
29
30// Validation functions for each create command
40 const std::string &semantic_cloud_name);
43 const std::string &semantic_cloud_name);
44
45} // namespace rux::validation
ValidationResult validate_instances_prerequisites(const reusex::ProjectDB &db, const std::string &semantic_cloud_name)
ValidationResult validate_mesh_prerequisites(const reusex::ProjectDB &db)
ValidationResult validate_project_prerequisites(const reusex::ProjectDB &db)
ValidationResult validate_clouds_prerequisites(const reusex::ProjectDB &db)
ValidationResult validate_window_prerequisites(const reusex::ProjectDB &db, const std::string &semantic_cloud_name)
ValidationResult validate_texture_prerequisites(const reusex::ProjectDB &db)
ValidationResult validate_planes_prerequisites(const reusex::ProjectDB &db)
ValidationResult validate_annotate_prerequisites(const reusex::ProjectDB &db)
ValidationResult validate_rooms_prerequisites(const reusex::ProjectDB &db)
Result of validation with error message and resolution hint.
static ValidationResult error(std::string msg, std::string hint, std::vector< std::string > missing={})
std::vector< std::string > missing_data
static ValidationResult ok()