Point Cloud Library (PCL)  1.11.0-dev
Macros | Functions
pcl_macros.h File Reference
#include <cmath>
#include <cstdarg>
#include <cstdio>
#include <cstdlib>
#include <cstdint>
#include <iostream>
#include <pcl/pcl_config.h>
#include <boost/preprocessor/comparison/equal.hpp>
#include <boost/preprocessor/comparison/less.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/stringize.hpp>

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.

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)   Msg " (It will be removed in PCL " BOOST_PP_STRINGIZE(Major.Minor) ")"
 A handy way to inform the user of the removal deadline. More...
 
#define _PCL_COMPAT_MINOR_VERSION(Minor, IfPass, IfFail)   BOOST_PP_IF(BOOST_PP_LESS(PCL_MINOR_VERSION, Minor), IfPass, IfFail)
 Tests for Minor < PCL_MINOR_VERSION. More...
 
#define _PCL_COMPAT_MAJOR_VERSION(Major, IfPass, IfFail)   BOOST_PP_IF(BOOST_PP_EQUAL(PCL_MAJOR_VERSION, Major), IfPass, IfFail)
 Tests for Major == PCL_MAJOR_VERSION. More...
 
#define PCL_DEPRECATED(Major, Minor, Message)
 macro for compatibility across compilers and help remove old deprecated items for the Major.Minor release More...
 
#define PCL_DEPRECATED_HEADER(Major, Minor, Message)
 macro for compatibility across compilers and help remove old deprecated headers for the Major.Minor release More...
 
#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)   ((x)*0.017453293)
 
#define RAD2DEG(x)   ((x)*57.29578)
 
#define PCL_LINEAR_VERSION(major, minor, patch)   ((major)<<16|(minor)<<8|(patch))
 Macro that maps version information given by major.minor.patch to a linear integer value to enable easy comparison. More...
 
#define pcl_lrint(x)   (static_cast<long int>(pcl_round(x)))
 
#define pcl_lrintf(x)   (static_cast<long int>(pcl_round(x)))
 
#define pcl_sleep(x)   sleep(x)
 
#define PVAR(s)   #s << " = " << (s) << std::flush
 
#define PVARN(s)   #s << " = " << (s) << "\n"
 
#define PVARC(s)   #s << " = " << (s) << ", " << std::flush
 
#define PVARS(s)   #s << " = " << (s) << " " << std::flush
 
#define PVARA(s)   #s << " = " << RAD2DEG(s) << "deg" << std::flush
 
#define PVARAN(s)   #s << " = " << RAD2DEG(s) << "deg\n"
 
#define PVARAC(s)   #s << " = " << RAD2DEG(s) << "deg, " << std::flush
 
#define PVARAS(s)   #s << " = " << RAD2DEG(s) << "deg " << std::flush
 
#define FIXED(s)   std::fixed << s << std::resetiosflags(std::ios_base::fixed)
 
#define ERASE_STRUCT(var)   memset(&var, 0, sizeof(var))
 
#define ERASE_ARRAY(var, size)   memset(var, 0, size*sizeof(*var))
 
#define SET_ARRAY(var, value, size)   { for (decltype(size) i = 0; i < size; ++i) var[i]=value; }
 
#define PCL_EXTERN_C
 
#define PCL_EXPORTS
 
#define PCL_CDECL   __cdecl
 
#define PCL_STDCALL   __stdcall
 
#define PCLAPI(rettype)   PCL_EXTERN_C PCL_EXPORTS rettype PCL_CDECL
 
#define __has_extension(x)   0
 
#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. More...
 
#define PCL_NODISCARD
 

Functions

template<typename T >
bool pcl_isnan (T &&x)
 
template<typename T >
bool pcl_isfinite (T &&x)
 
template<typename T >
bool pcl_isinf (T &&x)
 
__inline double pcl_round (double number)
 Win32 doesn't seem to have rounding functions. More...
 
__inline float pcl_round (float number)
 
void * aligned_malloc (std::size_t size)
 
void aligned_free (void *ptr)
 

Macro Definition Documentation

◆ __has_extension

#define __has_extension (   x)    0

Definition at line 351 of file pcl_macros.h.

◆ _MATH_DEFINES_DEFINED

#define _MATH_DEFINES_DEFINED

Definition at line 188 of file pcl_macros.h.

◆ _PCL_COMPAT_MAJOR_VERSION

#define _PCL_COMPAT_MAJOR_VERSION (   Major,
  IfPass,
  IfFail 
)    BOOST_PP_IF(BOOST_PP_EQUAL(PCL_MAJOR_VERSION, Major), IfPass, IfFail)

Tests for Major == PCL_MAJOR_VERSION.

Definition at line 136 of file pcl_macros.h.

◆ _PCL_COMPAT_MINOR_VERSION

#define _PCL_COMPAT_MINOR_VERSION (   Minor,
  IfPass,
  IfFail 
)    BOOST_PP_IF(BOOST_PP_LESS(PCL_MINOR_VERSION, Minor), IfPass, IfFail)

Tests for Minor < PCL_MINOR_VERSION.

Definition at line 130 of file pcl_macros.h.

◆ _PCL_DEPRECATED_HEADER_IMPL

#define _PCL_DEPRECATED_HEADER_IMPL (   Message)

Definition at line 118 of file pcl_macros.h.

◆ _PCL_DEPRECATED_IMPL

#define _PCL_DEPRECATED_IMPL (   Message)

Definition at line 99 of file pcl_macros.h.

◆ _PCL_PREPARE_REMOVAL_MESSAGE

#define _PCL_PREPARE_REMOVAL_MESSAGE (   Major,
  Minor,
  Msg 
)    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 124 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)    ((x)*0.017453293)

Definition at line 231 of file pcl_macros.h.

◆ ERASE_ARRAY

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

Definition at line 312 of file pcl_macros.h.

◆ ERASE_STRUCT

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

Definition at line 308 of file pcl_macros.h.

◆ FIXED

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

Definition at line 304 of file pcl_macros.h.

◆ FREEBSD_MALLOC_ALIGNED

#define FREEBSD_MALLOC_ALIGNED   0

Definition at line 371 of file pcl_macros.h.

◆ GLIBC_MALLOC_ALIGNED

#define GLIBC_MALLOC_ALIGNED   0

Definition at line 365 of file pcl_macros.h.

◆ M_1_PI

#define M_1_PI   0.318309886183790671538

Definition at line 198 of file pcl_macros.h.

◆ M_2_PI

#define M_2_PI   0.636619772367581343076

Definition at line 199 of file pcl_macros.h.

◆ M_2_SQRTPI

#define M_2_SQRTPI   1.12837916709551257390

Definition at line 200 of file pcl_macros.h.

◆ M_E

#define M_E   2.71828182845904523536

Definition at line 190 of file pcl_macros.h.

◆ M_LN10

#define M_LN10   2.30258509299404568402

Definition at line 194 of file pcl_macros.h.

◆ M_LN2

#define M_LN2   0.693147180559945309417

Definition at line 193 of file pcl_macros.h.

◆ M_LOG10E

#define M_LOG10E   0.434294481903251827651

Definition at line 192 of file pcl_macros.h.

◆ M_LOG2E

#define M_LOG2E   1.44269504088896340736

Definition at line 191 of file pcl_macros.h.

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 195 of file pcl_macros.h.

◆ M_PI_2

#define M_PI_2   1.57079632679489661923

Definition at line 196 of file pcl_macros.h.

◆ M_PI_4

#define M_PI_4   0.785398163397448309616

Definition at line 197 of file pcl_macros.h.

◆ M_SQRT1_2

#define M_SQRT1_2   0.707106781186547524401

Definition at line 202 of file pcl_macros.h.

◆ M_SQRT2

#define M_SQRT2   1.41421356237309504880

Definition at line 201 of file pcl_macros.h.

◆ OPENMP_LEGACY_CONST_DATA_SHARING_RULE

#define OPENMP_LEGACY_CONST_DATA_SHARING_RULE   0

Definition at line 74 of file pcl_macros.h.

◆ PCL_CDECL

#define PCL_CDECL   __cdecl

Definition at line 338 of file pcl_macros.h.

◆ PCL_DEPRECATED

#define PCL_DEPRECATED (   Major,
  Minor,
  Message 
)
Value:
Major, \
Minor, \
unneeded_deprecation), \
major_version_mismatch)

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 150 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)

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 170 of file pcl_macros.h.

◆ PCL_EXPORTS

#define PCL_EXPORTS

Definition at line 331 of file pcl_macros.h.

◆ PCL_EXTERN_C

#define PCL_EXTERN_C

Definition at line 323 of file pcl_macros.h.

◆ PCL_LINEAR_VERSION

#define PCL_LINEAR_VERSION (   major,
  minor,
  patch 
)    ((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 240 of file pcl_macros.h.

◆ pcl_lrint

#define pcl_lrint (   x)    (static_cast<long int>(pcl_round(x)))

Definition at line 261 of file pcl_macros.h.

◆ pcl_lrintf

#define pcl_lrintf (   x)    (static_cast<long int>(pcl_round(x)))

Definition at line 262 of file pcl_macros.h.

◆ PCL_NODISCARD

#define PCL_NODISCARD

Definition at line 447 of file pcl_macros.h.

◆ PCL_PRAGMA

#define PCL_PRAGMA

Definition at line 108 of file pcl_macros.h.

◆ pcl_sleep

#define pcl_sleep (   x)    sleep(x)

Definition at line 268 of file pcl_macros.h.

◆ PCL_STDCALL

#define PCL_STDCALL   __stdcall

Definition at line 339 of file pcl_macros.h.

◆ PCLAPI

#define PCLAPI (   rettype)    PCL_EXTERN_C PCL_EXPORTS rettype PCL_CDECL

Definition at line 346 of file pcl_macros.h.

◆ PVAR

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

Definition at line 272 of file pcl_macros.h.

◆ PVARA

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

Definition at line 288 of file pcl_macros.h.

◆ PVARAC

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

Definition at line 296 of file pcl_macros.h.

◆ PVARAN

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

Definition at line 292 of file pcl_macros.h.

◆ PVARAS

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

Definition at line 300 of file pcl_macros.h.

◆ PVARC

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

Definition at line 280 of file pcl_macros.h.

◆ PVARN

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

Definition at line 276 of file pcl_macros.h.

◆ PVARS

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

Definition at line 284 of file pcl_macros.h.

◆ RAD2DEG

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

Definition at line 235 of file pcl_macros.h.

◆ SET_ARRAY

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

Definition at line 316 of file pcl_macros.h.

Function Documentation

◆ aligned_free()

void aligned_free ( void *  ptr)
inline

Definition at line 410 of file pcl_macros.h.

Referenced by pcl::EnergyMaps::releaseAll(), and pcl::LinearizedMaps::releaseAll().

◆ aligned_malloc()

void* aligned_malloc ( std::size_t  size)
inline

Definition at line 388 of file pcl_macros.h.

Referenced by pcl::EnergyMaps::initialize(), and pcl::LinearizedMaps::initialize().

◆ pcl_isfinite()

template<typename T >
bool pcl_isfinite ( T &&  x)
Deprecated:
Scheduled for removal in version 1 . 12 : "use std::isfinite instead of pcl_isfinite"

Definition at line 223 of file pcl_macros.h.

◆ pcl_isinf()

template<typename T >
bool pcl_isinf ( T &&  x)
Deprecated:
Scheduled for removal in version 1 . 12 : "use std::isinf instead of pcl_isinf"

Definition at line 227 of file pcl_macros.h.

◆ pcl_isnan()

template<typename T >
bool pcl_isnan ( T &&  x)
Deprecated:
Scheduled for removal in version 1 . 12 : "use std::isnan instead of pcl_isnan"

Definition at line 219 of file pcl_macros.h.

◆ pcl_round() [1/2]

__inline double pcl_round ( double  number)

◆ pcl_round() [2/2]

__inline float pcl_round ( float  number)

Definition at line 252 of file pcl_macros.h.

_PCL_DEPRECATED_HEADER_IMPL
#define _PCL_DEPRECATED_HEADER_IMPL(Message)
Definition: pcl_macros.h:118
_PCL_DEPRECATED_IMPL
#define _PCL_DEPRECATED_IMPL(Message)
Definition: pcl_macros.h:99
_PCL_PREPARE_REMOVAL_MESSAGE
#define _PCL_PREPARE_REMOVAL_MESSAGE(Major, Minor, Msg)
A handy way to inform the user of the removal deadline.
Definition: pcl_macros.h:124
_PCL_COMPAT_MAJOR_VERSION
#define _PCL_COMPAT_MAJOR_VERSION(Major, IfPass, IfFail)
Tests for Major == PCL_MAJOR_VERSION.
Definition: pcl_macros.h:136
_PCL_COMPAT_MINOR_VERSION
#define _PCL_COMPAT_MINOR_VERSION(Minor, IfPass, IfFail)
Tests for Minor < PCL_MINOR_VERSION.
Definition: pcl_macros.h:130