|
ReUseX
0.0.5
3D Point Cloud Processing for Building Reuse
|
Core-owned persistence contract for a row of the building_components table (#227). More...
#include <component_record.hpp>

Public Attributes | |
| std::string | name |
| name column — unique; the UPSERT conflict target. | |
| std::string | guid |
| guid column (schema v8) — stable, immutable identity. | |
| std::string | type |
| type column — component-type discriminator as stored, e.g. "window". | |
| std::vector< uint8_t > | vertex_data |
| vertex_data blob — boundary vertices as packed little-endian float64 xyz triples (3 * 8 bytes per vertex). | |
| std::array< double, 4 > | plane {0.0, 0.0, 0.0, 0.0} |
| plane blob — Hessian normal form [a,b,c,d] of ax+by+cz+d=0, always persisted as 4 * 8 bytes. | |
| int | parent_id = -1 |
| parent_id column — optional link to a parent component, -1 if none. | |
| double | confidence = -1.0 |
| confidence column — detection confidence, -1 if manual. | |
| std::string | metadata |
| metadata column — opaque JSON TEXT owned by the geometry layer. | |
| std::string | notes |
| notes column — free-form text. Bound as NULL when empty. | |
Core-owned persistence contract for a row of the building_components table (#227).
ProjectDB (Layer 2) stores and loads only this POD, so persistence needs no knowledge of geometry::BuildingComponent / geometry::CoplanarPolygon (Layer 1½ geometry types). The mapping in both directions lives in the geometry layer — see geometry/component_persistence.hpp.
Every member corresponds 1:1 to a column of building_components; the on-disk representation is unchanged from before the POD was introduced. vertex_count is not a member: it is derived from vertex_data.
Definition at line 25 of file component_record.hpp.
| double reusex::core::ComponentRecord::confidence = -1.0 |
confidence column — detection confidence, -1 if manual.
Definition at line 43 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::string reusex::core::ComponentRecord::guid |
guid column (schema v8) — stable, immutable identity.
Empty means "generate one on first save"; preserved across upserts.
Definition at line 30 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::string reusex::core::ComponentRecord::metadata |
metadata column — opaque JSON TEXT owned by the geometry layer.
Carries the type-specific variant payload and the source_instance_guid provenance link (issue #211). Bound as NULL when empty.
Definition at line 47 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::string reusex::core::ComponentRecord::name |
name column — unique; the UPSERT conflict target.
Definition at line 27 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::string reusex::core::ComponentRecord::notes |
notes column — free-form text. Bound as NULL when empty.
Definition at line 49 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| int reusex::core::ComponentRecord::parent_id = -1 |
parent_id column — optional link to a parent component, -1 if none.
Definition at line 41 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::array<double, 4> reusex::core::ComponentRecord::plane {0.0, 0.0, 0.0, 0.0} |
plane blob — Hessian normal form [a,b,c,d] of ax+by+cz+d=0, always persisted as 4 * 8 bytes.
Definition at line 39 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::string reusex::core::ComponentRecord::type |
type column — component-type discriminator as stored, e.g. "window".
Definition at line 32 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().
| std::vector<uint8_t> reusex::core::ComponentRecord::vertex_data |
vertex_data blob — boundary vertices as packed little-endian float64 xyz triples (3 * 8 bytes per vertex).
The vertex_count column is written as vertex_data.size() / (3 * sizeof(double)).
Definition at line 36 of file component_record.hpp.
Referenced by reusex::geometry::from_component_record(), and reusex::geometry::to_component_record().