1 命名规范
1.1 文件的命名
- 所有文件名的单词间以下划线隔开,如unordered_map.hpp
- 头文件的拓展名为.h
- 模板类实现文件的拓展名为.hpp
- 原文件的拓展名为.cpp
1.2 目录命名规范
- 头文件放在源码目录树下的include/下
- 模板类实现文件放在目录树的include/impl下
- 源文件放在目录树的src/下
1.3 文件在同一目录下引用时,include指示语句用"...";否则使用<...>
1.4 头文件的宏定义
1.5 类和结构体使用驼峰命名法
每个单词的首字母大写,如果遇见缩写,则所有缩写字母均大写
1.6 函数和成员函数的命名
涉及多个单词的,除首字母外,其余所有单词首字母大写,应使用动词明确其含义;函数参数采用下划线连接方式命名
1.7 变量命名
2 PointT类型
定义在point_types.h中
类型 | 变量 | 使用 |
PointXYZ | float x, y, z; | points[i].data[0] points[i].x |
/** \brief Members: float x, y, z
* \ingroup common
*/
struct PointXYZ;
/** \brief Members: rgba
* \ingroup common
*/
struct RGB;
/** \brief Members: float x, y, z, intensity
* \ingroup common
*/
struct PointXYZI;
/** \brief Members: float x, y, z, uin32_t label
* \ingroup common
*/
struct PointXYZL;
/** \brief Members: uint32_t label
* \ingroup common
*/
struct Label;
/** \brief Members: float x, y, z; uint32_t rgba
* \ingroup common
*/
struct PointXYZRGBA;
/** \brief Members: float x, y, z, rgb
* \ingroup common
*/
struct PointXYZRGB;
/** \brief Members: float x, y, z, rgb, uint32_t label
* \ingroup common
*/
struct PointXYZRGBL;
/** \brief Members: float x, y, z, h, s, v
* \ingroup common
*/
struct PointXYZHSV;
/** \brief Members: float x, y
* \ingroup common
*/
struct PointXY;
/** \brief Members: float x, y, z, strength
* \ingroup common
*/
struct InterestPoint;
/** \brief Members: float normal[3], curvature
* \ingroup common
*/
struct Normal;
/** \brief Members: float normal[3]
* \ingroup common
*/
struct Axis;
/** \brief Members: float x, y, z; float normal[3], curvature
* \ingroup common
*/
struct PointNormal;
/** \brief Members: float x, y, z, rgb, normal[3], curvature
* \ingroup common
*/
struct PointXYZRGBNormal;
/** \brief Members: float x, y, z, intensity, normal[3], curvature
* \ingroup common
*/
struct PointXYZINormal;
/** \brief Members: float x, y, z (union with float point[4]), range
* \ingroup common
*/
struct PointWithRange;
/** \brief Members: float x, y, z, vp_x, vp_y, vp_z
* \ingroup common
*/
struct PointWithViewpoint;
/** \brief Members: float j1, j2, j3
* \ingroup common
*/
struct MomentInvariants;
/** \brief Members: float r_min, r_max
* \ingroup common
*/
struct PrincipalRadiiRSD;
/** \brief Members: uint8_t boundary_point
* \ingroup common
*/
struct Boundary;
/** \brief Members: float principal_curvature[3], pc1, pc2
* \ingroup common
*/
struct PrincipalCurvatures;
/** \brief Members: std::vector<float> descriptor, rf[9]
* \ingroup common
* \deprecated USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD
*/
struct
PCL_DEPRECATED_CLASS (SHOT, "USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD");
/** \brief Members: float descriptor[352], rf[9]
* \ingroup common
*/
struct SHOT352;
/** \brief Members: float descriptor[1344], rf[9]
* \ingroup common
*/
struct SHOT1344;
/** \brief Members: Axis x_axis, y_axis, z_axis
* \ingroup common
*/
struct ReferenceFrame;
/** \brief Members: std::vector<float> descriptor, rf[9]
* \ingroup common
*/
struct ShapeContext;
/** \brief Members: float pfh[125]
* \ingroup common
*/
struct PFHSignature125;
/** \brief Members: float pfhrgb[250]
* \ingroup common
*/
struct PFHRGBSignature250;
/** \brief Members: float f1, f2, f3, f4, alpha_m
* \ingroup common
*/
struct PPFSignature;
/** \brief Members: float f1, f2, f3, f4, r_ratio, g_ratio, b_ratio, alpha_m
* \ingroup common
*/
struct PPFRGBSignature;
/** \brief Members: float values[12]
* \ingroup common
*/
struct NormalBasedSignature12;
/** \brief Members: float fpfh[33]
* \ingroup common
*/
struct FPFHSignature33;
/** \brief Members: float vfh[308]
* \ingroup common
*/
struct VFHSignature308;
/** \brief Members: float esf[640]
* \ingroup common
*/
struct ESFSignature640;
/** \brief Members: float x, y, z, roll, pitch, yaw; float descriptor[36]
* \ingroup common
*/
struct Narf36;
/** \brief Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for BorderDescription::traits.
* \ingroup common
*/
typedef std::bitset<32> BorderTraits;
/** \brief Specification of the fields for BorderDescription::traits.
* \ingroup common
*/
enum BorderTrait
{
BORDER_TRAIT__OBSTACLE_BORDER, BORDER_TRAIT__SHADOW_BORDER, BORDER_TRAIT__VEIL_POINT,
BORDER_TRAIT__SHADOW_BORDER_TOP, BORDER_TRAIT__SHADOW_BORDER_RIGHT, BORDER_TRAIT__SHADOW_BORDER_BOTTOM,
BORDER_TRAIT__SHADOW_BORDER_LEFT, BORDER_TRAIT__OBSTACLE_BORDER_TOP, BORDER_TRAIT__OBSTACLE_BORDER_RIGHT,
BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM, BORDER_TRAIT__OBSTACLE_BORDER_LEFT, BORDER_TRAIT__VEIL_POINT_TOP,
BORDER_TRAIT__VEIL_POINT_RIGHT, BORDER_TRAIT__VEIL_POINT_BOTTOM, BORDER_TRAIT__VEIL_POINT_LEFT
};
/** \brief Members: int x, y; BorderTraits traits
* \ingroup common
*/
struct BorderDescription;
/** \brief Members: float gradient[3]
* \ingroup common
*/
struct IntensityGradient;
/** \brief Members: float histogram[N]
* \ingroup common
*/
template<int N>
struct Histogram;
/** \brief Members: float x, y, z, scale
* \ingroup common
*/
struct PointWithScale;
/** \brief Members: float x, y, z, normal[3], rgba, radius, confidence, curvature
* \ingroup common
*/
struct PointSurfel;