cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::pcl::base_correspondence_sorter_t< Derived, DataType > Class Template Reference

对应关系排序器的基类(CRTP模式) / Base class for correspondence sorters (CRTP pattern) More...

#include <base_correspondence_sorter.hpp>

Public Types

using point_cloud = toolbox::types::point_cloud_t< DataType >
 
using point_cloud_ptr = std::shared_ptr< point_cloud >
 
using correspondences_ptr = std::shared_ptr< std::vector< correspondence_t > >
 
using quality_scores_t = std::vector< DataType >
 
using sorted_indices_t = std::vector< std::size_t >
 

Public Member Functions

 base_correspondence_sorter_t ()=default
 
virtual ~base_correspondence_sorter_t ()=default
 
 base_correspondence_sorter_t (const base_correspondence_sorter_t &)=delete
 
base_correspondence_sorter_toperator= (const base_correspondence_sorter_t &)=delete
 
 base_correspondence_sorter_t (base_correspondence_sorter_t &&)=default
 
base_correspondence_sorter_toperator= (base_correspondence_sorter_t &&)=default
 
void set_point_clouds (const point_cloud_ptr &source, const point_cloud_ptr &target)
 设置源点云和目标点云 / Set source and target point clouds
 
void set_correspondences (const correspondences_ptr &correspondences)
 设置对应关系 / Set correspondences
 
sorted_indices_t compute_sorted_indices (quality_scores_t &scores)
 计算质量分数并返回排序后的索引 / Compute quality scores and return sorted indices
 
quality_scores_t compute_quality_scores ()
 仅计算质量分数,不排序 / Compute quality scores only, without sorting
 
std::string get_sorter_name () const
 获取排序器名称 / Get sorter name
 
void clear_cache ()
 清除缓存 / Clear cache
 
void enable_parallel (bool enable=true)
 启用/禁用并行计算 / Enable/disable parallel computation
 
bool is_parallel_enabled () const
 获取并行计算状态 / Get parallel computation status
 

Protected Member Functions

bool validate_input () const
 验证输入数据 / Validate input data
 
bool validate_input_impl () const
 派生类可选的额外验证 / Optional additional validation for derived class
 
std::string get_sorter_name_impl () const
 派生类必须实现的排序器名称获取方法 / Sorter name getter that derived class must implement
 
const point_cloud_ptrget_source_cloud () const
 获取受保护的成员变量访问 / Get access to protected members
 
const point_cloud_ptrget_target_cloud () const
 
const correspondences_ptrget_correspondences () const
 

Protected Attributes

point_cloud_ptr m_source_cloud
 
point_cloud_ptr m_target_cloud
 
correspondences_ptr m_correspondences
 
bool m_cached = false
 
quality_scores_t m_cached_scores
 
sorted_indices_t m_cached_indices
 
bool m_parallel_enabled = true
 

Detailed Description

template<typename Derived, typename DataType>
class toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >

对应关系排序器的基类(CRTP模式) / Base class for correspondence sorters (CRTP pattern)

该类定义了所有对应关系排序算法的通用接口,用于评估和排序对应关系的质量。 This class defines the common interface for all correspondence sorting algorithms, used to evaluate and sort correspondence quality.

Template Parameters
Derived派生类类型 / Derived class type
DataType数据类型(如float或double) / Data type (e.g., float or double)
// 派生类示例 / Derived class example
template<typename DataType>
class my_sorter_t
my_sorter_t<DataType>, DataType>
{
public:
void compute_quality_scores_impl(quality_scores_t& scores) {
// 实现具体的质量评分算法 / Implement specific quality scoring
algorithm
}
};
对应关系排序器的基类(CRTP模式) / Base class for correspondence sorters (CRTP pattern)
Definition base_correspondence_sorter.hpp:51
std::vector< DataType > quality_scores_t
Definition base_correspondence_sorter.hpp:56

Member Typedef Documentation

◆ correspondences_ptr

template<typename Derived , typename DataType >
using toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::correspondences_ptr = std::shared_ptr<std::vector<correspondence_t> >

◆ point_cloud

template<typename Derived , typename DataType >
using toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::point_cloud = toolbox::types::point_cloud_t<DataType>

◆ point_cloud_ptr

template<typename Derived , typename DataType >
using toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::point_cloud_ptr = std::shared_ptr<point_cloud>

◆ quality_scores_t

template<typename Derived , typename DataType >
using toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::quality_scores_t = std::vector<DataType>

◆ sorted_indices_t

template<typename Derived , typename DataType >
using toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::sorted_indices_t = std::vector<std::size_t>

Constructor & Destructor Documentation

◆ base_correspondence_sorter_t() [1/3]

template<typename Derived , typename DataType >
toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::base_correspondence_sorter_t ( )
default

◆ ~base_correspondence_sorter_t()

template<typename Derived , typename DataType >
virtual toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::~base_correspondence_sorter_t ( )
virtualdefault

◆ base_correspondence_sorter_t() [2/3]

template<typename Derived , typename DataType >
toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::base_correspondence_sorter_t ( const base_correspondence_sorter_t< Derived, DataType > &  )
delete

◆ base_correspondence_sorter_t() [3/3]

template<typename Derived , typename DataType >
toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::base_correspondence_sorter_t ( base_correspondence_sorter_t< Derived, DataType > &&  )
default

Member Function Documentation

◆ clear_cache()

template<typename Derived , typename DataType >
void toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::clear_cache ( )
inline

清除缓存 / Clear cache

◆ compute_quality_scores()

template<typename Derived , typename DataType >
quality_scores_t toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::compute_quality_scores ( )
inline

仅计算质量分数,不排序 / Compute quality scores only, without sorting

Returns
质量分数 / Quality scores

◆ compute_sorted_indices()

template<typename Derived , typename DataType >
sorted_indices_t toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::compute_sorted_indices ( quality_scores_t scores)
inline

计算质量分数并返回排序后的索引 / Compute quality scores and return sorted indices

Parameters
[out]scores每个对应关系的质量分数 / Quality score for each correspondence
Returns
按质量降序排序的索引 / Indices sorted by quality in descending order

◆ enable_parallel()

template<typename Derived , typename DataType >
void toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::enable_parallel ( bool  enable = true)
inline

启用/禁用并行计算 / Enable/disable parallel computation

Parameters
enabletrue启用,false禁用(默认启用) / true to enable, false to disable (default enabled)

◆ get_correspondences()

template<typename Derived , typename DataType >
const correspondences_ptr & toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::get_correspondences ( ) const
inlineprotected

◆ get_sorter_name()

template<typename Derived , typename DataType >
std::string toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::get_sorter_name ( ) const
inline

获取排序器名称 / Get sorter name

Returns
排序器名称 / Sorter name

◆ get_sorter_name_impl()

template<typename Derived , typename DataType >
std::string toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::get_sorter_name_impl ( ) const
inlineprotected

派生类必须实现的排序器名称获取方法 / Sorter name getter that derived class must implement

Returns
排序器名称 / Sorter name

◆ get_source_cloud()

template<typename Derived , typename DataType >
const point_cloud_ptr & toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::get_source_cloud ( ) const
inlineprotected

获取受保护的成员变量访问 / Get access to protected members

◆ get_target_cloud()

template<typename Derived , typename DataType >
const point_cloud_ptr & toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::get_target_cloud ( ) const
inlineprotected

◆ is_parallel_enabled()

template<typename Derived , typename DataType >
bool toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::is_parallel_enabled ( ) const
inline

获取并行计算状态 / Get parallel computation status

Returns
是否启用并行 / Whether parallel is enabled

◆ operator=() [1/2]

template<typename Derived , typename DataType >
base_correspondence_sorter_t & toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::operator= ( base_correspondence_sorter_t< Derived, DataType > &&  )
default

◆ operator=() [2/2]

template<typename Derived , typename DataType >
base_correspondence_sorter_t & toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::operator= ( const base_correspondence_sorter_t< Derived, DataType > &  )
delete

◆ set_correspondences()

template<typename Derived , typename DataType >
void toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::set_correspondences ( const correspondences_ptr correspondences)
inline

设置对应关系 / Set correspondences

Parameters
correspondences对应关系 / Correspondences

◆ set_point_clouds()

template<typename Derived , typename DataType >
void toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::set_point_clouds ( const point_cloud_ptr source,
const point_cloud_ptr target 
)
inline

设置源点云和目标点云 / Set source and target point clouds

Parameters
source源点云 / Source point cloud
target目标点云 / Target point cloud

◆ validate_input()

template<typename Derived , typename DataType >
bool toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::validate_input ( ) const
inlineprotected

验证输入数据 / Validate input data

Returns
是否有效 / Whether valid

◆ validate_input_impl()

template<typename Derived , typename DataType >
bool toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::validate_input_impl ( ) const
inlineprotected

派生类可选的额外验证 / Optional additional validation for derived class

Returns
是否有效 / Whether valid

Member Data Documentation

◆ m_cached

template<typename Derived , typename DataType >
bool toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_cached = false
protected

◆ m_cached_indices

template<typename Derived , typename DataType >
sorted_indices_t toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_cached_indices
protected

◆ m_cached_scores

template<typename Derived , typename DataType >
quality_scores_t toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_cached_scores
protected

◆ m_correspondences

template<typename Derived , typename DataType >
correspondences_ptr toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_correspondences
protected

◆ m_parallel_enabled

template<typename Derived , typename DataType >
bool toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_parallel_enabled = true
protected

◆ m_source_cloud

template<typename Derived , typename DataType >
point_cloud_ptr toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_source_cloud
protected

◆ m_target_cloud

template<typename Derived , typename DataType >
point_cloud_ptr toolbox::pcl::base_correspondence_sorter_t< Derived, DataType >::m_target_cloud
protected

The documentation for this class was generated from the following file: