ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
component_record.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Povl Filip Sonne-Frederiksen
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#pragma once
6
7#include <array>
8#include <cstdint>
9#include <string>
10#include <vector>
11
12namespace reusex::core {
13
27 std::string name;
30 std::string guid;
32 std::string type;
36 std::vector<uint8_t> vertex_data;
39 std::array<double, 4> plane{0.0, 0.0, 0.0, 0.0};
41 int parent_id = -1;
43 double confidence = -1.0;
47 std::string metadata;
49 std::string notes;
50};
51
52} // namespace reusex::core
Core-owned persistence contract for a row of the building_components table (#227).
std::array< double, 4 > plane
plane blob — Hessian normal form [a,b,c,d] of ax+by+cz+d=0, always persisted as 4 * 8 bytes.
std::string guid
guid column (schema v8) — stable, immutable identity.
double confidence
confidence column — detection confidence, -1 if manual.
std::string name
name column — unique; the UPSERT conflict target.
int parent_id
parent_id column — optional link to a parent component, -1 if none.
std::string type
type column — component-type discriminator as stored, e.g. "window".
std::string metadata
metadata column — opaque JSON TEXT owned by the geometry layer.
std::vector< uint8_t > vertex_data
vertex_data blob — boundary vertices as packed little-endian float64 xyz triples (3 * 8 bytes per ver...
std::string notes
notes column — free-form text. Bound as NULL when empty.