cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::types Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  minmax_t
 存储和计算最小最大值的主模板类 / Primary template class for storing and calculating minimum and maximum values More...
 
struct  minmax_t< point_t< T > >
 point_t类型的minmax_t偏特化 / Partial specialization of minmax_t for point_t type More...
 
class  point_cloud_t
 包含点和相关数据的点云类 / A point cloud class containing points and associated data More...
 
struct  point_t
 3D点/向量模板类 / A 3D point/vector template class More...
 

Functions

template<typename T >
minmax_t< T > combine_minmax (const minmax_t< T > &a, const minmax_t< T > &b)
 合并两个minmax_t对象 / Combine two minmax_t objects
 
template<typename CoordT >
minmax_t< point_t< CoordT > > combine_minmax (const minmax_t< point_t< CoordT > > &a, const minmax_t< point_t< CoordT > > &b)
 合并两个point_t类型的minmax_t对象 / Combine two minmax_t objects of point_t type
 
template<typename InputType >
auto calculate_minmax (const InputType &input) -> std::enable_if_t<!detail::is_calculable_container_v< InputType >, minmax_t< std::decay_t< InputType > > >
 计算非容器类型的最小最大值 / Calculate minmax for non-container type
 
template<typename T >
auto calculate_minmax (const point_cloud_t< T > &input) -> minmax_t< point_t< T > >
 计算点云的最小最大值 / Calculate minmax for point cloud
 
template<typename InputType >
auto calculate_minmax_parallel (const InputType &input) -> std::enable_if_t<!detail::is_calculable_container_v< InputType >, minmax_t< std::decay_t< InputType > > >
 并行计算非容器类型的最小最大值 / Calculate minmax for non-container type in parallel
 
template<typename T >
auto calculate_minmax_parallel (const point_cloud_t< T > &input) -> minmax_t< point_t< T > >
 并行计算点云的最小最大值 / Calculate minmax for point cloud in parallel
 
template<typename T >
auto operator<< (std::ostream &output_stream, const point_t< T > &pt) -> std::ostream &
 point_t的流输出运算符 - 仅声明 / Stream output operator for point_t - Declaration Only
 
template<typename T >
CPP_TOOLBOX_EXPORT auto generate_random_points (const std::size_t &num_points, const minmax_t< point_t< T > > &minmax) -> std::vector< point_t< T > >
 在给定边界内顺序生成随机点 / Generates random points within given bounds sequentially
 
template<typename T >
CPP_TOOLBOX_EXPORT auto generate_random_points_parallel (const std::size_t &num_points, const minmax_t< point_t< T > > &minmax) -> std::vector< point_t< T > >
 在给定边界内并行生成随机点 / Generates random points within given bounds in parallel
 

Function Documentation

◆ calculate_minmax() [1/2]

template<typename InputType >
auto toolbox::types::calculate_minmax ( const InputType &  input) -> std::enable_if_t<!detail::is_calculable_container_v< InputType >, minmax_t< std::decay_t< InputType > > >

计算非容器类型的最小最大值 / Calculate minmax for non-container type

计算容器类型的最小最大值 / Calculate minmax for container type

Template Parameters
InputType输入类型 / Input type
Parameters
input输入值 / Input value
Returns
包含最小最大值的minmax_t对象 / minmax_t object containing min and max values
Template Parameters
InputType容器类型 / Container type
Parameters
input输入容器 / Input container
Returns
包含最小最大值的minmax_t对象 / minmax_t object containing min and max values
std::vector<int> vec{1, 5, 3, 8, 2};
auto mm = calculate_minmax(vec); // min = 1, max = 8
auto calculate_minmax(const InputType &input) -> std::enable_if_t<!detail::is_calculable_container_v< InputType >, minmax_t< std::decay_t< InputType > > >
计算非容器类型的最小最大值 / Calculate minmax for non-container type
Definition minmax_impl.hpp:173

◆ calculate_minmax() [2/2]

template<typename T >
auto toolbox::types::calculate_minmax ( const point_cloud_t< T > &  input) -> minmax_t< point_t< T > >

计算点云的最小最大值 / Calculate minmax for point cloud

Template Parameters
T点坐标类型 / Point coordinate type
Parameters
input输入点云 / Input point cloud
Returns
包含最小最大点的minmax_t对象 / minmax_t object containing min and max points

◆ calculate_minmax_parallel() [1/2]

template<typename InputType >
auto toolbox::types::calculate_minmax_parallel ( const InputType &  input) -> std::enable_if_t<!detail::is_calculable_container_v< InputType >, minmax_t< std::decay_t< InputType > > >

并行计算非容器类型的最小最大值 / Calculate minmax for non-container type in parallel

并行计算容器类型的最小最大值 / Calculate minmax for container type in parallel

Template Parameters
InputType输入类型 / Input type
Parameters
input输入值 / Input value
Returns
包含最小最大值的minmax_t对象 / minmax_t object containing min and max values
Template Parameters
InputType容器类型 / Container type
Parameters
input输入容器 / Input container
Returns
包含最小最大值的minmax_t对象 / minmax_t object containing min and max values
std::vector<double> large_vec = get_large_vector();
auto mm = calculate_minmax_parallel(large_vec); // 并行计算最小最大值 /
Calculate min/max in parallel
auto calculate_minmax_parallel(const InputType &input) -> std::enable_if_t<!detail::is_calculable_container_v< InputType >, minmax_t< std::decay_t< InputType > > >
并行计算非容器类型的最小最大值 / Calculate minmax for non-container type in parallel
Definition minmax_impl.hpp:227

◆ calculate_minmax_parallel() [2/2]

template<typename T >
auto toolbox::types::calculate_minmax_parallel ( const point_cloud_t< T > &  input) -> minmax_t< point_t< T > >

并行计算点云的最小最大值 / Calculate minmax for point cloud in parallel

Template Parameters
T点坐标类型 / Point coordinate type
Parameters
input输入点云 / Input point cloud
Returns
包含最小最大点的minmax_t对象 / minmax_t object containing min and max points

◆ combine_minmax() [1/2]

template<typename CoordT >
minmax_t< point_t< CoordT > > toolbox::types::combine_minmax ( const minmax_t< point_t< CoordT > > &  a,
const minmax_t< point_t< CoordT > > &  b 
)

合并两个point_t类型的minmax_t对象 / Combine two minmax_t objects of point_t type

Template Parameters
CoordT坐标类型 / Coordinate type
Parameters
a第一个minmax_t对象 / First minmax_t object
b第二个minmax_t对象 / Second minmax_t object
Returns
合并后的minmax_t对象 / Combined minmax_t object

◆ combine_minmax() [2/2]

template<typename T >
minmax_t< T > toolbox::types::combine_minmax ( const minmax_t< T > &  a,
const minmax_t< T > &  b 
)

合并两个minmax_t对象 / Combine two minmax_t objects

Template Parameters
T值的类型 / Type of values
Parameters
a第一个minmax_t对象 / First minmax_t object
b第二个minmax_t对象 / Second minmax_t object
Returns
合并后的minmax_t对象 / Combined minmax_t object
minmax_t<int> m1(0, 5), m2(3, 8);
auto combined = combine_minmax(m1, m2); // min = 0, max = 8
minmax_t< T > combine_minmax(const minmax_t< T > &a, const minmax_t< T > &b)
合并两个minmax_t对象 / Combine two minmax_t objects
Definition minmax_impl.hpp:132
存储和计算最小最大值的主模板类 / Primary template class for storing and calculating minimum and maximum values
Definition minmax.hpp:92

◆ generate_random_points()

template<typename T >
CPP_TOOLBOX_EXPORT auto toolbox::types::generate_random_points ( const std::size_t &  num_points,
const minmax_t< point_t< T > > &  minmax 
) -> std::vector<point_t<T>>

在给定边界内顺序生成随机点 / Generates random points within given bounds sequentially

Template Parameters
T坐标类型(如float、double) / The coordinate type (e.g., float, double)
Parameters
num_points要生成的点的总数 / Total number of points to generate
minmax坐标的最小和最大边界 / The minimum and maximum bounds for coordinates
Returns
std::vector<point_t<T>> 包含生成点的向量 / A vector containing the generated points
// 生成1000个float类型的随机点 / Generate 1000 random points of float type
minmax_t<point_t<float>> bounds({0,0,0}, {10,10,10});
auto points = generate_random_points<float>(1000, bounds);
// 生成double类型的随机点,带自定义边界 / Generate random points of double
type with custom bounds minmax_t<point_t<double>> custom_bounds({-5,-5,-5},
{5,5,5}); auto custom_points = generate_random_points<double>(500,
custom_bounds);

◆ generate_random_points_parallel()

template<typename T >
CPP_TOOLBOX_EXPORT auto toolbox::types::generate_random_points_parallel ( const std::size_t &  num_points,
const minmax_t< point_t< T > > &  minmax 
) -> std::vector<point_t<T>>

在给定边界内并行生成随机点 / Generates random points within given bounds in parallel

在默认线程池中分配工作,每个线程使用唯一种子的随机数生成器 / Divides the work among threads in the default thread pool, each thread uses its own random number generator seeded uniquely

Template Parameters
T坐标类型(如float、double) / The coordinate type (e.g., float, double)
Parameters
num_points要生成的点的总数 / Total number of points to generate
minmax坐标的最小和最大边界 / The minimum and maximum bounds for coordinates
Returns
std::vector<point_t<T>> 包含生成点的向量 / A vector containing the generated points
// 并行生成大量点 / Generate large number of points in parallel
minmax_t<point_t<float>> bounds({0,0,0}, {100,100,100});
auto points = generate_random_points_parallel<float>(1000000, bounds);
// 使用自定义边界并行生成点 / Generate points in parallel with custom bounds
minmax_t<point_t<double>> custom_bounds({-10,-10,-10}, {10,10,10});
auto custom_points = generate_random_points_parallel<double>(500000,
custom_bounds);

◆ operator<<()

template<typename T >
auto toolbox::types::operator<< ( std::ostream &  output_stream,
const point_t< T > &  pt 
) -> std::ostream &

point_t的流输出运算符 - 仅声明 / Stream output operator for point_t - Declaration Only

Parameters
output_stream输出流 / Output stream
pt要输出的点 / Point to output
Returns
对输出流的引用 / Reference to output stream