ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
reusex Namespace Reference

Namespaces

namespace  core
 Wire form of one stored report PDF version — the ReportPdfVersion schema in ruxd's API contract (docs/gui/openapi.yaml, in the ruxd repo).
namespace  geometry
namespace  gsplat
namespace  io
namespace  pipeline
namespace  slam
namespace  utils
namespace  vision
namespace  visualize

Classes

class  ProjectDB
class  stopwatch

Typedefs

template<typename Scalar, int Rows>
using EigenVectorContainer
using Pair = std::pair<Eigen::Vector4d, Eigen::Vector3d>
using PlanePair = std::pair<Pair, Pair>
using PointT = pcl::PointXYZRGB
using NormalT = pcl::Normal
using LabelT = pcl::Label
using LocT = pcl::PointXYZ
using Indices = pcl::Indices
using IndicesPtr = pcl::IndicesPtr
using IndicesConstPtr = pcl::IndicesConstPtr
using Cloud = pcl::PointCloud<PointT>
using CloudPtr = typename Cloud::Ptr
using CloudConstPtr = typename Cloud::ConstPtr
using CloudN = pcl::PointCloud<NormalT>
using CloudNPtr = typename CloudN::Ptr
using CloudNConstPtr = typename CloudN::ConstPtr
using CloudL = pcl::PointCloud<LabelT>
using CloudLPtr = typename CloudL::Ptr
using CloudLConstPtr = typename CloudL::ConstPtr
using CloudLoc = pcl::PointCloud<LocT>
using CloudLocPtr = typename CloudLoc::Ptr
using CloudLocConstPtr = typename CloudLoc::ConstPtr

Enumerations

enum class  LogLevel

Functions

std::vector< std::uint8_t > generate_ressourcekortlaegning_pdf (ProjectDB &db, std::optional< std::int64_t > resource_template_id=std::nullopt)
 Generate a Ressourcekortlægning PDF for the given project.
int report_blocking_types (const ProjectDB &db)
 How many survey types keep the report from being complete right now: the length of core::fractions_by_eak's blocking list (review, sample or mass).
template<typename... Args>
void critical (fmt::format_string< Args... > format, Args &&...args)
template<typename... Args>
void debug (fmt::format_string< Args... > format, Args &&...args)
template<typename... Args>
void error (fmt::format_string< Args... > format, Args &&...args)
template<typename... Args>
void info (fmt::format_string< Args... > format, Args &&...args)
template<typename... Args>
void log (LogLevel level, fmt::format_string< Args... > format, Args &&...args)
template<typename... Args>
void trace (fmt::format_string< Args... > format, Args &&...args)
template<typename... Args>
void warn (fmt::format_string< Args... > format, Args &&...args)

Variables

constexpr double kEpsilonLengthM = 1e-9
 Absolute length zero-check, in meters.
constexpr double kEpsilonAngleRad = 1e-6
 Absolute angular tolerance, in radians.
constexpr double kEpsilonRelative = 1e-12
 Dimensionless / normalized tolerance.
constexpr double kToleranceCoplanarM = 0.01
 Coplanarity / spatial-adjacency tolerance, in meters.

Typedef Documentation

◆ Cloud

using reusex::Cloud = pcl::PointCloud<PointT>

Definition at line 27 of file point_types.hpp.

◆ CloudConstPtr

using reusex::CloudConstPtr = typename Cloud::ConstPtr

Definition at line 29 of file point_types.hpp.

◆ CloudL

using reusex::CloudL = pcl::PointCloud<LabelT>

Definition at line 35 of file point_types.hpp.

◆ CloudLConstPtr

using reusex::CloudLConstPtr = typename CloudL::ConstPtr

Definition at line 37 of file point_types.hpp.

◆ CloudLoc

using reusex::CloudLoc = pcl::PointCloud<LocT>

Definition at line 39 of file point_types.hpp.

◆ CloudLocConstPtr

using reusex::CloudLocConstPtr = typename CloudLoc::ConstPtr

Definition at line 41 of file point_types.hpp.

◆ CloudLocPtr

using reusex::CloudLocPtr = typename CloudLoc::Ptr

Definition at line 40 of file point_types.hpp.

◆ CloudLPtr

using reusex::CloudLPtr = typename CloudL::Ptr

Definition at line 36 of file point_types.hpp.

◆ CloudN

using reusex::CloudN = pcl::PointCloud<NormalT>

Definition at line 31 of file point_types.hpp.

◆ CloudNConstPtr

using reusex::CloudNConstPtr = typename CloudN::ConstPtr

Definition at line 33 of file point_types.hpp.

◆ CloudNPtr

using reusex::CloudNPtr = typename CloudN::Ptr

Definition at line 32 of file point_types.hpp.

◆ CloudPtr

using reusex::CloudPtr = typename Cloud::Ptr

Definition at line 28 of file point_types.hpp.

◆ EigenVectorContainer

template<typename Scalar, int Rows>
using reusex::EigenVectorContainer
Initial value:
std::vector<Eigen::Matrix<Scalar, Rows, 1>,
Eigen::aligned_allocator<Eigen::Matrix<Scalar, Rows, 1>>>

Definition at line 20 of file eigen_types.hpp.

◆ Indices

using reusex::Indices = pcl::Indices

Definition at line 23 of file point_types.hpp.

◆ IndicesConstPtr

using reusex::IndicesConstPtr = pcl::IndicesConstPtr

Definition at line 25 of file point_types.hpp.

◆ IndicesPtr

using reusex::IndicesPtr = pcl::IndicesPtr

Definition at line 24 of file point_types.hpp.

◆ LabelT

using reusex::LabelT = pcl::Label

Definition at line 20 of file point_types.hpp.

◆ LocT

using reusex::LocT = pcl::PointXYZ

Definition at line 21 of file point_types.hpp.

◆ NormalT

using reusex::NormalT = pcl::Normal

Definition at line 19 of file point_types.hpp.

◆ Pair

using reusex::Pair = std::pair<Eigen::Vector4d, Eigen::Vector3d>

Definition at line 24 of file eigen_types.hpp.

◆ PlanePair

using reusex::PlanePair = std::pair<Pair, Pair>

Definition at line 25 of file eigen_types.hpp.

◆ PointT

using reusex::PointT = pcl::PointXYZRGB

Definition at line 18 of file point_types.hpp.

Enumeration Type Documentation

◆ LogLevel

enum class reusex::core::LogLevel
strong

Definition at line 17 of file logging.hpp.

Function Documentation

◆ critical()

template<typename... Args>
void reusex::core::critical ( fmt::format_string< Args... > format,
Args &&... args )
inline

Definition at line 107 of file logging.hpp.

◆ debug()

template<typename... Args>
void reusex::core::debug ( fmt::format_string< Args... > format,
Args &&... args )
inline

◆ error()

◆ generate_ressourcekortlaegning_pdf()

std::vector< std::uint8_t > reusex::generate_ressourcekortlaegning_pdf ( ProjectDB & db,
std::optional< std::int64_t > resource_template_id = std::nullopt )

Generate a Ressourcekortlægning PDF for the given project.

Assembles material passports, user-defined column definitions and thumbnail blobs from db into a temporary directory, writes the Typst template there, and executes: typst compile report.typ out.pdf –root <tmpdir>

With resource_template_id the PDF also gets a Ressourcetabel: every non-rejected resource through that template's keys, in tables of at most 8 columns each led by Betegnelse (core::resource_report_section).

Returns
Raw PDF bytes on success.
Exceptions
std::out_of_rangewhen resource_template_id names no template (checked before any typst work).
std::runtime_errorif typst is not in PATH, data assembly fails, or the compilation exits non-zero (the error text from typst is included in the message).

References generate_ressourcekortlaegning_pdf().

Referenced by generate_ressourcekortlaegning_pdf().

◆ info()

template<typename... Args>
void reusex::core::info ( fmt::format_string< Args... > format,
Args &&... args )
inline

◆ log()

template<typename... Args>
void reusex::core::log ( LogLevel level,
fmt::format_string< Args... > format,
Args &&... args )
inline

Definition at line 55 of file logging.hpp.

◆ report_blocking_types()

int reusex::report_blocking_types ( const ProjectDB & db)

How many survey types keep the report from being complete right now: the length of core::fractions_by_eak's blocking list (review, sample or mass).

Stored with each PDF version (ProjectDB::add_report_pdf) so the GUI can tell a complete version from a draft.

References report_blocking_types().

Referenced by report_blocking_types().

◆ trace()

template<typename... Args>
void reusex::core::trace ( fmt::format_string< Args... > format,
Args &&... args )
inline

◆ warn()

template<typename... Args>
void reusex::core::warn ( fmt::format_string< Args... > format,
Args &&... args )
inline

Definition at line 93 of file logging.hpp.

Variable Documentation

◆ kEpsilonAngleRad

double reusex::kEpsilonAngleRad = 1e-6
inlineconstexpr

Absolute angular tolerance, in radians.

Angles below this are treated as zero; two directions whose subtended angle is below this are parallel.

Definition at line 62 of file tolerances.hpp.

◆ kEpsilonLengthM

double reusex::kEpsilonLengthM = 1e-9
inlineconstexpr

Absolute length zero-check, in meters.

A distance / edge length / vector norm below this is treated as zero (degenerate).

Definition at line 58 of file tolerances.hpp.

◆ kEpsilonRelative

double reusex::kEpsilonRelative = 1e-12
inlineconstexpr

Dimensionless / normalized tolerance.

Use for dot products of unit vectors, squared norms of (supposedly) unit normals, and relative ratios. This is the guard for divisions by a squared norm.

Definition at line 67 of file tolerances.hpp.

◆ kToleranceCoplanarM

double reusex::kToleranceCoplanarM = 0.01
inlineconstexpr

Coplanarity / spatial-adjacency tolerance, in meters.

Planes whose parallel offsets differ by less than this are the same surface; inlier patches with a gap below this are adjacent.

Definition at line 72 of file tolerances.hpp.