ReUseX
0.0.5
3D Point Cloud Processing for Building Reuse
Toggle main menu visibility
Loading...
Searching...
No Matches
segment_planes.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
#include "reusex/core/logging.hpp"
7
#include "reusex/core/processing_observer.hpp"
8
#include "reusex/io/reusex.hpp"
9
#include "reusex/types.hpp"
10
#include "reusex/utils/fmt_formatter.hpp"
11
12
#include <fmt/format.h>
13
#include <pcl/common/colors.h>
14
#include <pcl/filters/filter.h>
15
#include <pcl/io/auto_io.h>
16
#include <pcl/io/pcd_io.h>
17
#include <pcl/planar_region_growing.hpp>
18
19
#include <atomic>
20
21
namespace
reusex::geometry
{
22
23
struct
SegmentPlanesOptions
{
24
IndicesConstPtr
filter
=
nullptr
;
// Optional filter to limit processing
25
26
float
angle_threshold
= 25.0F;
27
float
plane_dist_threshold
= 0.07F;
28
int
min_inliers
= 1000;
29
float
radius
= 0.5F;
30
float
interval_0
= 16.0F;
31
float
interval_factor
= 1.5F;
32
33
// Optional cancellation flag. Caller retains ownership and must keep this
34
// alive for the full duration of the segment_planes(...) call.
35
const
std::atomic_bool *
cancel_token
=
nullptr
;
36
};
37
38
auto
segment_planes_impl
(
CloudConstPtr
cloud,
CloudNConstPtr
normals,
39
const
SegmentPlanesOptions
&options)
40
-> std::tuple<CloudLPtr, CloudLocPtr, CloudNPtr>;
41
42
auto
segment_planes
(
43
CloudConstPtr
cloud,
CloudNConstPtr
normals,
44
const
SegmentPlanesOptions
&options =
SegmentPlanesOptions
{})
45
-> std::tuple<CloudLPtr, CloudLocPtr, CloudNPtr>;
46
47
}
// namespace reusex::geometry
reusex::geometry
Definition
processing_observer.hpp:19
reusex::geometry::segment_planes_impl
auto segment_planes_impl(CloudConstPtr cloud, CloudNConstPtr normals, const SegmentPlanesOptions &options) -> std::tuple< CloudLPtr, CloudLocPtr, CloudNPtr >
reusex::geometry::segment_planes
auto segment_planes(CloudConstPtr cloud, CloudNConstPtr normals, const SegmentPlanesOptions &options=SegmentPlanesOptions{}) -> std::tuple< CloudLPtr, CloudLocPtr, CloudNPtr >
reusex::IndicesConstPtr
pcl::IndicesConstPtr IndicesConstPtr
Definition
types.hpp:24
reusex::CloudConstPtr
typename Cloud::ConstPtr CloudConstPtr
Definition
types.hpp:28
reusex::CloudNConstPtr
typename CloudN::ConstPtr CloudNConstPtr
Definition
types.hpp:32
reusex::geometry::SegmentPlanesOptions
Definition
segment_planes.hpp:23
reusex::geometry::SegmentPlanesOptions::plane_dist_threshold
float plane_dist_threshold
Definition
segment_planes.hpp:27
reusex::geometry::SegmentPlanesOptions::interval_0
float interval_0
Definition
segment_planes.hpp:30
reusex::geometry::SegmentPlanesOptions::filter
IndicesConstPtr filter
Definition
segment_planes.hpp:24
reusex::geometry::SegmentPlanesOptions::radius
float radius
Definition
segment_planes.hpp:29
reusex::geometry::SegmentPlanesOptions::interval_factor
float interval_factor
Definition
segment_planes.hpp:31
reusex::geometry::SegmentPlanesOptions::min_inliers
int min_inliers
Definition
segment_planes.hpp:28
reusex::geometry::SegmentPlanesOptions::cancel_token
const std::atomic_bool * cancel_token
Definition
segment_planes.hpp:35
reusex::geometry::SegmentPlanesOptions::angle_threshold
float angle_threshold
Definition
segment_planes.hpp:26
libs
reusex
include
geometry
segment_planes.hpp
Generated by
1.17.0