Apollo 11.0
自动驾驶开放平台
apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE > 模板类 参考

#include <convex_hull_2d.h>

apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE > 的协作图:

Public 类型

template<class EigenType >
using EigenVector = apollo::common::EigenVector< EigenType >
 

Public 成员函数

 ConvexHull2D ()
 
 ~ConvexHull2D ()
 
bool GetConvexHull (const CLOUD_IN_TYPE &in_cloud, CLOUD_OUT_TYPE *out_polygon)
 
bool GetConvexHullWithoutGround (const CLOUD_IN_TYPE &in_cloud, const float &distance_above_ground_thres, CLOUD_OUT_TYPE *out_polygon)
 
bool GetConvexHullWithoutGroundAndHead (const CLOUD_IN_TYPE &in_cloud, const float &distance_above_ground_thres, const float &distance_beneath_head_thres, CLOUD_OUT_TYPE *out_polygon)
 

详细描述

template<class CLOUD_IN_TYPE, class CLOUD_OUT_TYPE>
class apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >

在文件 convex_hull_2d.h32 行定义.

成员类型定义说明

◆ EigenVector

template<class CLOUD_IN_TYPE , class CLOUD_OUT_TYPE >
template<class EigenType >
using apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >::EigenVector = apollo::common::EigenVector<EigenType>

在文件 convex_hull_2d.h35 行定义.

构造及析构函数说明

◆ ConvexHull2D()

template<class CLOUD_IN_TYPE , class CLOUD_OUT_TYPE >
apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >::ConvexHull2D ( )
inline

在文件 convex_hull_2d.h38 行定义.

38 : in_cloud_(nullptr) {
39 points_.reserve(1000.0);
40 polygon_indices_.reserve(1000.0);
41 }

◆ ~ConvexHull2D()

template<class CLOUD_IN_TYPE , class CLOUD_OUT_TYPE >
apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >::~ConvexHull2D ( )
inline

在文件 convex_hull_2d.h42 行定义.

42{ in_cloud_ = nullptr; }

成员函数说明

◆ GetConvexHull()

template<class CLOUD_IN_TYPE , class CLOUD_OUT_TYPE >
bool apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >::GetConvexHull ( const CLOUD_IN_TYPE &  in_cloud,
CLOUD_OUT_TYPE *  out_polygon 
)
inline

在文件 convex_hull_2d.h44 行定义.

45 {
46 SetPoints(in_cloud);
47 if (!GetConvexHullMonotoneChain(out_polygon)) {
48 return MockConvexHull(out_polygon);
49 }
50 return true;
51 }

◆ GetConvexHullWithoutGround()

template<class CLOUD_IN_TYPE , class CLOUD_OUT_TYPE >
bool apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >::GetConvexHullWithoutGround ( const CLOUD_IN_TYPE &  in_cloud,
const float &  distance_above_ground_thres,
CLOUD_OUT_TYPE *  out_polygon 
)
inline

在文件 convex_hull_2d.h53 行定义.

55 {
56 CLOUD_IN_TYPE in_cloud_without_ground;
57 in_cloud_without_ground.reserve(in_cloud.size());
58 for (std::size_t id = 0; id < in_cloud.size(); ++id) {
59 // compute point_heigh, note std::numeric_limits<float>::max() is the
60 // default value
61 if (in_cloud.points_height(id) >= distance_above_ground_thres) {
62 in_cloud_without_ground.push_back(in_cloud[id]);
63 }
64 }
65 if (in_cloud_without_ground.empty()) {
66 return GetConvexHull(in_cloud, out_polygon);
67 } else {
68 SetPoints(in_cloud_without_ground);
69 if (!GetConvexHullMonotoneChain(out_polygon)) {
70 return MockConvexHull(out_polygon);
71 }
72 }
73 return true;
74 }
bool GetConvexHull(const CLOUD_IN_TYPE &in_cloud, CLOUD_OUT_TYPE *out_polygon)

◆ GetConvexHullWithoutGroundAndHead()

template<class CLOUD_IN_TYPE , class CLOUD_OUT_TYPE >
bool apollo::perception::algorithm::ConvexHull2D< CLOUD_IN_TYPE, CLOUD_OUT_TYPE >::GetConvexHullWithoutGroundAndHead ( const CLOUD_IN_TYPE &  in_cloud,
const float &  distance_above_ground_thres,
const float &  distance_beneath_head_thres,
CLOUD_OUT_TYPE *  out_polygon 
)
inline

在文件 convex_hull_2d.h77 行定义.

79 {
80 CLOUD_IN_TYPE in_cloud_without_ground_and_head;
81 in_cloud_without_ground_and_head.reserve(in_cloud.size());
82 for (std::size_t id = 0; id < in_cloud.size(); ++id) {
83 // compute point_heigh, note std::numeric_limits<float>::max() is the
84 // default value
85 if (in_cloud.points_height(id) == std::numeric_limits<float>::max() ||
86 (in_cloud.points_height(id) >= distance_above_ground_thres &&
87 in_cloud.points_height(id) <= distance_beneath_head_thres)) {
88 in_cloud_without_ground_and_head.push_back(in_cloud[id]);
89 }
90 }
91 if (in_cloud_without_ground_and_head.empty()) {
92 return GetConvexHull(in_cloud, out_polygon);
93 } else {
94 SetPoints(in_cloud_without_ground_and_head);
95 if (!GetConvexHullMonotoneChain(out_polygon)) {
96 return MockConvexHull(out_polygon);
97 }
98 }
99 return true;
100 }

该类的文档由以下文件生成: