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
2f5f69d
Add header for feature types
sumir0 May 23, 2026
443ebc6
Move `MomentInvariants` to feature types header
sumir0 May 23, 2026
112653b
Move `PrincipalRadiiRSD` to feature types header
sumir0 May 25, 2026
ed2f187
Move `Boundary` to feature types header
sumir0 May 25, 2026
2493429
Move `PrincipalCurvatures` to feature types header
sumir0 May 25, 2026
31b6975
Move `descriptorSize` to separate header
sumir0 May 26, 2026
9c1087d
Move `SHOT352` to feature types header
sumir0 May 26, 2026
a673387
Move `SHOT1344` to feature types header
sumir0 May 26, 2026
2fe2a3d
Include memory header in feature types
sumir0 May 28, 2026
3fcef69
Move `ReferenceFrame` to feature types header
sumir0 May 28, 2026
6bd4df9
Optimize point includes in `SHOT` headers
sumir0 May 28, 2026
f7631d5
Move `ShapeContext1980` to feature types header
sumir0 May 28, 2026
db349d2
Move `UniqueShapeContext1960` to feature types header
sumir0 May 28, 2026
9aaf617
Move `PFHSignature125` to feature types header
sumir0 May 29, 2026
c8c02fb
Move `PFHRGBSignature250` to feature types header
sumir0 May 29, 2026
695e791
Move `PPFSignature` to feature types header
sumir0 May 29, 2026
6e4171c
Move `CPPFSignature` to feature types header
sumir0 Jun 1, 2026
d1dc3cd
Move `PPFRGBSignature` to feature types header
sumir0 Jun 1, 2026
08c12de
Move `NormalBasedSignature12` to feature types header
sumir0 Jun 2, 2026
4f7e670
Move `FPFHSignature33` to feature types header
sumir0 Jun 3, 2026
3975bbd
Move `VFHSignature308` to feature types header
sumir0 Jun 3, 2026
c80577d
Move `GRSDSignature21` to feature types header
sumir0 Jun 4, 2026
9db00ff
Move `ESFSignature640` to feature types header
sumir0 Jun 4, 2026
8d85889
Move `GASDSignature512` to feature types header
sumir0 Jun 4, 2026
d835f49
Move `GASDSignature984` to feature types header
sumir0 Jun 4, 2026
71b3df9
Move `GASDSignature7992` to feature types header
sumir0 Jun 4, 2026
e8c68a3
Move `GFPFHSignature16` to feature types header
sumir0 Jun 5, 2026
6712669
Move `BRISKSignature512` to feature types header
sumir0 Jun 5, 2026
34e2dce
Add missing point types include in GASD test
sumir0 Jun 5, 2026
64a4851
Move `Narf36` to feature types header
sumir0 Jun 5, 2026
9a58a4c
Move `Histogram<N>` to feature types header
sumir0 Jun 5, 2026
a0ae284
Remove `detail::traits` empty namespace from point types
sumir0 Jun 5, 2026
94871bb
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