ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
rhino.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
6#pragma once
7#include "reusex/types.hpp"
8
9// OpenNURBS public needs to be included first (pulls in all ON_* types)
10#include <opennurbs_public.h>
11
12#include <pcl/PolygonMesh.h>
13
14#include <memory>
15
16namespace reusex::io {
17
18// Forward declaration
19struct ExportScene;
20
22auto configure_rhino_model() -> std::unique_ptr<ONX_Model>;
23
25auto export_to_rhino(const ExportScene &scene) -> std::unique_ptr<ONX_Model>;
26
29 -> std::unique_ptr<ON_PointCloud>;
30
33 -> std::unique_ptr<ON_PointCloud>;
34
36auto make_rhino_mesh(const pcl::PolygonMesh &mesh) -> std::unique_ptr<ON_Mesh>;
37
39auto make_sphere_mesh(double cx, double cy, double cz, double radius,
40 int resolution = 16) -> std::unique_ptr<ON_Mesh>;
41
42} // namespace reusex::io
auto export_to_rhino(const ExportScene &scene) -> std::unique_ptr< ONX_Model >
Export a full ExportScene to a Rhino ONX_Model with layer hierarchy.
auto make_rhino_mesh(const pcl::PolygonMesh &mesh) -> std::unique_ptr< ON_Mesh >
Convert a PCL PolygonMesh to an ON_Mesh.
auto make_sphere_mesh(double cx, double cy, double cz, double radius, int resolution=16) -> std::unique_ptr< ON_Mesh >
Create a UV sphere mesh.
auto make_rhino_pointcloud(CloudConstPtr cloud) -> std::unique_ptr< ON_PointCloud >
Convert a PCL XYZRGB point cloud to an ON_PointCloud.
auto configure_rhino_model() -> std::unique_ptr< ONX_Model >
Create a configured ONX_Model with ReUseX metadata, units, and tolerances.
typename Cloud::ConstPtr CloudConstPtr
Definition types.hpp:28
typename CloudN::ConstPtr CloudNConstPtr
Definition types.hpp:32
Intermediate representation for exporting all project data.