Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
30bf21a
Add header for feature types
sumir0 May 23, 2026
05615a3
Move `MomentInvariants` to feature types header
sumir0 May 23, 2026
1c7be54
Move `PrincipalRadiiRSD` to feature types header
sumir0 May 25, 2026
552dfee
Move `Boundary` to feature types header
sumir0 May 25, 2026
d2c0b87
Move `PrincipalCurvatures` to feature types header
sumir0 May 25, 2026
b75a002
Move `descriptorSize` to separate header
sumir0 May 26, 2026
8c45d0d
Move `SHOT352` to feature types header
sumir0 May 26, 2026
26bfc70
Move `SHOT1344` to feature types header
sumir0 May 26, 2026
07b1e3a
Include memory header in feature types
sumir0 May 28, 2026
e48a8ab
Move `ReferenceFrame` to feature types header
sumir0 May 28, 2026
c32fc1b
Optimize point includes in `SHOT` headers
sumir0 May 28, 2026
52412f2
Move `ShapeContext1980` to feature types header
sumir0 May 28, 2026
aa4af65
Move `UniqueShapeContext1960` to feature types header
sumir0 May 28, 2026
272f252
Move `PFHSignature125` to feature types header
sumir0 May 29, 2026
1afcfd9
Move `PFHRGBSignature250` to feature types header
sumir0 May 29, 2026
cc8dc4e
Move `PPFSignature` to feature types header
sumir0 May 29, 2026
fc2c5d3
Move `CPPFSignature` to feature types header
sumir0 Jun 1, 2026
7402294
Move `PPFRGBSignature` to feature types header
sumir0 Jun 1, 2026
72467bc
Move `NormalBasedSignature12` to feature types header
sumir0 Jun 2, 2026
14118f2
Move `FPFHSignature33` to feature types header
sumir0 Jun 3, 2026
ce5bc24
Move `VFHSignature308` to feature types header
sumir0 Jun 3, 2026
65a9a0c
Move `GRSDSignature21` to feature types header
sumir0 Jun 4, 2026
d7b2ae0
Move `ESFSignature640` to feature types header
sumir0 Jun 4, 2026
503da3d
Move `GASDSignature512` to feature types header
sumir0 Jun 4, 2026
f85c25b
Move `GASDSignature984` to feature types header
sumir0 Jun 4, 2026
3b25887
Move `GASDSignature7992` to feature types header
sumir0 Jun 4, 2026
aa66ad2
Move `GFPFHSignature16` to feature types header
sumir0 Jun 5, 2026
7d74481
Move `BRISKSignature512` to feature types header
sumir0 Jun 5, 2026
c41ee63
Add missing point types include in GASD test
sumir0 Jun 5, 2026
83334e2
Move `Narf36` to feature types header
sumir0 Jun 5, 2026
bbedeb0
Move `Histogram<N>` to feature types header
sumir0 Jun 5, 2026
c1a58b9
Remove `detail::traits` empty namespace from point types
sumir0 Jun 5, 2026
29ff8c0
Disable MSVC 4201 warning in `feature_types.h`
sumir0 Jun 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
#include <pcl/features/fpfh.h>
#include <pcl/visualization/pcl_plotter.h>
#include <pcl/visualization/qvtk_compatibility.h>
#include <pcl/point_types.h>
#include <pcl/feature_types.h>

namespace pcl {
namespace cloud_composer {
Expand Down
4 changes: 4 additions & 0 deletions common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ set(range_image_srcs

set(srcs
src/point_types.cpp
src/feature_types.cpp
src/pcl_base.cpp
src/PCLPointCloud2.cpp
src/io.cpp
Expand Down Expand Up @@ -63,7 +64,9 @@ set(incs
include/pcl/type_traits.h
include/pcl/point_types_conversion.h
include/pcl/point_representation.h
include/pcl/descriptor_size.h
include/pcl/point_types.h
include/pcl/feature_types.h
include/pcl/for_each_type.h
include/pcl/pcl_tests.h
include/pcl/cloud_iterator.h
Expand Down Expand Up @@ -150,6 +153,7 @@ set(impl_incs
include/pcl/impl/pcl_base.hpp
include/pcl/impl/instantiate.hpp
include/pcl/impl/point_types.hpp
include/pcl/impl/feature_types.hpp
include/pcl/impl/cloud_iterator.hpp
)

Expand Down
23 changes: 23 additions & 0 deletions common/include/pcl/descriptor_size.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* SPDX-License-Identifier: BSD-3-Clause
* * Point Cloud Library (PCL) - www.pointclouds.org
* Copyright (c) 2026-, Open Perception Inc.
* * All rights reserved
*/

#pragma once

namespace pcl
{
namespace detail
{
namespace traits
{
template<typename FeaturePointT> struct descriptorSize {};


template<typename FeaturePointT>
static constexpr int descriptorSize_v = descriptorSize<FeaturePointT>::value;
}
}
}
163 changes: 163 additions & 0 deletions common/include/pcl/feature_types.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
/*
* SPDX-License-Identifier: BSD-3-Clause
* * Point Cloud Library (PCL) - www.pointclouds.org
* Copyright (c) 2026-, Open Perception Inc.
* * All rights reserved
*/

#pragma once


/**
* \file pcl/feature_types.h
* Defines all the PCL implemented PointT feature type structures
* \ingroup common
*/

// Allow nameless structs/unions
#if defined _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4201)
#endif

/** @{*/
namespace pcl
{
/** \brief Members: float j1, j2, j3
* \ingroup common
*/
struct MomentInvariants;

/** \brief Members: float r_min, r_max
* \ingroup common
*/
struct PrincipalRadiiRSD;

/** \brief Members: std::uint8_t boundary_point
* \ingroup common
*/
struct Boundary;

/** \brief Members: float principal_curvature[3], pc1, pc2
* \ingroup common
*/
struct PrincipalCurvatures;

/** \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: float descriptor[1980], rf[9]
* \ingroup common
*/
struct ShapeContext1980;

/** \brief Members: float descriptor[1960], rf[9]
* \ingroup common
*/
struct UniqueShapeContext1960;

/** \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, f5, f6, f7, f8, f9, f10, alpha_m
* \ingroup common
*/
struct CPPFSignature;

/** \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 grsd[21]
* \ingroup common
*/
struct GRSDSignature21;

/** \brief Members: float esf[640]
* \ingroup common
*/
struct ESFSignature640;

/** \brief Members: float gasd[512]
* \ingroup common
*/
struct GASDSignature512;

/** \brief Members: float gasd[984]
* \ingroup common
*/
struct GASDSignature984;

/** \brief Members: float gasd[7992]
* \ingroup common
*/
struct GASDSignature7992;

/** \brief Members: float histogram[16]
* \ingroup common
*/
struct GFPFHSignature16;

/** \brief Members: float scale; float orientation; std::uint8_t descriptor[64]
* \ingroup common
*/
struct BRISKSignature512;

/** \brief Members: float x, y, z, roll, pitch, yaw; float descriptor[36]
* \ingroup common
*/
struct Narf36;

/** \brief Members: float histogram[N]
* \ingroup common
*/
template<int N>
struct Histogram;
} // namespace pcl
/** @} */

#include <pcl/impl/feature_types.hpp>

#if defined _MSC_VER
#pragma warning(pop)
#endif
Loading
Loading