pcl_macros.h File Reference
Module common
`#include <cmath>`
`#include <cstdarg>`
`#include <cstdio>`
`#include <cstdlib>`
`#include <cstdint>`
`#include <iostream>`
`#include <boost/cstdint.hpp>`
`#include <boost/smart_ptr/shared_ptr.hpp>`
`#include <Eigen/Core>`
`#include <pcl/pcl_config.h>`

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

| pcl
| This file defines compatibility wrappers for low level I/O functions.

## Macros

#define | _USE_MATH_DEFINES
#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
#define | PCL_STDCALL
#define | PCLAPI(rettype) PCL_EXTERN_C PCL_EXPORTS rettype PCL_CDECL
#define | PCL_PRAGMA
#define | PCL_PRAGMA_WARNING
#define | __has_extension(x) 0
#define | GLIBC_MALLOC_ALIGNED 0
#define | FREEBSD_MALLOC_ALIGNED 0
#define | PCL_MAKE_ALIGNED_OPERATOR_NEW
| Macro to signal a class requires a custom allocator. More...
#define | PCL_FALLTHROUGH
| Macro to add a no-op or a fallthrough attribute based on compiler feature. More...
#define | PCL_NODISCARD

## Typedefs

template<typename T >
using | pcl::shared_ptr = boost::shared_ptr< T >
| Alias for boost::shared_ptr. More...
using | pcl::uint8_t = std::uint8_t
using | pcl::int8_t = std::int8_t
using | pcl::uint16_t = std::uint16_t
using | pcl::int16_t = std::int16_t
using | pcl::uint32_t = std::uint32_t
using | pcl::int32_t = std::int32_t
using | pcl::uint64_t = std::uint64_t
using | pcl::int64_t = std::int64_t
using | pcl::int_fast16_t = std::int_fast16_t

## 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 288 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 150 of file pcl_macros.h.

## ERASE_ARRAY

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

Definition at line 231 of file pcl_macros.h.

## ERASE_STRUCT

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

Definition at line 227 of file pcl_macros.h.

## FIXED

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

Definition at line 223 of file pcl_macros.h.

## FREEBSD_MALLOC_ALIGNED

#define FREEBSD_MALLOC_ALIGNED 0

Definition at line 308 of file pcl_macros.h.

## GLIBC_MALLOC_ALIGNED

#define GLIBC_MALLOC_ALIGNED 0

Definition at line 302 of file pcl_macros.h.

## PCL_CDECL

#define PCL_CDECL

Definition at line 260 of file pcl_macros.h.

## PCL_EXPORTS

#define PCL_EXPORTS

Definition at line 253 of file pcl_macros.h.

## PCL_EXTERN_C

#define PCL_EXTERN_C

Definition at line 242 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 159 of file pcl_macros.h.

## pcl_lrint

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

Definition at line 180 of file pcl_macros.h.

## pcl_lrintf

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

Definition at line 181 of file pcl_macros.h.

## PCL_NODISCARD

#define PCL_NODISCARD

Definition at line 397 of file pcl_macros.h.

## PCL_PRAGMA

#define PCL_PRAGMA

Definition at line 274 of file pcl_macros.h.

## PCL_PRAGMA_WARNING

#define PCL_PRAGMA_WARNING

Definition at line 283 of file pcl_macros.h.

## pcl_sleep

#define pcl_sleep | ( |  | x | ) | sleep(x)

Definition at line 187 of file pcl_macros.h.

## PCL_STDCALL

#define PCL_STDCALL

Definition at line 261 of file pcl_macros.h.

## PCLAPI

#define PCLAPI | ( |  | rettype | ) | PCL_EXTERN_C PCL_EXPORTS rettype PCL_CDECL

Definition at line 265 of file pcl_macros.h.

## PVAR

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

Definition at line 191 of file pcl_macros.h.

## PVARA

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

Definition at line 207 of file pcl_macros.h.

## PVARAC

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

Definition at line 215 of file pcl_macros.h.

## PVARAN

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

Definition at line 211 of file pcl_macros.h.

## PVARAS

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

Definition at line 219 of file pcl_macros.h.

## PVARC

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

Definition at line 199 of file pcl_macros.h.

## PVARN

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

Definition at line 195 of file pcl_macros.h.

## PVARS

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

Definition at line 203 of file pcl_macros.h.

## RAD2DEG

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

Definition at line 154 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 235 of file pcl_macros.h.

## Function Documentation

## aligned_free()

void aligned_free | ( | void * | ptr | ) |

inline

Definition at line 347 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 325 of file pcl_macros.h.

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

## pcl_isfinite()

template<typename T >

bool pcl_isfinite | ( | T && | x | ) |

Definition at line 142 of file pcl_macros.h.

## pcl_isinf()

template<typename T >

bool pcl_isinf | ( | T && | x | ) |

Definition at line 146 of file pcl_macros.h.

## pcl_isnan()

template<typename T >

bool pcl_isnan | ( | T && | x | ) |

Definition at line 138 of file pcl_macros.h.

## pcl_round() [1/2]

__inline double pcl_round | ( | double | number | ) |

Win32 doesn't seem to have rounding functions.

Therefore implement our own versions of these functions here.

Definition at line 166 of file pcl_macros.h.

Referenced by pcl::ESFEstimation< PointInT, PointOutT >::computeESF(), pcl::VFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature(), pcl::face_detection::FeatureHandlerDepthAverage< FT, DataSet, ExampleIndex >::evaluateFeature(), and pcl::OrganizedNeighborSearch< PointT >::pointPlaneProjection().

## pcl_round() [2/2]

__inline float pcl_round | ( | float | number | ) |

Definition at line 171 of file pcl_macros.h.