cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
base_descriptor_extractor.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <memory>
5
7
8namespace toolbox::pcl
9{
10
36template<typename DataType, class Derived>
38{
39 using data_type = DataType;
40 using derived_type = Derived;
41
47 DataType distance(const Derived& other) const
48 {
49 return static_cast<const Derived*>(this)->distance_impl(other);
50 }
51}; // struct base_signature_t
52
89template<class Derived, typename DataType, typename Signature>
91{
92public:
97 delete;
99 default;
100 virtual ~base_descriptor_extractor_t() = default;
101
106 void enable_parallel(bool enable)
107 {
108 static_cast<Derived*>(this)->enable_parallel_impl(enable);
109 }
110
128 const std::vector<std::size_t>& keypoint_indices,
129 std::vector<Signature>& descriptors)
130 {
131 static_cast<const Derived*>(this)->compute_impl(
132 cloud, keypoint_indices, descriptors);
133 }
134
142 const std::vector<std::size_t>& keypoint_indices,
143 std::unique_ptr<std::vector<Signature>> descriptors)
144 {
145 static_cast<const Derived*>(this)->compute_impl(
146 cloud, keypoint_indices, descriptors);
147 }
148}; // base_descriptor_extractor_t
149
150} // namespace toolbox::pcl
描述子提取器的基类(CRTP模式) / Base class for descriptor extractors (CRTP pattern)
Definition base_descriptor_extractor.hpp:91
base_descriptor_extractor_t & operator=(base_descriptor_extractor_t &&)=default
void compute(const toolbox::types::point_cloud_t< DataType > &cloud, const std::vector< std::size_t > &keypoint_indices, std::unique_ptr< std::vector< Signature > > descriptors)
计算指定关键点的描述子(智能指针版本) / Compute descriptors at specified keypoints (smart pointer version)
Definition base_descriptor_extractor.hpp:141
base_descriptor_extractor_t(const base_descriptor_extractor_t &)=delete
base_descriptor_extractor_t(base_descriptor_extractor_t &&)=default
void enable_parallel(bool enable)
启用或禁用并行计算 / Enable or disable parallel computation
Definition base_descriptor_extractor.hpp:106
base_descriptor_extractor_t & operator=(const base_descriptor_extractor_t &)=delete
void compute(const toolbox::types::point_cloud_t< DataType > &cloud, const std::vector< std::size_t > &keypoint_indices, std::vector< Signature > &descriptors)
计算指定关键点的描述子 / Compute descriptors at specified keypoints
Definition base_descriptor_extractor.hpp:127
包含点和相关数据的点云类 / A point cloud class containing points and associated data
Definition point.hpp:268
Definition base_correspondence_generator.hpp:18
描述子签名的基类 / Base class for descriptor signatures
Definition base_descriptor_extractor.hpp:38
DataType distance(const Derived &other) const
计算与另一个签名的距离 / Calculate distance to another signature
Definition base_descriptor_extractor.hpp:47
DataType data_type
Definition base_descriptor_extractor.hpp:39
Derived derived_type
Definition base_descriptor_extractor.hpp:40