Point Cloud Library (PCL) 1.12.1
Loading...
Searching...
No Matches
pcl_macros.h File Reference
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <pcl/pcl_config.h>
#include <boost/preprocessor/arithmetic/add.hpp>
#include <boost/preprocessor/comparison/equal.hpp>
#include <boost/preprocessor/comparison/less.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/stringize.hpp>
Include dependency graph for pcl_macros.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Detailed Description

Defines all the PCL and non-PCL macros used.

Definition in file pcl_macros.h.

Namespaces

namespace  pcl

Macros

#define _USE_MATH_DEFINES
#define OPENMP_LEGACY_CONST_DATA_SHARING_RULE   0
#define _PCL_DEPRECATED_IMPL(Message)
#define PCL_PRAGMA
#define _PCL_DEPRECATED_HEADER_IMPL(Message)
#define _PCL_PREPARE_REMOVAL_MESSAGE(Major, Minor, Msg)
 A handy way to inform the user of the removal deadline.
#define _PCL_COMPAT_MINOR_VERSION(Minor, IfPass, IfFail)
 Tests for Minor < PCL_MINOR_VERSION.
#define _PCL_COMPAT_MAJOR_VERSION(Major, IfPass, IfFail)
 Tests for Major == PCL_MAJOR_VERSION.
#define PCL_DEPRECATED(Major, Minor, Message)
 macro for compatibility across compilers and help remove old deprecated items for the Major.Minor release
#define PCL_DEPRECATED_HEADER(Major, Minor, Message)
 macro for compatibility across compilers and help remove old deprecated headers for the Major.Minor release
#define _MATH_DEFINES_DEFINED
#define M_E   2.71828182845904523536
#define M_LOG2E   1.44269504088896340736
#define M_LOG10E   0.434294481903251827651
#define M_LN2   0.693147180559945309417
#define M_LN10   2.30258509299404568402
#define M_PI   3.14159265358979323846
#define M_PI_2   1.57079632679489661923
#define M_PI_4   0.785398163397448309616
#define M_1_PI   0.318309886183790671538
#define M_2_PI   0.636619772367581343076
#define M_2_SQRTPI   1.12837916709551257390
#define M_SQRT2   1.41421356237309504880
#define M_SQRT1_2   0.707106781186547524401
#define DEG2RAD(x)
#define RAD2DEG(x)
#define PCL_LINEAR_VERSION(major, minor, patch)
 Macro that maps version information given by major.minor.patch to a linear integer value to enable easy comparison.
#define pcl_lrint(x)
#define pcl_lrintf(x)
#define pcl_sleep(x)
#define PVAR(s)
#define PVARN(s)
#define PVARC(s)
#define PVARS(s)
#define PVARA(s)
#define PVARAN(s)
#define PVARAC(s)
#define PVARAS(s)
#define FIXED(s)
#define ERASE_STRUCT(var)
#define ERASE_ARRAY(var, size)
#define SET_ARRAY(var, value, size)
#define PCL_EXTERN_C
#define PCL_EXPORTS
#define PCL_CDECL   __cdecl
#define PCL_STDCALL   __stdcall
#define PCLAPI(rettype)
#define __has_extension(x)
#define GLIBC_MALLOC_ALIGNED   0
#define FREEBSD_MALLOC_ALIGNED   0
#define PCL_FALLTHROUGH
 Macro to add a no-op or a fallthrough attribute based on compiler feature.
#define PCL_NODISCARD
#define PCL_IF_CONSTEXPR(x)

Functions

__inline double pcl_round (double number)
 Win32 doesn't seem to have rounding functions.
__inline float pcl_round (float number)
void * pcl::aligned_malloc (std::size_t size)
void pcl::aligned_free (void *ptr)

Macro Definition Documentation

◆ __has_extension

#define __has_extension ( x)
Value:
0

Definition at line 343 of file pcl_macros.h.

◆ _MATH_DEFINES_DEFINED

#define _MATH_DEFINES_DEFINED

Definition at line 194 of file pcl_macros.h.

◆ _PCL_COMPAT_MAJOR_VERSION

#define _PCL_COMPAT_MAJOR_VERSION ( Major,
IfPass,
IfFail )
Value:
BOOST_PP_IF(BOOST_PP_EQUAL(PCL_MINOR_VERSION, 99), \
BOOST_PP_IF(BOOST_PP_EQUAL(BOOST_PP_ADD(PCL_MAJOR_VERSION, 1), Major), IfPass, IfFail), \
BOOST_PP_IF(BOOST_PP_EQUAL(PCL_MAJOR_VERSION, Major), IfPass, IfFail))

Tests for Major == PCL_MAJOR_VERSION.

When PCL VERSION is of format 34.99.12, this macro behaves as if it is already 35.0.0, and allows for smoother transition for maintainers

Definition at line 140 of file pcl_macros.h.

◆ _PCL_COMPAT_MINOR_VERSION

#define _PCL_COMPAT_MINOR_VERSION ( Minor,
IfPass,
IfFail )
Value:
BOOST_PP_IF(BOOST_PP_EQUAL(PCL_REVISION_VERSION, 99), \
BOOST_PP_IF(BOOST_PP_LESS(BOOST_PP_ADD(PCL_MINOR_VERSION, 1), Minor), IfPass, IfFail), \
BOOST_PP_IF(BOOST_PP_LESS(PCL_MINOR_VERSION, Minor), IfPass, IfFail))

Tests for Minor < PCL_MINOR_VERSION.

When PCL VERSION is of format 34.12.99, this macro behaves as if it is already 34.13.0, and allows for smoother transition for maintainers

Definition at line 130 of file pcl_macros.h.

◆ _PCL_DEPRECATED_HEADER_IMPL

#define _PCL_DEPRECATED_HEADER_IMPL ( Message)

Definition at line 116 of file pcl_macros.h.

◆ _PCL_DEPRECATED_IMPL

#define _PCL_DEPRECATED_IMPL ( Message)

Definition at line 97 of file pcl_macros.h.

◆ _PCL_PREPARE_REMOVAL_MESSAGE

#define _PCL_PREPARE_REMOVAL_MESSAGE ( Major,
Minor,
Msg )
Value:
Msg " (It will be removed in PCL " BOOST_PP_STRINGIZE(Major.Minor) ")"

A handy way to inform the user of the removal deadline.

Definition at line 122 of file pcl_macros.h.

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

Definition at line 59 of file pcl_macros.h.

◆ DEG2RAD

#define DEG2RAD ( x)
Value:
((x)*0.017453293)

Definition at line 223 of file pcl_macros.h.

◆ ERASE_ARRAY

#define ERASE_ARRAY ( var,
size )
Value:
memset(var, 0, size*sizeof(*var))

Definition at line 304 of file pcl_macros.h.

Referenced by pcl::RangeImage::doZBuffer().

◆ ERASE_STRUCT

#define ERASE_STRUCT ( var)
Value:
memset(&var, 0, sizeof(var))

Definition at line 300 of file pcl_macros.h.

◆ FIXED

#define FIXED ( s)
Value:
std::fixed << s << std::resetiosflags(std::ios_base::fixed)

Definition at line 296 of file pcl_macros.h.

◆ FREEBSD_MALLOC_ALIGNED

#define FREEBSD_MALLOC_ALIGNED   0

Definition at line 363 of file pcl_macros.h.

◆ GLIBC_MALLOC_ALIGNED

#define GLIBC_MALLOC_ALIGNED   0

Definition at line 357 of file pcl_macros.h.

◆ M_1_PI

#define M_1_PI   0.318309886183790671538

Definition at line 204 of file pcl_macros.h.

◆ M_2_PI

#define M_2_PI   0.636619772367581343076

Definition at line 205 of file pcl_macros.h.

◆ M_2_SQRTPI

#define M_2_SQRTPI   1.12837916709551257390

Definition at line 206 of file pcl_macros.h.

◆ M_E

◆ M_LN10

#define M_LN10   2.30258509299404568402

Definition at line 200 of file pcl_macros.h.

◆ M_LN2

#define M_LN2   0.693147180559945309417

Definition at line 199 of file pcl_macros.h.

◆ M_LOG10E

#define M_LOG10E   0.434294481903251827651

Definition at line 198 of file pcl_macros.h.

◆ M_LOG2E

#define M_LOG2E   1.44269504088896340736

Definition at line 197 of file pcl_macros.h.

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 201 of file pcl_macros.h.

Referenced by pcl::FrustumCulling< PointT >::applyFilter(), pcl::RangeImage::atan2LookUp(), pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::BoundaryEstimation(), pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::bruteForceCorrespondences(), pcl::comparePoints2D(), pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute(), pcl::ESFEstimation< PointInT, PointOutT >::computeESF(), pcl::NormalBasedSignatureEstimation< PointT, PointNT, PointFeature >::computeFeature(), pcl::face_detection::PoseClassRegressionVarianceStatsEstimator< LabelDataType, NodeType, DataSet, ExampleIndex >::computeInformationGain(), pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::computeModelCoefficients(), pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::computePointLRF(), pcl::PFHRGBEstimation< PointInT, PointNT, PointOutT >::computePointPFHRGBSignature(), pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computePointPFHSignature(), pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature(), pcl::VFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature(), pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::computeRIFT(), pcl::computeRSD(), pcl::computeRSD(), pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::computeSiForPoint(), pcl::RangeImage::cosLookUp(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::countWithinDistance(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::countWithinDistanceStandard(), pcl::PackedHSIComparison< PointT >::evaluate(), pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::FPFHEstimation(), pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::generateKernel(), pcl::RangeImage::getAcutenessValue(), pcl::getAngle3D(), pcl::getAngle3D(), pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::getAngleBetweenUnitVectors(), pcl::RangeImage::getAnglesFromImagePoint(), pcl::RangeImageSpherical::getAnglesFromImagePoint(), pcl::SampleConsensusModelCone< PointT, PointNT >::getDistancesToModel(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::getDistancesToModel(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::getDistancesToModel(), pcl::RangeImage::getImagePointFromAngles(), pcl::RangeImageSpherical::getImagePointFromAngles(), pcl::RangeImage::getImpactAngle(), pcl::RangeImage::getNormalBasedAcutenessValue(), pcl::GreedyProjectionTriangulation< PointInT >::GreedyProjectionTriangulation(), pcl::QuantizedNormalLookUpTable::initializeLUT(), pcl::SACSegmentation< PointT >::initSACModel(), pcl::SACSegmentationFromNormals< PointT, PointNT >::initSACModel(), pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::isBoundaryPoint(), pcl::SampleConsensusModelCone< PointT, PointNT >::isModelValid(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::isModelValid(), pcl::SampleConsensusModelParallelLine< PointT >::isModelValid(), pcl::SampleConsensusModelPerpendicularPlane< PointT >::isModelValid(), pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::isSampleGood(), pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::ISSKeypoint3D(), pcl::normAngle(), pcl::tracking::ParticleFilterTracker< PointInT, StateT >::ParticleFilterTracker(), pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PFHEstimation(), pcl::PFHRGBEstimation< PointInT, PointNT, PointOutT >::PFHRGBEstimation(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::pointToLineDistance(), pcl::PPFHashMapSearch::PPFHashMapSearch(), pcl::PPFRegistration< PointSource, PointTarget >::PPFRegistration(), pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::projectPoints(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::projectPoints(), pcl::RegionGrowing< PointT, NormalT >::RegionGrowing(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::selectWithinDistance(), pcl::PolynomialCalculationsT< real >::solveCubicEquation(), pcl::TimGrabber::toPointClouds(), and pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::validateTransformation().

◆ M_PI_2

◆ M_PI_4

#define M_PI_4   0.785398163397448309616

Definition at line 203 of file pcl_macros.h.

◆ M_SQRT1_2

#define M_SQRT1_2   0.707106781186547524401

Definition at line 208 of file pcl_macros.h.

Referenced by pcl::approximatePolygon2D().

◆ M_SQRT2

#define M_SQRT2   1.41421356237309504880

Definition at line 207 of file pcl_macros.h.

◆ OPENMP_LEGACY_CONST_DATA_SHARING_RULE

#define OPENMP_LEGACY_CONST_DATA_SHARING_RULE   0

Definition at line 71 of file pcl_macros.h.

◆ PCL_CDECL

#define PCL_CDECL   __cdecl

Definition at line 330 of file pcl_macros.h.

◆ PCL_DEPRECATED

#define PCL_DEPRECATED ( Major,
Minor,
Message )
Value:
Major, \
Minor, \
unneeded_deprecation), \
major_version_mismatch)
#define _PCL_PREPARE_REMOVAL_MESSAGE(Major, Minor, Msg)
A handy way to inform the user of the removal deadline.
Definition pcl_macros.h:122
#define _PCL_COMPAT_MINOR_VERSION(Minor, IfPass, IfFail)
Tests for Minor < PCL_MINOR_VERSION.
Definition pcl_macros.h:130
#define _PCL_DEPRECATED_IMPL(Message)
Definition pcl_macros.h:97
#define _PCL_COMPAT_MAJOR_VERSION(Major, IfPass, IfFail)
Tests for Major == PCL_MAJOR_VERSION.
Definition pcl_macros.h:140

macro for compatibility across compilers and help remove old deprecated items for the Major.Minor release

compiler errors of unneeded_deprecation and major_version_mismatch are hints to the developer that those items can be safely removed. Behavior of PCL_DEPRECATED(1, 99, "Not needed anymore")

  • till PCL 1.98: "Not needed anymore (It will be removed in PCL 1.99)"
  • PCL 1.99 onwards: compiler error with "unneeded_deprecation"
  • PCL 2.0 onwards: compiler error with "major_version_mismatch"

Definition at line 156 of file pcl_macros.h.

◆ PCL_DEPRECATED_HEADER

#define PCL_DEPRECATED_HEADER ( Major,
Minor,
Message )
Value:
Major, \
Minor, \
Major, \
Minor, \
"This header is deprecated. " Message)), \
unneeded_header), \
major_version_mismatch)
#define _PCL_DEPRECATED_HEADER_IMPL(Message)
Definition pcl_macros.h:116

macro for compatibility across compilers and help remove old deprecated headers for the Major.Minor release

compiler errors of unneeded_header and major_version_mismatch are hints to the developer that those items can be safely removed. Behavior of PCL_DEPRECATED_HEADER(1, 99, "Use file <newfile.h> instead.")

  • till PCL 1.98: "This header is deprecated. Use file <newfile.h> instead. (It will be removed in PCL 1.99)"
  • PCL 1.99 onwards: compiler error with "unneeded_header"
  • PCL 2.0 onwards: compiler error with "major_version_mismatch"

Definition at line 176 of file pcl_macros.h.

◆ PCL_EXPORTS

#define PCL_EXPORTS

Definition at line 323 of file pcl_macros.h.

◆ PCL_EXTERN_C

#define PCL_EXTERN_C

Definition at line 315 of file pcl_macros.h.

◆ PCL_IF_CONSTEXPR

#define PCL_IF_CONSTEXPR ( x)
Value:
if (x)

Definition at line 449 of file pcl_macros.h.

Referenced by pcl::operator<<().

◆ PCL_LINEAR_VERSION

#define PCL_LINEAR_VERSION ( major,
minor,
patch )
Value:
((major)<<16|(minor)<<8|(patch))

Macro that maps version information given by major.minor.patch to a linear integer value to enable easy comparison.

Definition at line 232 of file pcl_macros.h.

◆ pcl_lrint

◆ pcl_lrintf

#define pcl_lrintf ( x)

◆ PCL_NODISCARD

#define PCL_NODISCARD

Definition at line 443 of file pcl_macros.h.

◆ PCL_PRAGMA

#define PCL_PRAGMA

Definition at line 106 of file pcl_macros.h.

◆ pcl_sleep

#define pcl_sleep ( x)
Value:
sleep(x)

Definition at line 260 of file pcl_macros.h.

◆ PCL_STDCALL

#define PCL_STDCALL   __stdcall

Definition at line 331 of file pcl_macros.h.

◆ PCLAPI

#define PCLAPI ( rettype)
Value:
PCL_EXTERN_C PCL_EXPORTS rettype PCL_CDECL
#define PCL_CDECL
Definition pcl_macros.h:330
#define PCL_EXTERN_C
Definition pcl_macros.h:315

Definition at line 338 of file pcl_macros.h.

◆ PVAR

#define PVAR ( s)
Value:
#s << " = " << (s) << std::flush

Definition at line 264 of file pcl_macros.h.

◆ PVARA

#define PVARA ( s)
Value:
#s << " = " << RAD2DEG(s) << "deg" << std::flush

Definition at line 280 of file pcl_macros.h.

◆ PVARAC

#define PVARAC ( s)
Value:
#s << " = " << RAD2DEG(s) << "deg, " << std::flush

Definition at line 288 of file pcl_macros.h.

◆ PVARAN

#define PVARAN ( s)
Value:
#s << " = " << RAD2DEG(s) << "deg\n"

Definition at line 284 of file pcl_macros.h.

◆ PVARAS

#define PVARAS ( s)
Value:
#s << " = " << RAD2DEG(s) << "deg " << std::flush

Definition at line 292 of file pcl_macros.h.

◆ PVARC

#define PVARC ( s)
Value:
#s << " = " << (s) << ", " << std::flush

Definition at line 272 of file pcl_macros.h.

Referenced by pcl::operator<<(), and pcl::operator<<().

◆ PVARN

#define PVARN ( s)
Value:
#s << " = " << (s) << "\n"

Definition at line 268 of file pcl_macros.h.

Referenced by pcl::operator<<(), and pcl::operator<<().

◆ PVARS

#define PVARS ( s)
Value:
#s << " = " << (s) << " " << std::flush

Definition at line 276 of file pcl_macros.h.

◆ RAD2DEG

#define RAD2DEG ( x)
Value:
((x)*57.29578)

Definition at line 227 of file pcl_macros.h.

Referenced by pcl::operator<<().

◆ SET_ARRAY

#define SET_ARRAY ( var,
value,
size )
Value:
{ for (decltype(size) i = 0; i < size; ++i) var[i]=value; }

Definition at line 308 of file pcl_macros.h.

Function Documentation

◆ pcl_round() [1/2]

__inline double pcl_round ( double number)

◆ pcl_round() [2/2]

__inline float pcl_round ( float number)

Definition at line 244 of file pcl_macros.h.