

Here is a list of all modules:
 

|  |  |
| --- | --- |
|  [NPPST Core](group__core__npp) | Basic functions for CUDA streams management  |
|  [NPPST Image Processing](group__nppi) |  |
|  [NPPST Signal Processing](group__npps) |  |
|  [Module common](group__common) |  |
|  [Module features](group__features) |  |
|  [Module filters](group__filters) |  |
|  [Module geometry](group__geometry) |  |
|  [Module io](group__io) |  |
|  [Module kdtree](group__kdtree) |  |
|  [Module keypoints](group__keypoints) |  |
|  [Module octree](group__octree) |  |
|  [Module outofcore](group__outofcore) |  |
|  [Module recognition](group__recognition) |  |
|  [Module registration](group__registration) |  |
|  [Module sample\_consensus](group__sample__consensus) |  |
|  [Module search](https://pointclouds.org/documentation/group__search.html) |  |
|  [Module segmentation](group__segmentation) |  |
|  [Module surface](group__surface) |  |
|  [Module visualization](group__visualization) |  |

  

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/modules.html>

Basic functions for CUDA streams management. [More...](#details)

 Detailed Description
--------------------

 Basic functions for CUDA streams management. 

 

|  |
| --- |
| 
 Functions |
| NCV\_EXPORTS cudaStream\_t  | [nppStGetActiveCUDAstream](group__core__npp#gaa0f194cf0d7febcb2a2c4ac1ad64a679) () |
|  | Gets an active CUDA stream used by NPPST NOT THREAD SAFE. [More...](group__core__npp#gaa0f194cf0d7febcb2a2c4ac1ad64a679) |
|
| NCV\_EXPORTS cudaStream\_t  | [nppStSetActiveCUDAstream](group__core__npp#ga31c8e014fd69bd87a5a35d441c0eb051) (cudaStream\_t cudaStream) |
|  | Sets an active CUDA stream used by NPPST NOT THREAD SAFE. [More...](group__core__npp#ga31c8e014fd69bd87a5a35d441c0eb051) |
|

 Function Documentation
----------------------

  nppStGetActiveCUDAstream()
--------------------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| NCV\_EXPORTS cudaStream\_t nppStGetActiveCUDAstream  | ( |  | ) |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Gets an active CUDA stream used by NPPST NOT THREAD SAFE. 

 
Returns
Current CUDA stream 
    nppStSetActiveCUDAstream()
--------------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| NCV\_EXPORTS cudaStream\_t nppStSetActiveCUDAstream  | ( | cudaStream\_t  | *cudaStream* | ) |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Sets an active CUDA stream used by NPPST NOT THREAD SAFE. 

 
Parameters
 

|  |  |
| --- | --- |
| cudaStream | [IN] cudaStream CUDA stream to become current  |

   
Returns
CUDA stream used before 
   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__core__npp.html>

Detailed Description
--------------------

 

|  |
| --- |
| 
 Functions |
| NCV\_EXPORTS NCVStatus  | [nppsStCompactGetSize\_32u](group__npps#ga48b184679399123c17dc9b84f6dbb608) (Ncv32u srcLen, Ncv32u \*pBufsize, cudaDeviceProp &devProp) |
|  | Calculates the size of the temporary buffer for vector compaction. [More...](group__npps#ga48b184679399123c17dc9b84f6dbb608) |
|
| NCVStatus  | [nppsStCompactGetSize\_32s](group__npps#ga500430cc2130b1ab6cff9beabf8b5174) (Ncv32u srcLen, Ncv32u \*pBufsize, cudaDeviceProp &devProp) |
|  | Calculates the size of the temporary buffer for vector compaction. [More...](group__npps#ga500430cc2130b1ab6cff9beabf8b5174) |
|
| NCVStatus  | [nppsStCompactGetSize\_32f](group__npps#ga815868ea68f1cf070de75ead6b4793a9) (Ncv32u srcLen, Ncv32u \*pBufsize, cudaDeviceProp &devProp) |
|  | Calculates the size of the temporary buffer for vector compaction. [More...](group__npps#ga815868ea68f1cf070de75ead6b4793a9) |
|
| NCV\_EXPORTS NCVStatus  | [nppsStCompact\_32u](group__npps#ga3aadb5fe08f5e88735b4cf9c05a1ee1b) (Ncv32u \*d\_src, Ncv32u srcLen, Ncv32u \*d\_dst, Ncv32u \*p\_dstLen, Ncv32u elemRemove, Ncv8u \*pBuffer, Ncv32u bufSize, cudaDeviceProp &devProp) |
|  | Compacts the input vector by removing elements of specified value. [More...](group__npps#ga3aadb5fe08f5e88735b4cf9c05a1ee1b) |
|
| NCV\_EXPORTS NCVStatus  | [nppsStCompact\_32s](group__npps#ga28b07627dc14e2fe5632ceee0c96c3b6) (Ncv32s \*d\_src, Ncv32u srcLen, Ncv32s \*d\_dst, Ncv32u \*p\_dstLen, Ncv32s elemRemove, Ncv8u \*pBuffer, Ncv32u bufSize, cudaDeviceProp &devProp) |
|  | Compacts the input vector by removing elements of specified value. [More...](group__npps#ga28b07627dc14e2fe5632ceee0c96c3b6) |
|
| NCV\_EXPORTS NCVStatus  | [nppsStCompact\_32f](group__npps#gad1ecc6ef735e93524db2441c19d8f7c1) (Ncv32f \*d\_src, Ncv32u srcLen, Ncv32f \*d\_dst, Ncv32u \*p\_dstLen, Ncv32f elemRemove, Ncv8u \*pBuffer, Ncv32u bufSize, cudaDeviceProp &devProp) |
|  | Compacts the input vector by removing elements of specified value. [More...](group__npps#gad1ecc6ef735e93524db2441c19d8f7c1) |
|
| NCV\_EXPORTS NCVStatus  | [nppsStCompact\_32u\_host](group__npps#ga2a410286ddf5a027480c8be51fdc8425) (Ncv32u \*h\_src, Ncv32u srcLen, Ncv32u \*h\_dst, Ncv32u \*dstLen, Ncv32u elemRemove) |
|  | Compacts the input vector by removing elements of specified value. [More...](group__npps#ga2a410286ddf5a027480c8be51fdc8425) |
|
| NCV\_EXPORTS NCVStatus  | [nppsStCompact\_32s\_host](group__npps#ga75a60e3b18d79bb35c40c45f07562a39) (Ncv32s \*h\_src, Ncv32u srcLen, Ncv32s \*h\_dst, Ncv32u \*dstLen, Ncv32s elemRemove) |
|  | Compacts the input vector by removing elements of specified value. [More...](group__npps#ga75a60e3b18d79bb35c40c45f07562a39) |
|
| NCV\_EXPORTS NCVStatus  | [nppsStCompact\_32f\_host](group__npps#ga165cba9dda4ac62aa21207b0469c5fb4) (Ncv32f \*h\_src, Ncv32u srcLen, Ncv32f \*h\_dst, Ncv32u \*dstLen, Ncv32f elemRemove) |
|  | Compacts the input vector by removing elements of specified value. [More...](group__npps#ga165cba9dda4ac62aa21207b0469c5fb4) |
|

 Function Documentation
----------------------

  nppsStCompact\_32f()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompact\_32f  | ( | Ncv32f \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcLen*,  |
|  |  | Ncv32f \*  | *d\_dst*,  |
|  |  | Ncv32u \*  | *p\_dstLen*,  |
|  |  | Ncv32f  | *elemRemove*,  |
|  |  | Ncv8u \*  | *pBuffer*,  |
|  |  | Ncv32u  | *bufSize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Compacts the input vector by removing elements of specified value. 

 32-bit float values 



See also

[nppsStCompact\_32u](group__npps#ga3aadb5fe08f5e88735b4cf9c05a1ee1b "Compacts the input vector by removing elements of specified value.") 
    nppsStCompact\_32f\_host()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompact\_32f\_host  | ( | Ncv32f \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcLen*,  |
|  |  | Ncv32f \*  | *h\_dst*,  |
|  |  | Ncv32u \*  | *dstLen*,  |
|  |  | Ncv32f  | *elemRemove* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Compacts the input vector by removing elements of specified value. 

 32-bit float values. Host implementation 



See also

[nppsStCompact\_32u\_host](group__npps#ga2a410286ddf5a027480c8be51fdc8425 "Compacts the input vector by removing elements of specified value.") 
    nppsStCompact\_32s()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompact\_32s  | ( | Ncv32s \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcLen*,  |
|  |  | Ncv32s \*  | *d\_dst*,  |
|  |  | Ncv32u \*  | *p\_dstLen*,  |
|  |  | Ncv32s  | *elemRemove*,  |
|  |  | Ncv8u \*  | *pBuffer*,  |
|  |  | Ncv32u  | *bufSize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Compacts the input vector by removing elements of specified value. 

 32-bit signed values 



See also

[nppsStCompact\_32u](group__npps#ga3aadb5fe08f5e88735b4cf9c05a1ee1b "Compacts the input vector by removing elements of specified value.") 
    nppsStCompact\_32s\_host()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompact\_32s\_host  | ( | Ncv32s \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcLen*,  |
|  |  | Ncv32s \*  | *h\_dst*,  |
|  |  | Ncv32u \*  | *dstLen*,  |
|  |  | Ncv32s  | *elemRemove* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Compacts the input vector by removing elements of specified value. 

 32-bit signed values. Host implementation 



See also

[nppsStCompact\_32u\_host](group__npps#ga2a410286ddf5a027480c8be51fdc8425 "Compacts the input vector by removing elements of specified value.") 
    nppsStCompact\_32u()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompact\_32u  | ( | Ncv32u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcLen*,  |
|  |  | Ncv32u \*  | *d\_dst*,  |
|  |  | Ncv32u \*  | *p\_dstLen*,  |
|  |  | Ncv32u  | *elemRemove*,  |
|  |  | Ncv8u \*  | *pBuffer*,  |
|  |  | Ncv32u  | *bufSize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Compacts the input vector by removing elements of specified value. 

 32-bit unsigned values

 
Parameters
 

|  |  |
| --- | --- |
| d\_src | [IN] Source vector pointer (CUDA device memory)  |
| srcLen | [IN] Source vector length  |
| d\_dst | [OUT] Destination vector pointer (CUDA device memory)  |
| p\_dstLen | [OUT] Pointer to the destination vector length (Pinned memory or NULL)  |
| elemRemove | [IN] The value to be removed  |
| pBuffer | [IN] Pointer to the pre-allocated temporary buffer (CUDA device memory)  |
| bufSize | [IN] Size of the pBuffer in bytes  |
| devProp | [IN] CUDA device properties structure, containing texture alignment information |

   
Returns
NCV status code 
    nppsStCompact\_32u\_host()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompact\_32u\_host  | ( | Ncv32u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcLen*,  |
|  |  | Ncv32u \*  | *h\_dst*,  |
|  |  | Ncv32u \*  | *dstLen*,  |
|  |  | Ncv32u  | *elemRemove* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Compacts the input vector by removing elements of specified value. 

 32-bit unsigned values. Host implementation

 
Parameters
 

|  |  |
| --- | --- |
| h\_src | [IN] Source vector pointer (CUDA device memory)  |
| srcLen | [IN] Source vector length  |
| h\_dst | [OUT] Destination vector pointer (CUDA device memory)  |
| dstLen | [OUT] Pointer to the destination vector length (can be NULL)  |
| elemRemove | [IN] The value to be removed |

   
Returns
NCV status code 
    nppsStCompactGetSize\_32f()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCVStatus nppsStCompactGetSize\_32f  | ( | Ncv32u  | *srcLen*,  |
|  |  | Ncv32u \*  | *pBufsize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Calculates the size of the temporary buffer for vector compaction. 

 32-bit float values 



See also

[nppsStCompactGetSize\_32u](group__npps#ga48b184679399123c17dc9b84f6dbb608 "Calculates the size of the temporary buffer for vector compaction.") 
    nppsStCompactGetSize\_32s()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCVStatus nppsStCompactGetSize\_32s  | ( | Ncv32u  | *srcLen*,  |
|  |  | Ncv32u \*  | *pBufsize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Calculates the size of the temporary buffer for vector compaction. 

 32-bit signed values 



See also

[nppsStCompactGetSize\_32u](group__npps#ga48b184679399123c17dc9b84f6dbb608 "Calculates the size of the temporary buffer for vector compaction.") 
    nppsStCompactGetSize\_32u()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppsStCompactGetSize\_32u  | ( | Ncv32u  | *srcLen*,  |
|  |  | Ncv32u \*  | *pBufsize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Calculates the size of the temporary buffer for vector compaction. 

 32-bit unsigned values

 
Parameters
 

|  |  |
| --- | --- |
| srcLen | [IN] Length of the input vector in elements  |
| pBufsize | [OUT] Pointer to host variable that returns the size of the temporary buffer (in bytes)  |
| devProp | [IN] CUDA device properties structure, containing texture alignment information |

   
Returns
NCV status code 
   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__npps.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_features** library contains data structures and mechanisms for 3D feature estimation from point cloud data. *3D features* are representations at a certain 3D point or position in space, which describe geometrical patterns based on the information available around the point. The data space selected around the query point is usually referred as the **k-neighborhood**.

 The following figure shows a simple example of a selected query point, and its selected k-neighborhood.

  ![](http://www.pointclouds.org/assets/images/contents/documentation/features_normal.png)  An example of two of the most widely used geometric point features are the underlying surface's estimated curvature and normal at a query point **p**. Both of them are considered local features, as they characterize a point using the information provided by its k closest point neighbors. For determining these neighbors efficiently, the input dataset is usually split into smaller chunks using spatial decomposition techniques such as octrees or kD-trees (see the figure below - left: kD-tree, right: octree), and then closest point searches are performed in that space. Depending on the application one can opt for either determining a fixed number of k points in the vicinity of p, or all points which are found inside of a sphere of radius r centered at p. Unarguably, one the easiest methods for estimating the surface normals and curvature changes at a point p is to perform an eigendecomposition (i.e. compute the eigenvectors and eigenvalues) of the k-neighborhood point surface patch. Thus, the eigenvector corresponding to the smallest eigenvalue will approximate the surface normal n at point p, while the surface curvature change will be estimated from the eigenvalues as:

  ![$\frac{\lambda_0}{\lambda_0 + \lambda_1 + \lambda_2}$].
 ![](http://www.pointclouds.org/assets/images/contents/documentation/features_bunny.png)  Please visit <http://www.pointclouds.org> for more information.

 
 Requirements
==============

 * [common](group__common)
* [search](https://pointclouds.org/documentation/group__search.html)
* [kdtree](group__kdtree)
* [octree](group__octree)
* [range\_image](classpcl_1_1_range_image)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_shape_context3_d_estimation) |
|  | [ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation "ShapeContext3DEstimation implements the 3D shape context descriptor as described in:") implements the 3D shape context descriptor as described in: [More...](classpcl_1_1_shape_context3_d_estimation#details) |
|
| class  | [pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation) |
|  | [BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation "BOARDLocalReferenceFrameEstimation implements the BOrder Aware Repeatable Directions algorithm for lo...") implements the BOrder Aware Repeatable Directions algorithm for local reference frame estimation as described here: [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#details) |
|
| class  | [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_boundary_estimation) |
|  | [BoundaryEstimation](classpcl_1_1_boundary_estimation "BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...") estimates whether a set of points is lying on surface boundaries using an angle criterion. [More...](classpcl_1_1_boundary_estimation#details) |
|
| class  | [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >](classpcl_1_1_b_r_i_s_k2_d_estimation) |
|  | Implementation of the BRISK-descriptor, based on the original code and paper reference by. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#details) |
|
| class  | [pcl::CRHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_c_r_h_estimation) |
|  | [CRHEstimation](classpcl_1_1_c_r_h_estimation "CRHEstimation estimates the Camera Roll Histogram (CRH) descriptor for a given point cloud dataset co...") estimates the [Camera](https://pointclouds.org/documentation/class_camera.html) Roll [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CRH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: [More...](classpcl_1_1_c_r_h_estimation#details) |
|
| class  | [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_c_v_f_h_estimation) |
|  | [CVFHEstimation](classpcl_1_1_c_v_f_h_estimation "CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given poin...") estimates the Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CVFH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: [More...](classpcl_1_1_c_v_f_h_estimation#details) |
|
| class  | [pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_difference_of_normals_estimation) |
|  | A Difference of Normals (DoN) scale filter implementation for point cloud data. [More...](classpcl_1_1_difference_of_normals_estimation#details) |
|
| class  | [pcl::ESFEstimation< PointInT, PointOutT >](classpcl_1_1_e_s_f_estimation) |
|  | **[ESFEstimation](classpcl_1_1_e_s_f_estimation "ESFEstimation estimates the ensemble of shape functions descriptors for a given point cloud dataset c...")** estimates the ensemble of shape functions descriptors for a given point cloud dataset containing points. [More...](classpcl_1_1_e_s_f_estimation#details) |
|
| class  | [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature "Feature represents the base feature class.") represents the base feature class. [More...](classpcl_1_1_feature#details) |
|
| class  | [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames "FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which ne...") provides a public interface for descriptor extractor classes which need a local reference frame at each input keypoint. [More...](classpcl_1_1_feature_with_local_reference_frames#details) |
|
| class  | [pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation) |
|  | [FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation "FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local refe...") implements the Fast LocAl Reference framE algorithm for local reference frame estimation as described here: [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#details) |
|
| class  | [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_f_p_f_h_estimation) |
|  | [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation "FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud d...") estimates the **Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH)** descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_f_p_f_h_estimation#details) |
|
| class  | [pcl::FPFHEstimationOMP< PointInT, PointNT, PointOutT >](classpcl_1_1_f_p_f_h_estimation_o_m_p) |
|  | [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p "FPFHEstimationOMP estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point clou...") estimates the Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. [More...](classpcl_1_1_f_p_f_h_estimation_o_m_p#details) |
|
| class  | [pcl::GASDEstimation< PointInT, PointOutT >](classpcl_1_1_g_a_s_d_estimation) |
|  | [GASDEstimation](classpcl_1_1_g_a_s_d_estimation "GASDEstimation estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given poin...") estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given point cloud dataset given XYZ data. [More...](classpcl_1_1_g_a_s_d_estimation#details) |
|
| class  | [pcl::GASDColorEstimation< PointInT, PointOutT >](classpcl_1_1_g_a_s_d_color_estimation) |
|  | [GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation "GASDColorEstimation estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given...") estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given point cloud dataset given XYZ and [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. [More...](classpcl_1_1_g_a_s_d_color_estimation#details) |
|
| class  | [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >](classpcl_1_1_g_f_p_f_h_estimation) |
|  | **[GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation "GFPFHEstimation estimates the Global Fast Point Feature Histogram (GFPFH) descriptor for a given poin...")** estimates the Global Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (GFPFH) descriptor for a given point cloud dataset containing points and labels. [More...](classpcl_1_1_g_f_p_f_h_estimation#details) |
|
| class  | [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_g_r_s_d_estimation) |
|  | **[GRSDEstimation](classpcl_1_1_g_r_s_d_estimation "GRSDEstimation estimates the Global Radius-based Surface Descriptor (GRSD) for a given point cloud da...")** estimates the Global Radius-based Surface Descriptor (GRSD) for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_g_r_s_d_estimation#details) |
|
| class  | [pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >](classpcl_1_1_intensity_gradient_estimation) |
|  | [IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation "IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position...") estimates the intensity gradient for a point cloud that contains position and intensity values. [More...](classpcl_1_1_intensity_gradient_estimation#details) |
|
| class  | [pcl::IntensitySpinEstimation< PointInT, PointOutT >](classpcl_1_1_intensity_spin_estimation) |
|  | [IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation "IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud...") estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. [More...](classpcl_1_1_intensity_spin_estimation#details) |
|
| class  | [pcl::MomentInvariantsEstimation< PointInT, PointOutT >](classpcl_1_1_moment_invariants_estimation) |
|  | [MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation "MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point.") estimates the 3 moment invariants (j1, j2, j3) at each 3D point. [More...](classpcl_1_1_moment_invariants_estimation#details) |
|
| class  | [pcl::Narf](classpcl_1_1_narf) |
|  | NARF ([Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Aligned Radial Features) is a point feature descriptor type for 3D data. [More...](classpcl_1_1_narf#details) |
|
| class  | [pcl::NarfDescriptor](classpcl_1_1_narf_descriptor) |
|  | **Computes** NARF feature descriptors for points in a range image See B. [More...](classpcl_1_1_narf_descriptor#details) |
|
| class  | [pcl::NormalEstimation< PointInT, PointOutT >](classpcl_1_1_normal_estimation) |
|  | [NormalEstimation](classpcl_1_1_normal_estimation "NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.") estimates local surface properties (surface normals and curvatures)at each 3D point. [More...](classpcl_1_1_normal_estimation#details) |
|
| class  | [pcl::NormalEstimationOMP< PointInT, PointOutT >](classpcl_1_1_normal_estimation_o_m_p) |
|  | [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p "NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and ...") estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. [More...](classpcl_1_1_normal_estimation_o_m_p#details) |
|
| class  | [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_o_u_r_c_v_f_h_estimation) |
|  | [OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation "OURCVFHEstimation estimates the Oriented, Unique and Repetable Clustered Viewpoint Feature Histogram ...") estimates the Oriented, Unique and Repetable Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CVFH) descriptor for a given point cloud dataset given XYZ data and normals, as presented in: [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#details) |
|
| class  | [pcl::PFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_p_f_h_estimation) |
|  | [PFHEstimation](classpcl_1_1_p_f_h_estimation "PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset ...") estimates the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (PFH) descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_p_f_h_estimation#details) |
|
| class  | [pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_principal_curvatures_estimation) |
|  | [PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation "PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of...") estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_principal_curvatures_estimation#details) |
|
| class  | [pcl::RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) |
|  | **Extract** obstacle borders from range images, meaning positions where there is a transition from foreground to background. [More...](classpcl_1_1_range_image_border_extractor#details) |
|
| class  | [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >](classpcl_1_1_r_i_f_t_estimation) |
|  | [RIFTEstimation](classpcl_1_1_r_i_f_t_estimation "RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud...") estimates the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform descriptors for a given point cloud dataset containing points and intensity. [More...](classpcl_1_1_r_i_f_t_estimation#details) |
|
| class  | [pcl::RSDEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_r_s_d_estimation) |
|  | **[RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ...")** estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local surface's curves) for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_r_s_d_estimation#details) |
|
| class  | [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation "SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_s_h_o_t_estimation_base#details) |
|
| class  | [pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_estimation) |
|  | [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation "SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_s_h_o_t_estimation#details) |
|
| class  | [pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_color_estimation) |
|  | [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation "SHOTColorEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a giv...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors. [More...](classpcl_1_1_s_h_o_t_color_estimation#details) |
|
| class  | [pcl::SHOTLocalReferenceFrameEstimation< PointInT, PointOutT >](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) |
|  | [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation "SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the ...") estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#details) |
|
| class  | [pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p) |
|  | [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation "SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the ...") estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#details) |
|
| class  | [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_estimation_o_m_p) |
|  | [SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p "SHOTEstimationOMP estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#details) |
|
| class  | [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_color_estimation_o_m_p) |
|  | [SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p "SHOTColorEstimationOMP estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a ...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors, in parallel, using the OpenMP standard. [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#details) |
|
| class  | [pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_spin_image_estimation) |
|  | Estimates spin-image descriptors in the given input points. [More...](classpcl_1_1_spin_image_estimation#details) |
|
| class  | [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >](classpcl_1_1_unique_shape_context) |
|  | [UniqueShapeContext](classpcl_1_1_unique_shape_context "UniqueShapeContext implements the Unique Shape Context Descriptor described here:") implements the Unique Shape Context Descriptor described here: [More...](classpcl_1_1_unique_shape_context#details) |
|
| class  | [pcl::VFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_v_f_h_estimation) |
|  | [VFHEstimation](classpcl_1_1_v_f_h_estimation "VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...") estimates the **Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (VFH)** descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_v_f_h_estimation#details) |
|




|  |
| --- |
| 
 Functions |
| void  | [pcl::solvePlaneParameters](group__features#gae5798e2ee9ef558efd8a9f1da82c5eb1) (const Eigen::Matrix3f &covariance\_matrix, const Eigen::Vector4f &point, Eigen::Vector4f &plane\_parameters, float &curvature) |
|  | Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature. [More...](group__features#gae5798e2ee9ef558efd8a9f1da82c5eb1) |
|
| void  | [pcl::solvePlaneParameters](group__features#ga78bd0e1c11a8a299ef98209b6360f8fe) (const Eigen::Matrix3f &covariance\_matrix, float &nx, float &ny, float &nz, float &curvature) |
|  | Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature. [More...](group__features#ga78bd0e1c11a8a299ef98209b6360f8fe) |
|
| template<typename PointT >  |
| bool  | [pcl::computePointNormal](group__features#gacd392447cd77d22a66f1f7b885f923e1) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Vector4f &plane\_parameters, float &curvature) |
|  | Compute the Least-Squares plane fit for a given set of points, and return the estimated plane parameters together with the surface curvature. [More...](group__features#gacd392447cd77d22a66f1f7b885f923e1) |
|
| template<typename PointT >  |
| bool  | [pcl::computePointNormal](group__features#gab0d3ced73abbf469ed7fd6f53a467226) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Vector4f &plane\_parameters, float &curvature) |
|  | Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. [More...](group__features#gab0d3ced73abbf469ed7fd6f53a467226) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::flipNormalTowardsViewpoint](group__features#ga53df49d690e1cb76cd1f53495508bff1) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, float vp\_x, float vp\_y, float vp\_z, Eigen::Matrix< Scalar, 4, 1 > &normal) |
|  | Flip (in place) the estimated normal of a point towards a given viewpoint. [More...](group__features#ga53df49d690e1cb76cd1f53495508bff1) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::flipNormalTowardsViewpoint](group__features#ga56793b5c90e46de7c0ec910f505bca89) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, float vp\_x, float vp\_y, float vp\_z, Eigen::Matrix< Scalar, 3, 1 > &normal) |
|  | Flip (in place) the estimated normal of a point towards a given viewpoint. [More...](group__features#ga56793b5c90e46de7c0ec910f505bca89) |
|
| template<typename PointT >  |
| void  | [pcl::flipNormalTowardsViewpoint](group__features#gadc981cb599bd53b6f1d66e7fd932e493) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, float vp\_x, float vp\_y, float vp\_z, float &nx, float &ny, float &nz) |
|  | Flip (in place) the estimated normal of a point towards a given viewpoint. [More...](group__features#gadc981cb599bd53b6f1d66e7fd932e493) |
|
| template<typename PointNT >  |
| bool  | [pcl::flipNormalTowardsNormalsMean](group__features#gaa356aaff8bfc2bdc2a472d80402da004) ([pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > const &normal\_cloud, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) const &normal\_indices, Eigen::Vector3f &normal) |
|  | Flip (in place) normal to get the same sign of the mean of the normals specified by normal\_indices. [More...](group__features#gaa356aaff8bfc2bdc2a472d80402da004) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::computePairFeatures](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9) (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, float &f1, float &f2, float &f3, float &f4) |
|  | Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. [More...](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9) |
|
| template<int N>  |
| void  | [pcl::getFeaturePointCloud](group__features#gaa0c7f523d0882cc9e9a4273b0276d4ab) (const std::vector< Eigen::MatrixXf, Eigen::aligned\_allocator< Eigen::MatrixXf > > &histograms2D, [PointCloud](classpcl_1_1_point_cloud)< [Histogram](structpcl_1_1_histogram)< N > > &histogramsPC) |
|  | Transform a list of 2D matrices into a point cloud containing the values in a vector (Histogram<N>). [More...](group__features#gaa0c7f523d0882cc9e9a4273b0276d4ab) |
|
| template<typename PointInT , typename PointNT , typename PointOutT >  |
| Eigen::MatrixXf  | [pcl::computeRSD](group__features#gaa1d42d8d792cf835ece2ee2a7cf7180a) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &surface, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, double max\_dist, int nr\_subdiv, double plane\_radius, PointOutT &radii, bool compute\_histogram=false) |
|  | Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals. [More...](group__features#gaa1d42d8d792cf835ece2ee2a7cf7180a) |
|
| template<typename PointNT , typename PointOutT >  |
| Eigen::MatrixXf  | [pcl::computeRSD](group__features#ga1dba4c4656c23b5fd76e26ec52460a30) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, double max\_dist, int nr\_subdiv, double plane\_radius, PointOutT &radii, bool compute\_histogram=false) |
|  | Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals. [More...](group__features#ga1dba4c4656c23b5fd76e26ec52460a30) |
|

 Function Documentation
----------------------

  computePairFeatures()
---------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::computePairFeatures  | ( | const Eigen::Vector4f &  | *p1*,  |
|  |  | const Eigen::Vector4f &  | *n1*,  |
|  |  | const Eigen::Vector4f &  | *p2*,  |
|  |  | const Eigen::Vector4f &  | *n2*,  |
|  |  | float &  | *f1*,  |
|  |  | float &  | *f2*,  |
|  |  | float &  | *f3*,  |
|  |  | float &  | *f4* |
|  | ) |  |  |

 
 `#include <pcl/features/pfh_tools.h>`

 Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. 

 
Note
For explanations about the features, please see the literature mentioned above (the order of the features might be different). 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | p1 | the first XYZ point  |
| [in] | n1 | the first surface normal  |
| [in] | p2 | the second XYZ point  |
| [in] | n2 | the second surface normal  |
| [out] | f1 | the first angular feature (angle between the projection of nq\_idx and u)  |
| [out] | f2 | the second angular feature (angle between nq\_idx and v)  |
| [out] | f3 | the third angular feature (angle between np\_idx and |p\_idx - q\_idx|)  |
| [out] | f4 | the distance feature (p\_idx - q\_idx) |

   
Note
For efficiency reasons, we assume that the point data passed to the method is finite. 
 Referenced by [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::computePairFeatures()](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00052), [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computePairFeatures()](https://pointclouds.org/documentation/pfh_8hpp_source.html#l00049), [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computePointPFHSignature()](https://pointclouds.org/documentation/pfh_8hpp_source.html#l00061), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00092), and [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature()](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00064).

    computePointNormal() [1/2]
--------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::computePointNormal  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Vector4f &  | *plane\_parameters*,  |
|  |  | float &  | *curvature* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/normal_3d.h>`

 Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| indices | the point cloud indices that need to be used  |
| plane\_parameters | the plane parameters as: a, b, c, d (ax + by + cz + d = 0)  |
| curvature | the estimated surface curvature as a measure of  \[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]  |

   Definition at line [94](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00094) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), and [pcl::solvePlaneParameters()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00052).

    computePointNormal() [2/2]
--------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::computePointNormal  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Vector4f &  | *plane\_parameters*,  |
|  |  | float &  | *curvature* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/normal_3d.h>`

 Compute the Least-Squares plane fit for a given set of points, and return the estimated plane parameters together with the surface curvature. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| plane\_parameters | the plane parameters as: a, b, c, d (ax + by + cz + d = 0)  |
| curvature | the estimated surface curvature as a measure of  \[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]  |

   Definition at line [61](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00061) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::solvePlaneParameters()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00052).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/normal__3d_8hpp_source.html#l00048), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeatureFull()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00836), and [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeaturePart()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l01023).

    computeRSD() [1/2]
------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::MatrixXf pcl::computeRSD  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *surface*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | double  | *max\_dist*,  |
|  |  | int  | *nr\_subdiv*,  |
|  |  | double  | *plane\_radius*,  |
|  |  | PointOutT &  | *radii*,  |
|  |  | bool  | *compute\_histogram* = `false` |
|  | ) |  |  |

 
 `#include <pcl/features/rsd.h>`

 Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | surface | the dataset containing the XYZ points  |
| [in] | normals | the dataset containing the surface normals at each point in the dataset  |
| [in] | indices | the neighborhood point indices in the dataset (first point is used as the reference)  |
| [in] | max\_dist | the upper bound for the considered distance interval  |
| [in] | nr\_subdiv | the number of subdivisions for the considered distance interval  |
| [in] | plane\_radius | maximum radius, above which everything can be considered planar  |
| [in] | radii | the output point of a type that should have r\_min and r\_max fields  |
| [in] | compute\_histogram | if not false, the full neighborhood histogram is provided, usable as a point signature  |

   
Note
: orientation is neglected!  : we neglect points that are outside the specified interval!
 Definition at line [49](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00049) of file [rsd.hpp](https://pointclouds.org/documentation/rsd_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

 Referenced by [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00248).

    computeRSD() [2/2]
------------------

    template<typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::MatrixXf pcl::computeRSD  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *sqr\_dists*,  |
|  |  | double  | *max\_dist*,  |
|  |  | int  | *nr\_subdiv*,  |
|  |  | double  | *plane\_radius*,  |
|  |  | PointOutT &  | *radii*,  |
|  |  | bool  | *compute\_histogram* = `false` |
|  | ) |  |  |

 
 `#include <pcl/features/rsd.h>`

 Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normals | the dataset containing the surface normals at each point in the dataset  |
| [in] | indices | the neighborhood point indices in the dataset (first point is used as the reference)  |
| [in] | sqr\_dists | the squared distances from the first to all points in the neighborhood  |
| [in] | max\_dist | the upper bound for the considered distance interval  |
| [in] | nr\_subdiv | the number of subdivisions for the considered distance interval  |
| [in] | plane\_radius | maximum radius, above which everything can be considered planar  |
| [in] | radii | the output point of a type that should have r\_min and r\_max fields  |
| [in] | compute\_histogram | if not false, the full neighborhood histogram is provided, usable as a point signature  |

   
Note
: orientation is neglected!  : we neglect points that are outside the specified interval!
 Definition at line [149](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00149) of file [rsd.hpp](https://pointclouds.org/documentation/rsd_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    flipNormalTowardsNormalsMean()
------------------------------

    template<typename PointNT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::flipNormalTowardsNormalsMean  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > const &  | *normal\_cloud*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) const &  | *normal\_indices*,  |
|  |  | Eigen::Vector3f &  | *normal* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/normal_3d.h>`

 Flip (in place) normal to get the same sign of the mean of the normals specified by normal\_indices. 

 The method is described in: A. Petrelli, L. Di Stefano, "A repeatable and efficient canonical reference for surface matching", 3DimPVT, 2012 A. Petrelli, L. Di Stefano, "On the repeatability of the local reference frame for partial shape matching", 13th International Conference on Computer Vision (ICCV), 2011

 Normals should be unit vectors. Otherwise the resulting mean would be weighted by the normal norms. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normal\_cloud | Cloud of normals used to compute the mean  |
| [in] | normal\_indices | Indices of normals used to compute the mean  |
| [in] | normal | input [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") to flip. [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") is modified by the function.  |

   
Returns
false if normal\_indices does not contain any valid normal. 
 Definition at line [204](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00204) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    flipNormalTowardsViewpoint() [1/3]
----------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::flipNormalTowardsViewpoint  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | float  | *vp\_x*,  |
|  |  | float  | *vp\_y*,  |
|  |  | float  | *vp\_z*,  |
|  |  | Eigen::Matrix< Scalar, 3, 1 > &  | *normal* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/normal_3d.h>`

 Flip (in place) the estimated normal of a point towards a given viewpoint. 

 
Parameters
 

|  |  |
| --- | --- |
| point | a given point  |
| vp\_x | the X coordinate of the viewpoint  |
| vp\_y | the X coordinate of the viewpoint  |
| vp\_z | the X coordinate of the viewpoint  |
| normal | the plane normal to be flipped  |

   Definition at line [149](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00149) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

    flipNormalTowardsViewpoint() [2/3]
----------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::flipNormalTowardsViewpoint  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | float  | *vp\_x*,  |
|  |  | float  | *vp\_y*,  |
|  |  | float  | *vp\_z*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *normal* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/normal_3d.h>`

 Flip (in place) the estimated normal of a point towards a given viewpoint. 

 
Parameters
 

|  |  |
| --- | --- |
| point | a given point  |
| vp\_x | the X coordinate of the viewpoint  |
| vp\_y | the X coordinate of the viewpoint  |
| vp\_z | the X coordinate of the viewpoint  |
| normal | the plane normal to be flipped  |

   Definition at line [122](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00122) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::NormalEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/normal__3d_8hpp_source.html#l00048), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormal()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00205), and [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormalMirror()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00460).

    flipNormalTowardsViewpoint() [3/3]
----------------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::flipNormalTowardsViewpoint  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | float  | *vp\_x*,  |
|  |  | float  | *vp\_y*,  |
|  |  | float  | *vp\_z*,  |
|  |  | float &  | *nx*,  |
|  |  | float &  | *ny*,  |
|  |  | float &  | *nz* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/normal_3d.h>`

 Flip (in place) the estimated normal of a point towards a given viewpoint. 

 
Parameters
 

|  |  |
| --- | --- |
| point | a given point  |
| vp\_x | the X coordinate of the viewpoint  |
| vp\_y | the X coordinate of the viewpoint  |
| vp\_z | the X coordinate of the viewpoint  |
| nx | the resultant X component of the plane normal  |
| ny | the resultant Y component of the plane normal  |
| nz | the resultant Z component of the plane normal  |

   Definition at line [170](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00170) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

    getFeaturePointCloud()
----------------------

    template<int N>  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getFeaturePointCloud  | ( | const std::vector< Eigen::MatrixXf, Eigen::aligned\_allocator< Eigen::MatrixXf > > &  | *histograms2D*,  |
|  |  | [PointCloud](classpcl_1_1_point_cloud)< [Histogram](structpcl_1_1_histogram)< N > > &  | *histogramsPC* |
|  | ) |  |  |

 
 `#include <pcl/features/rsd.h>`

 Transform a list of 2D matrices into a point cloud containing the values in a vector (Histogram<N>). 

 Can be used to transform the 2D histograms obtained in [RSDEstimation](classpcl_1_1_r_s_d_estimation) into a point cloud. 



Note
The template parameter N should be (greater or) equal to the product of the number of rows and columns. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | histograms2D | the list of neighborhood 2D histograms  |
| [out] | histogramsPC | the dataset containing the linearized matrices  |

   Definition at line [57](https://pointclouds.org/documentation/rsd_8h_source.html#l00057) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 References [pcl::PointCloud< PointT >::begin()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429).

    solvePlaneParameters() [1/2]
----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::solvePlaneParameters  | ( | const Eigen::Matrix3f &  | *covariance\_matrix*,  |
|  |  | const Eigen::Vector4f &  | *point*,  |
|  |  | Eigen::Vector4f &  | *plane\_parameters*,  |
|  |  | float &  | *curvature* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/feature.h>`

 Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature. 

 
Parameters
 

|  |  |
| --- | --- |
| covariance\_matrix | the 3x3 covariance matrix  |
| point | a point lying on the least-squares plane (SSE aligned)  |
| plane\_parameters | the resultant plane parameters as: a, b, c, d (ax + by + cz + d = 0)  |
| curvature | the estimated surface curvature as a measure of  \[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]  |

   Definition at line [52](https://pointclouds.org/documentation/feature_8hpp_source.html#l00052) of file [feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00284), and [pcl::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00061).

    solvePlaneParameters() [2/2]
----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::solvePlaneParameters  | ( | const Eigen::Matrix3f &  | *covariance\_matrix*,  |
|  |  | float &  | *nx*,  |
|  |  | float &  | *ny*,  |
|  |  | float &  | *nz*,  |
|  |  | float &  | *curvature* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/features/feature.h>`

 Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature. 

 
Parameters
 

|  |  |
| --- | --- |
| covariance\_matrix | the 3x3 covariance matrix  |
| nx | the resultant X component of the plane normal  |
| ny | the resultant Y component of the plane normal  |
| nz | the resultant Z component of the plane normal  |
| curvature | the estimated surface curvature as a measure of  \[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]  |

   Definition at line [65](https://pointclouds.org/documentation/feature_8hpp_source.html#l00065) of file [feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html).

 References [pcl::eigen33()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00296).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__features.html>

Detailed Description
--------------------

 
 Overview
==========

 The PCL geometry library contains computational geometry data structures and algorithms.

 
 Requirements
==============

 * [common](group__common)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::LineIterator](classpcl_1_1_line_iterator) |
|  | Organized Index Iterator for iterating over the "pixels" for a given line using the Bresenham algorithm. [More...](classpcl_1_1_line_iterator#details) |
|
| class  | [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >](classpcl_1_1geometry_1_1_mesh_base) |
|  | Base class for the half-edge mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#details) |
|
| class  | [pcl::geometry::VertexAroundVertexCirculator< MeshT >](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator) |
|  | Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the outgoing half-edge (the target). [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#details) |
|
| class  | [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator) |
|  | Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the target). [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#details) |
|
| class  | [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator) |
|  | Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target). [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#details) |
|
| class  | [pcl::geometry::FaceAroundVertexCirculator< MeshT >](classpcl_1_1geometry_1_1_face_around_vertex_circulator) |
|  | Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-edge (the target). [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#details) |
|
| class  | [pcl::geometry::VertexAroundFaceCirculator< MeshT >](classpcl_1_1geometry_1_1_vertex_around_face_circulator) |
|  | Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-edge (the target). [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#details) |
|
| class  | [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator) |
|  | Circulates clockwise around a face and returns an index to the inner half-edge (the target). [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#details) |
|
| class  | [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator) |
|  | Circulates clockwise around a face and returns an index to the outer half-edge (the target). [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#details) |
|
| class  | [pcl::geometry::FaceAroundFaceCirculator< MeshT >](classpcl_1_1geometry_1_1_face_around_face_circulator) |
|  | Circulates clockwise around a face and returns an index to the face of the outer half-edge (the target). [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#details) |
|
| class  | [pcl::geometry::Vertex](classpcl_1_1geometry_1_1_vertex) |
|  | A vertex is a node in the mesh. [More...](classpcl_1_1geometry_1_1_vertex#details) |
|
| class  | [pcl::geometry::HalfEdge](classpcl_1_1geometry_1_1_half_edge) |
|  | An edge is a connection between two vertices. [More...](classpcl_1_1geometry_1_1_half_edge#details) |
|
| class  | [pcl::geometry::Face](classpcl_1_1geometry_1_1_face) |
|  | A face is a closed loop of edges. [More...](classpcl_1_1geometry_1_1_face#details) |
|
| class  | [pcl::geometry::MeshIO< MeshT >](classpcl_1_1geometry_1_1_mesh_i_o) |
|  | Read / write the half-edge mesh from / to a file. [More...](classpcl_1_1geometry_1_1_mesh_i_o#details) |
|
| struct  | [pcl::geometry::DefaultMeshTraits< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >](structpcl_1_1geometry_1_1_default_mesh_traits) |
|  | The mesh traits are used to set up compile time settings for the mesh. [More...](structpcl_1_1geometry_1_1_default_mesh_traits#details) |
|
| class  | [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator) |
|  | base class for iterators on 2-dimensional maps like images/organized clouds etc. [More...](classpcl_1_1_organized_index_iterator#details) |
|
| class  | [pcl::geometry::PolygonMesh< MeshTraitsT >](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_polygon_mesh.html) |
|  | General half-edge mesh that can store any polygon with a minimum number of vertices of 3. [More...](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_polygon_mesh.html#details) |
|
| class  | [pcl::geometry::QuadMesh< MeshTraitsT >](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_quad_mesh.html) |
|  | Half-edge mesh that can only store quads. [More...](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_quad_mesh.html#details) |
|
| class  | [pcl::geometry::TriangleMesh< MeshTraitsT >](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_triangle_mesh.html) |
|  | Half-edge mesh that can only store triangles. [More...](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_triangle_mesh.html#details) |
|




|  |
| --- |
| 
 Typedefs |
| using  | [pcl::geometry::VertexIndex](group__geometry#gaec9e96f2beb27bbaa15c30f822e9bd43) = [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< struct VertexIndexTag > |
|  | Index used to access elements in the half-edge mesh. [More...](group__geometry#gaec9e96f2beb27bbaa15c30f822e9bd43) |
|
| using  | [pcl::geometry::HalfEdgeIndex](group__geometry#ga87ab897bc81a599385571e17c2092eeb) = [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< struct HalfEdgeIndexTag > |
|  | Index used to access elements in the half-edge mesh. [More...](group__geometry#ga87ab897bc81a599385571e17c2092eeb) |
|
| using  | [pcl::geometry::EdgeIndex](group__geometry#ga741132350bddeb82e260116a5baa64be) = [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< struct EdgeIndexTag > |
|  | Index used to access elements in the half-edge mesh. [More...](group__geometry#ga741132350bddeb82e260116a5baa64be) |
|
| using  | [pcl::geometry::FaceIndex](group__geometry#ga5c9113986683da0fcf84f9853257e1fa) = [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< struct FaceIndexTag > |
|  | Index used to access elements in the half-edge mesh. [More...](group__geometry#ga5c9113986683da0fcf84f9853257e1fa) |
|




|  |
| --- |
| 
 Functions |
| Eigen::Vector3f  | [pcl::geometry::projectedAsUnitVector](group__geometry#ga46f9ab7d56de606cd0bec53c370211dd) (Eigen::Vector3f const &point, Eigen::Vector3f const &plane\_origin, Eigen::Vector3f const &plane\_normal) |
|  | Given a plane defined by plane\_origin and plane\_normal, find the unit vector pointing from plane\_origin to the projection of point on the plane. [More...](group__geometry#ga46f9ab7d56de606cd0bec53c370211dd) |
|
| Eigen::Vector3f  | [pcl::geometry::randomOrthogonalAxis](group__geometry#ga7bf1a264b0b630da6582774af36eb2cd) (Eigen::Vector3f const &axis) |
|  | Define a random unit vector orthogonal to axis. [More...](group__geometry#ga7bf1a264b0b630da6582774af36eb2cd) |
|
| template<class MeshT >  |
| void  | [pcl::geometry::getBoundBoundaryHalfEdges](group__geometry#gaae9e4587073ce5ee06a3ab3ccdf0316b) (const MeshT &mesh, std::vector< typename MeshT::HalfEdgeIndices > &boundary\_he\_collection, const std::size\_t expected\_size=3) |
|  | Get a collection of boundary half-edges for the input mesh. [More...](group__geometry#gaae9e4587073ce5ee06a3ab3ccdf0316b) |
|
| template<class HalfEdgeMeshT >  |
| void  | [pcl::geometry::toFaceVertexMesh](group__geometry#ga1ac38c331420465fdd1a2884d2b9409b) (const HalfEdgeMeshT &half\_edge\_mesh, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &face\_vertex\_mesh) |
|  | Convert a half-edge mesh to a face-vertex mesh. [More...](group__geometry#ga1ac38c331420465fdd1a2884d2b9409b) |
|
| template<class HalfEdgeMeshT >  |
| int  | [pcl::geometry::toHalfEdgeMesh](group__geometry#ga57ad6727424a45564571852dd0762a1c) (const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &face\_vertex\_mesh, HalfEdgeMeshT &half\_edge\_mesh) |
|  | Convert a face-vertex mesh to a half-edge mesh. [More...](group__geometry#ga57ad6727424a45564571852dd0762a1c) |
|

 Typedef Documentation
---------------------

  EdgeIndex
---------

   

|  |
| --- |
| using [pcl::geometry::EdgeIndex](group__geometry#ga741132350bddeb82e260116a5baa64be) = typedef [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)<struct EdgeIndexTag> |

 
 `#include <pcl/geometry/mesh_indices.h>`

 Index used to access elements in the half-edge mesh. 

 It is basically just a wrapper around an integer with a few added methods. 



Author
Martin Saelzle 
 Definition at line [205](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00205) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    FaceIndex
---------

   

|  |
| --- |
| using [pcl::geometry::FaceIndex](group__geometry#ga5c9113986683da0fcf84f9853257e1fa) = typedef [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)<struct FaceIndexTag> |

 
 `#include <pcl/geometry/mesh_indices.h>`

 Index used to access elements in the half-edge mesh. 

 It is basically just a wrapper around an integer with a few added methods. 



Author
Martin Saelzle 
 Definition at line [211](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00211) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    HalfEdgeIndex
-------------

   

|  |
| --- |
| using [pcl::geometry::HalfEdgeIndex](group__geometry#ga87ab897bc81a599385571e17c2092eeb) = typedef [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)<struct HalfEdgeIndexTag> |

 
 `#include <pcl/geometry/mesh_indices.h>`

 Index used to access elements in the half-edge mesh. 

 It is basically just a wrapper around an integer with a few added methods. 



Author
Martin Saelzle 
 Definition at line [199](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00199) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    VertexIndex
-----------

   

|  |
| --- |
| using [pcl::geometry::VertexIndex](group__geometry#gaec9e96f2beb27bbaa15c30f822e9bd43) = typedef [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)<struct VertexIndexTag> |

 
 `#include <pcl/geometry/mesh_indices.h>`

 Index used to access elements in the half-edge mesh. 

 It is basically just a wrapper around an integer with a few added methods. 



Author
Martin Saelzle 
 Definition at line [193](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00193) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

   Function Documentation
----------------------

  getBoundBoundaryHalfEdges()
---------------------------

    template<class MeshT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::geometry::getBoundBoundaryHalfEdges  | ( | const MeshT &  | *mesh*,  |
|  |  | std::vector< typename MeshT::HalfEdgeIndices > &  | *boundary\_he\_collection*,  |
|  |  | const std::size\_t  | *expected\_size* = `3` |
|  | ) |  |  |

 
 `#include <pcl/geometry/get_boundary.h>`

 Get a collection of boundary half-edges for the input mesh. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mesh | The input mesh.  |
| [out] | boundary\_he\_collection | Collection of boundary half-edges. Each element in the vector is one connected boundary. The whole boundary is the union of all elements.  |
| [in] | expected\_size | If you already know the size of the longest boundary you can tell this here. Defaults to 3 (minimum possible boundary).  |

   
Author
Martin Saelzle 
 Definition at line [60](https://pointclouds.org/documentation/get__boundary_8h_source.html#l00060) of file [get\_boundary.h](https://pointclouds.org/documentation/get__boundary_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::toEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00224).

    projectedAsUnitVector()
-----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Vector3f pcl::geometry::projectedAsUnitVector  | ( | Eigen::Vector3f const &  | *point*,  |
|  |  | Eigen::Vector3f const &  | *plane\_origin*,  |
|  |  | Eigen::Vector3f const &  | *plane\_normal* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/geometry.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h.html)>`

 Given a plane defined by plane\_origin and plane\_normal, find the unit vector pointing from plane\_origin to the projection of point on the plane. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | Point projected on the plane  |
| [in] | plane\_origin | The plane origin  |
| [in] | plane\_normal | The plane normal  |

   
Returns
unit vector pointing from plane\_origin to the projection of point on the plane. 
 Definition at line [115](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00115) of file [geometry.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html).

 References [pcl::geometry::project()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00081).

 Referenced by [pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::computePointLRF()](https://pointclouds.org/documentation/flare_8hpp_source.html#l00110).

    randomOrthogonalAxis()
----------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Eigen::Vector3f pcl::geometry::randomOrthogonalAxis  | ( | Eigen::Vector3f const &  | *axis* | ) |  |

 | inline |

 
 `#include <[pcl/common/geometry.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h.html)>`

 Define a random unit vector orthogonal to axis. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | axis | [Axis](structpcl_1_1_axis "A point structure representing an Axis using its normal coordinates.") |

   
Returns
random unit vector orthogonal to axis 
 Definition at line [134](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00134) of file [geometry.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html).

 Referenced by [pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::computePointLRF()](https://pointclouds.org/documentation/board_8hpp_source.html#l00183), and [pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::computePointLRF()](https://pointclouds.org/documentation/flare_8hpp_source.html#l00110).

    toFaceVertexMesh()
------------------

    template<class HalfEdgeMeshT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::geometry::toFaceVertexMesh  | ( | const HalfEdgeMeshT &  | *half\_edge\_mesh*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *face\_vertex\_mesh* |
|  | ) |  |  |

 
 `#include <pcl/geometry/mesh_conversion.h>`

 Convert a half-edge mesh to a face-vertex mesh. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | half\_edge\_mesh | The input mesh.  |
| [out] | face\_vertex\_mesh | The output mesh.  |

   
Author
Martin Saelzle 
 Definition at line [56](https://pointclouds.org/documentation/mesh__conversion_8h_source.html#l00056) of file [mesh\_conversion.h](https://pointclouds.org/documentation/mesh__conversion_8h_source.html).

 References [pcl::PolygonMesh::cloud](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00020), [pcl::PolygonMesh::polygons](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00022), [pcl::toPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00240), and [pcl::Vertices::vertices](https://pointclouds.org/documentation/_vertices_8h_source.html#l00018).

    toHalfEdgeMesh()
----------------

    template<class HalfEdgeMeshT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::geometry::toHalfEdgeMesh  | ( | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *face\_vertex\_mesh*,  |
|  |  | HalfEdgeMeshT &  | *half\_edge\_mesh* |
|  | ) |  |  |

 
 `#include <pcl/geometry/mesh_conversion.h>`

 Convert a face-vertex mesh to a half-edge mesh. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | face\_vertex\_mesh | The input mesh.  |
| [out] | half\_edge\_mesh | The output mesh. It must have data associated with the vertices.  |

   
Returns
The number of faces that could NOT be added to the half-edge mesh. 
 
Author
Martin Saelzle 
 Definition at line [88](https://pointclouds.org/documentation/mesh__conversion_8h_source.html#l00088) of file [mesh\_conversion.h](https://pointclouds.org/documentation/mesh__conversion_8h_source.html).

 References [pcl::PolygonMesh::cloud](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00020), [pcl::fromPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00167), and [pcl::PolygonMesh::polygons](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00022).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__geometry.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_kdtree** library provides the kd-tree data-structure, using [FLANN](http://www.cs.ubc.ca/research/flann/), that allows for fast [nearest neighbor searches](https://en.wikipedia.org/wiki/Nearest_neighbor_search).

 A [Kd-tree](https://en.wikipedia.org/wiki/Kd-tree) (*k*-dimensional tree) is a space-partitioning data structure that stores a set of k-dimensional points in a tree structure that enables efficient range searches and nearest neighbor searches. Nearest neighbor searches are a core operation when working with point cloud data and can be used to find correspondences between groups of points or feature descriptors or to define the local neighborhood around a point or points.

  ![](http://www.pointclouds.org/assets/images/contents/documentation/kdtree_mug.png)  
 Requirements
==============

 * [common](group__common)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::KdTree< PointT >](classpcl_1_1_kd_tree) |
|  | [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations.") represents the base spatial locator class for kd-tree implementations. [More...](classpcl_1_1_kd_tree#details) |
|
| class  | [pcl::KdTreeFLANN< PointT, Dist >](classpcl_1_1_kd_tree_f_l_a_n_n) |
|  | [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures.") is a generic type of 3D spatial locator using kD-tree structures. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#details) |
|




|  |
| --- |
| 
 Functions |
| template<typename PointT >  |
| void  | [pcl::getApproximateIndices](group__kdtree#ga23694bb4b13eb2a676c45bd9e16f4434) (const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &cloud\_in, const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &cloud\_ref, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Get a set of approximate indices for a given point cloud into a reference point cloud. [More...](group__kdtree#ga23694bb4b13eb2a676c45bd9e16f4434) |
|
| template<typename Point1T , typename Point2T >  |
| void  | [pcl::getApproximateIndices](group__kdtree#gaba8490ab19db1cd390120b6dbd5d5df8) (const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< Point1T >::ConstPtr &cloud\_in, const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< Point2T >::ConstPtr &cloud\_ref, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Get a set of approximate indices for a given point cloud into a reference point cloud. [More...](group__kdtree#gaba8490ab19db1cd390120b6dbd5d5df8) |
|

 Function Documentation
----------------------

  getApproximateIndices() [1/2]
-----------------------------

    template<typename Point1T , typename Point2T >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getApproximateIndices  | ( | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< Point1T >::ConstPtr &  | *cloud\_in*,  |
|  |  | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< Point2T >::ConstPtr &  | *cloud\_ref*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* |
|  | ) |  |  |

 
 `#include <pcl/kdtree/io.h>`

 Get a set of approximate indices for a given point cloud into a reference point cloud. 

 The coordinates of the two point clouds can differ. The method uses an internal [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations.") for finding the closest neighbors from *cloud\_in* in *cloud\_ref*.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | cloud\_ref | the reference point cloud dataset  |
| [out] | indices | the resultant set of nearest neighbor indices of *cloud\_in* in *cloud\_ref* |

   Definition at line [47](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html#l00047) of file [io.hpp](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html).

 References [pcl::KdTree< PointT >::nearestKSearchT()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00172), [pcl::KdTreeFLANN< PointT, Dist >::setInputCloud()](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00102), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    getApproximateIndices() [2/2]
-----------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getApproximateIndices  | ( | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &  | *cloud\_in*,  |
|  |  | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &  | *cloud\_ref*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* |
|  | ) |  |  |

 
 `#include <pcl/kdtree/io.h>`

 Get a set of approximate indices for a given point cloud into a reference point cloud. 

 The coordinates of the two point clouds can differ. The method uses an internal [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations.") for finding the closest neighbors from *cloud\_in* in *cloud\_ref*.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | cloud\_ref | the reference point cloud dataset  |
| [out] | indices | the resultant set of nearest neighbor indices of *cloud\_in* in *cloud\_ref* |

   Definition at line [67](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html#l00067) of file [io.hpp](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html).

 References [pcl::KdTreeFLANN< PointT, Dist >::nearestKSearch()](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00237), [pcl::KdTreeFLANN< PointT, Dist >::setInputCloud()](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00102), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__kdtree.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_keypoints** library contains implementations of two point cloud keypoint detection algorithms. Keypoints (also referred to as [interest points](https://en.wikipedia.org/wiki/Interest_point_detection)) are points in an image or point cloud that are stable, distinctive, and can be identified using a well-defined detection criterion. Typically, the number of interest points in a point cloud will be much smaller than the total number of points in the cloud, and when used in combination with local feature descriptors at each keypoint, the keypoints and descriptors can be used to form a compact—yet descriptive—representation of the original data.

 
 Requirements
==============

 * [common](group__common)
* [search](https://pointclouds.org/documentation/group__search.html)
* [kdtree](group__kdtree)
* [octree](group__octree)
* [range\_image](classpcl_1_1_range_image)
* [features](group__features)
* [filters](group__filters)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
|  | Abstract detector class for AGAST corner point detectors. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#details) |
|
| class  | [pcl::keypoints::agast::AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s) |
|  | Detector class for AGAST corner point detector (7\_12s). [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#details) |
|
| class  | [pcl::keypoints::agast::AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8) |
|  | Detector class for AGAST corner point detector (5\_8). [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#details) |
|
| class  | [pcl::keypoints::agast::OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16) |
|  | Detector class for AGAST corner point detector (OAST 9\_16). [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#details) |
|
| class  | [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >](classpcl_1_1_agast_keypoint2_d_base) |
|  | Detects 2D AGAST corner points. [More...](classpcl_1_1_agast_keypoint2_d_base#details) |
|
| class  | [pcl::AgastKeypoint2D< PointInT, PointOutT >](classpcl_1_1_agast_keypoint2_d) |
|  | Detects 2D AGAST corner points. [More...](classpcl_1_1_agast_keypoint2_d#details) |
|
| class  | [pcl::AgastKeypoint2D< pcl::PointXYZ, pcl::PointUV >](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4) |
|  | Detects 2D AGAST corner points. [More...](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#details) |
|
| class  | [pcl::BriskKeypoint2D< PointInT, PointOutT, IntensityT >](classpcl_1_1_brisk_keypoint2_d) |
|  | Detects BRISK interest points based on the original code and paper reference by. [More...](classpcl_1_1_brisk_keypoint2_d#details) |
|
| class  | [pcl::HarrisKeypoint2D< PointInT, PointOutT, IntensityT >](classpcl_1_1_harris_keypoint2_d) |
|  | [HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d "HarrisKeypoint2D detects Harris corners family points.") detects Harris corners family points. [More...](classpcl_1_1_harris_keypoint2_d#details) |
|
| class  | [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >](classpcl_1_1_harris_keypoint3_d) |
|  | [HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d "HarrisKeypoint3D uses the idea of 2D Harris keypoints, but instead of using image gradients,...") uses the idea of 2D Harris keypoints, but instead of using image gradients, it uses surface normals. [More...](classpcl_1_1_harris_keypoint3_d#details) |
|
| class  | [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >](classpcl_1_1_harris_keypoint6_d) |
|  | [Keypoint](classpcl_1_1_keypoint "Keypoint represents the base class for key points.") detector for detecting corners in 3D (XYZ), 2D (intensity) AND mixed versions of these. [More...](classpcl_1_1_harris_keypoint6_d#details) |
|
| class  | [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >](classpcl_1_1_i_s_s_keypoint3_d) |
|  | [ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d "ISSKeypoint3D detects the Intrinsic Shape Signatures keypoints for a given point cloud.") detects the Intrinsic Shape Signatures keypoints for a given point cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#details) |
|
| class  | [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
|  | **[Keypoint](classpcl_1_1_keypoint "Keypoint represents the base class for key points.")** represents the base class for key points. [More...](classpcl_1_1_keypoint#details) |
|
| class  | [pcl::NarfKeypoint](classpcl_1_1_narf_keypoint) |
|  | **NARF** ([Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Aligned Radial [Feature](classpcl_1_1_feature "Feature represents the base feature class.")) keypoints. [More...](classpcl_1_1_narf_keypoint#details) |
|
| class  | [pcl::SIFTKeypoint< PointInT, PointOutT >](classpcl_1_1_s_i_f_t_keypoint) |
|  | **[SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint "SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...")** detects the Scale Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform keypoints for a given point cloud dataset containing points and intensity. [More...](classpcl_1_1_s_i_f_t_keypoint#details) |
|
| class  | [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >](classpcl_1_1_s_u_s_a_n_keypoint) |
|  | [SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint "SUSANKeypoint implements a RGB-D extension of the SUSAN detector including normal directions variatio...") implements a RGB-D extension of the SUSAN detector including normal directions variation in top of intensity variation. [More...](classpcl_1_1_s_u_s_a_n_keypoint#details) |
|
| class  | [pcl::TrajkovicKeypoint2D< PointInT, PointOutT, IntensityT >](classpcl_1_1_trajkovic_keypoint2_d) |
|  | [TrajkovicKeypoint2D](classpcl_1_1_trajkovic_keypoint2_d "TrajkovicKeypoint2D implements Trajkovic and Hedley corner detector on organized point cloud using in...") implements Trajkovic and Hedley corner detector on organized point cloud using intensity information. [More...](classpcl_1_1_trajkovic_keypoint2_d#details) |
|
| class  | [pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >](classpcl_1_1_trajkovic_keypoint3_d) |
|  | [TrajkovicKeypoint3D](classpcl_1_1_trajkovic_keypoint3_d "TrajkovicKeypoint3D implements Trajkovic and Hedley corner detector on point cloud using geometric in...") implements Trajkovic and Hedley corner detector on point cloud using geometric information. [More...](classpcl_1_1_trajkovic_keypoint3_d#details) |
|




|  |
| --- |
| 
 Functions |
| std::ostream &  | [pcl::operator<<](group__keypoints#gada721c18f588e62bda0c25a7931c97be) (std::ostream &os, const [NarfKeypoint::Parameters](structpcl_1_1_narf_keypoint_1_1_parameters) &p) |
|

 Function Documentation
----------------------

  operator<<()
------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::ostream& pcl::operator<<  | ( | std::ostream &  | *os*,  |
|  |  | const [NarfKeypoint::Parameters](structpcl_1_1_narf_keypoint_1_1_parameters) &  | *p* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/keypoints/narf_keypoint.h>`

 Definition at line [196](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00196) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

 References [pcl::NarfKeypoint::Parameters::distance\_for\_additional\_points](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00099), [pcl::NarfKeypoint::Parameters::min\_distance\_between\_interest\_points](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00085), [pcl::NarfKeypoint::Parameters::min\_interest\_value](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00092), [PVARC](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00272), [PVARN](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00268), and [pcl::NarfKeypoint::Parameters::support\_size](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00083).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__keypoints.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_octree** library provides efficient methods for creating a hierarchical tree data structure from point cloud data. This enables spatial partitioning, downsampling and search operations on the point data set. Each octree node has either eight children or no children. The root node describes a cubic bounding box which encapsulates all points. At every tree level, this space becomes subdivided by a factor of 2 which results in an increased voxel resolution.

 The **pcl\_octree** implementation provides efficient nearest neighbor search routines, such as "Neighbors within Voxel Search”, “K Nearest Neighbor Search” and “Neighbors within Radius Search”. It automatically adjusts its dimension to the point data set. A set of leaf node classes provide additional functionality, such as spacial "occupancy" and "point density per voxel" checks. Functions for serialization and deserialization enable to efficiently encode the octree structure into a binary format. Furthermore, a memory pool implementation reduces expensive memory allocation and deallocation operations in scenarios where octrees needs to be created at high rate.

 The following figure illustrates the voxel bounding boxes of an octree nodes at lowest tree level. The octree voxels are surrounding every 3D point from the bunny's surface. The red dots represent the point data. This image is created with the octree\_viewer (visualization/tools/octree\_viewer).

 For examples how to use the **pcl\_octree** library, please visit the [pcl tutorial page](http://www.pointclouds.org/documentation/tutorials/).

  ![](http://www.pointclouds.org/assets/images/contents/documentation/octree_bunny.png)  
 Requirements
==============

 * [common](group__common)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree2_buf_base) |
|  | **Octree** double buffer class [More...](classpcl_1_1octree_1_1_octree2_buf_base#details) |
|
| class  | [pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree_base) |
|  | Octree class. [More...](classpcl_1_1octree_1_1_octree_base#details) |
|
| class  | [pcl::octree::OctreeIteratorBase< OctreeT >](classpcl_1_1octree_1_1_octree_iterator_base) |
|  | **Abstract** octree iterator class [More...](classpcl_1_1octree_1_1_octree_iterator_base#details) |
|
| class  | [pcl::octree::OctreeDepthFirstIterator< OctreeT >](classpcl_1_1octree_1_1_octree_depth_first_iterator) |
|  | **Octree** iterator class [More...](classpcl_1_1octree_1_1_octree_depth_first_iterator#details) |
|
| class  | [pcl::octree::OctreeBreadthFirstIterator< OctreeT >](classpcl_1_1octree_1_1_octree_breadth_first_iterator) |
|  | **Octree** iterator class [More...](classpcl_1_1octree_1_1_octree_breadth_first_iterator#details) |
|
| class  | [pcl::octree::OctreeFixedDepthIterator< OctreeT >](classpcl_1_1octree_1_1_octree_fixed_depth_iterator) |
|  | **Octree** iterator class [More...](classpcl_1_1octree_1_1_octree_fixed_depth_iterator#details) |
|
| class  | [pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >](classpcl_1_1octree_1_1_octree_leaf_node_depth_first_iterator) |
|  | Octree leaf node iterator class. [More...](classpcl_1_1octree_1_1_octree_leaf_node_depth_first_iterator#details) |
|
| class  | [pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT >](classpcl_1_1octree_1_1_octree_leaf_node_breadth_first_iterator) |
|  | Octree leaf node iterator class. [More...](classpcl_1_1octree_1_1_octree_leaf_node_breadth_first_iterator#details) |
|
| class  | [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >](classpcl_1_1octree_1_1_octree_point_cloud) |
|  | **Octree** pointcloud class [More...](classpcl_1_1octree_1_1_octree_point_cloud#details) |
|
| class  | [pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree_point_cloud_adjacency) |
|  | **Octree** pointcloud voxel class which maintains adjacency information for its voxels. [More...](classpcl_1_1octree_1_1_octree_point_cloud_adjacency#details) |
|
| class  | [pcl::octree::OctreePointCloudChangeDetector< PointT, LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree_point_cloud_change_detector) |
|  | **Octree** pointcloud change detector class [More...](classpcl_1_1octree_1_1_octree_point_cloud_change_detector#details) |
|
| class  | [pcl::octree::OctreePointCloudDensity< PointT, LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree_point_cloud_density) |
|  | **Octree** pointcloud density class [More...](classpcl_1_1octree_1_1_octree_point_cloud_density#details) |
|
| class  | [pcl::octree::OctreePointCloudOccupancy< PointT, LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree_point_cloud_occupancy) |
|  | **Octree** pointcloud occupancy class [More...](classpcl_1_1octree_1_1_octree_point_cloud_occupancy#details) |
|
| class  | [pcl::octree::OctreePointCloudPointVector< PointT, LeafContainerT, BranchContainerT, OctreeT >](classpcl_1_1octree_1_1_octree_point_cloud_point_vector) |
|  | **Octree** pointcloud point vector class [More...](classpcl_1_1octree_1_1_octree_point_cloud_point_vector#details) |
|
| class  | [pcl::octree::OctreePointCloudSinglePoint< PointT, LeafContainerT, BranchContainerT, OctreeT >](classpcl_1_1octree_1_1_octree_point_cloud_single_point) |
|  | **Octree** pointcloud single point class [More...](classpcl_1_1octree_1_1_octree_point_cloud_single_point#details) |
|
| class  | [pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >](classpcl_1_1octree_1_1_octree_point_cloud_voxel_centroid) |
|  | **Octree** pointcloud voxel centroid class [More...](classpcl_1_1octree_1_1_octree_point_cloud_voxel_centroid#details) |
|
| class  | [pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >](https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_search.html) |
|  | **Octree** pointcloud search class [More...](https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_search.html#details) |
|

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__octree.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_outofcore** library provides an octree data structure for point clouds that are too large to be stored in main memory. The data are located instead in an directory-based octree hierary on some secondary storage (disk) medium. **pcl\_outofcore** provides the framework for constructing and traversing outofcore octrees, a command-line tool **pcl\_outofcore\_process** for converting a set of registered PCD files to outofcore octree, and **pcl\_outofcore\_viewer** for rendering outofcore octrees.

 **pcl\_outofcore** provides an interface to construct and query outofcore octrees via OutofcoreOctreeBase. The out of core octree can be used with any PCLPointCloud2 with point types containing x, y and z fields. No internal checking is done to verify this. On the other hand, point clouds do not need to be filtered for NaN entries; the library will automatically ignore NaN points in the insertion methods.

 The average user may not need to do any development with this library, but rather use the command-line tool **pcl\_outofcore\_process** to construct an outofcore octree, and **pcl\_outofcore\_viewer** to view it.

 For those interested in developing software with **pcl\_outofcore**, the functionality of the OutofcoreOctreeBase class provides methods for insertion (**addPointCloud**), and querying bounding boxes (**queryBoundingBox**). Furthermore **OutofcoreDepthFirstIterator** provides an iterator for the entire tree that gives direct access to the in-memory node datastructre, **OutofcoreOctreeBaseNode**. Please note that this library is still under development, and that interested users should use the **PCLPointCloud2**-based insertion and query methods.

 
 Example Usage
===============

 
 Requirements
==============

 * [common](group__common)
* [io](group__io)
* [visualization](group__visualization) (for pcl\_outofcore\_viewer)
* [filters](group__filters)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::outofcore::OutofcoreIteratorBase< PointT, ContainerT >](classpcl_1_1outofcore_1_1_outofcore_iterator_base) |
|  | Abstract octree iterator class. [More...](classpcl_1_1outofcore_1_1_outofcore_iterator_base#details) |
|
| class  | [AbstractMetadata](https://pointclouds.org/documentation/class_abstract_metadata.html) |
|  | Abstract interface for outofcore metadata file types. [More...](https://pointclouds.org/documentation/class_abstract_metadata.html#details) |
|
| class  | [pcl::outofcore::OutofcoreOctreeBase< ContainerT, PointT >](classpcl_1_1outofcore_1_1_outofcore_octree_base) |
|  | This code defines the octree used for point storage at Urban Robotics. [More...](classpcl_1_1outofcore_1_1_outofcore_octree_base#details) |
|
| class  | [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >](classpcl_1_1outofcore_1_1_outofcore_octree_base_node) |
|  | [OutofcoreOctreeBaseNode](classpcl_1_1outofcore_1_1_outofcore_octree_base_node "OutofcoreOctreeBaseNode Class internally representing nodes of an outofcore octree,...") Class internally representing nodes of an outofcore octree, with accessors to its data via the [pcl::outofcore::OutofcoreOctreeDiskContainer](classpcl_1_1outofcore_1_1_outofcore_octree_disk_container) class or [pcl::outofcore::OutofcoreOctreeRamContainer](classpcl_1_1outofcore_1_1_outofcore_octree_ram_container) class, whichever it is templated against.  [More...](classpcl_1_1outofcore_1_1_outofcore_octree_base_node#details) |
|
| class  | [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >](classpcl_1_1outofcore_1_1_outofcore_octree_disk_container) |
|  | Class responsible for serialization and deserialization of out of core point data. [More...](classpcl_1_1outofcore_1_1_outofcore_octree_disk_container#details) |
|
| class  | [pcl::outofcore::OutofcoreOctreeRamContainer< PointT >](classpcl_1_1outofcore_1_1_outofcore_octree_ram_container) |
|  | Storage container class which the outofcore octree base is templated against. [More...](classpcl_1_1outofcore_1_1_outofcore_octree_ram_container#details) |
|
| class  | [pcl::outofcore::OutofcoreOctreeBaseMetadata](classpcl_1_1outofcore_1_1_outofcore_octree_base_metadata) |
|  | Encapsulated class to read JSON metadata into memory, and write the JSON metadata associated with the octree root node. [More...](classpcl_1_1outofcore_1_1_outofcore_octree_base_metadata#details) |
|
| class  | [pcl::outofcore::OutofcoreBreadthFirstIterator< PointT, ContainerT >](classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator) |
|
| class  | [pcl::outofcore::OutofcoreDepthFirstIterator< PointT, ContainerT >](classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator) |
|
| class  | [pcl::outofcore::OutofcoreOctreeNodeMetadata](classpcl_1_1outofcore_1_1_outofcore_octree_node_metadata) |
|  | Encapsulated class to read JSON metadata into memory, and write the JSON metadata for each node. [More...](classpcl_1_1outofcore_1_1_outofcore_octree_node_metadata#details) |
|

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__outofcore.html>

Detailed Description
--------------------

 
 Overview
==========

 The PCL recognition module contains algorithms used for [Object](https://pointclouds.org/documentation/class_object.html) Recognition applications.

 
 Requirements
==============

 * [common](group__common)
* [search](https://pointclouds.org/documentation/group__search.html)
* [features](group__features)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::CorrespondenceGrouping< PointModelT, PointSceneT >](classpcl_1_1_correspondence_grouping) |
|  | Abstract base class for [Correspondence](structpcl_1_1_correspondence "Correspondence represents a match between two entities (e.g., points, descriptors,...") Grouping algorithms. [More...](classpcl_1_1_correspondence_grouping#details) |
|
| class  | [pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >](classpcl_1_1_geometric_consistency_grouping) |
|  | Class implementing a 3D correspondence grouping enforcing geometric consistency among feature correspondences. [More...](classpcl_1_1_geometric_consistency_grouping#details) |
|
| class  | [pcl::recognition::HoughSpace3D](classpcl_1_1recognition_1_1_hough_space3_d) |
|  | [HoughSpace3D](classpcl_1_1recognition_1_1_hough_space3_d "HoughSpace3D is a 3D voting space.") is a 3D voting space. [More...](classpcl_1_1recognition_1_1_hough_space3_d#details) |
|
| class  | [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >](classpcl_1_1_hough3_d_grouping) |
|  | Class implementing a 3D correspondence grouping algorithm that can deal with multiple instances of a model template found into a given scene. [More...](classpcl_1_1_hough3_d_grouping#details) |
|
| class  | [pcl::CRHAlignment< PointT, nbins\_ >](classpcl_1_1_c_r_h_alignment) |
|  | [CRHAlignment](classpcl_1_1_c_r_h_alignment "CRHAlignment uses two Camera Roll Histograms (CRH) to find the roll rotation that aligns both views.") uses two [Camera](https://pointclouds.org/documentation/class_camera.html) Roll Histograms (CRH) to find the roll rotation that aligns both views. [More...](classpcl_1_1_c_r_h_alignment#details) |
|
| class  | [pcl::GlobalHypothesesVerification< ModelT, SceneT >](classpcl_1_1_global_hypotheses_verification) |
|  | A hypothesis verification method proposed in "A Global Hypotheses Verification Method for 3D Object Recognition", A. [More...](classpcl_1_1_global_hypotheses_verification#details) |
|
| class  | [pcl::PapazovHV< ModelT, SceneT >](classpcl_1_1_papazov_h_v) |
|  | A hypothesis verification method proposed in "An Efficient RANSAC for 3D Object Recognition in Noisy and Occluded Scenes", C. [More...](classpcl_1_1_papazov_h_v#details) |
|
| class  | [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >](classpcl_1_1ism_1_1_implicit_shape_model_estimation) |
|  | This class implements Implicit Shape Model algorithm described in "Hough Transforms and 3D SURF for robust three dimensional classication" by Jan Knopp1, Mukta Prasad, Geert Willems1, Radu Timofte, and Luc Van Gool. [More...](classpcl_1_1ism_1_1_implicit_shape_model_estimation#details) |
|
| class  | [pcl::LINEMOD](classpcl_1_1_l_i_n_e_m_o_d) |
|  | Template matching using the [LINEMOD](classpcl_1_1_l_i_n_e_m_o_d "Template matching using the LINEMOD approach.") approach. [More...](classpcl_1_1_l_i_n_e_m_o_d#details) |
|
| class  | [pcl::QuantizableModality](classpcl_1_1_quantizable_modality) |
|  | Interface for a quantizable modality. [More...](classpcl_1_1_quantizable_modality#details) |
|
| class  | [pcl::recognition::ObjRecRANSAC](classpcl_1_1recognition_1_1_obj_rec_r_a_n_s_a_c) |
|  | This is a RANSAC-based 3D object recognition method. [More...](classpcl_1_1recognition_1_1_obj_rec_r_a_n_s_a_c#details) |
|
| class  | [pcl::recognition::ORROctree](classpcl_1_1recognition_1_1_o_r_r_octree) |
|  | That's a very specialized and simple octree class. [More...](classpcl_1_1recognition_1_1_o_r_r_octree#details) |
|
| class  | [pcl::recognition::RotationSpace](classpcl_1_1recognition_1_1_rotation_space) |
|  | This is a class for a discrete representation of the rotation space based on the axis-angle representation. [More...](classpcl_1_1recognition_1_1_rotation_space#details) |
|
| class  | [pcl::SurfaceNormalModality< PointInT >](classpcl_1_1_surface_normal_modality) |
|  | Modality based on surface normals. [More...](classpcl_1_1_surface_normal_modality#details) |
|

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__recognition.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_surface** library deals with reconstructing the original surfaces from 3D scans. Depending on the task at hand, this can be for example the hull, a mesh representation or a smoothed/resampled surface with normals.

 Smoothing and resampling can be important if the cloud is noisy, or if it is composed of multiple scans that are not aligned perfectly. The complexity of the surface estimation can be adjusted, and normals can be estimated in the same step if needed.

  ![](http://www.pointclouds.org/documentation/tutorials/_images/resampling_1.jpg)  Meshing is a general way to create a surface out of points, and currently there are two algorithms provided: a very fast triangulation of the original points, and a slower meshing that does smoothing and hole filling as well.

  ![](http://www.pointclouds.org/assets/images/contents/documentation/surface_meshing.png)  Creating a convex or concave hull is useful for example when there is a need for a simplified surface representation or when boundaries need to be extracted.

  ![](http://www.pointclouds.org/assets/images/contents/documentation/surface_hull.png)  Please visit the tutorials on <http://www.pointclouds.org> for more information.

 
 Requirements
==============

 * [common](group__common)
* [search](https://pointclouds.org/documentation/group__search.html)
* [kdtree](group__kdtree)
* [octree](group__octree)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::ConcaveHull< PointInT >](classpcl_1_1_concave_hull) |
|  | **[ConcaveHull](classpcl_1_1_concave_hull "ConcaveHull (alpha shapes) using libqhull library.")** (alpha shapes) using libqhull library. [More...](classpcl_1_1_concave_hull#details) |
|
| class  | [pcl::ConvexHull< PointInT >](classpcl_1_1_convex_hull) |
|  | **[ConvexHull](classpcl_1_1_convex_hull "ConvexHull using libqhull library.")** using libqhull library. [More...](classpcl_1_1_convex_hull#details) |
|
| class  | [pcl::EarClipping](classpcl_1_1_ear_clipping) |
|  | The ear clipping triangulation algorithm. [More...](classpcl_1_1_ear_clipping#details) |
|
| class  | [pcl::GreedyProjectionTriangulation< PointInT >](classpcl_1_1_greedy_projection_triangulation) |
|  | [GreedyProjectionTriangulation](classpcl_1_1_greedy_projection_triangulation "GreedyProjectionTriangulation is an implementation of a greedy triangulation algorithm for 3D points ...") is an implementation of a greedy triangulation algorithm for 3D points based on local 2D projections. [More...](classpcl_1_1_greedy_projection_triangulation#details) |
|
| class  | [pcl::GridProjection< PointNT >](classpcl_1_1_grid_projection) |
|  | [Grid](https://pointclouds.org/documentation/class_grid.html) projection surface reconstruction method. [More...](classpcl_1_1_grid_projection#details) |
|
| class  | [pcl::MarchingCubes< PointNT >](classpcl_1_1_marching_cubes) |
|  | The marching cubes surface reconstruction algorithm. [More...](classpcl_1_1_marching_cubes#details) |
|
| class  | [pcl::MarchingCubesHoppe< PointNT >](classpcl_1_1_marching_cubes_hoppe) |
|  | The marching cubes surface reconstruction algorithm, using a signed distance function based on the distance from tangent planes, proposed by Hoppe et. [More...](classpcl_1_1_marching_cubes_hoppe#details) |
|
| class  | [pcl::MarchingCubesRBF< PointNT >](classpcl_1_1_marching_cubes_r_b_f) |
|  | The marching cubes surface reconstruction algorithm, using a signed distance function based on radial basis functions. [More...](classpcl_1_1_marching_cubes_r_b_f#details) |
|
| class  | [pcl::MovingLeastSquares< PointInT, PointOutT >](classpcl_1_1_moving_least_squares) |
|  | [MovingLeastSquares](classpcl_1_1_moving_least_squares "MovingLeastSquares represent an implementation of the MLS (Moving Least Squares) algorithm for data s...") represent an implementation of the MLS (Moving Least Squares) algorithm for data smoothing and improved normal estimation. [More...](classpcl_1_1_moving_least_squares#details) |
|
| class  | [pcl::OrganizedFastMesh< PointInT >](https://pointclouds.org/documentation/classpcl_1_1_organized_fast_mesh.html) |
|  | Simple triangulation/surface reconstruction for organized point clouds. [More...](https://pointclouds.org/documentation/classpcl_1_1_organized_fast_mesh.html#details) |
|
| class  | [pcl::Poisson< PointNT >](classpcl_1_1_poisson) |
|  | The [Poisson](classpcl_1_1_poisson "The Poisson surface reconstruction algorithm.") surface reconstruction algorithm. [More...](classpcl_1_1_poisson#details) |
|
| class  | [pcl::CloudSurfaceProcessing< PointInT, PointOutT >](classpcl_1_1_cloud_surface_processing) |
|  | **[CloudSurfaceProcessing](classpcl_1_1_cloud_surface_processing "CloudSurfaceProcessing represents the base class for algorithms that takes a point cloud as input and...")** represents the base class for algorithms that takes a point cloud as input and produces a new output cloud that has been modified towards a better surface representation. [More...](classpcl_1_1_cloud_surface_processing#details) |
|
| class  | [pcl::MeshProcessing](classpcl_1_1_mesh_processing) |
|  | **[MeshProcessing](classpcl_1_1_mesh_processing "MeshProcessing represents the base class for mesh processing algorithms.")** represents the base class for mesh processing algorithms. [More...](classpcl_1_1_mesh_processing#details) |
|
| class  | [pcl::PCLSurfaceBase< PointInT >](classpcl_1_1_p_c_l_surface_base) |
|  | Pure abstract class. [More...](classpcl_1_1_p_c_l_surface_base#details) |
|
| class  | [pcl::SurfaceReconstruction< PointInT >](classpcl_1_1_surface_reconstruction) |
|  | [SurfaceReconstruction](classpcl_1_1_surface_reconstruction "SurfaceReconstruction represents a base surface reconstruction class.") represents a base surface reconstruction class. [More...](classpcl_1_1_surface_reconstruction#details) |
|
| class  | [pcl::MeshConstruction< PointInT >](classpcl_1_1_mesh_construction) |
|  | [MeshConstruction](classpcl_1_1_mesh_construction "MeshConstruction represents a base surface reconstruction class.") represents a base surface reconstruction class. [More...](classpcl_1_1_mesh_construction#details) |
|
| class  | [pcl::TextureMapping< PointInT >](classpcl_1_1_texture_mapping) |
|  | The texture mapping algorithm. [More...](classpcl_1_1_texture_mapping#details) |
|




|  |
| --- |
| 
 Functions |
| bool  | [pcl::comparePoints2D](group__surface#ga29068d47bc7d9776344c7a7947cead1d) (const std::pair< int, Eigen::Vector4f > &p1, const std::pair< int, Eigen::Vector4f > &p2) |
|  | Sort 2D points in a vector structure. [More...](group__surface#ga29068d47bc7d9776344c7a7947cead1d) |
|
| bool  | [pcl::isVisible](group__surface#ga9dde43ef7735e68f5c69f25501557611) (const Eigen::Vector2f &X, const Eigen::Vector2f &S1, const Eigen::Vector2f &S2, const Eigen::Vector2f &R=Eigen::Vector2f::Zero()) |
|  | Returns if a point X is visible from point R (or the origin) when taking into account the segment between the points S1 and S2. [More...](group__surface#ga9dde43ef7735e68f5c69f25501557611) |
|

 Function Documentation
----------------------

  comparePoints2D()
-----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::comparePoints2D  | ( | const std::pair< int, Eigen::Vector4f > &  | *p1*,  |
|  |  | const std::pair< int, Eigen::Vector4f > &  | *p2* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/surface/convex_hull.h>`

 Sort 2D points in a vector structure. 

 
Parameters
 

|  |  |
| --- | --- |
| p1 | the first point  |
| p2 | the second point  |

   Definition at line [59](https://pointclouds.org/documentation/surface_2include_2pcl_2surface_2convex__hull_8h_source.html#l00059) of file [convex\_hull.h](https://pointclouds.org/documentation/surface_2include_2pcl_2surface_2convex__hull_8h_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

 Referenced by [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076).

    isVisible()
-----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::isVisible  | ( | const Eigen::Vector2f &  | *X*,  |
|  |  | const Eigen::Vector2f &  | *S1*,  |
|  |  | const Eigen::Vector2f &  | *S2*,  |
|  |  | const Eigen::Vector2f &  | *R* = `Eigen::Vector2f::Zero ()` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/surface/gp3.h>`

 Returns if a point X is visible from point R (or the origin) when taking into account the segment between the points S1 and S2. 

 
Parameters
 

|  |  |
| --- | --- |
| X | 2D coordinate of the point  |
| S1 | 2D coordinate of the segment's first point  |
| S2 | 2D coordinate of the segment's second point  |
| R | 2D coordinate of the reference point (defaults to 0,0)  |

   Definition at line [64](https://pointclouds.org/documentation/gp3_8h_source.html#l00064) of file [gp3.h](https://pointclouds.org/documentation/gp3_8h_source.html).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__surface.html>

Detailed Description
--------------------

 

|  |
| --- |
| 
 Classes |
| struct  | [NppStInterpolationState](https://pointclouds.org/documentation/struct_npp_st_interpolation_state.html) |
|  | Frame interpolation state. [More...](https://pointclouds.org/documentation/struct_npp_st_interpolation_state.html#details) |
|




|  |
| --- |
| 
 Enumerations |
| enum  | [NppStBorderType](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) { [nppStBorderNone](group__nppi#gga8b115979ee872d8e356c2f1f162d483ca84b1bfe04b1ff2cf60fcf67746e1eb48) = 0 , [nppStBorderClamp](group__nppi#gga8b115979ee872d8e356c2f1f162d483ca54290d1cd5b3edc8d08fddf44a7b1d49) = 1 , [nppStBorderWrap](group__nppi#gga8b115979ee872d8e356c2f1f162d483ca00581d73e23c3cfa12ed297ad65342a1) = 2 , [nppStBorderMirror](group__nppi#gga8b115979ee872d8e356c2f1f162d483ca40998ebdca4e7972fa1649302b6a5793) = 3 } |
|  | Border type. [More...](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) |
|
| enum  | [NppStInterpMode](group__nppi#ga0bfe03940f062d1a975f748a6ce9357d) { [nppStSupersample](group__nppi#gga0bfe03940f062d1a975f748a6ce9357da712e2f6fc4e4a9d5d34c9cde78418e29) , [nppStBicubic](group__nppi#gga0bfe03940f062d1a975f748a6ce9357da94c62fb3d22fb953e0769fc76b1bada2) } |
|  | Filter types for image resizing. [More...](group__nppi#ga0bfe03940f062d1a975f748a6ce9357d) |
|




|  |
| --- |
| 
 Functions |
| NCV\_EXPORTS NCVStatus  | [nppiStGetInterpolationBufferSize](group__nppi#gaf065847ca4010a2f664fa1c08b7aa254) ([NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nStep, Ncv32u \*hpSize) |
|  | Size of a buffer required for interpolation. [More...](group__nppi#gaf065847ca4010a2f664fa1c08b7aa254) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStInterpolateFrames](group__nppi#gab985d978d7988c75e49676cd45d541a6) (const [NppStInterpolationState](https://pointclouds.org/documentation/struct_npp_st_interpolation_state.html) \*pState) |
|  | Interpolate frames (images) using provided optical flow (displacement field). [More...](group__nppi#gab985d978d7988c75e49676cd45d541a6) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStFilterRowBorder\_32f\_C1R](group__nppi#ga0213413a715db6af7ddff42ca32c20c4) (const Ncv32f \*pSrc, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nSrcStep, Ncv32f \*pDst, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) dstSize, Ncv32u nDstStep, [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) oROI, [NppStBorderType](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) borderType, const Ncv32f \*pKernel, Ncv32s nKernelSize, Ncv32s nAnchor, Ncv32f multiplier) |
|  | Row linear filter. [More...](group__nppi#ga0213413a715db6af7ddff42ca32c20c4) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStFilterColumnBorder\_32f\_C1R](group__nppi#gab392af4950160e32cfb7d9c1d261b812) (const Ncv32f \*pSrc, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nSrcStep, Ncv32f \*pDst, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) dstSize, Ncv32u nDstStep, [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) oROI, [NppStBorderType](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) borderType, const Ncv32f \*pKernel, Ncv32s nKernelSize, Ncv32s nAnchor, Ncv32f multiplier) |
|  | Column linear filter. [More...](group__nppi#gab392af4950160e32cfb7d9c1d261b812) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStVectorWarpGetBufferSize](group__nppi#ga4c713771772a5a8b97facaa2c129f31c) ([NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nSrcStep, Ncv32u \*hpSize) |
|  | Size of buffer required for vector image warping. [More...](group__nppi#ga4c713771772a5a8b97facaa2c129f31c) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStVectorWarp\_PSF1x1\_32f\_C1](group__nppi#ga427d4bc6727812d5a387e0ea389635c2) (const Ncv32f \*pSrc, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nSrcStep, const Ncv32f \*pU, const Ncv32f \*pV, Ncv32u nVFStep, Ncv32f timeScale, Ncv32f \*pDst) |
|  | Warp image using provided 2D vector field and 1x1 point spread function. [More...](group__nppi#ga427d4bc6727812d5a387e0ea389635c2) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStVectorWarp\_PSF2x2\_32f\_C1](group__nppi#ga6e10ca6a3d2f04e5ce7ba944e1e27b6b) (const Ncv32f \*pSrc, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nSrcStep, const Ncv32f \*pU, const Ncv32f \*pV, Ncv32u nVFStep, Ncv32f \*pBuffer, Ncv32f timeScale, Ncv32f \*pDst) |
|  | Warp image using provided 2D vector field and 2x2 point spread function. [More...](group__nppi#ga6e10ca6a3d2f04e5ce7ba944e1e27b6b) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStResize\_32f\_C1R](group__nppi#ga523b6d8eed6c4286f3cc0c67f1b5c299) (const Ncv32f \*pSrc, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcSize, Ncv32u nSrcStep, [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) srcROI, Ncv32f \*pDst, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) dstSize, Ncv32u nDstStep, [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) dstROI, Ncv32f xFactor, Ncv32f yFactor, [NppStInterpMode](group__nppi#ga0bfe03940f062d1a975f748a6ce9357d) interpolation) |
|  | Resize. [More...](group__nppi#ga523b6d8eed6c4286f3cc0c67f1b5c299) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_32u\_C1R](group__nppi#ga188779f64f30fe3ceb5005bdef9de421) (Ncv32u \*d\_src, Ncv32u srcStep, Ncv32u \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale, NcvBool readThruTexture) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga188779f64f30fe3ceb5005bdef9de421) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_32s\_C1R](group__nppi#ga56de873aee49c1223224a87e200ccd3a) (Ncv32s \*d\_src, Ncv32u srcStep, Ncv32s \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale, NcvBool readThruTexture) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga56de873aee49c1223224a87e200ccd3a) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_32f\_C1R](group__nppi#gac713d8c4b4806ffd24f9d1cbb1717613) (Ncv32f \*d\_src, Ncv32u srcStep, Ncv32f \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale, NcvBool readThruTexture) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#gac713d8c4b4806ffd24f9d1cbb1717613) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_64u\_C1R](group__nppi#ga9f9ba2bb885cc5eaaa010e2fe00b7958) (Ncv64u \*d\_src, Ncv32u srcStep, Ncv64u \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale, NcvBool readThruTexture) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga9f9ba2bb885cc5eaaa010e2fe00b7958) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_64s\_C1R](group__nppi#ga87219852f7db683036b1fa30e66a16ec) (Ncv64s \*d\_src, Ncv32u srcStep, Ncv64s \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale, NcvBool readThruTexture) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga87219852f7db683036b1fa30e66a16ec) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_64f\_C1R](group__nppi#gaf549be345830eb3f10f1bd39570eb4d5) (Ncv64f \*d\_src, Ncv32u srcStep, Ncv64f \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale, NcvBool readThruTexture) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#gaf549be345830eb3f10f1bd39570eb4d5) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_32u\_C1R\_host](group__nppi#gaa526b31e234f0ca81495168d86e259f8) (Ncv32u \*h\_src, Ncv32u srcStep, Ncv32u \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#gaa526b31e234f0ca81495168d86e259f8) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_32s\_C1R\_host](group__nppi#ga03ca0a570dbb6b4c0c44cb5e0aa65987) (Ncv32s \*h\_src, Ncv32u srcStep, Ncv32s \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga03ca0a570dbb6b4c0c44cb5e0aa65987) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_32f\_C1R\_host](group__nppi#ga916610bddf5c423ea65934b5cffc5d83) (Ncv32f \*h\_src, Ncv32u srcStep, Ncv32f \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga916610bddf5c423ea65934b5cffc5d83) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_64u\_C1R\_host](group__nppi#gadd5d1d8502e5f9b322eb17c72aeb41e7) (Ncv64u \*h\_src, Ncv32u srcStep, Ncv64u \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#gadd5d1d8502e5f9b322eb17c72aeb41e7) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_64s\_C1R\_host](group__nppi#ga5347d58508b3eeaa4bb21bc92fd852a0) (Ncv64s \*h\_src, Ncv32u srcStep, Ncv64s \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga5347d58508b3eeaa4bb21bc92fd852a0) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStDecimate\_64f\_C1R\_host](group__nppi#ga91d158ea2ff750b9721ad4ef22b386d3) (Ncv64f \*h\_src, Ncv32u srcStep, Ncv64f \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi, Ncv32u scale) |
|  | Downsamples (decimates) an image using the nearest neighbor algorithm. [More...](group__nppi#ga91d158ea2ff750b9721ad4ef22b386d3) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStRectStdDev\_32f\_C1R](group__nppi#ga775b194f8c82e747c6a43ec6614dc515) (Ncv32u \*d\_sum, Ncv32u sumStep, Ncv64u \*d\_sqsum, Ncv32u sqsumStep, Ncv32f \*d\_norm, Ncv32u normStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roi, [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) rect, Ncv32f scaleArea, NcvBool readThruTexture) |
|  | Computes standard deviation for each rectangular region of the input image using integral images. [More...](group__nppi#ga775b194f8c82e747c6a43ec6614dc515) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStRectStdDev\_32f\_C1R\_host](group__nppi#ga5477be80762d9b3d13b90f3aaabafe5f) (Ncv32u \*h\_sum, Ncv32u sumStep, Ncv64u \*h\_sqsum, Ncv32u sqsumStep, Ncv32f \*h\_norm, Ncv32u normStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roi, [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) rect, Ncv32f scaleArea) |
|  | Computes standard deviation for each rectangular region of the input image using integral images. [More...](group__nppi#ga5477be80762d9b3d13b90f3aaabafe5f) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4) (Ncv32u \*d\_src, Ncv32u srcStride, Ncv32u \*d\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_32s\_C1R](group__nppi#ga73b5ed50282527674c0ce8b8fe162ac8) (Ncv32s \*d\_src, Ncv32u srcStride, Ncv32s \*d\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga73b5ed50282527674c0ce8b8fe162ac8) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_32f\_C1R](group__nppi#gaf0a41dba8d111ad02766c3a0d09af141) (Ncv32f \*d\_src, Ncv32u srcStride, Ncv32f \*d\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#gaf0a41dba8d111ad02766c3a0d09af141) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_64u\_C1R](group__nppi#ga1d021328009759ca5e8957ccf35348a7) (Ncv64u \*d\_src, Ncv32u srcStride, Ncv64u \*d\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga1d021328009759ca5e8957ccf35348a7) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_64s\_C1R](group__nppi#gaec82a108e8d322f70816953b3c9407f3) (Ncv64s \*d\_src, Ncv32u srcStride, Ncv64s \*d\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#gaec82a108e8d322f70816953b3c9407f3) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_64f\_C1R](group__nppi#ga05a188805ec509933484505001235485) (Ncv64f \*d\_src, Ncv32u srcStride, Ncv64f \*d\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga05a188805ec509933484505001235485) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_128\_C1R](group__nppi#ga6c207c18d750a57dd290b4f993437ef4) (void \*d\_src, Ncv32u srcStep, void \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga6c207c18d750a57dd290b4f993437ef4) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364) (Ncv32u \*h\_src, Ncv32u srcStride, Ncv32u \*h\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_32s\_C1R\_host](group__nppi#ga36de3cd5b6e2923a7401b395a3f9248c) (Ncv32s \*h\_src, Ncv32u srcStride, Ncv32s \*h\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga36de3cd5b6e2923a7401b395a3f9248c) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_32f\_C1R\_host](group__nppi#ga75b982cb49ddf31fd2761fd3c8ef8762) (Ncv32f \*h\_src, Ncv32u srcStride, Ncv32f \*h\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga75b982cb49ddf31fd2761fd3c8ef8762) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_64u\_C1R\_host](group__nppi#ga8163fee3a26edfa5ca998bc6eae5e18f) (Ncv64u \*h\_src, Ncv32u srcStride, Ncv64u \*h\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga8163fee3a26edfa5ca998bc6eae5e18f) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_64s\_C1R\_host](group__nppi#ga28efeb84a56d65cb64d13caf173bd699) (Ncv64s \*h\_src, Ncv32u srcStride, Ncv64s \*h\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga28efeb84a56d65cb64d13caf173bd699) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_64f\_C1R\_host](group__nppi#ga50bb8d0d0d8ccdd5c922d0858ac78120) (Ncv64f \*h\_src, Ncv32u srcStride, Ncv64f \*h\_dst, Ncv32u dstStride, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga50bb8d0d0d8ccdd5c922d0858ac78120) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStTranspose\_128\_C1R\_host](group__nppi#ga599c7d11d2fc4e5952fa3d460733810c) (void \*d\_src, Ncv32u srcStep, void \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) srcRoi) |
|  | Transposes an image. [More...](group__nppi#ga599c7d11d2fc4e5952fa3d460733810c) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStIntegralGetSize\_8u32u](group__nppi#gae6abafd99c3257303e43f1658338a655) ([NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize, Ncv32u \*pBufsize, cudaDeviceProp &devProp) |
|  | Calculates the size of the temporary buffer for integral image creation. [More...](group__nppi#gae6abafd99c3257303e43f1658338a655) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStIntegralGetSize\_32f32f](group__nppi#ga0bcb9e02ee33378a88770b4585bf54f9) ([NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize, Ncv32u \*pBufsize, cudaDeviceProp &devProp) |
|  | Calculates the size of the temporary buffer for integral image creation. [More...](group__nppi#ga0bcb9e02ee33378a88770b4585bf54f9) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStIntegral\_8u32u\_C1R](group__nppi#ga6174fedfd9b79217f120cfce81b122d1) (Ncv8u \*d\_src, Ncv32u srcStep, Ncv32u \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize, Ncv8u \*pBuffer, Ncv32u bufSize, cudaDeviceProp &devProp) |
|  | Creates an integral image representation for the input image. [More...](group__nppi#ga6174fedfd9b79217f120cfce81b122d1) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStIntegral\_32f32f\_C1R](group__nppi#ga225952a37d0c913b79475b8328416e3d) (Ncv32f \*d\_src, Ncv32u srcStep, Ncv32f \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize, Ncv8u \*pBuffer, Ncv32u bufSize, cudaDeviceProp &devProp) |
|  | Creates an integral image representation for the input image. [More...](group__nppi#ga225952a37d0c913b79475b8328416e3d) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStIntegral\_8u32u\_C1R\_host](group__nppi#gaf68796ecf7f7678ff464515c29fab182) (Ncv8u \*h\_src, Ncv32u srcStep, Ncv32u \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize) |
|  | Creates an integral image representation for the input image. [More...](group__nppi#gaf68796ecf7f7678ff464515c29fab182) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStIntegral\_32f32f\_C1R\_host](group__nppi#gad47ec3dde40ddfe0ec5057f2def8c415) (Ncv32f \*h\_src, Ncv32u srcStep, Ncv32f \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize) |
|  | Creates an integral image representation for the input image. [More...](group__nppi#gad47ec3dde40ddfe0ec5057f2def8c415) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStSqrIntegralGetSize\_8u64u](group__nppi#ga47e37cfe55ef87f359767b666d020303) ([NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize, Ncv32u \*pBufsize, cudaDeviceProp &devProp) |
|  | Calculates the size of the temporary buffer for squared integral image creation. [More...](group__nppi#ga47e37cfe55ef87f359767b666d020303) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStSqrIntegral\_8u64u\_C1R](group__nppi#gaeaa79f444abf392fa93117f649d6b78a) (Ncv8u \*d\_src, Ncv32u srcStep, Ncv64u \*d\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize, Ncv8u \*pBuffer, Ncv32u bufSize, cudaDeviceProp &devProp) |
|  | Creates a squared integral image representation for the input image. [More...](group__nppi#gaeaa79f444abf392fa93117f649d6b78a) |
|
| NCV\_EXPORTS NCVStatus  | [nppiStSqrIntegral\_8u64u\_C1R\_host](group__nppi#ga052f68d3952fb128c499a89b6264fb81) (Ncv8u \*h\_src, Ncv32u srcStep, Ncv64u \*h\_dst, Ncv32u dstStep, [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) roiSize) |
|  | Creates a squared integral image representation for the input image. [More...](group__nppi#ga052f68d3952fb128c499a89b6264fb81) |
|

 Enumeration Type Documentation
------------------------------

  NppStBorderType
---------------

   

|  |
| --- |
| enum [NppStBorderType](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Border type. 

 Filtering operations assume that each pixel has a neighborhood of pixels. The following structure describes possible ways to define non-existent pixels. 

 

| Enumerator |
| --- |
| nppStBorderNone  | There is no need to define additional pixels, image is extended already.  |
| nppStBorderClamp  | Clamp out of range position to borders.  |
| nppStBorderWrap  | Wrap out of range position. Image becomes periodic.  |
| nppStBorderMirror  | reflect out of range position across borders  |

 Definition at line [91](https://pointclouds.org/documentation/_n_p_p__staging_8hpp_source.html#l00091) of file [NPP\_staging.hpp](https://pointclouds.org/documentation/_n_p_p__staging_8hpp_source.html).

    NppStInterpMode
---------------

   

|  |
| --- |
| enum [NppStInterpMode](group__nppi#ga0bfe03940f062d1a975f748a6ce9357d) |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Filter types for image resizing. 

 

| Enumerator |
| --- |
| nppStSupersample  | Supersampling. For downscaling only.  |
| nppStBicubic  | Bicubic convolution filter, a = -0.5 (cubic Hermite spline)  |

 Definition at line [103](https://pointclouds.org/documentation/_n_p_p__staging_8hpp_source.html#l00103) of file [NPP\_staging.hpp](https://pointclouds.org/documentation/_n_p_p__staging_8hpp_source.html).

   Function Documentation
----------------------

  nppiStDecimate\_32f\_C1R()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_32f\_C1R  | ( | Ncv32f \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32f \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 32-bit float pixels, single channel. 



See also

[nppiStDecimate\_32u\_C1R](group__nppi#ga188779f64f30fe3ceb5005bdef9de421 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_32f\_C1R\_host()
--------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_32f\_C1R\_host  | ( | Ncv32f \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32f \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 32-bit float pixels, single channel. Host implementation. 



See also

[nppiStDecimate\_32u\_C1R\_host](group__nppi#gaa526b31e234f0ca81495168d86e259f8 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_32s\_C1R()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_32s\_C1R  | ( | Ncv32s \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32s \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 32-bit signed pixels, single channel. 



See also

[nppiStDecimate\_32u\_C1R](group__nppi#ga188779f64f30fe3ceb5005bdef9de421 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_32s\_C1R\_host()
--------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_32s\_C1R\_host  | ( | Ncv32s \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32s \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 32-bit signed pixels, single channel. Host implementation. 



See also

[nppiStDecimate\_32u\_C1R\_host](group__nppi#gaa526b31e234f0ca81495168d86e259f8 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_32u\_C1R()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_32u\_C1R  | ( | Ncv32u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32u \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 32-bit unsigned pixels, single channel.

 
Parameters
 

|  |  |
| --- | --- |
| d\_src | [IN] Source image pointer (CUDA device memory)  |
| srcStep | [IN] Source image line step  |
| d\_dst | [OUT] Destination image pointer (CUDA device memory)  |
| dstStep | [IN] Destination image line step  |
| srcRoi | [IN] Region of interest in the source image  |
| scale | [IN] Downsampling scale factor (positive integer)  |
| readThruTexture | [IN] Performance hint to cache source in texture (true) or read directly (false) |

   
Returns
NCV status code 
    nppiStDecimate\_32u\_C1R\_host()
--------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_32u\_C1R\_host  | ( | Ncv32u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32u \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 32-bit unsigned pixels, single channel. Host implementation.

 
Parameters
 

|  |  |
| --- | --- |
| h\_src | [IN] Source image pointer (Host or pinned memory)  |
| srcStep | [IN] Source image line step  |
| h\_dst | [OUT] Destination image pointer (Host or pinned memory)  |
| dstStep | [IN] Destination image line step  |
| srcRoi | [IN] Region of interest in the source image  |
| scale | [IN] Downsampling scale factor (positive integer) |

   
Returns
NCV status code 
    nppiStDecimate\_64f\_C1R()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_64f\_C1R  | ( | Ncv64f \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64f \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 64-bit float pixels, single channel. 



See also

[nppiStDecimate\_32u\_C1R](group__nppi#ga188779f64f30fe3ceb5005bdef9de421 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_64f\_C1R\_host()
--------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_64f\_C1R\_host  | ( | Ncv64f \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64f \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 64-bit float pixels, single channel. Host implementation. 



See also

[nppiStDecimate\_32u\_C1R\_host](group__nppi#gaa526b31e234f0ca81495168d86e259f8 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_64s\_C1R()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_64s\_C1R  | ( | Ncv64s \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64s \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 64-bit signed pixels, single channel. 



See also

[nppiStDecimate\_32u\_C1R](group__nppi#ga188779f64f30fe3ceb5005bdef9de421 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_64s\_C1R\_host()
--------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_64s\_C1R\_host  | ( | Ncv64s \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64s \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 64-bit signed pixels, single channel. Host implementation. 



See also

[nppiStDecimate\_32u\_C1R\_host](group__nppi#gaa526b31e234f0ca81495168d86e259f8 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_64u\_C1R()
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_64u\_C1R  | ( | Ncv64u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64u \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 64-bit unsigned pixels, single channel. 



See also

[nppiStDecimate\_32u\_C1R](group__nppi#ga188779f64f30fe3ceb5005bdef9de421 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStDecimate\_64u\_C1R\_host()
--------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStDecimate\_64u\_C1R\_host  | ( | Ncv64u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64u \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi*,  |
|  |  | Ncv32u  | *scale* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Downsamples (decimates) an image using the nearest neighbor algorithm. 

 64-bit unsigned pixels, single channel. Host implementation. 



See also

[nppiStDecimate\_32u\_C1R\_host](group__nppi#gaa526b31e234f0ca81495168d86e259f8 "Downsamples (decimates) an image using the nearest neighbor algorithm.") 
    nppiStFilterColumnBorder\_32f\_C1R()
------------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStFilterColumnBorder\_32f\_C1R  | ( | const Ncv32f \*  | *pSrc*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nSrcStep*,  |
|  |  | Ncv32f \*  | *pDst*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *dstSize*,  |
|  |  | Ncv32u  | *nDstStep*,  |
|  |  | [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) | *oROI*,  |
|  |  | [NppStBorderType](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) | *borderType*,  |
|  |  | const Ncv32f \*  | *pKernel*,  |
|  |  | Ncv32s  | *nKernelSize*,  |
|  |  | Ncv32s  | *nAnchor*,  |
|  |  | Ncv32f  | *multiplier* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Column linear filter. 

 32-bit floating point image, single channel

 Apply vertical linear filter

 
Parameters
 

|  |  |
| --- | --- |
| pSrc | [IN] Source image pointer (CUDA device memory)  |
| srcSize | [IN] Source image size  |
| nSrcStep | [IN] Source image line step  |
| pDst | [OUT] Destination image pointer (CUDA device memory)  |
| dstSize | [OUT] Destination image size  |
| nDstStep |  |
| oROI | [IN] Region of interest in the source image  |
| borderType | [IN] Type of border  |
| pKernel | [IN] Pointer to column kernel values (CUDA device memory)  |
| nKernelSize | [IN] Size of the kernel in pixels  |
| nAnchor | [IN] The kernel column alignment with respect to the position of the input pixel  |
| multiplier | [IN] Value by which the computed result is multiplied |

   
Returns
NCV status code 
    nppiStFilterRowBorder\_32f\_C1R()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStFilterRowBorder\_32f\_C1R  | ( | const Ncv32f \*  | *pSrc*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nSrcStep*,  |
|  |  | Ncv32f \*  | *pDst*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *dstSize*,  |
|  |  | Ncv32u  | *nDstStep*,  |
|  |  | [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) | *oROI*,  |
|  |  | [NppStBorderType](group__nppi#ga8b115979ee872d8e356c2f1f162d483c) | *borderType*,  |
|  |  | const Ncv32f \*  | *pKernel*,  |
|  |  | Ncv32s  | *nKernelSize*,  |
|  |  | Ncv32s  | *nAnchor*,  |
|  |  | Ncv32f  | *multiplier* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Row linear filter. 

 32-bit floating point image, single channel

 Apply horizontal linear filter

 
Parameters
 

|  |  |
| --- | --- |
| pSrc | [IN] Source image pointer (CUDA device memory)  |
| srcSize | [IN] Source image size  |
| nSrcStep | [IN] Source image line step  |
| pDst | [OUT] Destination image pointer (CUDA device memory)  |
| dstSize | [OUT] Destination image size  |
| nDstStep |  |
| oROI | [IN] Region of interest in the source image  |
| borderType | [IN] Type of border  |
| pKernel | [IN] Pointer to row kernel values (CUDA device memory)  |
| nKernelSize | [IN] Size of the kernel in pixels  |
| nAnchor | [IN] The kernel row alignment with respect to the position of the input pixel  |
| multiplier | [IN] Value by which the computed result is multiplied |

   
Returns
NCV status code 
    nppiStGetInterpolationBufferSize()
----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStGetInterpolationBufferSize  | ( | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nStep*,  |
|  |  | Ncv32u \*  | *hpSize* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Size of a buffer required for interpolation. 

 Requires several such buffers. See 



See also

[NppStInterpolationState](https://pointclouds.org/documentation/struct_npp_st_interpolation_state.html "Frame interpolation state.").
 
Parameters
 

|  |  |
| --- | --- |
| srcSize | [IN] Frame size (both frames must be of the same size)  |
| nStep | [IN] Frame line step  |
| hpSize | [OUT] Where to store computed size (host memory) |

   
Returns
NCV status code 
    nppiStIntegral\_32f32f\_C1R()
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStIntegral\_32f32f\_C1R  | ( | Ncv32f \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32f \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize*,  |
|  |  | Ncv8u \*  | *pBuffer*,  |
|  |  | Ncv32u  | *bufSize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Creates an integral image representation for the input image. 

 
See also

[nppiStIntegral\_8u32u\_C1R](group__nppi#ga6174fedfd9b79217f120cfce81b122d1 "Creates an integral image representation for the input image.") 
    nppiStIntegral\_32f32f\_C1R\_host()
-----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStIntegral\_32f32f\_C1R\_host  | ( | Ncv32f \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32f \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Creates an integral image representation for the input image. 

 Host implementation 



See also

[nppiStIntegral\_8u32u\_C1R\_host](group__nppi#gaf68796ecf7f7678ff464515c29fab182 "Creates an integral image representation for the input image.") 
    nppiStIntegral\_8u32u\_C1R()
----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStIntegral\_8u32u\_C1R  | ( | Ncv8u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32u \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize*,  |
|  |  | Ncv8u \*  | *pBuffer*,  |
|  |  | Ncv32u  | *bufSize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Creates an integral image representation for the input image. 

 
Parameters
 

|  |  |
| --- | --- |
| d\_src | [IN] Source image pointer (CUDA device memory)  |
| srcStep | [IN] Source image line step  |
| d\_dst | [OUT] Destination integral image pointer (CUDA device memory)  |
| dstStep | [IN] Destination image line step  |
| roiSize | [IN] Region of interest of the source image  |
| pBuffer | [IN] Pointer to the pre-allocated temporary buffer (CUDA device memory)  |
| bufSize | [IN] Size of the pBuffer in bytes  |
| devProp | [IN] CUDA device properties structure, containing texture alignment information |

   
Returns
NCV status code 
    nppiStIntegral\_8u32u\_C1R\_host()
----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStIntegral\_8u32u\_C1R\_host  | ( | Ncv8u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv32u \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Creates an integral image representation for the input image. 

 Host implementation

 
Parameters
 

|  |  |
| --- | --- |
| h\_src | [IN] Source image pointer (Host or pinned memory)  |
| srcStep | [IN] Source image line step  |
| h\_dst | [OUT] Destination integral image pointer (Host or pinned memory)  |
| dstStep | [IN] Destination image line step  |
| roiSize | [IN] Region of interest of the source image |

   
Returns
NCV status code 
    nppiStIntegralGetSize\_32f32f()
-------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStIntegralGetSize\_32f32f  | ( | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize*,  |
|  |  | Ncv32u \*  | *pBufsize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Calculates the size of the temporary buffer for integral image creation. 

 
See also

[nppiStIntegralGetSize\_8u32u](group__nppi#gae6abafd99c3257303e43f1658338a655 "Calculates the size of the temporary buffer for integral image creation.") 
    nppiStIntegralGetSize\_8u32u()
------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStIntegralGetSize\_8u32u  | ( | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize*,  |
|  |  | Ncv32u \*  | *pBufsize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Calculates the size of the temporary buffer for integral image creation. 

 
Parameters
 

|  |  |
| --- | --- |
| roiSize | [IN] Size of the input image  |
| pBufsize | [OUT] Pointer to host variable that returns the size of the temporary buffer (in bytes)  |
| devProp | [IN] CUDA device properties structure, containing texture alignment information |

   
Returns
NCV status code 
    nppiStInterpolateFrames()
-------------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStInterpolateFrames  | ( | const [NppStInterpolationState](https://pointclouds.org/documentation/struct_npp_st_interpolation_state.html) \*  | *pState* | ) |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Interpolate frames (images) using provided optical flow (displacement field). 

 32-bit floating point images, single channel

 
Parameters
 

|  |  |
| --- | --- |
| pState | [IN] structure containing all required parameters (host memory) |

   
Returns
NCV status code 
    nppiStRectStdDev\_32f\_C1R()
----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStRectStdDev\_32f\_C1R  | ( | Ncv32u \*  | *d\_sum*,  |
|  |  | Ncv32u  | *sumStep*,  |
|  |  | Ncv64u \*  | *d\_sqsum*,  |
|  |  | Ncv32u  | *sqsumStep*,  |
|  |  | Ncv32f \*  | *d\_norm*,  |
|  |  | Ncv32u  | *normStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roi*,  |
|  |  | [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) | *rect*,  |
|  |  | Ncv32f  | *scaleArea*,  |
|  |  | NcvBool  | *readThruTexture* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Computes standard deviation for each rectangular region of the input image using integral images. 

 
Parameters
 

|  |  |
| --- | --- |
| d\_sum | [IN] Integral image pointer (CUDA device memory)  |
| sumStep | [IN] Integral image line step  |
| d\_sqsum | [IN] Squared integral image pointer (CUDA device memory)  |
| sqsumStep | [IN] Squared integral image line step  |
| d\_norm | [OUT] Stddev image pointer (CUDA device memory). Each pixel contains stddev of a rect with top-left corner at the original location in the image  |
| normStep | [IN] Stddev image line step  |
| roi | [IN] Region of interest in the source image  |
| rect | [IN] Rectangular region to calculate stddev over  |
| scaleArea | [IN] Multiplication factor to account decimated scale  |
| readThruTexture | [IN] Performance hint to cache source in texture (true) or read directly (false) |

   
Returns
NCV status code 
    nppiStRectStdDev\_32f\_C1R\_host()
----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStRectStdDev\_32f\_C1R\_host  | ( | Ncv32u \*  | *h\_sum*,  |
|  |  | Ncv32u  | *sumStep*,  |
|  |  | Ncv64u \*  | *h\_sqsum*,  |
|  |  | Ncv32u  | *sqsumStep*,  |
|  |  | Ncv32f \*  | *h\_norm*,  |
|  |  | Ncv32u  | *normStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roi*,  |
|  |  | [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) | *rect*,  |
|  |  | Ncv32f  | *scaleArea* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Computes standard deviation for each rectangular region of the input image using integral images. 

 Host implementation

 
Parameters
 

|  |  |
| --- | --- |
| h\_sum | [IN] Integral image pointer (Host or pinned memory)  |
| sumStep | [IN] Integral image line step  |
| h\_sqsum | [IN] Squared integral image pointer (Host or pinned memory)  |
| sqsumStep | [IN] Squared integral image line step  |
| h\_norm | [OUT] Stddev image pointer (Host or pinned memory). Each pixel contains stddev of a rect with top-left corner at the original location in the image  |
| normStep | [IN] Stddev image line step  |
| roi | [IN] Region of interest in the source image  |
| rect | [IN] Rectangular region to calculate stddev over  |
| scaleArea | [IN] Multiplication factor to account decimated scale |

   
Returns
NCV status code 
    nppiStResize\_32f\_C1R()
------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStResize\_32f\_C1R  | ( | const Ncv32f \*  | *pSrc*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nSrcStep*,  |
|  |  | [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) | *srcROI*,  |
|  |  | Ncv32f \*  | *pDst*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *dstSize*,  |
|  |  | Ncv32u  | *nDstStep*,  |
|  |  | [NcvRect32u](https://pointclouds.org/documentation/struct_ncv_rect32u.html) | *dstROI*,  |
|  |  | Ncv32f  | *xFactor*,  |
|  |  | Ncv32f  | *yFactor*,  |
|  |  | [NppStInterpMode](group__nppi#ga0bfe03940f062d1a975f748a6ce9357d) | *interpolation* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Resize. 

 32-bit floating point image, single channel

 Resizes image using specified filter (interpolation type)

 
Parameters
 

|  |  |
| --- | --- |
| pSrc | [IN] Source image pointer (CUDA device memory)  |
| srcSize | [IN] Source image size  |
| nSrcStep | [IN] Source image line step  |
| srcROI | [IN] Source image region of interest  |
| pDst | [OUT] Destination image pointer (CUDA device memory)  |
| dstSize | [IN] Destination image size  |
| nDstStep | [IN] Destination image line step  |
| dstROI | [IN] Destination image region of interest  |
| xFactor | [IN] Row scale factor  |
| yFactor | [IN] Column scale factor  |
| interpolation | [IN] Interpolation type |

   
Returns
NCV status code 
    nppiStSqrIntegral\_8u64u\_C1R()
-------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStSqrIntegral\_8u64u\_C1R  | ( | Ncv8u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64u \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize*,  |
|  |  | Ncv8u \*  | *pBuffer*,  |
|  |  | Ncv32u  | *bufSize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Creates a squared integral image representation for the input image. 

 
Parameters
 

|  |  |
| --- | --- |
| d\_src | [IN] Source image pointer (CUDA device memory)  |
| srcStep | [IN] Source image line step  |
| d\_dst | [OUT] Destination squared integral image pointer (CUDA device memory)  |
| dstStep | [IN] Destination image line step  |
| roiSize | [IN] Region of interest of the source image  |
| pBuffer | [IN] Pointer to the pre-allocated temporary buffer (CUDA device memory)  |
| bufSize | [IN] Size of the pBuffer in bytes  |
| devProp | [IN] CUDA device properties structure, containing texture alignment information |

   
Returns
NCV status code 
    nppiStSqrIntegral\_8u64u\_C1R\_host()
-------------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStSqrIntegral\_8u64u\_C1R\_host  | ( | Ncv8u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | Ncv64u \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Creates a squared integral image representation for the input image. 

 Host implementation

 
Parameters
 

|  |  |
| --- | --- |
| h\_src | [IN] Source image pointer (Host or pinned memory)  |
| srcStep | [IN] Source image line step  |
| h\_dst | [OUT] Destination squared integral image pointer (Host or pinned memory)  |
| dstStep | [IN] Destination image line step  |
| roiSize | [IN] Region of interest of the source image |

   
Returns
NCV status code 
    nppiStSqrIntegralGetSize\_8u64u()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStSqrIntegralGetSize\_8u64u  | ( | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *roiSize*,  |
|  |  | Ncv32u \*  | *pBufsize*,  |
|  |  | cudaDeviceProp &  | *devProp* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Calculates the size of the temporary buffer for squared integral image creation. 

 
Parameters
 

|  |  |
| --- | --- |
| roiSize | [IN] Size of the input image  |
| pBufsize | [OUT] Pointer to host variable that returns the size of the temporary buffer (in bytes)  |
| devProp | [IN] CUDA device properties structure, containing texture alignment information |

   
Returns
NCV status code 
    nppiStTranspose\_128\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_128\_C1R  | ( | void \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | void \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 128-bit pixels of any type, single channel 



See also

[nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4 "Transposes an image.") 
    nppiStTranspose\_128\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_128\_C1R\_host  | ( | void \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStep*,  |
|  |  | void \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStep*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 128-bit pixels of any type, single channel. Host implementation 



See also

[nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364 "Transposes an image.") 
    nppiStTranspose\_32f\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_32f\_C1R  | ( | Ncv32f \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv32f \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 32-bit float pixels, single channel 



See also

[nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4 "Transposes an image.") 
    nppiStTranspose\_32f\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_32f\_C1R\_host  | ( | Ncv32f \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv32f \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 32-bit float pixels, single channel. Host implementation 



See also

[nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364 "Transposes an image.") 
    nppiStTranspose\_32s\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_32s\_C1R  | ( | Ncv32s \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv32s \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 32-bit signed pixels, single channel 



See also

[nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4 "Transposes an image.") 
    nppiStTranspose\_32s\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_32s\_C1R\_host  | ( | Ncv32s \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv32s \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 32-bit signed pixels, single channel. Host implementation 



See also

[nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364 "Transposes an image.") 
    nppiStTranspose\_32u\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_32u\_C1R  | ( | Ncv32u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv32u \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 32-bit unsigned pixels, single channel

 
Parameters
 

|  |  |
| --- | --- |
| d\_src | [IN] Source image pointer (CUDA device memory)  |
| srcStride | [IN] Source image line step  |
| d\_dst | [OUT] Destination image pointer (CUDA device memory)  |
| dstStride | [IN] Destination image line step  |
| srcRoi | [IN] Region of interest of the source image |

   
Returns
NCV status code 
    nppiStTranspose\_32u\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_32u\_C1R\_host  | ( | Ncv32u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv32u \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 32-bit unsigned pixels, single channel. Host implementation

 
Parameters
 

|  |  |
| --- | --- |
| h\_src | [IN] Source image pointer (Host or pinned memory)  |
| srcStride | [IN] Source image line step  |
| h\_dst | [OUT] Destination image pointer (Host or pinned memory)  |
| dstStride | [IN] Destination image line step  |
| srcRoi | [IN] Region of interest of the source image |

   
Returns
NCV status code 
    nppiStTranspose\_64f\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_64f\_C1R  | ( | Ncv64f \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv64f \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 64-bit float pixels, single channel 



See also

[nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4 "Transposes an image.") 
    nppiStTranspose\_64f\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_64f\_C1R\_host  | ( | Ncv64f \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv64f \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 64-bit float pixels, single channel. Host implementation 



See also

[nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364 "Transposes an image.") 
    nppiStTranspose\_64s\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_64s\_C1R  | ( | Ncv64s \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv64s \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 64-bit signed pixels, single channel 



See also

[nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4 "Transposes an image.") 
    nppiStTranspose\_64s\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_64s\_C1R\_host  | ( | Ncv64s \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv64s \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 64-bit signed pixels, single channel. Host implementation 



See also

[nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364 "Transposes an image.") 
    nppiStTranspose\_64u\_C1R()
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_64u\_C1R  | ( | Ncv64u \*  | *d\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv64u \*  | *d\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 64-bit unsigned pixels, single channel 



See also

[nppiStTranspose\_32u\_C1R](group__nppi#ga1f722ca1668ba8426c0a15fb221fbfa4 "Transposes an image.") 
    nppiStTranspose\_64u\_C1R\_host()
---------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStTranspose\_64u\_C1R\_host  | ( | Ncv64u \*  | *h\_src*,  |
|  |  | Ncv32u  | *srcStride*,  |
|  |  | Ncv64u \*  | *h\_dst*,  |
|  |  | Ncv32u  | *dstStride*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcRoi* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Transposes an image. 

 64-bit unsigned pixels, single channel. Host implementation 



See also

[nppiStTranspose\_32u\_C1R\_host](group__nppi#ga0bcf22daa992184fba9bae3f2f7dd364 "Transposes an image.") 
    nppiStVectorWarp\_PSF1x1\_32f\_C1()
-----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStVectorWarp\_PSF1x1\_32f\_C1  | ( | const Ncv32f \*  | *pSrc*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nSrcStep*,  |
|  |  | const Ncv32f \*  | *pU*,  |
|  |  | const Ncv32f \*  | *pV*,  |
|  |  | Ncv32u  | *nVFStep*,  |
|  |  | Ncv32f  | *timeScale*,  |
|  |  | Ncv32f \*  | *pDst* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Warp image using provided 2D vector field and 1x1 point spread function. 

 32-bit floating point image, single channel

 During warping pixels from the source image may fall between pixels of the destination image. PSF (point spread function) describes how the source image pixel affects pixels of the destination. For 1x1 PSF only single pixel with the largest intersection is affected (similar to nearest interpolation).

 Destination image size and line step must be the same as the source image size and line step

 
Parameters
 

|  |  |
| --- | --- |
| pSrc | [IN] Source image pointer (CUDA device memory)  |
| srcSize | [IN] Source image size  |
| nSrcStep | [IN] Source image line step  |
| pU | [IN] Pointer to horizontal displacement field (CUDA device memory)  |
| pV | [IN] Pointer to vertical displacement field (CUDA device memory)  |
| nVFStep | [IN] Displacement field line step  |
| timeScale | [IN] Value by which displacement field will be scaled for warping  |
| pDst | [OUT] Destination image pointer (CUDA device memory) |

   
Returns
NCV status code 
    nppiStVectorWarp\_PSF2x2\_32f\_C1()
-----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStVectorWarp\_PSF2x2\_32f\_C1  | ( | const Ncv32f \*  | *pSrc*,  |
|  |  | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nSrcStep*,  |
|  |  | const Ncv32f \*  | *pU*,  |
|  |  | const Ncv32f \*  | *pV*,  |
|  |  | Ncv32u  | *nVFStep*,  |
|  |  | Ncv32f \*  | *pBuffer*,  |
|  |  | Ncv32f  | *timeScale*,  |
|  |  | Ncv32f \*  | *pDst* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Warp image using provided 2D vector field and 2x2 point spread function. 

 32-bit floating point image, single channel

 During warping pixels from the source image may fall between pixels of the destination image. PSF (point spread function) describes how the source image pixel affects pixels of the destination. For 2x2 PSF all four intersected pixels will be affected.

 Destination image size and line step must be the same as the source image size and line step

 
Parameters
 

|  |  |
| --- | --- |
| pSrc | [IN] Source image pointer (CUDA device memory)  |
| srcSize | [IN] Source image size  |
| nSrcStep | [IN] Source image line step  |
| pU | [IN] Pointer to horizontal displacement field (CUDA device memory)  |
| pV | [IN] Pointer to vertical displacement field (CUDA device memory)  |
| nVFStep | [IN] Displacement field line step  |
| pBuffer |  |
| timeScale | [IN] Value by which displacement field will be scaled for warping  |
| pDst | [OUT] Destination image pointer (CUDA device memory) |

   
Returns
NCV status code 
    nppiStVectorWarpGetBufferSize()
-------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| NCV\_EXPORTS NCVStatus nppiStVectorWarpGetBufferSize  | ( | [NcvSize32u](https://pointclouds.org/documentation/struct_ncv_size32u.html) | *srcSize*,  |
|  |  | Ncv32u  | *nSrcStep*,  |
|  |  | Ncv32u \*  | *hpSize* |
|  | ) |  |  |

 
 `#include </__w/1/s/gpu/people/src/cuda/nvidia/NPP_staging.hpp>`

 Size of buffer required for vector image warping. 

 
Parameters
 

|  |  |
| --- | --- |
| srcSize | [IN] Source image size  |
| nSrcStep | [IN] Source image line step  |
| hpSize | [OUT] Where to store computed size (host memory) |

   
Returns
NCV status code 
   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__nppi.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_filters** library contains outlier and noise removal mechanisms for 3D point cloud data filtering applications.

 An example of noise removal is presented in the figure below. Due to measurement errors, certain datasets present a large number of *shadow points*. This complicates the estimation of local point cloud 3D features. Some of these outliers can be filtered by performing a statistical analysis on each point's neighborhood, and trimming those which do not meet a certain criteria. The sparse outlier removal implementation in PCL is based on the computation of the distribution of point to neighbors distances in the input dataset. For each point, the mean distance from it to all its neighbors is computed. By assuming that the resulted distribution is Gaussian with a mean and a standard deviation, all points whose mean distances are outside an interval defined by the global distances mean and standard deviation can be considered as outliers and trimmed from the dataset.

  ![](http://www.pointclouds.org/assets/images/contents/documentation/filters_statistical_noise.png)  
 Requirements
==============

 * [common](group__common)
* [sample\_consensus](group__sample__consensus)
* [search](https://pointclouds.org/documentation/group__search.html)
* [kdtree](group__kdtree)
* [octree](group__octree)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::ApproximateVoxelGrid< PointT >](classpcl_1_1_approximate_voxel_grid) |
|  | [ApproximateVoxelGrid](classpcl_1_1_approximate_voxel_grid "ApproximateVoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the...") assembles a local 3D grid over a given [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."), and downsamples + filters the data. [More...](classpcl_1_1_approximate_voxel_grid#details) |
|
| class  | [pcl::BilateralFilter< PointT >](classpcl_1_1_bilateral_filter) |
|  | A bilateral filter implementation for point cloud data. [More...](classpcl_1_1_bilateral_filter#details) |
|
| class  | [pcl::BoxClipper3D< PointT >](classpcl_1_1_box_clipper3_d) |
|  | Implementation of a box clipper in 3D. Actually it allows affine transformations, thus any parallelepiped in general pose. The affine transformation is used to transform the point before clipping it using the unit cube centered at origin and with an extend of -1 to +1 in each dimension. [More...](classpcl_1_1_box_clipper3_d#details) |
|
| class  | [pcl::Clipper3D< PointT >](classpcl_1_1_clipper3_d) |
|  | Base class for 3D clipper objects. [More...](classpcl_1_1_clipper3_d#details) |
|
| class  | [pcl::ConditionalRemoval< PointT >](classpcl_1_1_conditional_removal) |
|  | **[ConditionalRemoval](classpcl_1_1_conditional_removal "ConditionalRemoval filters data that satisfies certain conditions.")** filters data that satisfies certain conditions. [More...](classpcl_1_1_conditional_removal#details) |
|
| class  | [pcl::filters::Convolution< PointIn, PointOut >](classpcl_1_1filters_1_1_convolution) |
|  | [Convolution](classpcl_1_1filters_1_1_convolution "Convolution is a mathematical operation on two functions f and g, producing a third function that is ...") is a mathematical operation on two functions f and g, producing a third function that is typically viewed as a modified version of one of the original functions. [More...](classpcl_1_1filters_1_1_convolution#details) |
|
| class  | [pcl::filters::ConvolvingKernel< PointInT, PointOutT >](classpcl_1_1filters_1_1_convolving_kernel) |
|  | Class [ConvolvingKernel](classpcl_1_1filters_1_1_convolving_kernel "Class ConvolvingKernel base class for all convolving kernels.") base class for all convolving kernels. [More...](classpcl_1_1filters_1_1_convolving_kernel#details) |
|
| class  | [pcl::filters::GaussianKernel< PointInT, PointOutT >](classpcl_1_1filters_1_1_gaussian_kernel) |
|  | Gaussian kernel implementation interface Use this as implementation reference. [More...](classpcl_1_1filters_1_1_gaussian_kernel#details) |
|
| class  | [pcl::filters::GaussianKernelRGB< PointInT, PointOutT >](classpcl_1_1filters_1_1_gaussian_kernel_r_g_b) |
|  | Gaussian kernel implementation interface with [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") channel handling Use this as implementation reference. [More...](classpcl_1_1filters_1_1_gaussian_kernel_r_g_b#details) |
|
| class  | [pcl::CropBox< PointT >](classpcl_1_1_crop_box) |
|  | [CropBox](classpcl_1_1_crop_box "CropBox is a filter that allows the user to filter all the data inside of a given box.") is a filter that allows the user to filter all the data inside of a given box. [More...](classpcl_1_1_crop_box#details) |
|
| class  | [pcl::CropBox< pcl::PCLPointCloud2 >](classpcl_1_1_crop_box_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | [CropBox](classpcl_1_1_crop_box "CropBox is a filter that allows the user to filter all the data inside of a given box.") is a filter that allows the user to filter all the data inside of a given box. [More...](classpcl_1_1_crop_box_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::CropHull< PointT >](classpcl_1_1_crop_hull) |
|  | [Filter](classpcl_1_1_filter "Filter represents the base filter class.") points that lie inside or outside a 3D closed surface or 2D closed polygon, as generated by the [ConvexHull](classpcl_1_1_convex_hull "ConvexHull using libqhull library.") or [ConcaveHull](classpcl_1_1_concave_hull "ConcaveHull (alpha shapes) using libqhull library.") classes. [More...](classpcl_1_1_crop_hull#details) |
|
| class  | [pcl::experimental::advanced::FunctorFilter< PointT, FunctionObject >](classpcl_1_1experimental_1_1advanced_1_1_functor_filter) |
|  | [Filter](classpcl_1_1_filter "Filter represents the base filter class.") point clouds and indices based on a function object passed in the ctor. [More...](classpcl_1_1experimental_1_1advanced_1_1_functor_filter#details) |
|
| class  | [pcl::ExtractIndices< PointT >](classpcl_1_1_extract_indices) |
|  | **[ExtractIndices](classpcl_1_1_extract_indices "ExtractIndices extracts a set of indices from a point cloud.")** extracts a set of indices from a point cloud. [More...](classpcl_1_1_extract_indices#details) |
|
| class  | [pcl::ExtractIndices< pcl::PCLPointCloud2 >](classpcl_1_1_extract_indices_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | **[ExtractIndices](classpcl_1_1_extract_indices "ExtractIndices extracts a set of indices from a point cloud.")** extracts a set of indices from a point cloud. [More...](classpcl_1_1_extract_indices_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::FarthestPointSampling< PointT >](classpcl_1_1_farthest_point_sampling) |
|  | **[FarthestPointSampling](classpcl_1_1_farthest_point_sampling "FarthestPointSampling applies farthest point sampling using euclidean distance, starting with a rando...")** applies farthest point sampling using euclidean distance, starting with a random point, utilizing a naive method. [More...](classpcl_1_1_farthest_point_sampling#details) |
|
| class  | [pcl::Filter< PointT >](classpcl_1_1_filter) |
|  | [Filter](classpcl_1_1_filter "Filter represents the base filter class.") represents the base filter class. [More...](classpcl_1_1_filter#details) |
|
| class  | [pcl::Filter< pcl::PCLPointCloud2 >](classpcl_1_1_filter_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | [Filter](classpcl_1_1_filter "Filter represents the base filter class.") represents the base filter class. [More...](classpcl_1_1_filter_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::FilterIndices< PointT >](classpcl_1_1_filter_indices) |
|  | **[FilterIndices](classpcl_1_1_filter_indices "FilterIndices represents the base class for filters that are about binary point removal.")** represents the base class for filters that are about binary point removal. [More...](classpcl_1_1_filter_indices#details) |
|
| class  | [pcl::FilterIndices< pcl::PCLPointCloud2 >](classpcl_1_1_filter_indices_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | **[FilterIndices](classpcl_1_1_filter_indices "FilterIndices represents the base class for filters that are about binary point removal.")** represents the base class for filters that are about binary point removal. [More...](classpcl_1_1_filter_indices_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::FrustumCulling< PointT >](classpcl_1_1_frustum_culling) |
|  | [FrustumCulling](classpcl_1_1_frustum_culling "FrustumCulling filters points inside a frustum given by pose and field of view of the camera.") filters points inside a frustum given by pose and field of view of the camera. [More...](classpcl_1_1_frustum_culling#details) |
|
| class  | [pcl::GridMinimum< PointT >](classpcl_1_1_grid_minimum) |
|  | [GridMinimum](classpcl_1_1_grid_minimum "GridMinimum assembles a local 2D grid over a given PointCloud, and downsamples the data.") assembles a local 2D grid over a given [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."), and downsamples the data. [More...](classpcl_1_1_grid_minimum#details) |
|
| class  | [pcl::LocalMaximum< PointT >](classpcl_1_1_local_maximum) |
|  | [LocalMaximum](classpcl_1_1_local_maximum "LocalMaximum downsamples the cloud, by eliminating points that are locally maximal.") downsamples the cloud, by eliminating points that are locally maximal. [More...](classpcl_1_1_local_maximum#details) |
|
| class  | [pcl::MedianFilter< PointT >](classpcl_1_1_median_filter) |
|  | Implementation of the median filter. [More...](classpcl_1_1_median_filter#details) |
|
| class  | [pcl::NormalRefinement< NormalT >](classpcl_1_1_normal_refinement) |
|  | Normal vector refinement class [More...](classpcl_1_1_normal_refinement#details) |
|
| class  | [pcl::NormalSpaceSampling< PointT, NormalT >](classpcl_1_1_normal_space_sampling) |
|  | **[NormalSpaceSampling](classpcl_1_1_normal_space_sampling "NormalSpaceSampling samples the input point cloud in the space of normal directions computed at every...")** samples the input point cloud in the space of normal directions computed at every point. [More...](classpcl_1_1_normal_space_sampling#details) |
|
| class  | [pcl::PassThrough< PointT >](https://pointclouds.org/documentation/classpcl_1_1_pass_through.html) |
|  | **[PassThrough](https://pointclouds.org/documentation/classpcl_1_1_pass_through.html "PassThrough passes points in a cloud based on constraints for one particular field of the point type.")** passes points in a cloud based on constraints for one particular field of the point type. [More...](https://pointclouds.org/documentation/classpcl_1_1_pass_through.html#details) |
|
| class  | [pcl::PassThrough< pcl::PCLPointCloud2 >](classpcl_1_1_pass_through_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | [PassThrough](https://pointclouds.org/documentation/classpcl_1_1_pass_through.html "PassThrough passes points in a cloud based on constraints for one particular field of the point type.") uses the base [Filter](classpcl_1_1_filter "Filter represents the base filter class.") class methods to pass through all data that satisfies the user given constraints. [More...](classpcl_1_1_pass_through_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::PlaneClipper3D< PointT >](classpcl_1_1_plane_clipper3_d) |
|  | Implementation of a plane clipper in 3D. [More...](classpcl_1_1_plane_clipper3_d#details) |
|
| class  | [pcl::ProjectInliers< PointT >](classpcl_1_1_project_inliers) |
|  | **[ProjectInliers](classpcl_1_1_project_inliers "ProjectInliers uses a model and a set of inlier indices from a PointCloud to project them into a sepa...")** uses a model and a set of inlier indices from a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") to project them into a separate [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](classpcl_1_1_project_inliers#details) |
|
| class  | [pcl::ProjectInliers< pcl::PCLPointCloud2 >](classpcl_1_1_project_inliers_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | **[ProjectInliers](classpcl_1_1_project_inliers "ProjectInliers uses a model and a set of inlier indices from a PointCloud to project them into a sepa...")** uses a model and a set of inlier indices from a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") to project them into a separate [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](classpcl_1_1_project_inliers_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::RadiusOutlierRemoval< PointT >](classpcl_1_1_radius_outlier_removal) |
|  | **[RadiusOutlierRemoval](classpcl_1_1_radius_outlier_removal "RadiusOutlierRemoval filters points in a cloud based on the number of neighbors they have.")** filters points in a cloud based on the number of neighbors they have. [More...](classpcl_1_1_radius_outlier_removal#details) |
|
| class  | [pcl::RadiusOutlierRemoval< pcl::PCLPointCloud2 >](classpcl_1_1_radius_outlier_removal_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | **[RadiusOutlierRemoval](classpcl_1_1_radius_outlier_removal "RadiusOutlierRemoval filters points in a cloud based on the number of neighbors they have.")** is a simple filter that removes outliers if the number of neighbors in a certain search radius is smaller than a given K. [More...](classpcl_1_1_radius_outlier_removal_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::RandomSample< PointT >](classpcl_1_1_random_sample) |
|  | **[RandomSample](classpcl_1_1_random_sample "RandomSample applies a random sampling with uniform probability.")** applies a random sampling with uniform probability. [More...](classpcl_1_1_random_sample#details) |
|
| class  | [pcl::RandomSample< pcl::PCLPointCloud2 >](classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | **[RandomSample](classpcl_1_1_random_sample "RandomSample applies a random sampling with uniform probability.")** applies a random sampling with uniform probability. [More...](classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::SamplingSurfaceNormal< PointT >](classpcl_1_1_sampling_surface_normal) |
|  | **[SamplingSurfaceNormal](classpcl_1_1_sampling_surface_normal "SamplingSurfaceNormal divides the input space into grids until each grid contains a maximum of N poin...")** divides the input space into grids until each grid contains a maximum of N points, and samples points randomly within each grid. [More...](classpcl_1_1_sampling_surface_normal#details) |
|
| class  | [pcl::ShadowPoints< PointT, NormalT >](classpcl_1_1_shadow_points) |
|  | **[ShadowPoints](classpcl_1_1_shadow_points "ShadowPoints removes the ghost points appearing on edge discontinuties")** removes the ghost points appearing on edge discontinuties [More...](classpcl_1_1_shadow_points#details) |
|
| class  | [pcl::StatisticalOutlierRemoval< PointT >](classpcl_1_1_statistical_outlier_removal) |
|  | **[StatisticalOutlierRemoval](classpcl_1_1_statistical_outlier_removal "StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data.")** uses point neighborhood statistics to filter outlier data. [More...](classpcl_1_1_statistical_outlier_removal#details) |
|
| class  | [pcl::StatisticalOutlierRemoval< pcl::PCLPointCloud2 >](classpcl_1_1_statistical_outlier_removal_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | **[StatisticalOutlierRemoval](classpcl_1_1_statistical_outlier_removal "StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data.")** uses point neighborhood statistics to filter outlier data. [More...](classpcl_1_1_statistical_outlier_removal_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::UniformSampling< PointT >](classpcl_1_1_uniform_sampling) |
|  | **[UniformSampling](classpcl_1_1_uniform_sampling "UniformSampling assembles a local 3D grid over a given PointCloud, and downsamples + filters the data...")** assembles a local 3D grid over a given [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."), and downsamples + filters the data. [More...](classpcl_1_1_uniform_sampling#details) |
|
| class  | [pcl::VoxelGrid< PointT >](classpcl_1_1_voxel_grid) |
|  | [VoxelGrid](classpcl_1_1_voxel_grid "VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data.") assembles a local 3D grid over a given [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."), and downsamples + filters the data. [More...](classpcl_1_1_voxel_grid#details) |
|
| class  | [pcl::VoxelGrid< pcl::PCLPointCloud2 >](classpcl_1_1_voxel_grid_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | [VoxelGrid](classpcl_1_1_voxel_grid "VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data.") assembles a local 3D grid over a given [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."), and downsamples + filters the data. [More...](classpcl_1_1_voxel_grid_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::VoxelGridOcclusionEstimation< PointT >](classpcl_1_1_voxel_grid_occlusion_estimation) |
|  | [VoxelGrid](classpcl_1_1_voxel_grid "VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data.") to estimate occluded space in the scene. [More...](classpcl_1_1_voxel_grid_occlusion_estimation#details) |
|




|  |
| --- |
| 
 Functions |
| template<typename PointT >  |
| void  | [pcl::removeNaNFromPointCloud](group__filters#ga9de762e05951938f074479c3bf8ae084) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &index) |
|  | Removes points with x, y, or z equal to NaN. [More...](group__filters#ga9de762e05951938f074479c3bf8ae084) |
|
| template<typename PointT >  |
| void  | [pcl::removeNaNNormalsFromPointCloud](group__filters#ga8156e210186174a05af6251a2932006a) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &index) |
|  | Removes points that have their normals invalid (i.e., equal to NaN) [More...](group__filters#ga8156e210186174a05af6251a2932006a) |
|
| template<typename PointT >  |
| void  | [pcl::removeNaNFromPointCloud](group__filters#ga0839c52ff34eb1f6ffc58cf5cc853bd8) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &index) |
|  | Removes points with x, y, or z equal to NaN (dry run). [More...](group__filters#ga0839c52ff34eb1f6ffc58cf5cc853bd8) |
|
| template<typename PointT >  |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::applyMorphologicalOperator](group__filters#gab8ec453347225d3a0d34c70e0a9ee223) (const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &cloud\_in, float resolution, const int morphological\_operator, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Apply morphological operator to the z dimension of the input point cloud. [More...](group__filters#gab8ec453347225d3a0d34c70e0a9ee223) |
|
| template<typename NormalT >  |
| std::vector< float >  | [pcl::assignNormalWeights](group__filters#ga2fa1a673ddb4fce5d408141a0f7f10ec) (const [PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > &cloud, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, const std::vector< float > &k\_sqr\_distances) |
|  | Assign weights of nearby normals used for refinement. [More...](group__filters#ga2fa1a673ddb4fce5d408141a0f7f10ec) |
|
| template<typename NormalT >  |
| bool  | [pcl::refineNormal](group__filters#ga97a19f59a33da441d2e7ba35506627ad) (const [PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > &cloud, int index, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, const std::vector< float > &k\_sqr\_distances, [NormalT](structpcl_1_1_normal) &point) |
|  | Refine an indexed point based on its neighbors, this function only writes to the normal\_\* fields. [More...](group__filters#ga97a19f59a33da441d2e7ba35506627ad) |
|
| Eigen::MatrixXi  | [pcl::getHalfNeighborCellIndices](group__filters#gaffa333cb2c210067835f11bf84feb659) () |
|  | Get the relative cell indices of the "upper half" 13 neighbors. [More...](group__filters#gaffa333cb2c210067835f11bf84feb659) |
|
| Eigen::MatrixXi  | [pcl::getAllNeighborCellIndices](group__filters#ga6a35c2d72627c558cb22b85d1f2c0679) () |
|  | Get the relative cell indices of all the 26 neighbors. [More...](group__filters#ga6a35c2d72627c558cb22b85d1f2c0679) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax3D](group__filters#gaaff287f132f05316c896e410d689569b) (const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &cloud, const std::string &distance\_field\_name, float min\_distance, float max\_distance, Eigen::Vector4f &min\_pt, Eigen::Vector4f &max\_pt, bool limit\_negative=false) |
|  | Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud, without considering points outside of a distance threshold from the laser origin. [More...](group__filters#gaaff287f132f05316c896e410d689569b) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax3D](group__filters#ga11cf5b99837ee9ed5e5e85e87f12c075) (const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::string &distance\_field\_name, float min\_distance, float max\_distance, Eigen::Vector4f &min\_pt, Eigen::Vector4f &max\_pt, bool limit\_negative=false) |
|  | Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud, without considering points outside of a distance threshold from the laser origin. [More...](group__filters#ga11cf5b99837ee9ed5e5e85e87f12c075) |
|

 Function Documentation
----------------------

  applyMorphologicalOperator()
----------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::applyMorphologicalOperator  | ( | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &  | *cloud\_in*,  |
|  |  | float  | *resolution*,  |
|  |  | const int  | *morphological\_operator*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/filters/morphological_filter.h>`

 Apply morphological operator to the z dimension of the input point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | resolution | the window size to be used for the morphological operation  |
| [in] | morphological\_operator | the morphological operator to apply (open, close, dilate, erode)  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   Definition at line [57](https://pointclouds.org/documentation/morphological__filter_8hpp_source.html#l00057) of file [morphological\_filter.hpp](https://pointclouds.org/documentation/morphological__filter_8hpp_source.html).

 References [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud()](https://pointclouds.org/documentation/octree__pointcloud_8hpp_source.html#l00079), [pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::boxSearch()](https://pointclouds.org/documentation/octree__search_8hpp_source.html#l00205), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::PointCloud< PointT >::empty()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446), [pcl::MORPH\_CLOSE](https://pointclouds.org/documentation/morphological__filter_8h_source.html#l00052), [pcl::MORPH\_DILATE](https://pointclouds.org/documentation/morphological__filter_8h_source.html#l00053), [pcl::MORPH\_ERODE](https://pointclouds.org/documentation/morphological__filter_8h_source.html#l00054), [pcl::MORPH\_OPEN](https://pointclouds.org/documentation/morphological__filter_8h_source.html#l00051), [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud()](https://pointclouds.org/documentation/octree__pointcloud_8h_source.html#l00117), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872).

    assignNormalWeights()
---------------------

    template<typename NormalT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::vector<float> pcl::assignNormalWeights  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > &  | *cloud*,  |
|  |  | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *index*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | const std::vector< float > &  | *k\_sqr\_distances* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/filters/normal_refinement.h>`

 Assign weights of nearby normals used for refinement. 

 
**[Todo:](todo#_todo000010)**
Currently, this function equalizes all weights to 1 
 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud data  |
| index | a *valid* index in *cloud* representing a *valid* (i.e., finite) query point  |
| k\_indices | indices of neighboring points  |
| k\_sqr\_distances | squared distances to the neighboring points  |

   
Returns
weights 
 Definition at line [56](https://pointclouds.org/documentation/normal__refinement_8h_source.html#l00056) of file [normal\_refinement.h](https://pointclouds.org/documentation/normal__refinement_8h_source.html).

 References [pcl::utils::ignore()](https://pointclouds.org/documentation/utils_8h_source.html#l00062).

 Referenced by [pcl::refineNormal()](https://pointclouds.org/documentation/normal__refinement_8h_source.html#l00083).

    getAllNeighborCellIndices()
---------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::MatrixXi pcl::getAllNeighborCellIndices  | ( |  | ) |  |

 | inline |

 
 `#include <pcl/filters/voxel_grid.h>`

 Get the relative cell indices of all the 26 neighbors. 

 
Note
Useful in combination with getNeighborCentroidIndices() from [VoxelGrid](classpcl_1_1_voxel_grid) 
 Definition at line [120](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00120) of file [voxel\_grid.h](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html).

 References [pcl::getHalfNeighborCellIndices()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00083).

 Referenced by [pcl::VoxelGridCovariance< PointT >::getAllNeighborsAtPoint()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00434), and [pcl::VoxelGridCovariance< PointT >::getNeighborhoodAtPoint()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00403).

    getHalfNeighborCellIndices()
----------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::MatrixXi pcl::getHalfNeighborCellIndices  | ( |  | ) |  |

 | inline |

 
 `#include <pcl/filters/voxel_grid.h>`

 Get the relative cell indices of the "upper half" 13 neighbors. 

 
Note
Useful in combination with getNeighborCentroidIndices() from [VoxelGrid](classpcl_1_1_voxel_grid) 
 Definition at line [83](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00083) of file [voxel\_grid.h](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html).

 Referenced by [pcl::getAllNeighborCellIndices()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00120).

    getMinMax3D() [1/2]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax3D  | ( | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::string &  | *distance\_field\_name*,  |
|  |  | float  | *min\_distance*,  |
|  |  | float  | *max\_distance*,  |
|  |  | Eigen::Vector4f &  | *min\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt*,  |
|  |  | bool  | *limit\_negative* = `false` |
|  | ) |  |  |

 
 `#include <pcl/filters/voxel_grid.h>`

 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud, without considering points outside of a distance threshold from the laser origin. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data message  |
| [in] | indices | the vector of indices to use  |
| [in] | distance\_field\_name | the field name that contains the distance values  |
| [in] | min\_distance | the minimum distance a point will be considered from  |
| [in] | max\_distance | the maximum distance a point will be considered to  |
| [out] | min\_pt | the resultant minimum bounds  |
| [out] | max\_pt | the resultant maximum bounds  |
| [in] | limit\_negative | if set to true, then all points outside of the interval (min\_distance;max\_distace) are considered  |

   Definition at line [132](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00132) of file [voxel\_grid.hpp](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403).

    getMinMax3D() [2/2]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax3D  | ( | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &  | *cloud*,  |
|  |  | const std::string &  | *distance\_field\_name*,  |
|  |  | float  | *min\_distance*,  |
|  |  | float  | *max\_distance*,  |
|  |  | Eigen::Vector4f &  | *min\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt*,  |
|  |  | bool  | *limit\_negative* = `false` |
|  | ) |  |  |

 
 `#include <pcl/filters/voxel_grid.h>`

 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud, without considering points outside of a distance threshold from the laser origin. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data message  |
| [in] | distance\_field\_name | the field name that contains the distance values  |
| [in] | min\_distance | the minimum distance a point will be considered from  |
| [in] | max\_distance | the maximum distance a point will be considered to  |
| [out] | min\_pt | the resultant minimum bounds  |
| [out] | max\_pt | the resultant maximum bounds  |
| [in] | limit\_negative | if set to true, then all points outside of the interval (min\_distance;max\_distace) are considered  |

   Definition at line [51](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00051) of file [voxel\_grid.hpp](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isXYZFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00125).

    refineNormal()
--------------

    template<typename NormalT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::refineNormal  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > &  | *cloud*,  |
|  |  | int  | *index*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | const std::vector< float > &  | *k\_sqr\_distances*,  |
|  |  | [NormalT](structpcl_1_1_normal) &  | *point* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/filters/normal_refinement.h>`

 Refine an indexed point based on its neighbors, this function only writes to the normal\_\* fields. 

 
Note
If the indexed point has only NaNs in its neighborhood, the resulting normal will be zero.
 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud data  |
| index | a *valid* index in *cloud* representing a *valid* (i.e., finite) query point  |
| k\_indices | indices of neighboring points  |
| k\_sqr\_distances | squared distances to the neighboring points  |
| point | the output point, only normal\_\* fields are written  |

   
Returns
false if an error occurred (norm of summed normals zero or all neighbors NaN) 
 Definition at line [83](https://pointclouds.org/documentation/normal__refinement_8h_source.html#l00083) of file [normal\_refinement.h](https://pointclouds.org/documentation/normal__refinement_8h_source.html).

 References [pcl::assignNormalWeights()](https://pointclouds.org/documentation/normal__refinement_8h_source.html#l00056).

 Referenced by [pcl::NormalRefinement< NormalT >::applyFilter()](https://pointclouds.org/documentation/normal__refinement_8hpp_source.html#l00048).

    removeNaNFromPointCloud() [1/2]
-------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::removeNaNFromPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *index* |
|  | ) |  |  |

 
 `#include <pcl/filters/filter_indices.h>`

 Removes points with x, y, or z equal to NaN (dry run). 

 This function only computes the mapping between the points in the input cloud and the cloud that would result from filtering. It does not actually construct and output the filtered cloud.

 
Note
This function does not modify the input point cloud!
 
Parameters
 

|  |  |
| --- | --- |
| cloud\_in | the input point cloud  |
| index | the mapping (ordered): filtered\_cloud[i] = cloud\_in[index[i]] |

   
See also

[removeNaNFromPointCloud](group__filters#ga9de762e05951938f074479c3bf8ae084 "Removes points with x, y, or z equal to NaN.") 
 Definition at line [44](https://pointclouds.org/documentation/filter__indices_8hpp_source.html#l00044) of file [filter\_indices.hpp](https://pointclouds.org/documentation/filter__indices_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    removeNaNFromPointCloud() [2/2]
-------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::removeNaNFromPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *index* |
|  | ) |  |  |

 
 `#include <pcl/filters/filter.h>`

 Removes points with x, y, or z equal to NaN. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the output point cloud  |
| [out] | index | the mapping (ordered): cloud\_out[i] = cloud\_in[index[i]]  |

   
Note
The density of the point cloud is lost.   Can be called with cloud\_in == cloud\_out 
 Definition at line [46](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046) of file [filter.hpp](https://pointclouds.org/documentation/filter_8hpp_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::kinfuLS::WorldModel< PointT >::cleanWorldFromNans()](https://pointclouds.org/documentation/world__model_8h_source.html#l00137), and [pcl::kinfuLS::WorldModel< PointT >::getWorldAsCubes()](https://pointclouds.org/documentation/world__model_8hpp_source.html#l00136).

    removeNaNNormalsFromPointCloud()
--------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::removeNaNNormalsFromPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *index* |
|  | ) |  |  |

 
 `#include <pcl/filters/filter.h>`

 Removes points that have their normals invalid (i.e., equal to NaN) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the output point cloud  |
| [out] | index | the mapping (ordered): cloud\_out[i] = cloud\_in[index[i]]  |

   
Note
The density of the point cloud is lost.   Can be called with cloud\_in == cloud\_out 
 Definition at line [99](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099) of file [filter.hpp](https://pointclouds.org/documentation/filter_8hpp_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__filters.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_io** library contains classes and functions for reading and writing point cloud data (PCD) files, as well as capturing point clouds from a variety of sensing devices. An introduction to some of these capabilities can be found in the following tutorials:

 * [The PCD (Point Cloud Data) file format](http://pointclouds.org/documentation/tutorials/pcd_file_format.php#pcd-file-format)
* [Reading PointCloud data from PCD files](http://pointclouds.org/documentation/tutorials/reading_pcd.php#reading-pcd)
* [Writing PointCloud data to PCD files](http://pointclouds.org/documentation/tutorials/writing_pcd.php#writing-pcd)
* [The OpenNI Grabber Framework in PCL](http://pointclouds.org/documentation/tutorials/openni_grabber.php#openni-grabber)
* [Grabbing point clouds from Ensenso cameras](http://pointclouds.org/documentation/tutorials/ensenso_cameras.php)

 PCL is agnostic with respect to the data sources that are used to generate 3D point clouds. While OpenNI-compatible cameras have recently been at the center of attention in the 3D/robotics sensing community, many of the devices enumerated below have been used with PCL tools in the past:

  ![](http://pointclouds.org/assets/images/contents/documentation/io/pr2.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/composite.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/lms400.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/openni.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/trimble.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/minolta.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/fujiw3.jpg)   ![](http://pointclouds.org/assets/images/contents/documentation/io/borg.jpg)  
 Requirements
==============

 * [common](group__common)
* [octree](group__octree)
* OpenNi for kinect handling
* uEye and Ensenso SDK for Ensenso handling

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::ASCIIReader](classpcl_1_1_a_s_c_i_i_reader) |
|  | Ascii Point Cloud Reader. [More...](classpcl_1_1_a_s_c_i_i_reader#details) |
|
| class  | [pcl::io::Buffer< T >](classpcl_1_1io_1_1_buffer) |
|  | An abstract base class for fixed-size data buffers. [More...](classpcl_1_1io_1_1_buffer#details) |
|
| class  | [pcl::DavidSDKGrabber](classpcl_1_1_david_s_d_k_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for davidSDK structured light compliant devices. [More...](classpcl_1_1_david_s_d_k_grabber#details) |
|
| class  | [pcl::io::DeBayer](classpcl_1_1io_1_1_de_bayer) |
|  | Various debayering methods. [More...](classpcl_1_1io_1_1_de_bayer#details) |
|
| class  | [pcl::DepthSenseGrabber](classpcl_1_1_depth_sense_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for DepthSense devices (e.g. [More...](classpcl_1_1_depth_sense_grabber#details) |
|
| class  | [pcl::DinastGrabber](classpcl_1_1_dinast_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for DINAST devices (i.e., IPA-1002, IPA-1110, IPA-2001) [More...](classpcl_1_1_dinast_grabber#details) |
|
| class  | [pcl::EnsensoGrabber](classpcl_1_1_ensenso_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for IDS-Imaging Ensenso's devices. [More...](classpcl_1_1_ensenso_grabber#details) |
|
| class  | [pcl::FileGrabber< PointT >](classpcl_1_1_file_grabber) |
|  | [FileGrabber](classpcl_1_1_file_grabber "FileGrabber provides a container-style interface for grabbers which operate on fixed-size input.") provides a container-style interface for grabbers which operate on fixed-size input. [More...](classpcl_1_1_file_grabber#details) |
|
| class  | [pcl::FileReader](classpcl_1_1_file_reader) |
|  | Point Cloud Data (FILE) file format reader interface. [More...](classpcl_1_1_file_reader#details) |
|
| class  | [pcl::FileWriter](classpcl_1_1_file_writer) |
|  | Point Cloud Data (FILE) file format writer. [More...](classpcl_1_1_file_writer#details) |
|
| class  | [pcl::Grabber](classpcl_1_1_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") interface for PCL 1.x device drivers. [More...](classpcl_1_1_grabber#details) |
|
| class  | [pcl::HDLGrabber](classpcl_1_1_h_d_l_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for the Velodyne High-Definition-Laser (HDL) [More...](classpcl_1_1_h_d_l_grabber#details) |
|
| class  | [pcl::IFSReader](classpcl_1_1_i_f_s_reader) |
|  | Indexed Face set (IFS) file format reader. [More...](classpcl_1_1_i_f_s_reader#details) |
|
| class  | [pcl::IFSWriter](classpcl_1_1_i_f_s_writer) |
|  | Point Cloud Data (IFS) file format writer. [More...](classpcl_1_1_i_f_s_writer#details) |
|
| class  | [pcl::io::Image](classpcl_1_1io_1_1_image) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") interface class providing an interface to fill a [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") or Grayscale image buffer. [More...](classpcl_1_1io_1_1_image#details) |
|
| class  | [pcl::ImageGrabberBase](classpcl_1_1_image_grabber_base) |
|  | Base class for Image file grabber. [More...](classpcl_1_1_image_grabber_base#details) |
|
| class  | [pcl::io::ImageRGB24](classpcl_1_1io_1_1_image_r_g_b24) |
|  | This class provides methods to fill a [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") or Grayscale image buffer from underlying RGB24 image. [More...](classpcl_1_1io_1_1_image_r_g_b24#details) |
|
| class  | [pcl::io::ImageYUV422](classpcl_1_1io_1_1_image_y_u_v422) |
|  | Concrete implementation of the interface [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") for a YUV 422 image used by Primesense devices. [More...](classpcl_1_1io_1_1_image_y_u_v422#details) |
|
| class  | [pcl::io::LZFImageReader](classpcl_1_1io_1_1_l_z_f_image_reader) |
|  | PCL-LZF image format reader. [More...](classpcl_1_1io_1_1_l_z_f_image_reader#details) |
|
| class  | [pcl::io::LZFDepth16ImageReader](classpcl_1_1io_1_1_l_z_f_depth16_image_reader) |
|  | PCL-LZF 16-bit depth image format reader. [More...](classpcl_1_1io_1_1_l_z_f_depth16_image_reader#details) |
|
| class  | [pcl::io::LZFRGB24ImageReader](classpcl_1_1io_1_1_l_z_f_r_g_b24_image_reader) |
|  | PCL-LZF 24-bit [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image format reader. [More...](classpcl_1_1io_1_1_l_z_f_r_g_b24_image_reader#details) |
|
| class  | [pcl::io::LZFYUV422ImageReader](classpcl_1_1io_1_1_l_z_f_y_u_v422_image_reader) |
|  | PCL-LZF 8-bit Bayer image format reader. [More...](classpcl_1_1io_1_1_l_z_f_y_u_v422_image_reader#details) |
|
| class  | [pcl::io::LZFBayer8ImageReader](classpcl_1_1io_1_1_l_z_f_bayer8_image_reader) |
|  | PCL-LZF 8-bit Bayer image format reader. [More...](classpcl_1_1io_1_1_l_z_f_bayer8_image_reader#details) |
|
| class  | [pcl::io::LZFImageWriter](classpcl_1_1io_1_1_l_z_f_image_writer) |
|  | PCL-LZF image format writer. [More...](classpcl_1_1io_1_1_l_z_f_image_writer#details) |
|
| class  | [pcl::io::LZFDepth16ImageWriter](classpcl_1_1io_1_1_l_z_f_depth16_image_writer) |
|  | PCL-LZF 16-bit depth image format writer. [More...](classpcl_1_1io_1_1_l_z_f_depth16_image_writer#details) |
|
| class  | [pcl::io::LZFRGB24ImageWriter](classpcl_1_1io_1_1_l_z_f_r_g_b24_image_writer) |
|  | PCL-LZF 24-bit [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image format writer. [More...](classpcl_1_1io_1_1_l_z_f_r_g_b24_image_writer#details) |
|
| class  | [pcl::io::LZFYUV422ImageWriter](classpcl_1_1io_1_1_l_z_f_y_u_v422_image_writer) |
|  | PCL-LZF 16-bit YUV422 image format writer. [More...](classpcl_1_1io_1_1_l_z_f_y_u_v422_image_writer#details) |
|
| class  | [pcl::io::LZFBayer8ImageWriter](classpcl_1_1io_1_1_l_z_f_bayer8_image_writer) |
|  | PCL-LZF 8-bit Bayer image format writer. [More...](classpcl_1_1io_1_1_l_z_f_bayer8_image_writer#details) |
|
| class  | [pcl::ONIGrabber](classpcl_1_1_o_n_i_grabber) |
|  | A simple ONI grabber. [More...](classpcl_1_1_o_n_i_grabber#details) |
|
| class  | [openni\_wrapper::OpenNIDevice](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_device.html) |
|  | Class representing an astract device for OpenNI devices: Primesense PSDK, Microsoft Kinect, Asus Xtion Pro/Live. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_device.html#details) |
|
| class  | [openni\_wrapper::DeviceKinect](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_kinect.html) |
|  | Concrete implementation of the interface [OpenNIDevice](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_device.html "Class representing an astract device for OpenNI devices: Primesense PSDK, Microsoft Kinect,...") for a MS Kinect device. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_kinect.html#details) |
|
| class  | [openni\_wrapper::DeviceONI](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_o_n_i.html) |
|  | Concrete implementation of the interface [OpenNIDevice](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_device.html "Class representing an astract device for OpenNI devices: Primesense PSDK, Microsoft Kinect,...") for a virtual device playing back an ONI file. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_o_n_i.html#details) |
|
| class  | [openni\_wrapper::DevicePrimesense](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_primesense.html) |
|  | Concrete implementation of the interface [OpenNIDevice](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_device.html "Class representing an astract device for OpenNI devices: Primesense PSDK, Microsoft Kinect,...") for a Primesense device. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_primesense.html#details) |
|
| class  | [openni\_wrapper::DeviceXtionPro](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_xtion_pro.html) |
|  | Concrete implementation of the interface [OpenNIDevice](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_device.html "Class representing an astract device for OpenNI devices: Primesense PSDK, Microsoft Kinect,...") for a Asus Xtion Pro device. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_device_xtion_pro.html#details) |
|
| class  | [openni\_wrapper::OpenNIDriver](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_driver.html) |
|  | Driver class implemented as Singleton. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_driver.html#details) |
|
| class  | [openni\_wrapper::OpenNIException](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_exception.html) |
|  | General exception class. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_open_n_i_exception.html#details) |
|
| class  | [openni\_wrapper::Image](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image.html) |
|  | [Image](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image.html "Image class containing just a reference to image meta data.") class containing just a reference to image meta data. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image.html#details) |
|
| class  | [openni\_wrapper::ImageBayerGRBG](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image_bayer_g_r_b_g.html) |
|  | This class provides methods to fill a RGB or Grayscale image buffer from underlying Bayer pattern image. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image_bayer_g_r_b_g.html#details) |
|
| class  | [openni\_wrapper::ImageRGB24](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image_r_g_b24.html) |
|  | This class provides methods to fill a RGB or Grayscale image buffer from underlying RGB24 image. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image_r_g_b24.html#details) |
|
| class  | [openni\_wrapper::ImageYUV422](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image_y_u_v422.html) |
|  | Concrete implementation of the interface [Image](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image.html "Image class containing just a reference to image meta data.") for a YUV 422 image used by Primesense devices. [More...](https://pointclouds.org/documentation/classopenni__wrapper_1_1_image_y_u_v422.html#details) |
|
| class  | [pcl::OpenNIGrabber](classpcl_1_1_open_n_i_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for OpenNI devices (i.e., Primesense PSDK, Microsoft Kinect, Asus XTion Pro/Live) [More...](classpcl_1_1_open_n_i_grabber#details) |
|
| class  | [pcl::PCDGrabberBase](classpcl_1_1_p_c_d_grabber_base) |
|  | Base class for PCD file grabber. [More...](classpcl_1_1_p_c_d_grabber_base#details) |
|
| class  | [pcl::PCDReader](classpcl_1_1_p_c_d_reader) |
|  | Point Cloud Data (PCD) file format reader. [More...](classpcl_1_1_p_c_d_reader#details) |
|
| class  | [pcl::PCDWriter](classpcl_1_1_p_c_d_writer) |
|  | Point Cloud Data (PCD) file format writer. [More...](classpcl_1_1_p_c_d_writer#details) |
|
| class  | [pcl::PLYReader](classpcl_1_1_p_l_y_reader) |
|  | Point Cloud Data (PLY) file format reader. [More...](classpcl_1_1_p_l_y_reader#details) |
|
| class  | [pcl::PLYWriter](classpcl_1_1_p_l_y_writer) |
|  | Point Cloud Data (PLY) file format writer. [More...](classpcl_1_1_p_l_y_writer#details) |
|
| class  | [pcl::io::PointCloudImageExtractor< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor) |
|  | Base [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor class for organized point clouds. [More...](classpcl_1_1io_1_1_point_cloud_image_extractor#details) |
|
| class  | [pcl::io::PointCloudImageExtractorWithScaling< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_with_scaling) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor extension which provides functionality to apply scaling to the values extracted from a field. [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_with_scaling#details) |
|
| class  | [pcl::io::PointCloudImageExtractorFromNormalField< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_from_normal_field) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor which uses the data present in the "normal" field. [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_from_normal_field#details) |
|
| class  | [pcl::io::PointCloudImageExtractorFromRGBField< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_from_r_g_b_field) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor which uses the data present in the "rgb" or "rgba" fields to produce a color image with rgb8 encoding. [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_from_r_g_b_field#details) |
|
| class  | [pcl::io::PointCloudImageExtractorFromLabelField< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_from_label_field) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor which uses the data present in the "label" field to produce either monochrome or [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image where different labels correspond to different colors. [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_from_label_field#details) |
|
| class  | [pcl::io::PointCloudImageExtractorFromZField< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_from_z_field) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor which uses the data present in the "z" field to produce a depth map (as a monochrome image with mono16 encoding). [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_from_z_field#details) |
|
| class  | [pcl::io::PointCloudImageExtractorFromCurvatureField< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_from_curvature_field) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor which uses the data present in the "curvature" field to produce a curvature map (as a monochrome image with mono16 encoding). [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_from_curvature_field#details) |
|
| class  | [pcl::io::PointCloudImageExtractorFromIntensityField< PointT >](classpcl_1_1io_1_1_point_cloud_image_extractor_from_intensity_field) |
|  | [Image](classpcl_1_1io_1_1_image "Image interface class providing an interface to fill a RGB or Grayscale image buffer.") Extractor which uses the data present in the "intensity" field to produce a monochrome intensity image (with mono16 encoding). [More...](classpcl_1_1io_1_1_point_cloud_image_extractor_from_intensity_field#details) |
|
| class  | [pcl::RealSense2Grabber](classpcl_1_1_real_sense2_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for Intel Realsense 2 SDK devices (D400 series) [More...](classpcl_1_1_real_sense2_grabber#details) |
|
| class  | [pcl::RobotEyeGrabber](classpcl_1_1_robot_eye_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for the Ocular Robotics RobotEye sensor. [More...](classpcl_1_1_robot_eye_grabber#details) |
|
| class  | [pcl::VLPGrabber](classpcl_1_1_v_l_p_grabber) |
|  | [Grabber](classpcl_1_1_grabber "Grabber interface for PCL 1.x device drivers.") for the Velodyne LiDAR (VLP), based on the Velodyne High Definition Laser (HDL) [More...](classpcl_1_1_v_l_p_grabber#details) |
|
| class  | [pcl::StereoGrabberBase](classpcl_1_1_stereo_grabber_base) |
|  | Base class for Stereo file grabber. [More...](classpcl_1_1_stereo_grabber_base#details) |
|




|  |
| --- |
| 
 Files |
| file  | [byte\_order.h](https://pointclouds.org/documentation/byte__order_8h.html) |
|  | defines byte shift operations and endianness.  |
|
| file  | [io\_operators.h](https://pointclouds.org/documentation/io__operators_8h.html) |
|  | defines output operators for int8 and uint8  |
|
| file  | [ply.h](https://pointclouds.org/documentation/ply_8h.html) |
|  | contains standard typedefs and generic type traits  |
|




|  |
| --- |
| 
 Functions |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::encodeMonoImageToPNG](group__io#gad5813526bed165852e90417c75365851) (std::vector< std::uint8\_t > &image\_arg, std::size\_t width\_arg, std::size\_t height\_arg, std::vector< std::uint8\_t > &pngData\_arg, int png\_level\_arg=-1) |
|  | Encodes 8-bit mono image to PNG format. [More...](group__io#gad5813526bed165852e90417c75365851) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::encodeMonoImageToPNG](group__io#ga04a59592144508ace647cfeec7534355) (std::vector< std::uint16\_t > &image\_arg, std::size\_t width\_arg, std::size\_t height\_arg, std::vector< std::uint8\_t > &pngData\_arg, int png\_level\_arg=-1) |
|  | Encodes 16-bit mono image to PNG format. [More...](group__io#ga04a59592144508ace647cfeec7534355) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::encodeRGBImageToPNG](group__io#ga8e51d7d9ba50f7aa99a20d3885432424) (std::vector< std::uint8\_t > &image\_arg, std::size\_t width\_arg, std::size\_t height\_arg, std::vector< std::uint8\_t > &pngData\_arg, int png\_level\_arg=-1) |
|  | Encodes 8-bit [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image to PNG format. [More...](group__io#ga8e51d7d9ba50f7aa99a20d3885432424) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::encodeRGBImageToPNG](group__io#gac3a4ea366dd2bf9f2b3b0846d37b17f3) (std::vector< std::uint16\_t > &image\_arg, std::size\_t width\_arg, std::size\_t height\_arg, std::vector< std::uint8\_t > &pngData\_arg, int png\_level\_arg=-1) |
|  | Encodes 16-bit [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image to PNG format. [More...](group__io#gac3a4ea366dd2bf9f2b3b0846d37b17f3) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::decodePNGToImage](group__io#ga5edc4fa49cee81e2602e78c84d6441f7) (std::vector< std::uint8\_t > &pngData\_arg, std::vector< std::uint8\_t > &imageData\_arg, std::size\_t &width\_arg, std::size\_t &heigh\_argt, unsigned int &channels\_arg) |
|  | Decode compressed PNG to 8-bit image. [More...](group__io#ga5edc4fa49cee81e2602e78c84d6441f7) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::decodePNGToImage](group__io#gab7a7d3b8428d4dd65e73f39f5ac4860c) (std::vector< std::uint8\_t > &pngData\_arg, std::vector< std::uint16\_t > &imageData\_arg, std::size\_t &width\_arg, std::size\_t &height\_arg, unsigned int &channels\_arg) |
|  | Decode compressed PNG to 16-bit image. [More...](group__io#gab7a7d3b8428d4dd65e73f39f5ac4860c) |
|
| static void  | [pcl::io::OrganizedConversion< PointT, false >::convert](group__io#gabf362aa83e7fd94a7dc241e7544756c6) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_arg, float focalLength\_arg, float disparityShift\_arg, float disparityScale\_arg, bool, typename std::vector< std::uint16\_t > &disparityData\_arg, typename std::vector< std::uint8\_t > &) |
|  | Convert point cloud to disparity image. [More...](group__io#gabf362aa83e7fd94a7dc241e7544756c6) |
|
| static void  | [pcl::io::OrganizedConversion< PointT, false >::convert](group__io#ga745388a67ffa4892cdd14a4c43ec8b4b) (typename std::vector< std::uint16\_t > &disparityData\_arg, typename std::vector< std::uint8\_t > &, bool, std::size\_t width\_arg, std::size\_t height\_arg, float focalLength\_arg, float disparityShift\_arg, float disparityScale\_arg, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_arg) |
|  | Convert disparity image to point cloud. [More...](group__io#ga745388a67ffa4892cdd14a4c43ec8b4b) |
|
| static void  | [pcl::io::OrganizedConversion< PointT, false >::convert](group__io#ga2ca868dae19c653691a0217970caf954) (typename std::vector< float > &depthData\_arg, typename std::vector< std::uint8\_t > &, bool, std::size\_t width\_arg, std::size\_t height\_arg, float focalLength\_arg, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_arg) |
|  | Convert disparity image to point cloud. [More...](group__io#ga2ca868dae19c653691a0217970caf954) |
|
| static void  | [pcl::io::OrganizedConversion< PointT, true >::convert](group__io#ga63cdb603dd03ad194c9926a39bb3f1c0) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_arg, float focalLength\_arg, float disparityShift\_arg, float disparityScale\_arg, bool convertToMono, typename std::vector< std::uint16\_t > &disparityData\_arg, typename std::vector< std::uint8\_t > &rgbData\_arg) |
|  | Convert point cloud to disparity image and rgb image. [More...](group__io#ga63cdb603dd03ad194c9926a39bb3f1c0) |
|
| static void  | [pcl::io::OrganizedConversion< PointT, true >::convert](group__io#gaac03b5ce7f85d71b37e2444e828a04a2) (typename std::vector< std::uint16\_t > &disparityData\_arg, typename std::vector< std::uint8\_t > &rgbData\_arg, bool monoImage\_arg, std::size\_t width\_arg, std::size\_t height\_arg, float focalLength\_arg, float disparityShift\_arg, float disparityScale\_arg, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_arg) |
|  | Convert disparity image to point cloud. [More...](group__io#gaac03b5ce7f85d71b37e2444e828a04a2) |
|
| static void  | [pcl::io::OrganizedConversion< PointT, true >::convert](group__io#gafae2b8c89a748b6981c64e642e9d6531) (typename std::vector< float > &depthData\_arg, typename std::vector< std::uint8\_t > &rgbData\_arg, bool monoImage\_arg, std::size\_t width\_arg, std::size\_t height\_arg, float focalLength\_arg, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_arg) |
|  | Convert disparity image to point cloud. [More...](group__io#gafae2b8c89a748b6981c64e642e9d6531) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::load](group__io#ga1c50482462b3780f06821aab7cc48760) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &blob) |
|  | Load a file into a PointCloud2 according to extension. [More...](group__io#ga1c50482462b3780f06821aab7cc48760) |
|
| template<typename PointT >  |
| int  | [pcl::io::load](group__io#ga81c8bb6bf8c94fd68301f2b8e863e56f) (const std::string &file\_name, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Load a file into a template [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type according to extension. [More...](group__io#ga81c8bb6bf8c94fd68301f2b8e863e56f) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::load](group__io#ga3c5d88dbcd766a748832161f1aede422) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load a file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) according to extension. [More...](group__io#ga3c5d88dbcd766a748832161f1aede422) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::load](group__io#ga8382b39bb66ababde45053f67d3c5da3) (const std::string &file\_name, [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &mesh) |
|  | Load a file into a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) according to extension. [More...](group__io#ga8382b39bb66ababde45053f67d3c5da3) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::save](group__io#ga7628b0ac832725c706b0ab1bb23ab1ae) (const std::string &file\_name, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &blob, unsigned precision=5) |
|  | Save point cloud data to a binary file when available else to ASCII. [More...](group__io#ga7628b0ac832725c706b0ab1bb23ab1ae) |
|
| template<typename PointT >  |
| int  | [pcl::io::save](group__io#ga16618953e35319016437a0587db07a31) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Save point cloud to a binary file when available else to ASCII. [More...](group__io#ga16618953e35319016437a0587db07a31) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::save](group__io#gadda05eea830d3d7109e16d8ba499236f) (const std::string &file\_name, const [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &tex\_mesh, unsigned precision=5) |
|  | Saves a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) to a binary file when available else to ASCII. [More...](group__io#gadda05eea830d3d7109e16d8ba499236f) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::save](group__io#ga2ee7878a5a77cdb50e25e2df2f14c49d) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, unsigned precision=5) |
|  | Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) to a binary file when available else to ASCII. [More...](group__io#ga2ee7878a5a77cdb50e25e2df2f14c49d) |
|
| int  | [pcl::io::loadIFSFile](group__io#ga13ebbf7f490b1f46712200aa15d0b636) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud) |
|  | Load an IFS file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) blob type. [More...](group__io#ga13ebbf7f490b1f46712200aa15d0b636) |
|
| template<typename PointT >  |
| int  | [pcl::io::loadIFSFile](group__io#ga5a4c0ef68e38ca470171b85ca472e04c) (const std::string &file\_name, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Load any IFS file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#ga5a4c0ef68e38ca470171b85ca472e04c) |
|
| int  | [pcl::io::loadIFSFile](group__io#ga5d40c316c09707752d7dea186fdd9913) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load any IFS file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) type. [More...](group__io#ga5d40c316c09707752d7dea186fdd9913) |
|
| int  | [pcl::io::saveIFSFile](group__io#ga16fb4920c18c31345345936d702bd333) (const std::string &file\_name, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud) |
|  | Save point cloud data to an IFS file containing 3D points. [More...](group__io#ga16fb4920c18c31345345936d702bd333) |
|
| template<typename PointT >  |
| int  | [pcl::io::saveIFSFile](group__io#gabb5f2d61f65cdfbee43049b1319d8c14) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Save point cloud data to an IFS file containing 3D points. [More...](group__io#gabb5f2d61f65cdfbee43049b1319d8c14) |
|
| int  | [pcl::io::loadOBJFile](group__io#ga2a21c9c802c94b38352dd8e599eefc33) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation) |
|  | Load any OBJ file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#ga2a21c9c802c94b38352dd8e599eefc33) |
|
| int  | [pcl::io::loadOBJFile](group__io#ga26c3318dae7c6080b92f0a87aefab1df) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud) |
|  | Load an OBJ file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) blob type. [More...](group__io#ga26c3318dae7c6080b92f0a87aefab1df) |
|
| template<typename PointT >  |
| int  | [pcl::io::loadOBJFile](group__io#ga14f18fdfd732f61a0260dcac1f97308e) (const std::string &file\_name, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Load any OBJ file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#ga14f18fdfd732f61a0260dcac1f97308e) |
|
| int  | [pcl::io::loadOBJFile](group__io#gafb8a927c3765002876385302347081e7) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load any OBJ file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) type. [More...](group__io#gafb8a927c3765002876385302347081e7) |
|
| int  | [pcl::io::loadOBJFile](group__io#ga34ab3005a76751586e4bc529d2ffee01) (const std::string &file\_name, [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &mesh) |
|  | Load any OBJ file into a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) type. [More...](group__io#ga34ab3005a76751586e4bc529d2ffee01) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::saveOBJFile](group__io#ga078c607bf51674d878775bacb11d34d6) (const std::string &file\_name, const [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &tex\_mesh, unsigned precision=5) |
|  | Saves a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) in ascii OBJ format. [More...](group__io#ga078c607bf51674d878775bacb11d34d6) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::saveOBJFile](group__io#gabc0a54f1960ca03d5fa74fe3c63887a0) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, unsigned precision=5) |
|  | Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in ascii OBJ format. [More...](group__io#gabc0a54f1960ca03d5fa74fe3c63887a0) |
|
| int  | [pcl::io::loadPCDFile](group__io#gadf2a5a513509e2008a7d6c5d55a65706) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud) |
|  | Load a PCD v.6 file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#gadf2a5a513509e2008a7d6c5d55a65706) |
|
| int  | [pcl::io::loadPCDFile](group__io#ga42cb7a87c1031fc193b7ccd78d7ae3bf) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation) |
|  | Load any PCD file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#ga42cb7a87c1031fc193b7ccd78d7ae3bf) |
|
| template<typename PointT >  |
| int  | [pcl::io::loadPCDFile](group__io#ga596cb153154843a6f735341ddcc4af08) (const std::string &file\_name, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Load any PCD file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#ga596cb153154843a6f735341ddcc4af08) |
|
| int  | [pcl::io::savePCDFile](group__io#ga3f4feebc5cb057ef23bb53a105e3d5a7) (const std::string &file\_name, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity(), const bool binary\_mode=false) |
|  | Save point cloud data to a PCD file containing n-D points. [More...](group__io#ga3f4feebc5cb057ef23bb53a105e3d5a7) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePCDFile](group__io#ga5e406a5854fa8ad026cad85158fef266) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, bool binary\_mode=false) |
|  | Templated version for saving point cloud data to a PCD file containing a specific given cloud format. [More...](group__io#ga5e406a5854fa8ad026cad85158fef266) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePCDFileASCII](group__io#ga09bdff6c474655ebbefa8a97de669ece) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Templated version for saving point cloud data to a PCD file containing a specific given cloud format. [More...](group__io#ga09bdff6c474655ebbefa8a97de669ece) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePCDFileBinary](group__io#ga6ae485efc9359a9812a10ee9ff426a8a) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Templated version for saving point cloud data to a PCD file containing a specific given cloud format. [More...](group__io#ga6ae485efc9359a9812a10ee9ff426a8a) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePCDFile](group__io#gaeb895a3cc2b0c526da4e5d34298ccb71) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const bool binary\_mode=false) |
|  | Templated version for saving point cloud data to a PCD file containing a specific given cloud format. [More...](group__io#gaeb895a3cc2b0c526da4e5d34298ccb71) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePCDFileBinaryCompressed](group__io#gaf65d12d62b6a76389771a41c8d62ea0b) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Templated version for saving point cloud data to a PCD file containing a specific given cloud format. [More...](group__io#gaf65d12d62b6a76389771a41c8d62ea0b) |
|
| int  | [pcl::io::loadPLYFile](group__io#gaabd8b779b0be30eec7c2c7af8fa6f3c8) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud) |
|  | Load a PLY v.6 file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) type. [More...](group__io#gaabd8b779b0be30eec7c2c7af8fa6f3c8) |
|
| int  | [pcl::io::loadPLYFile](group__io#ga89c2705a3ee08e035d9be0c92c41bd38) (const std::string &file\_name, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, Eigen::Vector4f &origin, Eigen::Quaternionf &orientation) |
|  | Load any PLY file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) type. [More...](group__io#ga89c2705a3ee08e035d9be0c92c41bd38) |
|
| template<typename PointT >  |
| int  | [pcl::io::loadPLYFile](group__io#ga4f8e94c98a39b064acc265661f402f4b) (const std::string &file\_name, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Load any PLY file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. [More...](group__io#ga4f8e94c98a39b064acc265661f402f4b) |
|
| int  | [pcl::io::loadPLYFile](group__io#ga0cfc645cc531647728e16088b6342204) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load a PLY file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) type. [More...](group__io#ga0cfc645cc531647728e16088b6342204) |
|
| int  | [pcl::io::savePLYFile](group__io#gacca22ef033a190dfbbb2d355a43bf317) (const std::string &file\_name, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, const Eigen::Vector4f &origin=Eigen::Vector4f::Zero(), const Eigen::Quaternionf &orientation=Eigen::Quaternionf::Identity(), bool binary\_mode=false, bool use\_camera=true) |
|  | Save point cloud data to a PLY file containing n-D points. [More...](group__io#gacca22ef033a190dfbbb2d355a43bf317) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePLYFile](group__io#ga76aaf0f177624ffff71a5c49ea92c417) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, bool binary\_mode=false) |
|  | Templated version for saving point cloud data to a PLY file containing a specific given cloud format. [More...](group__io#ga76aaf0f177624ffff71a5c49ea92c417) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePLYFileASCII](group__io#gaaa9653bc81821b0a39ca93102d97e5e3) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Templated version for saving point cloud data to a PLY file containing a specific given cloud format. [More...](group__io#gaaa9653bc81821b0a39ca93102d97e5e3) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePLYFileBinary](group__io#ga0f2a4109298d3e53d51b6eda9d7f6b68) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Templated version for saving point cloud data to a PLY file containing a specific given cloud format. [More...](group__io#ga0f2a4109298d3e53d51b6eda9d7f6b68) |
|
| template<typename PointT >  |
| int  | [pcl::io::savePLYFile](group__io#gae00dd2a6e7c1d4b8a7c56283e997a747) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, bool binary\_mode=false) |
|  | Templated version for saving point cloud data to a PLY file containing a specific given cloud format. [More...](group__io#gae00dd2a6e7c1d4b8a7c56283e997a747) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::savePLYFile](group__io#gaacbd5ccb26a476aa63b4e171a760b100) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, unsigned precision=5) |
|  | Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in ascii PLY format. [More...](group__io#gaacbd5ccb26a476aa63b4e171a760b100) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::savePLYFileBinary](group__io#ga09ab3532e25d104aea4d0020318e0c60) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in binary PLY format. [More...](group__io#ga09ab3532e25d104aea4d0020318e0c60) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::saveCharPNGFile](group__io#ga2b28975786a96d9b95c86b43697ad14b) (const std::string &file\_name, const unsigned char \*mono\_image, int width, int height, int channels) |
|  | Saves 8-bit encoded image to PNG file. [More...](group__io#ga2b28975786a96d9b95c86b43697ad14b) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::saveShortPNGFile](group__io#ga134d70eebc03c69aaba73e1bedb01cbd) (const std::string &file\_name, const unsigned short \*short\_image, int width, int height, int channels) |
|  | Saves 16-bit encoded image to PNG file. [More...](group__io#ga134d70eebc03c69aaba73e1bedb01cbd) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::saveRgbPNGFile](group__io#ga231b21d0361efdc35dcacacd5d686d19) (const std::string &file\_name, const unsigned char \*rgb\_image, int width, int height) |
|  | Saves 8-bit encoded [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image to PNG file. [More...](group__io#ga231b21d0361efdc35dcacacd5d686d19) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::savePNGFile](group__io#gafa3ba367002df2314a3e38af7377abf2) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< unsigned char > &cloud) |
|  | Saves 8-bit grayscale cloud as image to PNG file. [More...](group__io#gafa3ba367002df2314a3e38af7377abf2) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::savePNGFile](group__io#ga7f4cca95d55295c9b58081cb91aa8c1a) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< unsigned short > &cloud) |
|  | Saves 16-bit grayscale cloud as image to PNG file. [More...](group__io#ga7f4cca95d55295c9b58081cb91aa8c1a) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::savePNGFile](group__io#gaad3e5c347f9b19f7043503549cd596e9) (const std::string &file\_name, const [pcl::PCLImage](structpcl_1_1_p_c_l_image) &image) |
|  | Saves a [PCLImage](structpcl_1_1_p_c_l_image) (formerly ROS sensor\_msgs::Image) to PNG file. [More...](group__io#gaad3e5c347f9b19f7043503549cd596e9) |
|
| template<typename PointT >  |
| void  | [pcl::io::savePNGFile](group__io#gabd03e43fac3048635512f447c8bc50b3) (const std::string &file\_name, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const std::string &field\_name) |
|  | Saves the data from the specified field of the point cloud as image to PNG file. [More...](group__io#gabd03e43fac3048635512f447c8bc50b3) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::saveVTKFile](group__io#ga32f4a48e1f684cc4d55055ae1ba35c24) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &triangles, unsigned precision=5) |
|  | Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in ascii VTK format. [More...](group__io#ga32f4a48e1f684cc4d55055ae1ba35c24) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::saveVTKFile](group__io#ga46f8c9104c883118af89de63883babdf) (const std::string &file\_name, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, unsigned precision=5) |
|  | Saves a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") in ascii VTK format. [More...](group__io#ga46f8c9104c883118af89de63883babdf) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::loadPolygonFile](group__io#gacd22a31e8ec257c0367f4db23ab0212f) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object given an input file name, based on the file extension. [More...](group__io#gacd22a31e8ec257c0367f4db23ab0212f) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::io::savePolygonFile](group__io#ga983a393b8c0e39205fc3dda321470296) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, const bool binary\_format=true) |
|  | Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object given an input file name, based on the file extension. [More...](group__io#ga983a393b8c0e39205fc3dda321470296) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::loadPolygonFileVTK](group__io#ga47e90bf89973990ef1608d6199e202ee) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load a VTK file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. [More...](group__io#ga47e90bf89973990ef1608d6199e202ee) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::loadPolygonFilePLY](group__io#ga8080e931aa4436bdad8220bddb25df35) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load a PLY file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. [More...](group__io#ga8080e931aa4436bdad8220bddb25df35) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::loadPolygonFileOBJ](group__io#ga90a4660350a5699996935869c90f6b4c) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load an OBJ file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. [More...](group__io#ga90a4660350a5699996935869c90f6b4c) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::loadPolygonFileOBJ](group__io#ga2b90827631bdbb91202f526348207cce) (const std::string &file\_name, [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &mesh) |
|  | Load an OBJ file into a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) object. [More...](group__io#ga2b90827631bdbb91202f526348207cce) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int  | [pcl::io::loadPolygonFileSTL](group__io#gadb8f31fe7dd963ff16fd1d8bfb6bc610) (const std::string &file\_name, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh) |
|  | Load an STL file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. [More...](group__io#gadb8f31fe7dd963ff16fd1d8bfb6bc610) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::io::savePolygonFileVTK](group__io#ga8fd8e49638cc3c72f4860e270a7a86bb) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, const bool binary\_format=true) |
|  | Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object into a VTK file. [More...](group__io#ga8fd8e49638cc3c72f4860e270a7a86bb) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::io::savePolygonFilePLY](group__io#ga7924eb86a2afb5ee752c7906545ad935) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, const bool binary\_format=true) |
|  | Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object into a PLY file. [More...](group__io#ga7924eb86a2afb5ee752c7906545ad935) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::io::savePolygonFileSTL](group__io#gaaedafa1bdb0b6c7e1ff5d5601155ee46) (const std::string &file\_name, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh, const bool binary\_format=true) |
|  | Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object into an STL file. [More...](group__io#gaaedafa1bdb0b6c7e1ff5d5601155ee46) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::saveRangeImagePlanarFilePNG](group__io#ga7291a029cdcde32ca3639d07dc6491b9) (const std::string &file\_name, const [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar) &range\_image) |
|  | Write a [RangeImagePlanar](classpcl_1_1_range_image_planar) object to a PNG file. [More...](group__io#ga7291a029cdcde32ca3639d07dc6491b9) |
|
| template<typename PointT >  |
| void  | [pcl::io::pointCloudTovtkPolyData](group__io#gaf98f16a955176073c59a3ea896a72b85) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, vtkPolyData \*const polydata) |
|  | Convert a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object to a VTK PolyData one. [More...](group__io#gaf98f16a955176073c59a3ea896a72b85) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::io::pointCloudTovtkPolyData](group__io#gafab31ee5790bf4012e9689be2b8d9c6b) (const [pcl::PCLPointCloud2Ptr](https://pointclouds.org/documentation/namespacepcl.html#a73ae712f092fbdb4a77bddd2310cdab5) &cloud, [vtkSmartPointer](classvtk_smart_pointer)< vtkPolyData > &poly\_data) |
|  | Convert a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) object to a VTK PolyData object. [More...](group__io#gafab31ee5790bf4012e9689be2b8d9c6b) |
|
| template<typename PointT >  |
| void  | [pcl::io::pointCloudTovtkStructuredGrid](group__io#ga78deae43d4b7719efc619ce99ce9785a) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, vtkStructuredGrid \*const structured\_grid) |
|  | Convert a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object to a VTK StructuredGrid one. [More...](group__io#ga78deae43d4b7719efc619ce99ce9785a) |
|
| template<typename PointT >  |
| void  | [pcl::io::vtkPolyDataToPointCloud](group__io#ga0005f255eaa2b84cab421c79ccab11ad) (vtkPolyData \*const polydata, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Convert a VTK PolyData object to a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") one. [More...](group__io#ga0005f255eaa2b84cab421c79ccab11ad) |
|
| template<typename PointT >  |
| void  | [pcl::io::vtkStructuredGridToPointCloud](group__io#ga504390abb7a239d24834e2b658c9452e) (vtkStructuredGrid \*const structured\_grid, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Convert a VTK StructuredGrid object to a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") one. [More...](group__io#ga504390abb7a239d24834e2b658c9452e) |
|

 Function Documentation
----------------------

  convert() [1/6]
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void [pcl::io::OrganizedConversion](structpcl_1_1io_1_1_organized_conversion)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), true >::convert  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_arg*,  |
|  |  | float  | *focalLength\_arg*,  |
|  |  | float  | *disparityShift\_arg*,  |
|  |  | float  | *disparityScale\_arg*,  |
|  |  | bool  | *convertToMono*,  |
|  |  | typename std::vector< std::uint16\_t > &  | *disparityData\_arg*,  |
|  |  | typename std::vector< std::uint8\_t > &  | *rgbData\_arg* |
|  | ) |  |  |

 | inlinestatic |

 
 `#include <pcl/compression/organized_pointcloud_conversion.h>`

 Convert point cloud to disparity image and rgb image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_arg | input point cloud  |
| [in] | focalLength\_arg | focal length  |
| [in] | disparityShift\_arg | disparity shift  |
| [in] | disparityScale\_arg | disparity scaling  |
| [in] | convertToMono | convert color to mono/grayscale  |
| [out] | disparityData\_arg | output disparity image  |
| [out] | rgbData\_arg | output rgb image  |

   Definition at line [273](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00273) of file [organized\_pointcloud\_conversion.h](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    convert() [2/6]
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void [pcl::io::OrganizedConversion](structpcl_1_1io_1_1_organized_conversion)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), false >::convert  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_arg*,  |
|  |  | float  | *focalLength\_arg*,  |
|  |  | float  | *disparityShift\_arg*,  |
|  |  | float  | *disparityScale\_arg*,  |
|  |  | bool  | ,  |
|  |  | typename std::vector< std::uint16\_t > &  | *disparityData\_arg*,  |
|  |  | typename std::vector< std::uint8\_t > &  |  |
|  | ) |  |  |

 | inlinestatic |

 
 `#include <pcl/compression/organized_pointcloud_conversion.h>`

 Convert point cloud to disparity image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_arg | input point cloud  |
| [in] | focalLength\_arg | focal length  |
| [in] | disparityShift\_arg | disparity shift  |
| [in] | disparityScale\_arg | disparity scaling  |
| [out] | disparityData\_arg | output disparity image  |

   Definition at line [93](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00093) of file [organized\_pointcloud\_conversion.h](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    convert() [3/6]
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void [pcl::io::OrganizedConversion](structpcl_1_1io_1_1_organized_conversion)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), false >::convert  | ( | typename std::vector< float > &  | *depthData\_arg*,  |
|  |  | typename std::vector< std::uint8\_t > &  | ,  |
|  |  | bool  | ,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | float  | *focalLength\_arg*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_arg* |
|  | ) |  |  |

 | inlinestatic |

 
 `#include <pcl/compression/organized_pointcloud_conversion.h>`

 Convert disparity image to point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | depthData\_arg | input depth image  |
| [in] | width\_arg | width of disparity image  |
| [in] | height\_arg | height of disparity image  |
| [in] | focalLength\_arg | focal length  |
| [out] | cloud\_arg | output point cloud  |

   Definition at line [204](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00204) of file [organized\_pointcloud\_conversion.h](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    convert() [4/6]
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void [pcl::io::OrganizedConversion](structpcl_1_1io_1_1_organized_conversion)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), true >::convert  | ( | typename std::vector< float > &  | *depthData\_arg*,  |
|  |  | typename std::vector< std::uint8\_t > &  | *rgbData\_arg*,  |
|  |  | bool  | *monoImage\_arg*,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | float  | *focalLength\_arg*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_arg* |
|  | ) |  |  |

 | inlinestatic |

 
 `#include <pcl/compression/organized_pointcloud_conversion.h>`

 Convert disparity image to point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | depthData\_arg | output disparity image  |
| [in] | rgbData\_arg | output rgb image  |
| [in] | monoImage\_arg | input image is a single-channel mono image  |
| [in] | width\_arg | width of disparity image  |
| [in] | height\_arg | height of disparity image  |
| [in] | focalLength\_arg | focal length  |
| [out] | cloud\_arg | output point cloud  |

   Definition at line [460](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00460) of file [organized\_pointcloud\_conversion.h](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    convert() [5/6]
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void [pcl::io::OrganizedConversion](structpcl_1_1io_1_1_organized_conversion)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), false >::convert  | ( | typename std::vector< std::uint16\_t > &  | *disparityData\_arg*,  |
|  |  | typename std::vector< std::uint8\_t > &  | ,  |
|  |  | bool  | ,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | float  | *focalLength\_arg*,  |
|  |  | float  | *disparityShift\_arg*,  |
|  |  | float  | *disparityScale\_arg*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_arg* |
|  | ) |  |  |

 | inlinestatic |

 
 `#include <pcl/compression/organized_pointcloud_conversion.h>`

 Convert disparity image to point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | disparityData\_arg | input depth image  |
| [in] | width\_arg | width of disparity image  |
| [in] | height\_arg | height of disparity image  |
| [in] | focalLength\_arg | focal length  |
| [in] | disparityShift\_arg | disparity shift  |
| [in] | disparityScale\_arg | disparity scaling  |
| [out] | cloud\_arg | output point cloud  |

   Definition at line [137](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00137) of file [organized\_pointcloud\_conversion.h](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    convert() [6/6]
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void [pcl::io::OrganizedConversion](structpcl_1_1io_1_1_organized_conversion)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), true >::convert  | ( | typename std::vector< std::uint16\_t > &  | *disparityData\_arg*,  |
|  |  | typename std::vector< std::uint8\_t > &  | *rgbData\_arg*,  |
|  |  | bool  | *monoImage\_arg*,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | float  | *focalLength\_arg*,  |
|  |  | float  | *disparityShift\_arg*,  |
|  |  | float  | *disparityScale\_arg*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_arg* |
|  | ) |  |  |

 | inlinestatic |

 
 `#include <pcl/compression/organized_pointcloud_conversion.h>`

 Convert disparity image to point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | disparityData\_arg | output disparity image  |
| [in] | rgbData\_arg | output rgb image  |
| [in] | monoImage\_arg | input image is a single-channel mono image  |
| [in] | width\_arg | width of disparity image  |
| [in] | height\_arg | height of disparity image  |
| [in] | focalLength\_arg | focal length  |
| [in] | disparityShift\_arg | disparity shift  |
| [in] | disparityScale\_arg | disparity scaling  |
| [out] | cloud\_arg | output point cloud  |

   Definition at line [356](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00356) of file [organized\_pointcloud\_conversion.h](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    decodePNGToImage() [1/2]
------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::decodePNGToImage  | ( | std::vector< std::uint8\_t > &  | *pngData\_arg*,  |
|  |  | std::vector< std::uint16\_t > &  | *imageData\_arg*,  |
|  |  | std::size\_t &  | *width\_arg*,  |
|  |  | std::size\_t &  | *height\_arg*,  |
|  |  | unsigned int &  | *channels\_arg* |
|  | ) |  |  |

 
 `#include <pcl/compression/libpng_wrapper.h>`

 Decode compressed PNG to 16-bit image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | pngData\_arg | PNG compressed input data  |
| [in] | imageData\_arg | image output data  |
| [out] | width\_arg | image width  |
| [out] | height\_arg | image height  |
| [out] | channels\_arg | number of channels  |

      decodePNGToImage() [2/2]
------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::decodePNGToImage  | ( | std::vector< std::uint8\_t > &  | *pngData\_arg*,  |
|  |  | std::vector< std::uint8\_t > &  | *imageData\_arg*,  |
|  |  | std::size\_t &  | *width\_arg*,  |
|  |  | std::size\_t &  | *heigh\_argt*,  |
|  |  | unsigned int &  | *channels\_arg* |
|  | ) |  |  |

 
 `#include <pcl/compression/libpng_wrapper.h>`

 Decode compressed PNG to 8-bit image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | pngData\_arg | PNG compressed input data  |
| [in] | imageData\_arg | image output data  |
| [out] | width\_arg | image width  |
| [out] | heigh\_argt | image height  |
| [out] | channels\_arg | number of channels  |

   Referenced by [pcl::io::OrganizedPointCloudCompression< PointT >::decodePointCloud()](https://pointclouds.org/documentation/organized__pointcloud__compression_8hpp_source.html#l00269).

    encodeMonoImageToPNG() [1/2]
----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::encodeMonoImageToPNG  | ( | std::vector< std::uint16\_t > &  | *image\_arg*,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | std::vector< std::uint8\_t > &  | *pngData\_arg*,  |
|  |  | int  | *png\_level\_arg* = `-1` |
|  | ) |  |  |

 
 `#include <pcl/compression/libpng_wrapper.h>`

 Encodes 16-bit mono image to PNG format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | image\_arg | input image data  |
| [in] | width\_arg | image width  |
| [in] | height\_arg | image height  |
| [out] | pngData\_arg | PNG compressed image data  |
| [in] | png\_level\_arg | zLib compression level (default level: -1)  |

      encodeMonoImageToPNG() [2/2]
----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::encodeMonoImageToPNG  | ( | std::vector< std::uint8\_t > &  | *image\_arg*,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | std::vector< std::uint8\_t > &  | *pngData\_arg*,  |
|  |  | int  | *png\_level\_arg* = `-1` |
|  | ) |  |  |

 
 `#include <pcl/compression/libpng_wrapper.h>`

 Encodes 8-bit mono image to PNG format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | image\_arg | input image data  |
| [in] | width\_arg | image width  |
| [in] | height\_arg | image height  |
| [out] | pngData\_arg | PNG compressed image data  |
| [in] | png\_level\_arg | zLib compression level (default level: -1)  |

   Referenced by [pcl::io::OrganizedPointCloudCompression< PointT >::encodePointCloud()](https://pointclouds.org/documentation/organized__pointcloud__compression_8hpp_source.html#l00058), and [pcl::io::OrganizedPointCloudCompression< PointT >::encodeRawDisparityMapWithColorImage()](https://pointclouds.org/documentation/organized__pointcloud__compression_8hpp_source.html#l00152).

    encodeRGBImageToPNG() [1/2]
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::encodeRGBImageToPNG  | ( | std::vector< std::uint16\_t > &  | *image\_arg*,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | std::vector< std::uint8\_t > &  | *pngData\_arg*,  |
|  |  | int  | *png\_level\_arg* = `-1` |
|  | ) |  |  |

 
 `#include <pcl/compression/libpng_wrapper.h>`

 Encodes 16-bit [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image to PNG format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | image\_arg | input image data  |
| [in] | width\_arg | image width  |
| [in] | height\_arg | image height  |
| [out] | pngData\_arg | PNG compressed image data  |
| [in] | png\_level\_arg | zLib compression level (default level: -1)  |

      encodeRGBImageToPNG() [2/2]
---------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::encodeRGBImageToPNG  | ( | std::vector< std::uint8\_t > &  | *image\_arg*,  |
|  |  | std::size\_t  | *width\_arg*,  |
|  |  | std::size\_t  | *height\_arg*,  |
|  |  | std::vector< std::uint8\_t > &  | *pngData\_arg*,  |
|  |  | int  | *png\_level\_arg* = `-1` |
|  | ) |  |  |

 
 `#include <pcl/compression/libpng_wrapper.h>`

 Encodes 8-bit [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image to PNG format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | image\_arg | input image data  |
| [in] | width\_arg | image width  |
| [in] | height\_arg | image height  |
| [out] | pngData\_arg | PNG compressed image data  |
| [in] | png\_level\_arg | zLib compression level (default level: -1)  |

   Referenced by [pcl::io::OrganizedPointCloudCompression< PointT >::encodePointCloud()](https://pointclouds.org/documentation/organized__pointcloud__compression_8hpp_source.html#l00058), and [pcl::io::OrganizedPointCloudCompression< PointT >::encodeRawDisparityMapWithColorImage()](https://pointclouds.org/documentation/organized__pointcloud__compression_8hpp_source.html#l00152).

    load() [1/4]
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::load  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *blob* |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Load a file into a PointCloud2 according to extension. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | blob | the resultant pcl::PointCloud2 blob  |

      load() [2/4]
------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::load  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Load a file into a template [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type according to extension. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   Definition at line [54](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00054) of file [auto\_io.hpp](https://pointclouds.org/documentation/auto__io_8hpp_source.html).

 References [pcl::io::loadIFSFile()](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00190), [pcl::io::loadOBJFile()](https://pointclouds.org/documentation/obj__io_8h_source.html#l00261), [pcl::io::loadPCDFile()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00621), and [pcl::io::loadPLYFile()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00751).

    load() [3/4]
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::load  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Load a file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) according to extension. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | mesh | the resultant [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) |

      load() [4/4]
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::load  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Load a file into a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) according to extension. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | mesh | the resultant [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) |

      loadIFSFile() [1/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadIFSFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ifs_io.h>`

 Load an IFS file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) blob type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   
Returns
0 on success < 0 on error 
 Definition at line [190](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00190) of file [ifs\_io.h](https://pointclouds.org/documentation/ifs__io_8h_source.html).

 References [pcl::IFSReader::read()](classpcl_1_1_i_f_s_reader#ad949b0f5db6a8f892ab040491d5bfd11).

 Referenced by [pcl::io::load()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00054).

    loadIFSFile() [2/3]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadIFSFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ifs_io.h>`

 Load any IFS file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   
Returns
0 on success < 0 on error 
 Definition at line [205](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00205) of file [ifs\_io.h](https://pointclouds.org/documentation/ifs__io_8h_source.html).

 References [pcl::IFSReader::read()](classpcl_1_1_i_f_s_reader#ad949b0f5db6a8f892ab040491d5bfd11).

    loadIFSFile() [3/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadIFSFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ifs_io.h>`

 Load any IFS file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | mesh | the resultant mesh  |

   
Returns
0 on success < 0 on error 
 Definition at line [219](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00219) of file [ifs\_io.h](https://pointclouds.org/documentation/ifs__io_8h_source.html).

 References [pcl::IFSReader::read()](classpcl_1_1_i_f_s_reader#ad949b0f5db6a8f892ab040491d5bfd11).

    loadOBJFile() [1/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/obj_io.h>`

 Load an OBJ file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) blob type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   
Returns
0 on success < 0 on error 
 Definition at line [277](https://pointclouds.org/documentation/obj__io_8h_source.html#l00277) of file [obj\_io.h](https://pointclouds.org/documentation/obj__io_8h_source.html).

 References [pcl::OBJReader::read()](classpcl_1_1_o_b_j_reader#a0877f736442b5a50c44c64949e90c41f).

    loadOBJFile() [2/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | Eigen::Vector4f &  | *origin*,  |
|  |  | Eigen::Quaternionf &  | *orientation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/obj_io.h>`

 Load any OBJ file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |
| [out] | origin | the sensor acquisition origin, null  |
| [out] | orientation | the sensor acquisition orientation, identity  |

   Definition at line [261](https://pointclouds.org/documentation/obj__io_8h_source.html#l00261) of file [obj\_io.h](https://pointclouds.org/documentation/obj__io_8h_source.html).

 References [pcl::OBJReader::read()](classpcl_1_1_o_b_j_reader#a0877f736442b5a50c44c64949e90c41f).

 Referenced by [pcl::io::load()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00054).

    loadOBJFile() [3/5]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/obj_io.h>`

 Load any OBJ file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   Definition at line [289](https://pointclouds.org/documentation/obj__io_8h_source.html#l00289) of file [obj\_io.h](https://pointclouds.org/documentation/obj__io_8h_source.html).

 References [pcl::OBJReader::read()](classpcl_1_1_o_b_j_reader#a0877f736442b5a50c44c64949e90c41f).

    loadOBJFile() [4/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/obj_io.h>`

 Load any OBJ file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | mesh | the resultant mesh  |

   
Returns
0 on success < 0 on error 
 Definition at line [303](https://pointclouds.org/documentation/obj__io_8h_source.html#l00303) of file [obj\_io.h](https://pointclouds.org/documentation/obj__io_8h_source.html).

 References [pcl::OBJReader::read()](classpcl_1_1_o_b_j_reader#a0877f736442b5a50c44c64949e90c41f).

    loadOBJFile() [5/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &  | *mesh* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/obj_io.h>`

 Load any OBJ file into a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | mesh | the resultant mesh  |

   
Returns
0 on success < 0 on error 
 Definition at line [317](https://pointclouds.org/documentation/obj__io_8h_source.html#l00317) of file [obj\_io.h](https://pointclouds.org/documentation/obj__io_8h_source.html).

 References [pcl::OBJReader::read()](classpcl_1_1_o_b_j_reader#a0877f736442b5a50c44c64949e90c41f).

    loadPCDFile() [1/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPCDFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Load a PCD v.6 file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 Any PCD files > v.6 will generate a warning as a pcl/PCLPointCloud2 message cannot hold the sensor origin.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   Definition at line [621](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00621) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDReader::read()](classpcl_1_1_p_c_d_reader#a9e69a88ebfeabbff1b8829cf06d099e0).

 Referenced by [pcl::io::load()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00054), [ObjectRecognition::populateDatabase()](https://pointclouds.org/documentation/iccv2011_2include_2object__recognition_8h_source.html#l00063), and [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::read()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00575).

    loadPCDFile() [2/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPCDFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | Eigen::Vector4f &  | *origin*,  |
|  |  | Eigen::Quaternionf &  | *orientation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Load any PCD file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |
| [out] | origin | the sensor acquisition origin (only for > PCD\_V7 - null if not present)  |
| [out] | orientation | the sensor acquisition orientation (only for > PCD\_V7 - identity if not present)  |

   Definition at line [636](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00636) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDReader::read()](classpcl_1_1_p_c_d_reader#a9e69a88ebfeabbff1b8829cf06d099e0).

    loadPCDFile() [3/3]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPCDFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Load any PCD file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [out] | cloud | the resultant templated point cloud  |

   Definition at line [650](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00650) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDReader::read()](classpcl_1_1_p_c_d_reader#a9e69a88ebfeabbff1b8829cf06d099e0).

    loadPLYFile() [1/4]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Load a PLY v.6 file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) type. 

 Any PLY files containing sensor data will generate a warning as a pcl/PCLPointCloud2 message cannot hold the sensor origin.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [in] | cloud | the resultant templated point cloud  |

   Definition at line [751](https://pointclouds.org/documentation/ply__io_8h_source.html#l00751) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYReader::read()](classpcl_1_1_p_l_y_reader#a7e5f5e92a8837b17a7d24cbf8ab3bae9).

 Referenced by [pcl::io::load()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00054).

    loadPLYFile() [2/4]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | Eigen::Vector4f &  | *origin*,  |
|  |  | Eigen::Quaternionf &  | *orientation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Load any PLY file into a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [in] | cloud | the resultant templated point cloud  |
| [in] | origin | the sensor acquisition origin (only for > PLY\_V7 - null if not present)  |
| [in] | orientation | the sensor acquisition orientation if available, identity if not present  |

   Definition at line [766](https://pointclouds.org/documentation/ply__io_8h_source.html#l00766) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYReader::read()](classpcl_1_1_p_l_y_reader#a7e5f5e92a8837b17a7d24cbf8ab3bae9).

    loadPLYFile() [3/4]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Load any PLY file into a templated [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [in] | cloud | the resultant templated point cloud  |

   Definition at line [780](https://pointclouds.org/documentation/ply__io_8h_source.html#l00780) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYReader::read()](classpcl_1_1_p_l_y_reader#a7e5f5e92a8837b17a7d24cbf8ab3bae9).

    loadPLYFile() [4/4]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::loadPLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Load a PLY file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) type. 

 Any PLY files containing sensor data will generate a warning as a pcl/PolygonMesh message cannot hold the sensor origin.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to load  |
| [in] | mesh | the resultant polygon mesh  |

   Definition at line [796](https://pointclouds.org/documentation/ply__io_8h_source.html#l00796) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYReader::read()](classpcl_1_1_p_l_y_reader#a7e5f5e92a8837b17a7d24cbf8ab3bae9).

    loadPolygonFile()
-----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::loadPolygonFile  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Load a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object given an input file name, based on the file extension. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file containing the polygon data  |
| [out] | mesh | the object that we want to load the data in  |

      loadPolygonFileOBJ() [1/2]
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::loadPolygonFileOBJ  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Load an OBJ file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file that contains the data  |
| [out] | mesh | the object that we want to load the data in  |

      loadPolygonFileOBJ() [2/2]
--------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::loadPolygonFileOBJ  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Load an OBJ file into a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) object. 

 
Note
In addition to the loadPolygonFileOBJ (const std::string, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html)&) method, this method also loads the uv-coordinates from the file. It does not load the material information. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file that contains the data  |
| [out] | mesh | the object that we want to load the data in  |

      loadPolygonFilePLY()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::loadPolygonFilePLY  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Load a PLY file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file that contains the data  |
| [out] | mesh | the object that we want to load the data in  |

      loadPolygonFileSTL()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::loadPolygonFileSTL  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Load an STL file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file that contains the data  |
| [out] | mesh | the object that we want to load the data in  |

      loadPolygonFileVTK()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::loadPolygonFileVTK  | ( | const std::string &  | *file\_name*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Load a VTK file into a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file that contains the data  |
| [out] | mesh | the object that we want to load the data in  |

      pointCloudTovtkPolyData() [1/2]
-------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::pointCloudTovtkPolyData  | ( | const [pcl::PCLPointCloud2Ptr](https://pointclouds.org/documentation/namespacepcl.html#a73ae712f092fbdb4a77bddd2310cdab5) &  | *cloud*,  |
|  |  | [vtkSmartPointer](classvtk_smart_pointer)< vtkPolyData > &  | *poly\_data* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Convert a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) object to a VTK PolyData object. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input PCLPointCloud2Ptr object  |
| [out] | poly\_data | the resultant VTK PolyData object  |

      pointCloudTovtkPolyData() [2/2]
-------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::io::pointCloudTovtkPolyData  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | vtkPolyData \*const  | *polydata* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Convert a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object to a VTK PolyData one. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object  |
| [out] | polydata | the resultant VTK PolyData object  |

   Definition at line [286](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00286) of file [vtk\_lib\_io.hpp](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    pointCloudTovtkStructuredGrid()
-------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::io::pointCloudTovtkStructuredGrid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | vtkStructuredGrid \*const  | *structured\_grid* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Convert a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object to a VTK StructuredGrid one. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object  |
| [out] | structured\_grid | the resultant VTK StructuredGrid object  |

   Definition at line [394](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00394) of file [vtk\_lib\_io.hpp](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    save() [1/4]
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::save  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *blob*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Save point cloud data to a binary file when available else to ASCII. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | blob | the point cloud data message  |
| [in] | precision | float precision when saving to ASCII files  |

   Referenced by [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::setSaveHistograms()](https://pointclouds.org/documentation/rsd_8h_source.html#l00194).

    save() [2/4]
------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::save  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Save point cloud to a binary file when available else to ASCII. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud  |

   Definition at line [76](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00076) of file [auto\_io.hpp](https://pointclouds.org/documentation/auto__io_8hpp_source.html).

 References [pcl::io::saveIFSFile()](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00234), [pcl::io::savePCDFile()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00672), and [pcl::io::savePLYFile()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00812).

    save() [3/4]
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::save  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) to a binary file when available else to ASCII. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | mesh | the polygonal mesh to save  |
| [in] | precision | float precision when saving to ASCII files  |

      save() [4/4]
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::save  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &  | *tex\_mesh*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/auto_io.h>`

 Saves a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) to a binary file when available else to ASCII. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | tex\_mesh | the texture mesh to save  |
| [in] | precision | float precision when saving to ASCII files  |

      saveCharPNGFile()
-----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::saveCharPNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const unsigned char \*  | *mono\_image*,  |
|  |  | int  | *width*,  |
|  |  | int  | *height*,  |
|  |  | int  | *channels* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves 8-bit encoded image to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | mono\_image | image grayscale data  |
| [in] | width | image width  |
| [in] | height | image height  |
| [in] | channels | number of channels  |

      saveIFSFile() [1/2]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::saveIFSFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ifs_io.h>`

 Save point cloud data to an IFS file containing 3D points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |

   
Returns
0 on success < 0 on error 
 Definition at line [234](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00234) of file [ifs\_io.h](https://pointclouds.org/documentation/ifs__io_8h_source.html).

 References [pcl::IFSWriter::write()](classpcl_1_1_i_f_s_writer#a042d2eb77e8b87995de6ee531872efdf).

 Referenced by [pcl::io::save()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00076).

    saveIFSFile() [2/2]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::saveIFSFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/ifs_io.h>`

 Save point cloud data to an IFS file containing 3D points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud  |

   
Returns
0 on success < 0 on error 
 Definition at line [248](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00248) of file [ifs\_io.h](https://pointclouds.org/documentation/ifs__io_8h_source.html).

 References [pcl::IFSWriter::write()](classpcl_1_1_i_f_s_writer#a042d2eb77e8b87995de6ee531872efdf).

    saveOBJFile() [1/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::saveOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/obj_io.h>`

 Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in ascii OBJ format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | mesh | the polygonal mesh to save  |
| [in] | precision | the output ASCII precision default 5  |

      saveOBJFile() [2/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::saveOBJFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) &  | *tex\_mesh*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/obj_io.h>`

 Saves a [TextureMesh](https://pointclouds.org/documentation/structpcl_1_1_texture_mesh.html) in ascii OBJ format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | tex\_mesh | the texture mesh to save  |
| [in] | precision | the output ASCII precision  |

   
Returns
0 on success, else a negative number 
    savePCDFile() [1/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePCDFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | const Eigen::Vector4f &  | *origin* = `Eigen::Vector4f::Zero ()`,  |
|  |  | const Eigen::Quaternionf &  | *orientation* = `Eigen::Quaternionf::Identity ()`,  |
|  |  | const bool  | *binary\_mode* = `false` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Save point cloud data to a PCD file containing n-D points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |
| [in] | origin | the sensor acquisition origin  |
| [in] | orientation | the sensor acquisition orientation  |
| [in] | binary\_mode | true for binary mode, false (default) for ASCII |

   Caution: [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") structures containing an [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") field have traditionally used packed float values to store [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. Storing a float as ASCII can introduce variations to the smallest bits, and thus significantly alter the data. This is a known issue, and the fix involves switching [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data to be stored as a packed integer in future versions of PCL. 

 Definition at line [672](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00672) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDWriter::write()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00453).

 Referenced by [pcl::io::save()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00076).

    savePCDFile() [2/3]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePCDFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | bool  | *binary\_mode* = `false` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Templated version for saving point cloud data to a PCD file containing a specific given cloud format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |
| [in] | binary\_mode | true for binary mode, false (default) for ASCII |

   Caution: [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") structures containing an [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") field have traditionally used packed float values to store [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. Storing a float as ASCII can introduce variations to the smallest bits, and thus significantly alter the data. This is a known issue, and the fix involves switching [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data to be stored as a packed integer in future versions of PCL. 

 Definition at line [696](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00696) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDWriter::write()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00453).

    savePCDFile() [3/3]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePCDFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const bool  | *binary\_mode* = `false` |
|  | ) |  |  |

 
 `#include <pcl/io/pcd_io.h>`

 Templated version for saving point cloud data to a PCD file containing a specific given cloud format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |
| [in] | indices | the set of indices to save  |
| [in] | binary\_mode | true for binary mode, false (default) for ASCII |

   Caution: [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") structures containing an [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") field have traditionally used packed float values to store [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. Storing a float as ASCII can introduce variations to the smallest bits, and thus significantly alter the data. This is a known issue, and the fix involves switching [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data to be stored as a packed integer in future versions of PCL. 

 Definition at line [759](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00759) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDWriter::write()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00453).

    savePCDFileASCII()
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePCDFileASCII  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Templated version for saving point cloud data to a PCD file containing a specific given cloud format. 

 
```
 This version is to retain backwards compatibility.

```
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message |

   Caution: [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") structures containing an [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") field have traditionally used packed float values to store [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. Storing a float as ASCII can introduce variations to the smallest bits, and thus significantly alter the data. This is a known issue, and the fix involves switching [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data to be stored as a packed integer in future versions of PCL. 

 Definition at line [719](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00719) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDWriter::write()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00453).

    savePCDFileBinary()
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePCDFileBinary  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Templated version for saving point cloud data to a PCD file containing a specific given cloud format. 

 The resulting file will be an uncompressed binary. 



```
 This version is to retain backwards compatibility.

```
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |

   Definition at line [735](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00735) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDWriter::write()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00453).

    savePCDFileBinaryCompressed()
-----------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePCDFileBinaryCompressed  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/pcd_io.h>`

 Templated version for saving point cloud data to a PCD file containing a specific given cloud format. 

 This method will write a compressed binary file. 



```
 This version is to retain backwards compatibility.

```
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |

   Definition at line [780](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00780) of file [pcd\_io.h](https://pointclouds.org/documentation/pcd__io_8h_source.html).

 References [pcl::PCDWriter::writeBinaryCompressed()](classpcl_1_1_p_c_d_writer#ad15340f1c78381cc2a48ad1c50661250).

    savePLYFile() [1/4]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | const Eigen::Vector4f &  | *origin* = `Eigen::Vector4f::Zero ()`,  |
|  |  | const Eigen::Quaternionf &  | *orientation* = `Eigen::Quaternionf::Identity ()`,  |
|  |  | bool  | *binary\_mode* = `false`,  |
|  |  | bool  | *use\_camera* = `true` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Save point cloud data to a PLY file containing n-D points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |
| [in] | origin | the sensor data acquisition origin (translation)  |
| [in] | orientation | the sensor data acquisition origin (rotation)  |
| [in] | binary\_mode | true for binary mode, false (default) for ASCII  |
| [in] | use\_camera |  |

   Definition at line [812](https://pointclouds.org/documentation/ply__io_8h_source.html#l00812) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00636).

 Referenced by [pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::getMeshesFromTSDFVector()](https://pointclouds.org/documentation/standalone__marching__cubes_8hpp_source.html#l00094), and [pcl::io::save()](https://pointclouds.org/documentation/auto__io_8hpp_source.html#l00076).

    savePLYFile() [2/4]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | bool  | *binary\_mode* = `false` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Templated version for saving point cloud data to a PLY file containing a specific given cloud format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |
| [in] | binary\_mode | true for binary mode, false (default) for ASCII  |

   Definition at line [829](https://pointclouds.org/documentation/ply__io_8h_source.html#l00829) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00636).

    savePLYFile() [3/4]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | bool  | *binary\_mode* = `false` |
|  | ) |  |  |

 
 `#include <pcl/io/ply_io.h>`

 Templated version for saving point cloud data to a PLY file containing a specific given cloud format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |
| [in] | indices | the set of indices to save  |
| [in] | binary\_mode | true for binary mode, false (default) for ASCII  |

   Definition at line [868](https://pointclouds.org/documentation/ply__io_8h_source.html#l00868) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), and [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00636).

    savePLYFile() [4/4]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::savePLYFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/ply_io.h>`

 Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in ascii PLY format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | mesh | the polygonal mesh to save  |
| [in] | precision | the output ASCII precision default 5  |

      savePLYFileASCII()
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePLYFileASCII  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Templated version for saving point cloud data to a PLY file containing a specific given cloud format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |

   Definition at line [842](https://pointclouds.org/documentation/ply__io_8h_source.html#l00842) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00636).

    savePLYFileBinary() [1/2]
-------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::io::savePLYFileBinary  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/io/ply_io.h>`

 Templated version for saving point cloud data to a PLY file containing a specific given cloud format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the output file name  |
| [in] | cloud | the point cloud data message  |

   Definition at line [854](https://pointclouds.org/documentation/ply__io_8h_source.html#l00854) of file [ply\_io.h](https://pointclouds.org/documentation/ply__io_8h_source.html).

 References [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00636).

    savePLYFileBinary() [2/2]
-------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::savePLYFileBinary  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh* |
|  | ) |  |  |

 
 `#include <pcl/io/ply_io.h>`

 Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in binary PLY format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | mesh | the polygonal mesh to save  |

      savePNGFile() [1/4]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::savePNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PCLImage](structpcl_1_1_p_c_l_image) &  | *image* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves a [PCLImage](structpcl_1_1_p_c_l_image) (formerly ROS sensor\_msgs::Image) to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | image | image to save |

   
Note
Currently only "rgb8", "mono8", and "mono16" image encodings are supported. 
    savePNGFile() [2/4]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::io::savePNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const std::string &  | *field\_name* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves the data from the specified field of the point cloud as image to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | cloud | point cloud to save  |
| [in] | field\_name | the name of the field to extract data from  |

   Definition at line [116](https://pointclouds.org/documentation/png__io_8h_source.html#l00116) of file [png\_io.h](https://pointclouds.org/documentation/png__io_8h_source.html).

 References [pcl::io::savePNGFile()](group__io#gafa3ba367002df2314a3e38af7377abf2).

    savePNGFile() [3/4]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::savePNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< unsigned char > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves 8-bit grayscale cloud as image to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | cloud | point cloud to save  |

   Referenced by [pcl::io::savePNGFile()](https://pointclouds.org/documentation/png__io_8h_source.html#l00116).

    savePNGFile() [4/4]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::savePNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< unsigned short > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves 16-bit grayscale cloud as image to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | cloud | point cloud to save  |

      savePolygonFile()
-----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::io::savePolygonFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | const bool  | *binary\_format* = `true` |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object given an input file name, based on the file extension. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to save the data to  |
| [in] | mesh | the object that contains the data  |
| [in] | binary\_format | if true, exported file is in binary format  |

   
Returns
True if successful, false otherwise 
    savePolygonFilePLY()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::io::savePolygonFilePLY  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | const bool  | *binary\_format* = `true` |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object into a PLY file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to save the data to  |
| [in] | mesh | the object that contains the data  |
| [in] | binary\_format | if true, exported file is in binary format  |

   
Returns
True if successful, false otherwise 
    savePolygonFileSTL()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::io::savePolygonFileSTL  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | const bool  | *binary\_format* = `true` |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object into an STL file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to save the data to  |
| [in] | mesh | the object that contains the data  |
| [in] | binary\_format | if true, exported file is in binary format  |

   
Returns
True if successful, false otherwise 
    savePolygonFileVTK()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::io::savePolygonFileVTK  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh*,  |
|  |  | const bool  | *binary\_format* = `true` |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Save a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) object into a VTK file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to save the data to  |
| [in] | mesh | the object that contains the data  |
| [in] | binary\_format | if true, exported file is in binary format  |

   
Returns
True if successful, false otherwise 
    saveRangeImagePlanarFilePNG()
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::saveRangeImagePlanarFilePNG  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar) &  | *range\_image* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Write a [RangeImagePlanar](classpcl_1_1_range_image_planar) object to a PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to save the data to  |
| [in] | range\_image | the object that contains the data  |

      saveRgbPNGFile()
----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::saveRgbPNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const unsigned char \*  | *rgb\_image*,  |
|  |  | int  | *width*,  |
|  |  | int  | *height* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves 8-bit encoded [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") image to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | rgb\_image | image rgb data  |
| [in] | width | image width  |
| [in] | height | image height  |

      saveShortPNGFile()
------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::io::saveShortPNGFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const unsigned short \*  | *short\_image*,  |
|  |  | int  | *width*,  |
|  |  | int  | *height*,  |
|  |  | int  | *channels* |
|  | ) |  |  |

 
 `#include <pcl/io/png_io.h>`

 Saves 16-bit encoded image to PNG file. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | short\_image | image short data  |
| [in] | width | image width  |
| [in] | height | image height  |
| [in] | channels | number of channels  |

      saveVTKFile() [1/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::saveVTKFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_io.h>`

 Saves a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") in ascii VTK format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | cloud | the point cloud to save  |
| [in] | precision | the output ASCII precision  |

      saveVTKFile() [2/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) int pcl::io::saveVTKFile  | ( | const std::string &  | *file\_name*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *triangles*,  |
|  |  | unsigned  | *precision* = `5` |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_io.h>`

 Saves a [PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) in ascii VTK format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | file\_name | the name of the file to write to disk  |
| [in] | triangles | the polygonal mesh to save  |
| [in] | precision | the output ASCII precision  |

      vtkPolyDataToPointCloud()
-------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::io::vtkPolyDataToPointCloud  | ( | vtkPolyData \*const  | *polydata*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Convert a VTK PolyData object to a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") one. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | polydata | the input VTK PolyData object  |
| [out] | cloud | the resultant [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object  |

   Definition at line [71](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00071) of file [vtk\_lib\_io.hpp](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    vtkStructuredGridToPointCloud()
-------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::io::vtkStructuredGridToPointCloud  | ( | vtkStructuredGrid \*const  | *structured\_grid*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* |
|  | ) |  |  |

 
 `#include <pcl/io/vtk_lib_io.h>`

 Convert a VTK StructuredGrid object to a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") one. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | structured\_grid | the input VTK StructuredGrid object  |
| [out] | cloud | the resultant [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") object  |

   Definition at line [160](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00160) of file [vtk\_lib\_io.hpp](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__io.html>

Detailed Description
--------------------

 
 Overview
==========

 Combining several datasets into a global consistent model is usually performed using a technique called registration. The key idea is to identify corresponding points between the data sets and find a transformation that minimizes the distance (alignment error) between corresponding points. This process is repeated, since correspondence search is affected by the relative position and orientation of the data sets. Once the alignment errors fall below a given threshold, the registration is said to be complete.

 The **pcl\_registration** library implements a plethora of point cloud registration algorithms for both organized and unorganized (general purpose) datasets.

  ![](http://www.pointclouds.org/assets/images/contents/documentation/registration_outdoor.png)   ![](http://www.pointclouds.org/assets/images/contents/documentation/registration_closeup.png)  
 Requirements
==============

 * [common](group__common)
* [kdtree](group__kdtree)
* [sample\_consensus](group__sample__consensus)
* [features](group__features)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::registration::ConvergenceCriteria](classpcl_1_1registration_1_1_convergence_criteria) |
|  | **[ConvergenceCriteria](classpcl_1_1registration_1_1_convergence_criteria "ConvergenceCriteria represents an abstract base class for different convergence criteria used in regi...")** represents an abstract base class for different convergence criteria used in registration loops. [More...](classpcl_1_1registration_1_1_convergence_criteria#details) |
|
| class  | [pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_correspondence_estimation_base) |
|  | Abstract **[CorrespondenceEstimationBase](classpcl_1_1registration_1_1_correspondence_estimation_base "Abstract CorrespondenceEstimationBase class.")** class. [More...](classpcl_1_1registration_1_1_correspondence_estimation_base#details) |
|
| class  | [pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_correspondence_estimation) |
|  | **[CorrespondenceEstimation](classpcl_1_1registration_1_1_correspondence_estimation "CorrespondenceEstimation represents the base class for determining correspondences between target and...")** represents the base class for determining correspondences between target and query point sets/features. [More...](classpcl_1_1registration_1_1_correspondence_estimation#details) |
|
| class  | [pcl::registration::CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar >](classpcl_1_1registration_1_1_correspondence_estimation_back_projection) |
|  | **CorrespondenceEstimationBackprojection** computes correspondences as points in the target cloud which have minimum [More...](classpcl_1_1registration_1_1_correspondence_estimation_back_projection#details) |
|
| class  | [pcl::registration::CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar >](classpcl_1_1registration_1_1_correspondence_estimation_normal_shooting) |
|  | **[CorrespondenceEstimationNormalShooting](classpcl_1_1registration_1_1_correspondence_estimation_normal_shooting "CorrespondenceEstimationNormalShooting computes correspondences as points in the target cloud which h...")** computes correspondences as points in the target cloud which have minimum distance to normals computed on the input cloud [More...](classpcl_1_1registration_1_1_correspondence_estimation_normal_shooting#details) |
|
| class  | [pcl::registration::CorrespondenceEstimationOrganizedProjection< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_correspondence_estimation_organized_projection) |
|  | [CorrespondenceEstimationOrganizedProjection](classpcl_1_1registration_1_1_correspondence_estimation_organized_projection "CorrespondenceEstimationOrganizedProjection computes correspondences by projecting the source point c...") computes correspondences by projecting the source point cloud onto the target point cloud using the camera intrinsic and extrinsic parameters. [More...](classpcl_1_1registration_1_1_correspondence_estimation_organized_projection#details) |
|
| class  | [pcl::registration::CorrespondenceRejector](classpcl_1_1registration_1_1_correspondence_rejector) |
|  | **[CorrespondenceRejector](classpcl_1_1registration_1_1_correspondence_rejector "CorrespondenceRejector represents the base class for correspondence rejection methods")** represents the base class for correspondence rejection methods [More...](classpcl_1_1registration_1_1_correspondence_rejector#details) |
|
| class  | [pcl::registration::DataContainerInterface](classpcl_1_1registration_1_1_data_container_interface) |
|  | **[DataContainerInterface](classpcl_1_1registration_1_1_data_container_interface "DataContainerInterface provides a generic interface for computing correspondence scores between corre...")** provides a generic interface for computing correspondence scores between correspondent points in the input and target clouds [More...](classpcl_1_1registration_1_1_data_container_interface#details) |
|
| class  | [pcl::registration::DataContainer< PointT, NormalT >](classpcl_1_1registration_1_1_data_container) |
|  | **[DataContainer](classpcl_1_1registration_1_1_data_container "DataContainer is a container for the input and target point clouds and implements the interface to co...")** is a container for the input and target point clouds and implements the interface to compute correspondence scores between correspondent points in the input and target clouds [More...](classpcl_1_1registration_1_1_data_container#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorDistance](classpcl_1_1registration_1_1_correspondence_rejector_distance) |
|  | **[CorrespondenceRejectorDistance](classpcl_1_1registration_1_1_correspondence_rejector_distance "CorrespondenceRejectorDistance implements a simple correspondence rejection method based on threshold...")** implements a simple correspondence rejection method based on thresholding the distances between the correspondences. [More...](classpcl_1_1registration_1_1_correspondence_rejector_distance#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorFeatures](classpcl_1_1registration_1_1_correspondence_rejector_features) |
|  | [CorrespondenceRejectorFeatures](classpcl_1_1registration_1_1_correspondence_rejector_features "CorrespondenceRejectorFeatures implements a correspondence rejection method based on a set of feature...") implements a correspondence rejection method based on a set of feature descriptors. [More...](classpcl_1_1registration_1_1_correspondence_rejector_features#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorMedianDistance](classpcl_1_1registration_1_1_correspondence_rejector_median_distance) |
|  | [CorrespondenceRejectorMedianDistance](classpcl_1_1registration_1_1_correspondence_rejector_median_distance "CorrespondenceRejectorMedianDistance implements a simple correspondence rejection method based on thr...") implements a simple correspondence rejection method based on thresholding based on the median distance between the correspondences. [More...](classpcl_1_1registration_1_1_correspondence_rejector_median_distance#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorOneToOne](classpcl_1_1registration_1_1_correspondence_rejector_one_to_one) |
|  | [CorrespondenceRejectorOneToOne](classpcl_1_1registration_1_1_correspondence_rejector_one_to_one "CorrespondenceRejectorOneToOne implements a correspondence rejection method based on eliminating dupl...") implements a correspondence rejection method based on eliminating duplicate match indices in the correspondences. [More...](classpcl_1_1registration_1_1_correspondence_rejector_one_to_one#details) |
|
| class  | [pcl::registration::CorrespondenceRejectionOrganizedBoundary](classpcl_1_1registration_1_1_correspondence_rejection_organized_boundary) |
|  | The [CorrespondenceRejectionOrganizedBoundary](classpcl_1_1registration_1_1_correspondence_rejection_organized_boundary "The CorrespondenceRejectionOrganizedBoundary class implements a simple correspondence rejection measu...") class implements a simple correspondence rejection measure. [More...](classpcl_1_1registration_1_1_correspondence_rejection_organized_boundary#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorPoly< SourceT, TargetT >](classpcl_1_1registration_1_1_correspondence_rejector_poly) |
|  | [CorrespondenceRejectorPoly](classpcl_1_1registration_1_1_correspondence_rejector_poly "CorrespondenceRejectorPoly implements a correspondence rejection method that exploits low-level and p...") implements a correspondence rejection method that exploits low-level and pose-invariant geometric constraints between two point sets by forming virtual polygons of a user-specifiable cardinality on each model using the input correspondences. [More...](classpcl_1_1registration_1_1_correspondence_rejector_poly#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >](classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus) |
|  | [CorrespondenceRejectorSampleConsensus](classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus "CorrespondenceRejectorSampleConsensus implements a correspondence rejection using Random Sample Conse...") implements a correspondence rejection using Random Sample Consensus to identify inliers (and reject outliers) [More...](classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >](classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus2_d) |
|  | [CorrespondenceRejectorSampleConsensus2D](classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus2_d "CorrespondenceRejectorSampleConsensus2D implements a pixel-based correspondence rejection using Rando...") implements a pixel-based correspondence rejection using Random Sample Consensus to identify inliers (and reject outliers) [More...](classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus2_d#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorSurfaceNormal](classpcl_1_1registration_1_1_correspondence_rejector_surface_normal) |
|  | **[CorrespondenceRejectorSurfaceNormal](classpcl_1_1registration_1_1_correspondence_rejector_surface_normal "CorrespondenceRejectorSurfaceNormal implements a simple correspondence rejection method based on the ...")** implements a simple correspondence rejection method based on the angle between the normals at correspondent points. [More...](classpcl_1_1registration_1_1_correspondence_rejector_surface_normal#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorTrimmed](classpcl_1_1registration_1_1_correspondence_rejector_trimmed) |
|  | [CorrespondenceRejectorTrimmed](classpcl_1_1registration_1_1_correspondence_rejector_trimmed "CorrespondenceRejectorTrimmed implements a correspondence rejection for ICP-like registration algorit...") implements a correspondence rejection for ICP-like registration algorithms that uses only the best 'k' correspondences where 'k' is some estimate of the overlap between the two point clouds being registered. [More...](classpcl_1_1registration_1_1_correspondence_rejector_trimmed#details) |
|
| class  | [pcl::registration::CorrespondenceRejectorVarTrimmed](classpcl_1_1registration_1_1_correspondence_rejector_var_trimmed) |
|  | **CorrespondenceRejectoVarTrimmed** implements a simple correspondence rejection method by considering as inliers a certain percentage of correspondences with the least distances. [More...](classpcl_1_1registration_1_1_correspondence_rejector_var_trimmed#details) |
|
| struct  | [pcl::registration::sortCorrespondencesByQueryIndex](structpcl_1_1registration_1_1sort_correspondences_by_query_index) |
|  | **[sortCorrespondencesByQueryIndex](structpcl_1_1registration_1_1sort_correspondences_by_query_index "sortCorrespondencesByQueryIndex : a functor for sorting correspondences by query index")** : a functor for sorting correspondences by query index [More...](structpcl_1_1registration_1_1sort_correspondences_by_query_index#details) |
|
| struct  | [pcl::registration::sortCorrespondencesByMatchIndex](structpcl_1_1registration_1_1sort_correspondences_by_match_index) |
|  | **[sortCorrespondencesByMatchIndex](structpcl_1_1registration_1_1sort_correspondences_by_match_index "sortCorrespondencesByMatchIndex : a functor for sorting correspondences by match index")** : a functor for sorting correspondences by match index [More...](structpcl_1_1registration_1_1sort_correspondences_by_match_index#details) |
|
| struct  | [pcl::registration::sortCorrespondencesByDistance](structpcl_1_1registration_1_1sort_correspondences_by_distance) |
|  | **[sortCorrespondencesByDistance](structpcl_1_1registration_1_1sort_correspondences_by_distance "sortCorrespondencesByDistance : a functor for sorting correspondences by distance")** : a functor for sorting correspondences by distance [More...](structpcl_1_1registration_1_1sort_correspondences_by_distance#details) |
|
| struct  | [pcl::registration::sortCorrespondencesByQueryIndexAndDistance](structpcl_1_1registration_1_1sort_correspondences_by_query_index_and_distance) |
|  | **[sortCorrespondencesByQueryIndexAndDistance](structpcl_1_1registration_1_1sort_correspondences_by_query_index_and_distance "sortCorrespondencesByQueryIndexAndDistance : a functor for sorting correspondences by query index and...")** : a functor for sorting correspondences by query index *and* distance [More...](structpcl_1_1registration_1_1sort_correspondences_by_query_index_and_distance#details) |
|
| struct  | [pcl::registration::sortCorrespondencesByMatchIndexAndDistance](structpcl_1_1registration_1_1sort_correspondences_by_match_index_and_distance) |
|  | **[sortCorrespondencesByMatchIndexAndDistance](structpcl_1_1registration_1_1sort_correspondences_by_match_index_and_distance "sortCorrespondencesByMatchIndexAndDistance : a functor for sorting correspondences by match index and...")** : a functor for sorting correspondences by match index *and* distance [More...](structpcl_1_1registration_1_1sort_correspondences_by_match_index_and_distance#details) |
|
| class  | [pcl::registration::DefaultConvergenceCriteria< Scalar >](classpcl_1_1registration_1_1_default_convergence_criteria) |
|  | **[DefaultConvergenceCriteria](classpcl_1_1registration_1_1_default_convergence_criteria "DefaultConvergenceCriteria represents an instantiation of ConvergenceCriteria, and implements the fol...")** represents an instantiation of [ConvergenceCriteria](classpcl_1_1registration_1_1_convergence_criteria "ConvergenceCriteria represents an abstract base class for different convergence criteria used in regi..."), and implements the following criteria for registration loop evaluation: [More...](classpcl_1_1registration_1_1_default_convergence_criteria#details) |
|
| struct  | [pcl::registration::NullMeasurement](structpcl_1_1registration_1_1_null_measurement) |
|  | **[NullMeasurement](structpcl_1_1registration_1_1_null_measurement "NullMeasurement struct")** struct [More...](structpcl_1_1registration_1_1_null_measurement#details) |
|
| struct  | [pcl::registration::PoseMeasurement< VertexT, InformationT >](structpcl_1_1registration_1_1_pose_measurement) |
|  | **[PoseMeasurement](structpcl_1_1registration_1_1_pose_measurement "PoseMeasurement struct")** struct [More...](structpcl_1_1registration_1_1_pose_measurement#details) |
|
| class  | [pcl::registration::ELCH< PointT >](https://pointclouds.org/documentation/classpcl_1_1registration_1_1_e_l_c_h.html) |
|  | **[ELCH](https://pointclouds.org/documentation/classpcl_1_1registration_1_1_e_l_c_h.html "ELCH (Explicit Loop Closing Heuristic) class")** (Explicit Loop Closing Heuristic) class [More...](https://pointclouds.org/documentation/classpcl_1_1registration_1_1_e_l_c_h.html#details) |
|
| class  | [pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >](classpcl_1_1_generalized_iterative_closest_point) |
|  | [GeneralizedIterativeClosestPoint](classpcl_1_1_generalized_iterative_closest_point "GeneralizedIterativeClosestPoint is an ICP variant that implements the generalized iterative closest ...") is an ICP variant that implements the generalized iterative closest point algorithm as described by Alex Segal et al. [More...](classpcl_1_1_generalized_iterative_closest_point#details) |
|
| class  | [pcl::GeneralizedIterativeClosestPoint6D](classpcl_1_1_generalized_iterative_closest_point6_d) |
|  | [GeneralizedIterativeClosestPoint6D](classpcl_1_1_generalized_iterative_closest_point6_d "GeneralizedIterativeClosestPoint6D integrates L*a*b* color space information into the Generalized Ite...") integrates L\*a\*b\* color space information into the Generalized Iterative Closest Point (GICP) algorithm. [More...](classpcl_1_1_generalized_iterative_closest_point6_d#details) |
|
| class  | [pcl::registration::GraphHandler< GraphT >](classpcl_1_1registration_1_1_graph_handler) |
|  | **[GraphHandler](classpcl_1_1registration_1_1_graph_handler "GraphHandler class is a wrapper for a general SLAM graph The actual graph class must fulfill the foll...")** class is a wrapper for a general SLAM graph The actual graph class must fulfill the following boost::graph concepts: [More...](classpcl_1_1registration_1_1_graph_handler#details) |
|
| class  | [pcl::registration::GraphOptimizer< GraphT >](classpcl_1_1registration_1_1_graph_optimizer) |
|  | **[GraphOptimizer](classpcl_1_1registration_1_1_graph_optimizer "GraphOptimizer class; derive and specialize for each graph type")** class; derive and specialize for each graph type [More...](classpcl_1_1registration_1_1_graph_optimizer#details) |
|
| class  | [pcl::GraphRegistration< GraphT >](classpcl_1_1_graph_registration) |
|  | **[GraphRegistration](classpcl_1_1_graph_registration "GraphRegistration class is the base class for graph-based registration methods")** class is the base class for graph-based registration methods [More...](classpcl_1_1_graph_registration#details) |
|
| class  | [pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >](classpcl_1_1registration_1_1_f_p_c_s_initial_alignment) |
|  | [FPCSInitialAlignment](classpcl_1_1registration_1_1_f_p_c_s_initial_alignment "FPCSInitialAlignment computes corresponding four point congruent sets as described in: \"4-points cong...") computes corresponding four point congruent sets as described in: "4-points congruent sets for robust pairwise surface registration", Dror Aiger, Niloy Mitra, Daniel Cohen-Or. [More...](classpcl_1_1registration_1_1_f_p_c_s_initial_alignment#details) |
|
| class  | [pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >](classpcl_1_1registration_1_1_k_f_p_c_s_initial_alignment) |
|  | [KFPCSInitialAlignment](classpcl_1_1registration_1_1_k_f_p_c_s_initial_alignment "KFPCSInitialAlignment computes corresponding four point congruent sets based on keypoints as describe...") computes corresponding four point congruent sets based on keypoints as described in: "Markerless point cloud registration with keypoint-based 4-points congruent sets", Pascal Theiler, Jan Dirk Wegner, Konrad Schindler. [More...](classpcl_1_1registration_1_1_k_f_p_c_s_initial_alignment#details) |
|
| class  | [pcl::SampleConsensusInitialAlignment< PointSource, PointTarget, FeatureT >](classpcl_1_1_sample_consensus_initial_alignment) |
|  | **[SampleConsensusInitialAlignment](classpcl_1_1_sample_consensus_initial_alignment "SampleConsensusInitialAlignment is an implementation of the initial alignment algorithm described in ...")** is an implementation of the initial alignment algorithm described in section IV of "Fast Point Feature Histograms (FPFH) for 3D Registration," Rusu et al. [More...](classpcl_1_1_sample_consensus_initial_alignment#details) |
|
| class  | [pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >](classpcl_1_1_iterative_closest_point) |
|  | **[IterativeClosestPoint](classpcl_1_1_iterative_closest_point "IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm.")** provides a base implementation of the Iterative Closest Point algorithm. [More...](classpcl_1_1_iterative_closest_point#details) |
|
| class  | [pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >](classpcl_1_1_iterative_closest_point_with_normals) |
|  | **[IterativeClosestPointWithNormals](classpcl_1_1_iterative_closest_point_with_normals "IterativeClosestPointWithNormals is a special case of IterativeClosestPoint, that uses a transformati...")** is a special case of [IterativeClosestPoint](classpcl_1_1_iterative_closest_point "IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm."), that uses a transformation estimated based on Point to Plane distances by default. [More...](classpcl_1_1_iterative_closest_point_with_normals#details) |
|
| class  | [pcl::IterativeClosestPointNonLinear< PointSource, PointTarget, Scalar >](classpcl_1_1_iterative_closest_point_non_linear) |
|  | **[IterativeClosestPointNonLinear](classpcl_1_1_iterative_closest_point_non_linear "IterativeClosestPointNonLinear is an ICP variant that uses Levenberg-Marquardt optimization backend.")** is an ICP variant that uses Levenberg-Marquardt optimization backend. [More...](classpcl_1_1_iterative_closest_point_non_linear#details) |
|
| class  | [pcl::registration::IncrementalRegistration< PointT, Scalar >](classpcl_1_1registration_1_1_incremental_registration) |
|  | Incremental [IterativeClosestPoint](classpcl_1_1_iterative_closest_point) class. [More...](classpcl_1_1registration_1_1_incremental_registration#details) |
|
| class  | [pcl::JointIterativeClosestPoint< PointSource, PointTarget, Scalar >](classpcl_1_1_joint_iterative_closest_point) |
|  | **[JointIterativeClosestPoint](classpcl_1_1_joint_iterative_closest_point "JointIterativeClosestPoint extends ICP to multiple frames which share the same transform.")** extends ICP to multiple frames which share the same transform. [More...](classpcl_1_1_joint_iterative_closest_point#details) |
|
| class  | [pcl::registration::LUM< PointT >](classpcl_1_1registration_1_1_l_u_m) |
|  | Globally Consistent Scan Matching based on an algorithm by Lu and Milios. [More...](classpcl_1_1registration_1_1_l_u_m#details) |
|
| class  | [pcl::registration::MetaRegistration< PointT, Scalar >](classpcl_1_1registration_1_1_meta_registration) |
|  | Meta [Registration](classpcl_1_1_registration) class. [More...](classpcl_1_1registration_1_1_meta_registration#details) |
|
| class  | [pcl::PairwiseGraphRegistration< GraphT, PointT >](classpcl_1_1_pairwise_graph_registration) |
|  | **[PairwiseGraphRegistration](classpcl_1_1_pairwise_graph_registration "PairwiseGraphRegistration class aligns the clouds two by two")** class aligns the clouds two by two [More...](classpcl_1_1_pairwise_graph_registration#details) |
|
| class  | [pcl::Registration< PointSource, PointTarget, Scalar >](classpcl_1_1_registration) |
|  | **[Registration](classpcl_1_1_registration "Registration represents the base registration class for general purpose, ICP-like methods.")** represents the base registration class for general purpose, ICP-like methods. [More...](classpcl_1_1_registration#details) |
|
| class  | [pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >](classpcl_1_1_sample_consensus_prerejective) |
|  | Pose estimation and alignment class using a prerejective RANSAC routine. [More...](classpcl_1_1_sample_consensus_prerejective#details) |
|
| class  | [pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation) |
|  | [TransformationEstimation](classpcl_1_1registration_1_1_transformation_estimation "TransformationEstimation represents the base class for methods for transformation estimation based on...") represents the base class for methods for transformation estimation based on: [More...](classpcl_1_1registration_1_1_transformation_estimation#details) |
|
| class  | [pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation2_d) |
|  | **[TransformationEstimation2D](classpcl_1_1registration_1_1_transformation_estimation2_d "TransformationEstimation2D implements a simple 2D rigid transformation estimation (x,...")** implements a simple 2D rigid transformation estimation (x, y, theta) for a given pair of datasets. [More...](classpcl_1_1registration_1_1_transformation_estimation2_d#details) |
|
| class  | [pcl::registration::TransformationEstimation3Point< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation3_point) |
|  | TransformationEstimation3Points represents the class for transformation estimation based on: [More...](classpcl_1_1registration_1_1_transformation_estimation3_point#details) |
|
| class  | [pcl::registration::TransformationEstimationDQ< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_d_q) |
|  | **[TransformationEstimationDQ](classpcl_1_1registration_1_1_transformation_estimation_d_q "TransformationEstimationDQ implements dual quaternion based estimation of the transformation aligning...")** implements dual quaternion based estimation of the transformation aligning the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_d_q#details) |
|
| class  | [pcl::registration::TransformationEstimationDualQuaternion< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_dual_quaternion) |
|  | **[TransformationEstimationDualQuaternion](classpcl_1_1registration_1_1_transformation_estimation_dual_quaternion "TransformationEstimationDualQuaternion implements dual quaternion based estimation of the transformat...")** implements dual quaternion based estimation of the transformation aligning the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_dual_quaternion#details) |
|
| class  | [pcl::registration::TransformationEstimationLM< PointSource, PointTarget, MatScalar >](classpcl_1_1registration_1_1_transformation_estimation_l_m) |
|  | **[TransformationEstimationLM](classpcl_1_1registration_1_1_transformation_estimation_l_m "TransformationEstimationLM implements Levenberg Marquardt-based estimation of the transformation alig...")** implements Levenberg Marquardt-based estimation of the transformation aligning the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_l_m#details) |
|
| class  | [pcl::registration::TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane) |
|  | **[TransformationEstimationPointToPlane](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane "TransformationEstimationPointToPlane uses Levenberg Marquardt optimization to find the transformation...")** uses Levenberg Marquardt optimization to find the transformation that minimizes the point-to-plane distance between the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane#details) |
|
| class  | [pcl::registration::TransformationEstimationPointToPlaneLLS< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s) |
|  | **[TransformationEstimationPointToPlaneLLS](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s "TransformationEstimationPointToPlaneLLS implements a Linear Least Squares (LLS) approximation for min...")** implements a Linear Least Squares (LLS) approximation for minimizing the point-to-plane distance between two clouds of corresponding points with normals. [More...](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s#details) |
|
| class  | [pcl::registration::TransformationEstimationPointToPlaneLLSWeighted< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s_weighted) |
|  | **[TransformationEstimationPointToPlaneLLSWeighted](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s_weighted "TransformationEstimationPointToPlaneLLSWeighted implements a Linear Least Squares (LLS) approximation...")** implements a Linear Least Squares (LLS) approximation for minimizing the point-to-plane distance between two clouds of corresponding points with normals, with the possibility of assigning weights to the correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_l_l_s_weighted#details) |
|
| class  | [pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_weighted) |
|  | **[TransformationEstimationPointToPlaneWeighted](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_weighted "TransformationEstimationPointToPlaneWeighted uses Levenberg Marquardt optimization to find the transf...")** uses Levenberg Marquardt optimization to find the transformation that minimizes the point-to-plane distance between the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_point_to_plane_weighted#details) |
|
| class  | [pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_s_v_d) |
|  | **[TransformationEstimationSVD](classpcl_1_1registration_1_1_transformation_estimation_s_v_d "TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given ...")** implements SVD-based estimation of the transformation aligning the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_s_v_d#details) |
|
| class  | [pcl::registration::TransformationEstimationSVDScale< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_s_v_d_scale) |
|  | **[TransformationEstimationSVD](classpcl_1_1registration_1_1_transformation_estimation_s_v_d "TransformationEstimationSVD implements SVD-based estimation of the transformation aligning the given ...")** implements SVD-based estimation of the transformation aligning the given correspondences. [More...](classpcl_1_1registration_1_1_transformation_estimation_s_v_d_scale#details) |
|
| class  | [pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_estimation_symmetric_point_to_plane_l_l_s) |
|  | **[TransformationEstimationSymmetricPointToPlaneLLS](classpcl_1_1registration_1_1_transformation_estimation_symmetric_point_to_plane_l_l_s "TransformationEstimationSymmetricPointToPlaneLLS implements a Linear Least Squares (LLS) approximatio...")** implements a Linear Least Squares (LLS) approximation for minimizing the symmetric point-to-plane distance between two clouds of corresponding points with normals. [More...](classpcl_1_1registration_1_1_transformation_estimation_symmetric_point_to_plane_l_l_s#details) |
|
| class  | [pcl::registration::TransformationValidation< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_validation) |
|  | [TransformationValidation](classpcl_1_1registration_1_1_transformation_validation "TransformationValidation represents the base class for methods that validate the correctness of a tra...") represents the base class for methods that validate the correctness of a transformation found through [TransformationEstimation](classpcl_1_1registration_1_1_transformation_estimation). [More...](classpcl_1_1registration_1_1_transformation_validation#details) |
|
| class  | [pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >](classpcl_1_1registration_1_1_transformation_validation_euclidean) |
|  | [TransformationValidationEuclidean](classpcl_1_1registration_1_1_transformation_validation_euclidean "TransformationValidationEuclidean computes an L2SQR norm between a source and target dataset.") computes an L2SQR norm between a source and target dataset. [More...](classpcl_1_1registration_1_1_transformation_validation_euclidean#details) |
|
| struct  | [pcl::registration::NullEstimate](structpcl_1_1registration_1_1_null_estimate) |
|  | **[NullEstimate](structpcl_1_1registration_1_1_null_estimate "NullEstimate struct")** struct [More...](structpcl_1_1registration_1_1_null_estimate#details) |
|
| struct  | [pcl::registration::PoseEstimate< PointT >](structpcl_1_1registration_1_1_pose_estimate) |
|  | **[PoseEstimate](structpcl_1_1registration_1_1_pose_estimate "PoseEstimate struct")** struct [More...](structpcl_1_1registration_1_1_pose_estimate#details) |
|
| class  | [pcl::registration::WarpPointRigid< PointSourceT, PointTargetT, Scalar >](classpcl_1_1registration_1_1_warp_point_rigid) |
|  | Base warp point class. [More...](classpcl_1_1registration_1_1_warp_point_rigid#details) |
|
| class  | [pcl::registration::WarpPointRigid3D< PointSourceT, PointTargetT, Scalar >](classpcl_1_1registration_1_1_warp_point_rigid3_d) |
|  | **[WarpPointRigid3D](classpcl_1_1registration_1_1_warp_point_rigid3_d "WarpPointRigid3D enables 3D (1D rotation + 2D translation) transformations for points.")** enables 3D (1D rotation + 2D translation) transformations for points. [More...](classpcl_1_1registration_1_1_warp_point_rigid3_d#details) |
|
| class  | [pcl::registration::WarpPointRigid6D< PointSourceT, PointTargetT, Scalar >](classpcl_1_1registration_1_1_warp_point_rigid6_d) |
|  | **[WarpPointRigid3D](classpcl_1_1registration_1_1_warp_point_rigid3_d "WarpPointRigid3D enables 3D (1D rotation + 2D translation) transformations for points.")** enables 6D (3D rotation + 3D translation) transformations for points. [More...](classpcl_1_1registration_1_1_warp_point_rigid6_d#details) |
|

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__registration.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_sample\_consensus** library holds SAmple Consensus (SAC) methods like [RANSAC](https://en.wikipedia.org/wiki/RANSAC) and models like planes and cylinders. These can be combined freely in order to detect specific models and their parameters in point clouds.

 Some of the models implemented in this library include: lines, planes, cylinders, and spheres. Plane fitting is often applied to the task of detecting common indoor surfaces, such as walls, floors, and table tops. Other models can be used to detect and segment objects with common geometric structures (e.g., fitting a cylinder model to a mug).

  ![](http://www.pointclouds.org/assets/images/contents/documentation/sample_consensus_planes_cylinders.png)  The following models are supported: 


* [SACMODEL\_PLANE](classpcl_1_1_sample_consensus_model_plane)  - used to determine plane models. The **four** coefficients of the plane are its [Hessian Normal form](http://mathworld.wolfram.com/HessianNormalForm.html): [**normal\_x normal\_y normal\_z d**]
* [SACMODEL\_LINE](classpcl_1_1_sample_consensus_model_line)  - used to determine line models. The **six** coefficients of the line are given by a point on the line and the direction of the line as: [**point\_on\_line.x point\_on\_line.y point\_on\_line.z line\_direction.x line\_direction.y line\_direction.z**]
* [SACMODEL\_CIRCLE2D](classpcl_1_1_sample_consensus_model_circle2_d)  - used to determine 2D circles in a plane. The circle's **three** coefficients are given by its center and radius as: [**center.x center.y radius**]
* [SACMODEL\_CIRCLE3D](classpcl_1_1_sample_consensus_model_circle3_d)  - used to determine 3D circles in a plane. The circle's **seven** coefficients are given by its center, radius and normal as: [**center.x, center.y, center.z, radius, normal.x, normal.y, normal.z**]
* [SACMODEL\_SPHERE](classpcl_1_1_sample_consensus_model_sphere)  - used to determine sphere models. The **four** coefficients of the sphere are given by its 3D center and radius as: [**center.x center.y center.z radius**]
* [SACMODEL\_CYLINDER](classpcl_1_1_sample_consensus_model_cylinder)  - used to determine cylinder models. The **seven** coefficients of the cylinder are given by a point on its axis, the axis direction, and a radius, as: [**point\_on\_axis.x point\_on\_axis.y point\_on\_axis.z axis\_direction.x axis\_direction.y axis\_direction.z radius**]
* [SACMODEL\_CONE](classpcl_1_1_sample_consensus_model_cone)  - used to determine cone models. The **seven** coefficients of the cone are given by a point of its apex, the axis direction and the opening angle, as: [**apex.x, apex.y, apex.z, axis\_direction.x, axis\_direction.y, axis\_direction.z, opening\_angle**]
* SACMODEL\_TORUS - not implemented yet
* [SACMODEL\_PARALLEL\_LINE](classpcl_1_1_sample_consensus_model_parallel_line)  - a model for determining a line **parallel** with a given axis, within a maximum specified angular deviation. The line coefficients are similar to [SACMODEL\_LINE](classpcl_1_1_sample_consensus_model_line) .
* [SACMODEL\_PERPENDICULAR\_PLANE](classpcl_1_1_sample_consensus_model_perpendicular_plane)  - a model for determining a plane **perpendicular** to a user-specified axis, within a maximum specified angular deviation. The plane coefficients are similar to [SACMODEL\_PLANE](classpcl_1_1_sample_consensus_model_plane) .
* SACMODEL\_PARALLEL\_LINES - not implemented yet
* [SACMODEL\_NORMAL\_PLANE](classpcl_1_1_sample_consensus_model_normal_plane)  - a model for determining plane models using an additional constraint: the surface normals at each inlier point has to be parallel to the surface normal of the output plane, within a maximum specified angular deviation. The plane coefficients are similar to [SACMODEL\_PLANE](classpcl_1_1_sample_consensus_model_plane) .
* [SACMODEL\_NORMAL\_SPHERE](classpcl_1_1_sample_consensus_model_normal_sphere)  - similar to [SACMODEL\_SPHERE](classpcl_1_1_sample_consensus_model_sphere) , but with additional surface normal constraints.
* [SACMODEL\_PARALLEL\_PLANE](classpcl_1_1_sample_consensus_model_parallel_plane)  - a model for determining a plane **parallel** to a user-specified axis, within a maximum specified angular deviation. The plane coefficients are similar to [SACMODEL\_PLANE](classpcl_1_1_sample_consensus_model_plane) .
* [SACMODEL\_NORMAL\_PARALLEL\_PLANE](classpcl_1_1_sample_consensus_model_normal_parallel_plane)  defines a model for 3D plane segmentation using additional surface normal constraints. The plane normal must lie **parallel** to a user-specified axis. SACMODEL\_NORMAL\_PARALLEL\_PLANE therefore is equivalent to SACMODEL\_NORMAL\_PLANE + SACMODEL\_PERPENDICULAR\_PLANE. The plane coefficients are similar to [SACMODEL\_PLANE](classpcl_1_1_sample_consensus_model_plane) .
* [SACMODEL\_STICK](classpcl_1_1_sample_consensus_model_stick)  - a model for 3D stick segmentation. A stick is a line with a user given minimum/maximum width.
* [SACMODEL\_ELLIPSE3D](classpcl_1_1_sample_consensus_model_ellipse3_d)  - used to determine 3D ellipses in a plane. The ellipses's **eleven** coefficients are given by its center and radius as: [**center.x, center.y, center.z, semi\_axis.u, semi\_axis.v, normal.x, normal.y, normal.z, u.x, u.y, u.z**]

 The following list describes the robust sample consensus estimators implemented: 


* [SAC\_RANSAC](https://en.wikipedia.org/wiki/RANSAC) - RANdom SAmple Consensus
* [SAC\_LMEDS](https://www-sop.inria.fr/odyssee/software/old_robotvis/Tutorial-Estim/node25.html) - Least Median of Squares
* [SAC\_MSAC](https://www.robots.ox.ac.uk/~vgg/publications/2000/Torr00/torr00.pdf) - M-Estimator SAmple Consensus
* [SAC\_RRANSAC](https://web.archive.org/web/20170811194151/http://www.bmva.org/bmvc/2002/papers/50/full_50.pdf) - Randomized RANSAC
* [SAC\_RMSAC](https://web.archive.org/web/20170811194151/http://www.bmva.org/bmvc/2002/papers/50/full_50.pdf) - Randomized MSAC
* [SAC\_MLESAC](https://www.robots.ox.ac.uk/~vgg/publications/2000/Torr00/torr00.pdf) - Maximum LikeLihood Estimation SAmple Consensus
* [SAC\_PROSAC](http://cmp.felk.cvut.cz/~matas/papers/chum-prosac-cvpr05.pdf) - PROgressive SAmple Consensus

 By default, if you're not familiar with most of the above estimators and how they operate, use RANSAC to test your hypotheses.

 
 Requirements
==============

 * [common](group__common)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::LeastMedianSquares< PointT >](classpcl_1_1_least_median_squares) |
|  | **[LeastMedianSquares](classpcl_1_1_least_median_squares "LeastMedianSquares represents an implementation of the LMedS (Least Median of Squares) algorithm.")** represents an implementation of the LMedS (Least Median of Squares) algorithm. [More...](classpcl_1_1_least_median_squares#details) |
|
| class  | [pcl::MaximumLikelihoodSampleConsensus< PointT >](classpcl_1_1_maximum_likelihood_sample_consensus) |
|  | **[MaximumLikelihoodSampleConsensus](classpcl_1_1_maximum_likelihood_sample_consensus "MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estim...")** represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. [More...](classpcl_1_1_maximum_likelihood_sample_consensus#details) |
|
| class  | [pcl::MEstimatorSampleConsensus< PointT >](classpcl_1_1_m_estimator_sample_consensus) |
|  | **[MEstimatorSampleConsensus](classpcl_1_1_m_estimator_sample_consensus "MEstimatorSampleConsensus represents an implementation of the MSAC (M-estimator SAmple Consensus) alg...")** represents an implementation of the MSAC (M-estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. [More...](classpcl_1_1_m_estimator_sample_consensus#details) |
|
| class  | [pcl::ProgressiveSampleConsensus< PointT >](classpcl_1_1_progressive_sample_consensus) |
|  | **[ProgressiveSampleConsensus](classpcl_1_1_progressive_sample_consensus "ProgressiveSampleConsensus represents an implementation of the PROSAC (PROgressive SAmple Consensus) ...")** represents an implementation of the PROSAC (PROgressive SAmple Consensus) algorithm, as described in: "Matching with PROSAC – Progressive Sample Consensus", Chum, O. [More...](classpcl_1_1_progressive_sample_consensus#details) |
|
| class  | [pcl::RandomSampleConsensus< PointT >](classpcl_1_1_random_sample_consensus) |
|  | **[RandomSampleConsensus](classpcl_1_1_random_sample_consensus "RandomSampleConsensus represents an implementation of the RANSAC (RANdom SAmple Consensus) algorithm,...")** represents an implementation of the RANSAC (RANdom SAmple Consensus) algorithm, as described in: "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Martin A. [More...](classpcl_1_1_random_sample_consensus#details) |
|
| class  | [pcl::RandomizedMEstimatorSampleConsensus< PointT >](classpcl_1_1_randomized_m_estimator_sample_consensus) |
|  | **[RandomizedMEstimatorSampleConsensus](classpcl_1_1_randomized_m_estimator_sample_consensus "RandomizedMEstimatorSampleConsensus represents an implementation of the RMSAC (Randomized M-estimator...")** represents an implementation of the RMSAC (Randomized M-estimator SAmple Consensus) algorithm, which basically adds a Td,d test (see *[RandomizedRandomSampleConsensus](classpcl_1_1_randomized_random_sample_consensus "RandomizedRandomSampleConsensus represents an implementation of the RRANSAC (Randomized RANdom SAmple...")*) to an MSAC estimator (see *[MEstimatorSampleConsensus](classpcl_1_1_m_estimator_sample_consensus "MEstimatorSampleConsensus represents an implementation of the MSAC (M-estimator SAmple Consensus) alg...")*). [More...](classpcl_1_1_randomized_m_estimator_sample_consensus#details) |
|
| class  | [pcl::RandomizedRandomSampleConsensus< PointT >](classpcl_1_1_randomized_random_sample_consensus) |
|  | **[RandomizedRandomSampleConsensus](classpcl_1_1_randomized_random_sample_consensus "RandomizedRandomSampleConsensus represents an implementation of the RRANSAC (Randomized RANdom SAmple...")** represents an implementation of the RRANSAC (Randomized RANdom SAmple Consensus), as described in "Randomized RANSAC with Td,d test", O. [More...](classpcl_1_1_randomized_random_sample_consensus#details) |
|
| class  | [pcl::SampleConsensus< T >](classpcl_1_1_sample_consensus) |
|  | [SampleConsensus](classpcl_1_1_sample_consensus "SampleConsensus represents the base class.") represents the base class. [More...](classpcl_1_1_sample_consensus#details) |
|
| class  | [pcl::SampleConsensusModel< PointT >](classpcl_1_1_sample_consensus_model) |
|  | **[SampleConsensusModel](classpcl_1_1_sample_consensus_model "SampleConsensusModel represents the base model class.")** represents the base model class. [More...](classpcl_1_1_sample_consensus_model#details) |
|
| class  | [pcl::SampleConsensusModelFromNormals< PointT, PointNT >](classpcl_1_1_sample_consensus_model_from_normals) |
|  | **[SampleConsensusModelFromNormals](classpcl_1_1_sample_consensus_model_from_normals "SampleConsensusModelFromNormals represents the base model class for models that require the use of su...")** represents the base model class for models that require the use of surface normals for estimation. [More...](classpcl_1_1_sample_consensus_model_from_normals#details) |
|
| class  | [pcl::SampleConsensusModelCircle2D< PointT >](classpcl_1_1_sample_consensus_model_circle2_d) |
|  | [SampleConsensusModelCircle2D](classpcl_1_1_sample_consensus_model_circle2_d "SampleConsensusModelCircle2D defines a model for 2D circle segmentation on the X-Y plane.") defines a model for 2D circle segmentation on the X-Y plane. [More...](classpcl_1_1_sample_consensus_model_circle2_d#details) |
|
| class  | [pcl::SampleConsensusModelCircle3D< PointT >](classpcl_1_1_sample_consensus_model_circle3_d) |
|  | [SampleConsensusModelCircle3D](classpcl_1_1_sample_consensus_model_circle3_d "SampleConsensusModelCircle3D defines a model for 3D circle segmentation.") defines a model for 3D circle segmentation. [More...](classpcl_1_1_sample_consensus_model_circle3_d#details) |
|
| class  | [pcl::SampleConsensusModelCone< PointT, PointNT >](classpcl_1_1_sample_consensus_model_cone) |
|  | **[SampleConsensusModelCone](classpcl_1_1_sample_consensus_model_cone "SampleConsensusModelCone defines a model for 3D cone segmentation.")** defines a model for 3D cone segmentation. [More...](classpcl_1_1_sample_consensus_model_cone#details) |
|
| class  | [pcl::SampleConsensusModelCylinder< PointT, PointNT >](classpcl_1_1_sample_consensus_model_cylinder) |
|  | **[SampleConsensusModelCylinder](classpcl_1_1_sample_consensus_model_cylinder "SampleConsensusModelCylinder defines a model for 3D cylinder segmentation.")** defines a model for 3D cylinder segmentation. [More...](classpcl_1_1_sample_consensus_model_cylinder#details) |
|
| class  | [pcl::SampleConsensusModelEllipse3D< PointT >](classpcl_1_1_sample_consensus_model_ellipse3_d) |
|  | [SampleConsensusModelEllipse3D](classpcl_1_1_sample_consensus_model_ellipse3_d "SampleConsensusModelEllipse3D defines a model for 3D ellipse segmentation.") defines a model for 3D ellipse segmentation. [More...](classpcl_1_1_sample_consensus_model_ellipse3_d#details) |
|
| class  | [pcl::SampleConsensusModelLine< PointT >](classpcl_1_1_sample_consensus_model_line) |
|  | [SampleConsensusModelLine](classpcl_1_1_sample_consensus_model_line "SampleConsensusModelLine defines a model for 3D line segmentation.") defines a model for 3D line segmentation. [More...](classpcl_1_1_sample_consensus_model_line#details) |
|
| class  | [pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >](classpcl_1_1_sample_consensus_model_normal_parallel_plane) |
|  | [SampleConsensusModelNormalParallelPlane](classpcl_1_1_sample_consensus_model_normal_parallel_plane "SampleConsensusModelNormalParallelPlane defines a model for 3D plane segmentation using additional su...") defines a model for 3D plane segmentation using additional surface normal constraints. [More...](classpcl_1_1_sample_consensus_model_normal_parallel_plane#details) |
|
| class  | [pcl::SampleConsensusModelNormalPlane< PointT, PointNT >](classpcl_1_1_sample_consensus_model_normal_plane) |
|  | [SampleConsensusModelNormalPlane](classpcl_1_1_sample_consensus_model_normal_plane "SampleConsensusModelNormalPlane defines a model for 3D plane segmentation using additional surface no...") defines a model for 3D plane segmentation using additional surface normal constraints. [More...](classpcl_1_1_sample_consensus_model_normal_plane#details) |
|
| class  | [pcl::SampleConsensusModelNormalSphere< PointT, PointNT >](classpcl_1_1_sample_consensus_model_normal_sphere) |
|  | **[SampleConsensusModelNormalSphere](classpcl_1_1_sample_consensus_model_normal_sphere "SampleConsensusModelNormalSphere defines a model for 3D sphere segmentation using additional surface ...")** defines a model for 3D sphere segmentation using additional surface normal constraints. [More...](classpcl_1_1_sample_consensus_model_normal_sphere#details) |
|
| class  | [pcl::SampleConsensusModelParallelLine< PointT >](classpcl_1_1_sample_consensus_model_parallel_line) |
|  | [SampleConsensusModelParallelLine](classpcl_1_1_sample_consensus_model_parallel_line "SampleConsensusModelParallelLine defines a model for 3D line segmentation using additional angular co...") defines a model for 3D line segmentation using additional angular constraints. [More...](classpcl_1_1_sample_consensus_model_parallel_line#details) |
|
| class  | [pcl::SampleConsensusModelParallelPlane< PointT >](classpcl_1_1_sample_consensus_model_parallel_plane) |
|  | **[SampleConsensusModelParallelPlane](classpcl_1_1_sample_consensus_model_parallel_plane "SampleConsensusModelParallelPlane defines a model for 3D plane segmentation using additional angular ...")** defines a model for 3D plane segmentation using additional angular constraints. [More...](classpcl_1_1_sample_consensus_model_parallel_plane#details) |
|
| class  | [pcl::SampleConsensusModelPerpendicularPlane< PointT >](classpcl_1_1_sample_consensus_model_perpendicular_plane) |
|  | [SampleConsensusModelPerpendicularPlane](classpcl_1_1_sample_consensus_model_perpendicular_plane "SampleConsensusModelPerpendicularPlane defines a model for 3D plane segmentation using additional ang...") defines a model for 3D plane segmentation using additional angular constraints. [More...](classpcl_1_1_sample_consensus_model_perpendicular_plane#details) |
|
| class  | [pcl::SampleConsensusModelPlane< PointT >](classpcl_1_1_sample_consensus_model_plane) |
|  | [SampleConsensusModelPlane](classpcl_1_1_sample_consensus_model_plane "SampleConsensusModelPlane defines a model for 3D plane segmentation.") defines a model for 3D plane segmentation. [More...](classpcl_1_1_sample_consensus_model_plane#details) |
|
| class  | [pcl::SampleConsensusModelRegistration< PointT >](classpcl_1_1_sample_consensus_model_registration) |
|  | [SampleConsensusModelRegistration](classpcl_1_1_sample_consensus_model_registration "SampleConsensusModelRegistration defines a model for Point-To-Point registration outlier rejection.") defines a model for Point-To-Point registration outlier rejection. [More...](classpcl_1_1_sample_consensus_model_registration#details) |
|
| class  | [pcl::SampleConsensusModelRegistration2D< PointT >](classpcl_1_1_sample_consensus_model_registration2_d) |
|  | [SampleConsensusModelRegistration2D](classpcl_1_1_sample_consensus_model_registration2_d "SampleConsensusModelRegistration2D defines a model for Point-To-Point registration outlier rejection ...") defines a model for Point-To-Point registration outlier rejection using distances between 2D pixels. [More...](classpcl_1_1_sample_consensus_model_registration2_d#details) |
|
| class  | [pcl::SampleConsensusModelSphere< PointT >](classpcl_1_1_sample_consensus_model_sphere) |
|  | [SampleConsensusModelSphere](classpcl_1_1_sample_consensus_model_sphere "SampleConsensusModelSphere defines a model for 3D sphere segmentation.") defines a model for 3D sphere segmentation. [More...](classpcl_1_1_sample_consensus_model_sphere#details) |
|
| class  | [pcl::SampleConsensusModelStick< PointT >](classpcl_1_1_sample_consensus_model_stick) |
|  | [SampleConsensusModelStick](classpcl_1_1_sample_consensus_model_stick "SampleConsensusModelStick defines a model for 3D stick segmentation.") defines a model for 3D stick segmentation. [More...](classpcl_1_1_sample_consensus_model_stick#details) |
|




|  |
| --- |
| 
 Functions |
| template<typename Point >  |
| double  | [pcl::pointToPlaneDistanceSigned](group__sample__consensus#gaa4ccc1f67a12a93c3930c91116ff8120) (const Point &p, double a, double b, double c, double d) |
|  | Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0. [More...](group__sample__consensus#gaa4ccc1f67a12a93c3930c91116ff8120) |
|
| template<typename Point >  |
| double  | [pcl::pointToPlaneDistanceSigned](group__sample__consensus#gaf0254d8592884aedfd4daeb631cf3247) (const Point &p, const Eigen::Vector4f &plane\_coefficients) |
|  | Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0. [More...](group__sample__consensus#gaf0254d8592884aedfd4daeb631cf3247) |
|
| template<typename Point >  |
| double  | [pcl::pointToPlaneDistance](group__sample__consensus#gabbab932cbacef63d51404db8cc1a862f) (const Point &p, double a, double b, double c, double d) |
|  | Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0. [More...](group__sample__consensus#gabbab932cbacef63d51404db8cc1a862f) |
|
| template<typename Point >  |
| double  | [pcl::pointToPlaneDistance](group__sample__consensus#gad5ba25b6b496cf05b52b7e639c4c19e0) (const Point &p, const Eigen::Vector4f &plane\_coefficients) |
|  | Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0. [More...](group__sample__consensus#gad5ba25b6b496cf05b52b7e639c4c19e0) |
|

 Function Documentation
----------------------

  pointToPlaneDistance() [1/2]
----------------------------

    template<typename Point >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::pointToPlaneDistance  | ( | const Point &  | *p*,  |
|  |  | const Eigen::Vector4f &  | *plane\_coefficients* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/sample_consensus/sac_model_plane.h>`

 Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0. 

 
Parameters
 

|  |  |
| --- | --- |
| p | a point  |
| plane\_coefficients | the normalized coefficients (a, b, c, d) of a plane  |

   Definition at line [125](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00125) of file [sac\_model\_plane.h](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html).

 References [pcl::pointToPlaneDistanceSigned()](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00089).

    pointToPlaneDistance() [2/2]
----------------------------

    template<typename Point >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::pointToPlaneDistance  | ( | const Point &  | *p*,  |
|  |  | double  | *a*,  |
|  |  | double  | *b*,  |
|  |  | double  | *c*,  |
|  |  | double  | *d* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/sample_consensus/sac_model_plane.h>`

 Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0. 

 
Parameters
 

|  |  |
| --- | --- |
| p | a point  |
| a | the normalized *a* coefficient of a plane  |
| b | the normalized *b* coefficient of a plane  |
| c | the normalized *c* coefficient of a plane  |
| d | the normalized *d* coefficient of a plane  |

   Definition at line [114](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00114) of file [sac\_model\_plane.h](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html).

 References [pcl::pointToPlaneDistanceSigned()](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00089).

    pointToPlaneDistanceSigned() [1/2]
----------------------------------

    template<typename Point >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::pointToPlaneDistanceSigned  | ( | const Point &  | *p*,  |
|  |  | const Eigen::Vector4f &  | *plane\_coefficients* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/sample_consensus/sac_model_plane.h>`

 Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0. 

 
Parameters
 

|  |  |
| --- | --- |
| p | a point  |
| plane\_coefficients | the normalized coefficients (a, b, c, d) of a plane  |

   Definition at line [100](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00100) of file [sac\_model\_plane.h](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html).

    pointToPlaneDistanceSigned() [2/2]
----------------------------------

    template<typename Point >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::pointToPlaneDistanceSigned  | ( | const Point &  | *p*,  |
|  |  | double  | *a*,  |
|  |  | double  | *b*,  |
|  |  | double  | *c*,  |
|  |  | double  | *d* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/sample_consensus/sac_model_plane.h>`

 Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0. 

 
Parameters
 

|  |  |
| --- | --- |
| p | a point  |
| a | the normalized *a* coefficient of a plane  |
| b | the normalized *b* coefficient of a plane  |
| c | the normalized *c* coefficient of a plane  |
| d | the normalized *d* coefficient of a plane  |

   Definition at line [89](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00089) of file [sac\_model\_plane.h](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html).

 Referenced by [pcl::pointToPlaneDistance()](https://pointclouds.org/documentation/sample__consensus_2include_2pcl_2sample__consensus_2sac__model__plane_8h_source.html#l00114), and [pcl::ExtractPolygonalPrismData< PointT >::segment()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00149).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__sample__consensus.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_segmentation** library contains algorithms for segmenting a point cloud into distinct clusters. These algorithms are best suited to processing a point cloud that is composed of a number of spatially isolated regions. In such cases, clustering is often used to break the cloud down into its constituent parts, which can then be processed independently.

 
 Requirements
==============

 * [common](group__common)
* [search](https://pointclouds.org/documentation/group__search.html)
* [sample\_consensus](group__sample__consensus)
* [kdtree](group__kdtree)
* [octree](group__octree)
* [features](group__features)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::gpu::EuclideanClusterExtraction< PointT >](classpcl_1_1gpu_1_1_euclidean_cluster_extraction) |
|  | **[EuclideanClusterExtraction](classpcl_1_1gpu_1_1_euclidean_cluster_extraction "EuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sen...")** represents a segmentation class for cluster extraction in an Euclidean sense, depending on pcl::gpu::octree [More...](classpcl_1_1gpu_1_1_euclidean_cluster_extraction#details) |
|
| class  | [pcl::gpu::EuclideanLabeledClusterExtraction< PointT >](classpcl_1_1gpu_1_1_euclidean_labeled_cluster_extraction) |
|  | **[EuclideanLabeledClusterExtraction](classpcl_1_1gpu_1_1_euclidean_labeled_cluster_extraction "EuclideanLabeledClusterExtraction represents a segmentation class for cluster extraction in an Euclid...")** represents a segmentation class for cluster extraction in an Euclidean sense, depending on pcl::gpu::octree [More...](classpcl_1_1gpu_1_1_euclidean_labeled_cluster_extraction#details) |
|
| class  | [pcl::ConditionalEuclideanClustering< PointT >](classpcl_1_1_conditional_euclidean_clustering) |
|  | **[ConditionalEuclideanClustering](classpcl_1_1_conditional_euclidean_clustering "ConditionalEuclideanClustering performs segmentation based on Euclidean distance and a user-defined c...")** performs segmentation based on Euclidean distance and a user-defined clustering condition. [More...](classpcl_1_1_conditional_euclidean_clustering#details) |
|
| class  | [pcl::CPCSegmentation< PointT >](classpcl_1_1_c_p_c_segmentation) |
|  | A segmentation algorithm partitioning a supervoxel graph. [More...](classpcl_1_1_c_p_c_segmentation#details) |
|
| class  | [pcl::EuclideanClusterExtraction< PointT >](classpcl_1_1_euclidean_cluster_extraction) |
|  | **[EuclideanClusterExtraction](classpcl_1_1_euclidean_cluster_extraction "EuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sen...")** represents a segmentation class for cluster extraction in an Euclidean sense. [More...](classpcl_1_1_euclidean_cluster_extraction#details) |
|
| class  | [pcl::LabeledEuclideanClusterExtraction< PointT >](classpcl_1_1_labeled_euclidean_cluster_extraction) |
|  | **[LabeledEuclideanClusterExtraction](classpcl_1_1_labeled_euclidean_cluster_extraction "LabeledEuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclid...")** represents a segmentation class for cluster extraction in an Euclidean sense, with label info. [More...](classpcl_1_1_labeled_euclidean_cluster_extraction#details) |
|
| class  | [pcl::ExtractPolygonalPrismData< PointT >](classpcl_1_1_extract_polygonal_prism_data) |
|  | **[ExtractPolygonalPrismData](classpcl_1_1_extract_polygonal_prism_data "ExtractPolygonalPrismData uses a set of point indices that represent a planar model,...")** uses a set of point indices that represent a planar model, and together with a given height, generates a 3D polygonal prism. [More...](classpcl_1_1_extract_polygonal_prism_data#details) |
|
| class  | [pcl::GrabCut< PointT >](classpcl_1_1_grab_cut) |
|  | Implementation of the [GrabCut](classpcl_1_1_grab_cut "Implementation of the GrabCut segmentation in \"GrabCut — Interactive Foreground Extraction using Iter...") segmentation in "GrabCut — Interactive Foreground Extraction using Iterated Graph Cuts" by Carsten Rother, Vladimir Kolmogorov and Andrew Blake. [More...](classpcl_1_1_grab_cut#details) |
|
| class  | [pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >](classpcl_1_1segmentation_1_1detail_1_1_random_walker) |
|  | Multilabel graph segmentation using random walks. [More...](classpcl_1_1segmentation_1_1detail_1_1_random_walker#details) |
|
| class  | [pcl::LCCPSegmentation< PointT >](classpcl_1_1_l_c_c_p_segmentation) |
|  | A simple segmentation algorithm partitioning a supervoxel graph into groups of locally convex connected supervoxels separated by concave borders. [More...](classpcl_1_1_l_c_c_p_segmentation#details) |
|
| class  | [pcl::RegionGrowing< PointT, NormalT >](classpcl_1_1_region_growing) |
|  | Implements the well known Region Growing algorithm used for segmentation. [More...](classpcl_1_1_region_growing#details) |
|
| class  | [pcl::RegionGrowingRGB< PointT, NormalT >](classpcl_1_1_region_growing_r_g_b) |
|  | Implements the well known Region Growing algorithm used for segmentation based on color of points. [More...](classpcl_1_1_region_growing_r_g_b#details) |
|
| class  | [pcl::SACSegmentation< PointT >](classpcl_1_1_s_a_c_segmentation) |
|  | **[SACSegmentation](classpcl_1_1_s_a_c_segmentation "SACSegmentation represents the Nodelet segmentation class for Sample Consensus methods and models,...")** represents the Nodelet segmentation class for Sample Consensus methods and models, in the sense that it just creates a Nodelet wrapper for generic-purpose SAC-based segmentation. [More...](classpcl_1_1_s_a_c_segmentation#details) |
|
| class  | [pcl::SACSegmentationFromNormals< PointT, PointNT >](classpcl_1_1_s_a_c_segmentation_from_normals) |
|  | **[SACSegmentationFromNormals](classpcl_1_1_s_a_c_segmentation_from_normals "SACSegmentationFromNormals represents the PCL nodelet segmentation class for Sample Consensus methods...")** represents the PCL nodelet segmentation class for Sample Consensus methods and models that require the use of surface normals for estimation. [More...](classpcl_1_1_s_a_c_segmentation_from_normals#details) |
|
| class  | [pcl::SeededHueSegmentation](classpcl_1_1_seeded_hue_segmentation) |
|  | [SeededHueSegmentation](classpcl_1_1_seeded_hue_segmentation "SeededHueSegmentation."). [More...](classpcl_1_1_seeded_hue_segmentation#details) |
|
| class  | [pcl::SegmentDifferences< PointT >](classpcl_1_1_segment_differences) |
|  | **[SegmentDifferences](classpcl_1_1_segment_differences "SegmentDifferences obtains the difference between two spatially aligned point clouds and returns the ...")** obtains the difference between two spatially aligned point clouds and returns the difference between them for a maximum given distance threshold. [More...](classpcl_1_1_segment_differences#details) |
|
| class  | [pcl::SupervoxelClustering< PointT >](classpcl_1_1_supervoxel_clustering) |
|  | Implements a supervoxel algorithm based on voxel structure, normals, and rgb values. [More...](classpcl_1_1_supervoxel_clustering#details) |
|




|  |
| --- |
| 
 Functions |
| bool  | [pcl::gpu::comparePointClusters](group__segmentation#gae8009f1bbb6b65afe5c188c3c30618d9) (const [pcl::PointIndices](structpcl_1_1_point_indices) &a, const [pcl::PointIndices](structpcl_1_1_point_indices) &b) |
|  | Sort clusters method (for std::sort). [More...](group__segmentation#gae8009f1bbb6b65afe5c188c3c30618d9) |
|
| bool  | [pcl::gpu::compareLabeledPointClusters](group__segmentation#ga76ed0e67a2f63c49f8488dda17104c3e) (const [pcl::PointIndices](structpcl_1_1_point_indices) &a, const [pcl::PointIndices](structpcl_1_1_point_indices) &b) |
|  | Sort clusters method (for std::sort). [More...](group__segmentation#ga76ed0e67a2f63c49f8488dda17104c3e) |
|
| template<typename PointT >  |
| void  | [pcl::extractEuclideanClusters](group__segmentation#ga40c5f0a1d0ca0dac743de3bf976834c1) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, float tolerance, std::vector< [PointIndices](structpcl_1_1_point_indices) > &clusters, unsigned int min\_pts\_per\_cluster=1, unsigned int max\_pts\_per\_cluster=(std::numeric\_limits< int >::max)()) |
|  | Decompose a region of space into clusters based on the Euclidean distance between points. [More...](group__segmentation#ga40c5f0a1d0ca0dac743de3bf976834c1) |
|
| template<typename PointT >  |
| void  | [pcl::extractEuclideanClusters](group__segmentation#ga4a5613948fdab8df82a4566f7c6d0fae) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, float tolerance, std::vector< [PointIndices](structpcl_1_1_point_indices) > &clusters, unsigned int min\_pts\_per\_cluster=1, unsigned int max\_pts\_per\_cluster=(std::numeric\_limits< int >::max)()) |
|  | Decompose a region of space into clusters based on the Euclidean distance between points. [More...](group__segmentation#ga4a5613948fdab8df82a4566f7c6d0fae) |
|
| template<typename PointT , typename Normal >  |
| void  | [pcl::extractEuclideanClusters](group__segmentation#gac2906d5886306876c13c6d31a02d30c8) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [PointCloud](classpcl_1_1_point_cloud)< [Normal](structpcl_1_1_normal) > &normals, float tolerance, const typename [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, std::vector< [PointIndices](structpcl_1_1_point_indices) > &clusters, double eps\_angle, unsigned int min\_pts\_per\_cluster=1, unsigned int max\_pts\_per\_cluster=(std::numeric\_limits< int >::max)()) |
|  | Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation between points. [More...](group__segmentation#gac2906d5886306876c13c6d31a02d30c8) |
|
| template<typename PointT , typename Normal >  |
| void  | [pcl::extractEuclideanClusters](group__segmentation#ga5f9be0f498de04de362c2ca97f949318) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [PointCloud](classpcl_1_1_point_cloud)< [Normal](structpcl_1_1_normal) > &normals, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const typename [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, float tolerance, std::vector< [PointIndices](structpcl_1_1_point_indices) > &clusters, double eps\_angle, unsigned int min\_pts\_per\_cluster=1, unsigned int max\_pts\_per\_cluster=(std::numeric\_limits< int >::max)()) |
|  | Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation between points. [More...](group__segmentation#ga5f9be0f498de04de362c2ca97f949318) |
|
| bool  | [pcl::comparePointClusters](group__segmentation#gae88095505f2cbfbef301795b0f4cf5c6) (const [pcl::PointIndices](structpcl_1_1_point_indices) &a, const [pcl::PointIndices](structpcl_1_1_point_indices) &b) |
|  | Sort clusters method (for std::sort). [More...](group__segmentation#gae88095505f2cbfbef301795b0f4cf5c6) |
|
| template<typename PointT >  |
| void  | [pcl::extractLabeledEuclideanClusters](group__segmentation#ga0005eb1be52751d0ba5fffbef78745c3) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, float tolerance, std::vector< std::vector< [PointIndices](structpcl_1_1_point_indices) >> &labeled\_clusters, unsigned int min\_pts\_per\_cluster, unsigned int max\_pts\_per\_cluster, unsigned int max\_label) |
|  | Decompose a region of space into clusters based on the Euclidean distance between points. [More...](group__segmentation#ga0005eb1be52751d0ba5fffbef78745c3) |
|
| template<typename PointT >  |
| void  | [pcl::extractLabeledEuclideanClusters](group__segmentation#ga59b61d55ba8ad18ed71d68b14572b961) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, float tolerance, std::vector< std::vector< [PointIndices](structpcl_1_1_point_indices) >> &labeled\_clusters, unsigned int min\_pts\_per\_cluster=1, unsigned int max\_pts\_per\_cluster=std::numeric\_limits< unsigned int >::max()) |
|  | Decompose a region of space into clusters based on the Euclidean distance between points. [More...](group__segmentation#ga59b61d55ba8ad18ed71d68b14572b961) |
|
| bool  | [pcl::compareLabeledPointClusters](group__segmentation#ga45d36abe92bc812f65d08618fda89123) (const [pcl::PointIndices](structpcl_1_1_point_indices) &a, const [pcl::PointIndices](structpcl_1_1_point_indices) &b) |
|  | Sort clusters method (for std::sort). [More...](group__segmentation#ga45d36abe92bc812f65d08618fda89123) |
|
| template<typename PointT >  |
| bool  | [pcl::isPointIn2DPolygon](group__segmentation#ga0a21f5679b1644a7894f2f14ee1bbe37) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &polygon) |
|  | General purpose method for checking if a 3D point is inside or outside a given 2D polygon. [More...](group__segmentation#ga0a21f5679b1644a7894f2f14ee1bbe37) |
|
| template<typename PointT >  |
| bool  | [pcl::isXYPointIn2DXYPolygon](group__segmentation#ga5c5f766262ec4eae1af76df2bc0afc64) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &polygon) |
|  | Check if a 2d point (X and Y coordinates considered only!) is inside or outside a given polygon. [More...](group__segmentation#ga5c5f766262ec4eae1af76df2bc0afc64) |
|
| template<class Graph >  |
| bool  | [pcl::segmentation::randomWalker](group__segmentation#ga8ce6ea49099c7bf2de825f3f5ee61152) (Graph &graph) |
|  | Multilabel graph segmentation using random walks. [More...](group__segmentation#ga8ce6ea49099c7bf2de825f3f5ee61152) |
|
| template<class Graph , class EdgeWeightMap , class VertexColorMap >  |
| bool  | [pcl::segmentation::randomWalker](group__segmentation#ga60d903133e1043dbaf9dc1764bb6c457) (Graph &graph, EdgeWeightMap weights, VertexColorMap colors) |
|  | Multilabel graph segmentation using random walks. [More...](group__segmentation#ga60d903133e1043dbaf9dc1764bb6c457) |
|
| template<class Graph , class EdgeWeightMap , class VertexColorMap >  |
| bool  | [pcl::segmentation::randomWalker](group__segmentation#ga941c995a5d4e8a4e31500d272ae43740) (Graph &graph, EdgeWeightMap weights, VertexColorMap colors, Eigen::Matrix< typename boost::property\_traits< EdgeWeightMap >::value\_type, Eigen::Dynamic, Eigen::Dynamic > &potentials, std::map< typename boost::property\_traits< VertexColorMap >::value\_type, std::size\_t > &colors\_to\_columns\_map) |
|  | Multilabel graph segmentation using random walks. [More...](group__segmentation#ga941c995a5d4e8a4e31500d272ae43740) |
|
| void  | [pcl::seededHueSegmentation](group__segmentation#ga5891c20fc0abc04063e117afaa8554d6) (const [PointCloud](classpcl_1_1_point_cloud)< [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, float tolerance, [PointIndices](structpcl_1_1_point_indices) &indices\_in, [PointIndices](structpcl_1_1_point_indices) &indices\_out, float delta\_hue=0.0) |
|  | Decompose a region of space into clusters based on the Euclidean distance between points. [More...](group__segmentation#ga5891c20fc0abc04063e117afaa8554d6) |
|
| void  | [pcl::seededHueSegmentation](group__segmentation#gaf25653016cc78d6cf7adad3651b0d7ed) (const [PointCloud](classpcl_1_1_point_cloud)< [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointXYZRGBL](structpcl_1_1_point_x_y_z_r_g_b_l) >::Ptr &tree, float tolerance, [PointIndices](structpcl_1_1_point_indices) &indices\_in, [PointIndices](structpcl_1_1_point_indices) &indices\_out, float delta\_hue=0.0) |
|  | Decompose a region of space into clusters based on the Euclidean distance between points. [More...](group__segmentation#gaf25653016cc78d6cf7adad3651b0d7ed) |
|
| template<typename PointT >  |
| void  | [pcl::getPointCloudDifference](group__segmentation#ga5fd433527a00085583fa1e8eb31cba0f) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &src, double threshold, const typename [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &tree, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &output) |
|  | Obtain the difference between two aligned point clouds as another point cloud, given a distance threshold. [More...](group__segmentation#ga5fd433527a00085583fa1e8eb31cba0f) |
|

 Function Documentation
----------------------

  compareLabeledPointClusters() [1/2]
-----------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::gpu::compareLabeledPointClusters  | ( | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *a*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *b* |
|  | ) |  |  |

 | inline |

 
 `#include </__w/1/s/gpu/segmentation/include/pcl/gpu/segmentation/gpu_extract_labeled_clusters.h>`

 Sort clusters method (for std::sort). 

 Definition at line [209](https://pointclouds.org/documentation/gpu__extract__labeled__clusters_8h_source.html#l00209) of file [gpu\_extract\_labeled\_clusters.h](https://pointclouds.org/documentation/gpu__extract__labeled__clusters_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

 Referenced by [pcl::gpu::EuclideanLabeledClusterExtraction< PointT >::extract()](https://pointclouds.org/documentation/gpu__extract__labeled__clusters_8hpp_source.html#l00152).

    compareLabeledPointClusters() [2/2]
-----------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::compareLabeledPointClusters  | ( | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *a*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *b* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/segmentation/extract_labeled_clusters.h>`

 Sort clusters method (for std::sort). 

 Definition at line [254](https://pointclouds.org/documentation/extract__labeled__clusters_8h_source.html#l00254) of file [extract\_labeled\_clusters.h](https://pointclouds.org/documentation/extract__labeled__clusters_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    comparePointClusters() [1/2]
----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::gpu::comparePointClusters  | ( | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *a*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *b* |
|  | ) |  |  |

 | inline |

 
 `#include </__w/1/s/gpu/segmentation/include/pcl/gpu/segmentation/gpu_extract_clusters.h>`

 Sort clusters method (for std::sort). 

 Definition at line [215](https://pointclouds.org/documentation/gpu__extract__clusters_8h_source.html#l00215) of file [gpu\_extract\_clusters.h](https://pointclouds.org/documentation/gpu__extract__clusters_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

 Referenced by [pcl::EuclideanClusterExtraction< PointT >::extract()](https://pointclouds.org/documentation/extract__clusters_8hpp_source.html#l00227), and [pcl::LabeledEuclideanClusterExtraction< PointT >::extract()](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html#l00148).

    comparePointClusters() [2/2]
----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::comparePointClusters  | ( | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *a*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *b* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/segmentation/extract_clusters.h>`

 Sort clusters method (for std::sort). 

 Definition at line [448](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00448) of file [extract\_clusters.h](https://pointclouds.org/documentation/extract__clusters_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    extractEuclideanClusters() [1/4]
--------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::extractEuclideanClusters  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | std::vector< [PointIndices](structpcl_1_1_point_indices) > &  | *clusters*,  |
|  |  | unsigned int  | *min\_pts\_per\_cluster* = `1`,  |
|  |  | unsigned int  | *max\_pts\_per\_cluster* = `(std::numeric_limits<int>::max) ()` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_clusters.h>`

 Decompose a region of space into clusters based on the Euclidean distance between points. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud message  |
| indices | a list of point indices to use from *cloud* |
| tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* and *indices* 
 
Parameters
 

|  |  |
| --- | --- |
| tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space  |
| clusters | the resultant clusters containing point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| min\_pts\_per\_cluster | minimum number of points that a cluster may contain (default: 1)  |
| max\_pts\_per\_cluster | maximum number of points that a cluster may contain (default: max int)  |

   Definition at line [126](https://pointclouds.org/documentation/extract__clusters_8hpp_source.html#l00126) of file [extract\_clusters.hpp](https://pointclouds.org/documentation/extract__clusters_8hpp_source.html).

 References [pcl::search::Search< PointT >::getIndices()](https://pointclouds.org/documentation/search_8h_source.html#l00130), [pcl::search::Search< PointT >::getInputCloud()](https://pointclouds.org/documentation/search_8h_source.html#l00123), [pcl::search::Search< PointT >::getSortedResults()](https://pointclouds.org/documentation/search_8hpp_source.html#l00068), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointIndices::header](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00018), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::search::Search< PointT >::radiusSearch()](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#af803bbb855706159fa2cd36e4e8f0c58), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    extractEuclideanClusters() [2/4]
--------------------------------

    template<typename PointT , typename Normal >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::extractEuclideanClusters  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [PointCloud](classpcl_1_1_point_cloud)< [Normal](structpcl_1_1_normal) > &  | *normals*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const typename [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | std::vector< [PointIndices](structpcl_1_1_point_indices) > &  | *clusters*,  |
|  |  | double  | *eps\_angle*,  |
|  |  | unsigned int  | *min\_pts\_per\_cluster* = `1`,  |
|  |  | unsigned int  | *max\_pts\_per\_cluster* = `(std::numeric_limits<int>::max) ()` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_clusters.h>`

 Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation between points. 

 Each point added to the cluster is origin to another radius search. Each point within radius range will be compared to the origin in respect to normal angle and euclidean distance. If both are under their respective threshold the point will be added to the cluster. Generally speaking the cluster algorithm will not stop on smooth surfaces but on surfaces with sharp edges. 



Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud message  |
| normals | the point cloud message containing normal information  |
| indices | a list of point indices to use from *cloud* |
| tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |
| --- | --- |
| tolerance | the spatial cluster tolerance as a measure in the L2 Euclidean space  |
| clusters | the resultant clusters containing point indices (as [PointIndices](structpcl_1_1_point_indices))  |
| eps\_angle | the maximum allowed difference between normals in radians for cluster/region growing  |
| min\_pts\_per\_cluster | minimum number of points that a cluster may contain (default: 1)  |
| max\_pts\_per\_cluster | maximum number of points that a cluster may contain (default: max int)  |

   Definition at line [217](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00217) of file [extract\_clusters.h](https://pointclouds.org/documentation/extract__clusters_8h_source.html).

 References [pcl::KdTree< PointT >::getIndices()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00093), [pcl::KdTree< PointT >::getInputCloud()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00100), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointIndices::header](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00018), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::KdTree< PointT >::radiusSearch()](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    extractEuclideanClusters() [3/4]
--------------------------------

    template<typename PointT , typename Normal >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::extractEuclideanClusters  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [PointCloud](classpcl_1_1_point_cloud)< [Normal](structpcl_1_1_normal) > &  | *normals*,  |
|  |  | float  | *tolerance*,  |
|  |  | const typename [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | std::vector< [PointIndices](structpcl_1_1_point_indices) > &  | *clusters*,  |
|  |  | double  | *eps\_angle*,  |
|  |  | unsigned int  | *min\_pts\_per\_cluster* = `1`,  |
|  |  | unsigned int  | *max\_pts\_per\_cluster* = `(std::numeric_limits<int>::max) ()` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_clusters.h>`

 Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation between points. 

 Each point added to the cluster is origin to another radius search. Each point within radius range will be compared to the origin in respect to normal angle and euclidean distance. If both are under their respective threshold the point will be added to the cluster. Generally speaking the cluster algorithm will not stop on smooth surfaces but on surfaces with sharp edges. 



Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud message  |
| normals | the point cloud message containing normal information  |
| tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |
| --- | --- |
| tolerance | the spatial cluster tolerance as a measure in the L2 Euclidean space  |
| clusters | the resultant clusters containing point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| eps\_angle | the maximum allowed difference between normals in radians for cluster/region growing  |
| min\_pts\_per\_cluster | minimum number of points that a cluster may contain (default: 1)  |
| max\_pts\_per\_cluster | maximum number of points that a cluster may contain (default: max int)  |

   Definition at line [103](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00103) of file [extract\_clusters.h](https://pointclouds.org/documentation/extract__clusters_8h_source.html).

 References [pcl::KdTree< PointT >::getInputCloud()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00100), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointIndices::header](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00018), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::KdTree< PointT >::radiusSearch()](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    extractEuclideanClusters() [4/4]
--------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::extractEuclideanClusters  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | std::vector< [PointIndices](structpcl_1_1_point_indices) > &  | *clusters*,  |
|  |  | unsigned int  | *min\_pts\_per\_cluster* = `1`,  |
|  |  | unsigned int  | *max\_pts\_per\_cluster* = `(std::numeric_limits<int>::max) ()` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_clusters.h>`

 Decompose a region of space into clusters based on the Euclidean distance between points. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud message  |
| tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |
| --- | --- |
| tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space  |
| clusters | the resultant clusters containing point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| min\_pts\_per\_cluster | minimum number of points that a cluster may contain (default: 1)  |
| max\_pts\_per\_cluster | maximum number of points that a cluster may contain (default: max int)  |

   Definition at line [46](https://pointclouds.org/documentation/extract__clusters_8hpp_source.html#l00046) of file [extract\_clusters.hpp](https://pointclouds.org/documentation/extract__clusters_8hpp_source.html).

 References [pcl::search::Search< PointT >::getInputCloud()](https://pointclouds.org/documentation/search_8h_source.html#l00123), [pcl::search::Search< PointT >::getSortedResults()](https://pointclouds.org/documentation/search_8hpp_source.html#l00068), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointIndices::header](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00018), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::search::Search< PointT >::radiusSearch()](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#af803bbb855706159fa2cd36e4e8f0c58), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::EuclideanClusterExtraction< PointT >::extract()](https://pointclouds.org/documentation/extract__clusters_8hpp_source.html#l00227).

    extractLabeledEuclideanClusters() [1/2]
---------------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::extractLabeledEuclideanClusters  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | std::vector< std::vector< [PointIndices](structpcl_1_1_point_indices) >> &  | *labeled\_clusters*,  |
|  |  | unsigned int  | *min\_pts\_per\_cluster*,  |
|  |  | unsigned int  | *max\_pts\_per\_cluster*,  |
|  |  | unsigned int  | *max\_label* |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_labeled_clusters.h>`

 Decompose a region of space into clusters based on the Euclidean distance between points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud message  |
| [in] | tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space  |
| [out] | labeled\_clusters | the resultant clusters containing point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| [in] | min\_pts\_per\_cluster | minimum number of points that a cluster may contain (default: 1)  |
| [in] | max\_pts\_per\_cluster | maximum number of points that a cluster may contain (default: max int)  |
| [in] | max\_label |  |

   
**[Deprecated:](deprecated#_deprecated000008)**
Scheduled for removal in version 1 . 14 : "Use of max\_label is deprecated"   
 
 Definition at line [45](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html#l00045) of file [extract\_labeled\_clusters.hpp](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html).

 Referenced by [pcl::LabeledEuclideanClusterExtraction< PointT >::extract()](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html#l00148).

    extractLabeledEuclideanClusters() [2/2]
---------------------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::extractLabeledEuclideanClusters  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const typename [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | std::vector< std::vector< [PointIndices](structpcl_1_1_point_indices) >> &  | *labeled\_clusters*,  |
|  |  | unsigned int  | *min\_pts\_per\_cluster* = `1`,  |
|  |  | unsigned int  | *max\_pts\_per\_cluster* = `std::numeric_limits<unsigned int>::max()` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_labeled_clusters.h>`

 Decompose a region of space into clusters based on the Euclidean distance between points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud message  |
| [in] | tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space  |
| [out] | labeled\_clusters | the resultant clusters containing point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| [in] | min\_pts\_per\_cluster | minimum number of points that a cluster may contain (default: 1)  |
| [in] | max\_pts\_per\_cluster | maximum number of points that a cluster may contain (default: max int)  |

   Definition at line [64](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html#l00064) of file [extract\_labeled\_clusters.hpp](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html).

 References [pcl::search::Search< PointT >::getInputCloud()](https://pointclouds.org/documentation/search_8h_source.html#l00123), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointIndices::header](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00018), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::search::Search< PointT >::radiusSearch()](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#af803bbb855706159fa2cd36e4e8f0c58), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    getPointCloudDifference()
-------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getPointCloudDifference  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *src*,  |
|  |  | double  | *threshold*,  |
|  |  | const typename [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *output* |
|  | ) |  |  |

 
 `#include <pcl/segmentation/segment_differences.h>`

 Obtain the difference between two aligned point clouds as another point cloud, given a distance threshold. 

 
Parameters
 

|  |  |
| --- | --- |
| src | the input point cloud source  |
| threshold | the distance threshold (tolerance) for point correspondences. (e.g., check if f a point p1 from src has a correspondence > threshold than a point p2 from tgt)  |
| tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching built over the target cloud  |
| output | the resultant output point cloud difference  |

   Definition at line [50](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00050) of file [segment\_differences.hpp](https://pointclouds.org/documentation/segment__differences_8hpp_source.html).

 References [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::search::Search< PointT >::nearestKSearch()](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#add1a92f91475abd5530d26c7be1eb410), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::SegmentDifferences< PointT >::segment()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00091).

    isPointIn2DPolygon()
--------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::isPointIn2DPolygon  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *polygon* |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_polygonal_prism_data.h>`

 General purpose method for checking if a 3D point is inside or outside a given 2D polygon. 

 
Note
this method accepts any general 3D point that is projected onto the 2D polygon, but performs an internal XY projection of both the polygon and the point. 
 
Parameters
 

|  |  |
| --- | --- |
| point | a 3D point projected onto the same plane as the polygon  |
| polygon | a polygon  |

   Definition at line [48](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00048) of file [extract\_polygonal\_prism\_data.hpp](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html).

 References [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), [pcl::eigen33()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00296), [pcl::isXYPointIn2DXYPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00108), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    isXYPointIn2DXYPolygon()
------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::isXYPointIn2DXYPolygon  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *polygon* |
|  | ) |  |  |

 
 `#include <pcl/segmentation/extract_polygonal_prism_data.h>`

 Check if a 2d point (X and Y coordinates considered only!) is inside or outside a given polygon. 

 This method assumes that both the point and the polygon are projected onto the XY plane.

 
Note
(This is highly optimized code taken from <http://www.visibone.com/inpoly/>) Copyright (c) 1995-1996 Galacticomm, Inc. Freeware source code. 
 
Parameters
 

|  |  |
| --- | --- |
| point | a 2D point projected onto the same plane as the polygon  |
| polygon | a polygon  |

   Definition at line [108](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00108) of file [extract\_polygonal\_prism\_data.hpp](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::isPointIn2DPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00048), and [pcl::ExtractPolygonalPrismData< PointT >::segment()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00149).

    randomWalker() [1/3]
--------------------

    template<class Graph >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool pcl::segmentation::randomWalker  | ( | Graph &  | *graph* | ) |  |

 
 `#include <pcl/segmentation/impl/random_walker.hpp>`

 Multilabel graph segmentation using random walks. 

 This is an implementation of the algorithm described in "Random Walks for Image Segmentation" by Leo Grady.

 Given a weighted undirected graph and a small number of user-defined labels this algorithm analytically determines the probability that a random walker starting at each unlabeled vertex will first reach one of the prelabeled vertices. The unlabeled vertices are then assigned to the label for which the greatest probability is calculated.

 The input is a BGL graph, a property map that associates a weight to each edge of the graph, and a property map that contains initial vertex colors (the term "color" is used interchangeably with "label").

 
Note
The colors of unlabeled vertices should be set to 0, the colors of labeled vetices could be any positive numbers.  This is the responsibility of the user to make sure that every connected component of the graph has at least one colored vertex. If the user failed to do so, then the behavior of the algorithm is undefined, i.e. it may or may not succeed, and also may or may not report failure.
 The output of the algorithm (i.e. label assignment) is written back to the color map.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | graph | an undirected graph with internal edge weight and vertex color property maps |

   Several overloads of [randomWalker()](group__segmentation#ga8ce6ea49099c7bf2de825f3f5ee61152 "Multilabel graph segmentation using random walks.") function are provided for convenience.

 
See also

[randomWalker(Graph&, EdgeWeightMap, VertexColorMap)](group__segmentation#ga60d903133e1043dbaf9dc1764bb6c457 "Multilabel graph segmentation using random walks.")   [randomWalker(Graph&, EdgeWeightMap, VertexColorMap, Eigen::Matrix <typename boost::property\_traits<EdgeWeightMap>::value\_type, Eigen::Dynamic, Eigen::Dynamic>&, std::map<typename boost::property\_traits <VertexColorMap>::value\_type, std::size\_t>&)](group__segmentation#ga941c995a5d4e8a4e31500d272ae43740 "Multilabel graph segmentation using random walks.")

 
Author
Sergey Alexandrov 
 Definition at line [280](https://pointclouds.org/documentation/random__walker_8hpp_source.html#l00280) of file [random\_walker.hpp](https://pointclouds.org/documentation/random__walker_8hpp_source.html).

    randomWalker() [2/3]
--------------------

    template<class Graph , class EdgeWeightMap , class VertexColorMap >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::segmentation::randomWalker  | ( | Graph &  | *graph*,  |
|  |  | EdgeWeightMap  | *weights*,  |
|  |  | VertexColorMap  | *colors* |
|  | ) |  |  |

 
 `#include <pcl/segmentation/impl/random_walker.hpp>`

 Multilabel graph segmentation using random walks. 

 This is an overloaded function provided for convenience. See the documentation for [randomWalker()](group__segmentation#ga8ce6ea49099c7bf2de825f3f5ee61152 "Multilabel graph segmentation using random walks.").

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | graph | an undirected graph  |
| [in] | weights | an external edge weight property map  |
| [in,out] | colors | an external vertex color property map |

   
Author
Sergey Alexandrov 
 Definition at line [288](https://pointclouds.org/documentation/random__walker_8hpp_source.html#l00288) of file [random\_walker.hpp](https://pointclouds.org/documentation/random__walker_8hpp_source.html).

    randomWalker() [3/3]
--------------------

    template<class Graph , class EdgeWeightMap , class VertexColorMap >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::segmentation::randomWalker  | ( | Graph &  | *graph*,  |
|  |  | EdgeWeightMap  | *weights*,  |
|  |  | VertexColorMap  | *colors*,  |
|  |  | Eigen::Matrix< typename boost::property\_traits< EdgeWeightMap >::value\_type, Eigen::Dynamic, Eigen::Dynamic > &  | *potentials*,  |
|  |  | std::map< typename boost::property\_traits< VertexColorMap >::value\_type, std::size\_t > &  | *colors\_to\_columns\_map* |
|  | ) |  |  |

 
 `#include <pcl/segmentation/impl/random_walker.hpp>`

 Multilabel graph segmentation using random walks. 

 This is an overloaded function provided for convenience. See the documentation for [randomWalker()](group__segmentation#ga8ce6ea49099c7bf2de825f3f5ee61152 "Multilabel graph segmentation using random walks.").

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | graph | an undirected graph  |
| [in] | weights | an external edge weight property map  |
| [in,out] | colors | an external vertex color property map  |
| [out] | potentials | a matrix with calculated probabilities, where rows correspond to vertices, and columns correspond to colors  |
| [out] | colors\_to\_columns\_map | a mapping between colors and columns in *potentials* matrix |

   
Author
Sergey Alexandrov 
 Definition at line [314](https://pointclouds.org/documentation/random__walker_8hpp_source.html#l00314) of file [random\_walker.hpp](https://pointclouds.org/documentation/random__walker_8hpp_source.html).

    seededHueSegmentation() [1/2]
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::seededHueSegmentation  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | [PointIndices](structpcl_1_1_point_indices) &  | *indices\_in*,  |
|  |  | [PointIndices](structpcl_1_1_point_indices) &  | *indices\_out*,  |
|  |  | float  | *delta\_hue* = `0.0` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/seeded_hue_segmentation.h>`

 Decompose a region of space into clusters based on the Euclidean distance between points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud message  |
| [in] | tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space  |
| [in] | indices\_in | the cluster containing the seed point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| [out] | indices\_out |  |
| [in] | delta\_hue |  |

   
**[Todo:](todo#_todo000040)**
look how to make this templated!
 Definition at line [49](https://pointclouds.org/documentation/seeded__hue__segmentation_8hpp_source.html#l00049) of file [seeded\_hue\_segmentation.hpp](https://pointclouds.org/documentation/seeded__hue__segmentation_8hpp_source.html).

 References [pcl::search::Search< PointT >::getInputCloud()](https://pointclouds.org/documentation/search_8h_source.html#l00123), [pcl::\_PointXYZHSV::h](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00709), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::PointXYZRGBtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00107), [pcl::search::Search< PointT >::radiusSearch()](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#af803bbb855706159fa2cd36e4e8f0c58), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::SeededHueSegmentation::segment()](https://pointclouds.org/documentation/seeded__hue__segmentation_8hpp_source.html#l00206).

    seededHueSegmentation() [2/2]
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::seededHueSegmentation  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointXYZRGBL](structpcl_1_1_point_x_y_z_r_g_b_l) >::Ptr &  | *tree*,  |
|  |  | float  | *tolerance*,  |
|  |  | [PointIndices](structpcl_1_1_point_indices) &  | *indices\_in*,  |
|  |  | [PointIndices](structpcl_1_1_point_indices) &  | *indices\_out*,  |
|  |  | float  | *delta\_hue* = `0.0` |
|  | ) |  |  |

 
 `#include <pcl/segmentation/seeded_hue_segmentation.h>`

 Decompose a region of space into clusters based on the Euclidean distance between points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud message  |
| [in] | tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching  |

   
Note
the tree has to be created as a spatial locator on *cloud* 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space  |
| [in] | indices\_in | the cluster containing the seed point indices (as a vector of [PointIndices](structpcl_1_1_point_indices))  |
| [out] | indices\_out |  |
| [in] | delta\_hue |  |

   
**[Todo:](todo#_todo000041)**
look how to make this templated!
 Definition at line [127](https://pointclouds.org/documentation/seeded__hue__segmentation_8hpp_source.html#l00127) of file [seeded\_hue\_segmentation.hpp](https://pointclouds.org/documentation/seeded__hue__segmentation_8hpp_source.html).

 References [pcl::search::Search< PointT >::getInputCloud()](https://pointclouds.org/documentation/search_8h_source.html#l00123), [pcl::\_PointXYZHSV::h](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00709), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), [pcl::PointXYZRGBtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00107), [pcl::search::Search< PointT >::radiusSearch()](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#af803bbb855706159fa2cd36e4e8f0c58), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__segmentation.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_visualization** library was built for the purpose of being able to quickly prototype and visualize the results of algorithms operating on 3D point cloud data. Similar to OpenCV's **highgui** routines for displaying 2D images and for drawing basic 2D shapes on screen, the library offers:

 * methods for rendering and setting visual properties (colors, point sizes, opacity, etc) for any n-D point cloud datasets in pcl::PointCloud<T> format;  ![](http://www.pointclouds.org/documentation/overview/_images/bunny.jpg)
* methods for drawing basic 3D shapes on screen (e.g., cylinders, spheres,lines, polygons, etc) either from sets of points or from parametric equations;  ![](http://www.pointclouds.org/documentation/overview/_images/shapes.jpg)
* a histogram visualization module (PCLHistogramVisualizer) for 2D plots;  ![](http://www.pointclouds.org/documentation/overview/_images/histogram.jpg)
* a multitude of [Geometry](https://pointclouds.org/documentation/class_geometry.html) and Color handler for pcl::PointCloud<T> datasets;  ![](http://www.pointclouds.org/documentation/overview/_images/normals.jpg)   ![](http://www.pointclouds.org/documentation/overview/_images/pcs.jpg)
* a [pcl::RangeImage](classpcl_1_1_range_image "RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...") visualization module.  ![](http://www.pointclouds.org/documentation/overview/_images/range_image.jpg)

 The package makes use of the VTK library for 3D rendering for range image and 2D operations.

 For implementing your own visualizers, take a look at the tests and examples accompanying the library.

 
 Requirements
==============

 * [common](group__common)
* VTK
* [io](group__io)
* [kdtree](group__kdtree)
* [RangeImage](classpcl_1_1_range_image)

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::visualization::CloudViewer](classpcl_1_1visualization_1_1_cloud_viewer) |
|  | Simple point cloud visualization class. [More...](classpcl_1_1visualization_1_1_cloud_viewer#details) |
|
| class  | [pcl::visualization::FloatImageUtils](classpcl_1_1visualization_1_1_float_image_utils) |
|  | **Provide** some general functionalities regarding 2d float arrays, e.g., for visualization purposes [More...](classpcl_1_1visualization_1_1_float_image_utils#details) |
|
| class  | [pcl::visualization::PCLHistogramVisualizer](classpcl_1_1visualization_1_1_p_c_l_histogram_visualizer) |
|  | PCL histogram visualizer main class. [More...](classpcl_1_1visualization_1_1_p_c_l_histogram_visualizer#details) |
|
| class  | [pcl::visualization::ImageViewerInteractorStyle](classpcl_1_1visualization_1_1_image_viewer_interactor_style) |
|  | An image viewer interactor style, tailored for [ImageViewer](classpcl_1_1visualization_1_1_image_viewer "ImageViewer is a class for 2D image visualization."). [More...](classpcl_1_1visualization_1_1_image_viewer_interactor_style#details) |
|
| class  | [pcl::visualization::ImageViewer](classpcl_1_1visualization_1_1_image_viewer) |
|  | [ImageViewer](classpcl_1_1visualization_1_1_image_viewer "ImageViewer is a class for 2D image visualization.") is a class for 2D image visualization. [More...](classpcl_1_1visualization_1_1_image_viewer#details) |
|
| class  | [pcl::visualization::PCLVisualizerInteractorStyle](classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style) |
|  | [PCLVisualizerInteractorStyle](classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style "PCLVisualizerInteractorStyle defines an unique, custom VTK based interactory style for PCL Visualizer...") defines an unique, custom VTK based interactory style for PCL Visualizer applications. [More...](classpcl_1_1visualization_1_1_p_c_l_visualizer_interactor_style#details) |
|
| struct  | [pcl::visualization::Figure2D](structpcl_1_1visualization_1_1_figure2_d) |
|  | Abstract class for storing figure information. [More...](structpcl_1_1visualization_1_1_figure2_d#details) |
|
| class  | [pcl::visualization::PCLPainter2D](classpcl_1_1visualization_1_1_p_c_l_painter2_d) |
|  | PCL Painter2D main class. [More...](classpcl_1_1visualization_1_1_p_c_l_painter2_d#details) |
|
| class  | [pcl::visualization::PCLPlotter](classpcl_1_1visualization_1_1_p_c_l_plotter) |
|  | PCL Plotter main class. [More...](classpcl_1_1visualization_1_1_p_c_l_plotter#details) |
|
| class  | [pcl::visualization::PCLVisualizer](classpcl_1_1visualization_1_1_p_c_l_visualizer) |
|  | PCL Visualizer main class. [More...](classpcl_1_1visualization_1_1_p_c_l_visualizer#details) |
|
| class  | [pcl::visualization::PointCloudColorHandler< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler) |
|  | Base Handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerRandom< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_random) |
|  | Handler for random [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") colors (i.e., R, G, B will be randomly chosen) [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_random#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerCustom< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_custom) |
|  | Handler for predefined user colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_custom#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerRGBField< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field) |
|  | [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerHSVField< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_h_s_v_field) |
|  | HSV handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_h_s_v_field#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerGenericField< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_generic_field) |
|  | Generic field handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_generic_field#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerRGBAField< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field) |
|  | RGBA handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerLabelField< PointT >](classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field) |
|  | [Label](structpcl_1_1_label) field handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field#details) |
|
| class  | [pcl::visualization::PointCloudColorHandler< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Base Handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerRandom< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_random_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Handler for random [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") colors (i.e., R, G, B will be randomly chosen) [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_random_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerCustom< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_custom_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Handler for predefined user colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_custom_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerRGBField< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerHSVField< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_h_s_v_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | HSV handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_h_s_v_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerGenericField< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_generic_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Generic field handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_generic_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerRGBAField< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | RGBA handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_r_g_b_a_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudColorHandlerLabelField< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | [Label](structpcl_1_1_label) field handler class for colors. [More...](classpcl_1_1visualization_1_1_point_cloud_color_handler_label_field_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandler< PointT >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler) |
|  | Base handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandlerXYZ< PointT >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_x_y_z) |
|  | XYZ handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_x_y_z#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandlerSurfaceNormal< PointT >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_surface_normal) |
|  | Surface normal handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_surface_normal#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandlerCustom< PointT >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_custom) |
|  | Custom handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_custom#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandler< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Base handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandlerXYZ< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_x_y_z_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | XYZ handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_x_y_z_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandlerSurfaceNormal< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_surface_normal_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Surface normal handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_surface_normal_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::PointCloudGeometryHandlerCustom< pcl::PCLPointCloud2 >](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_custom_3_01pcl_1_1_p_c_l_point_cloud2_01_4) |
|  | Custom handler class for [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") geometry. [More...](classpcl_1_1visualization_1_1_point_cloud_geometry_handler_custom_3_01pcl_1_1_p_c_l_point_cloud2_01_4#details) |
|
| class  | [pcl::visualization::RangeImageVisualizer](classpcl_1_1visualization_1_1_range_image_visualizer) |
|  | Range image visualizer class. [More...](classpcl_1_1visualization_1_1_range_image_visualizer#details) |
|
| class  | [pcl::RegistrationVisualizer< PointSource, PointTarget, Scalar >](classpcl_1_1_registration_visualizer) |
|  | **[RegistrationVisualizer](classpcl_1_1_registration_visualizer "RegistrationVisualizer represents the base class for rendering the intermediate positions occupied by...")** represents the base class for rendering the intermediate positions occupied by the source point cloud during it's registration to the target point cloud. [More...](classpcl_1_1_registration_visualizer#details) |
|
| class  | [pcl::visualization::PCLSimpleBufferVisualizer](classpcl_1_1visualization_1_1_p_c_l_simple_buffer_visualizer) |
|  | PCL simple buffer visualizer main class. [More...](classpcl_1_1visualization_1_1_p_c_l_simple_buffer_visualizer#details) |
|




|  |
| --- |
| 
 Files |
| file  | [shapes.h](https://pointclouds.org/documentation/shapes_8h.html) |
|  | Define methods or creating 3D shapes from parametric models.  |
|




|  |
| --- |
| 
 Functions |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::visualization::getCorrespondingPointCloud](group__visualization#ga598437f146d15ed279d3b2cb3b12c713) (vtkPolyData \*src, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z) > &tgt, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Obtain a list of corresponding indices, for a set of vtk points, from a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](group__visualization#ga598437f146d15ed279d3b2cb3b12c713) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::visualization::savePointData](group__visualization#ga8035e3f759b9a0a97cb29694494185d7) (vtkPolyData \*data, const std::string &out\_file, const [CloudActorMapPtr](https://pointclouds.org/documentation/namespacepcl_1_1visualization.html#a98e7533ef69b79343e9b457236d70e71) &actors) |
|  | Saves the vtk-formatted Point Cloud data into a set of files, based on whether the data comes from previously loaded PCD files. [More...](group__visualization#ga8035e3f759b9a0a97cb29694494185d7) |
|
| template<typename PointT >  |
| [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createPolygon](group__visualization#ga50da15e5aac6b239552e56d5f3b0d209) (const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &cloud) |
|  | Create a 3d poly line from a set of points. [More...](group__visualization#ga50da15e5aac6b239552e56d5f3b0d209) |
|
| template<typename PointT >  |
| [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createPolygon](group__visualization#ga480eeeb88d5db9a5145ef7463dcc13ae) (const [pcl::PlanarPolygon](classpcl_1_1_planar_polygon)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &planar\_polygon) |
|  | Create a 3d poly line from a set of points on the boundary of a planar region. [More...](group__visualization#ga480eeeb88d5db9a5145ef7463dcc13ae) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createLine](group__visualization#gabb746d0348192ce0950dc7adf19052f4) (const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2) |
|  | Create a line shape from two points. [More...](group__visualization#gabb746d0348192ce0950dc7adf19052f4) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createSphere](group__visualization#gab2a90030af80dd8874ca727d2cc2858f) (const Eigen::Vector4f &center, double radius, int res=10) |
|  | Create a sphere shape from a point and a radius. [More...](group__visualization#gab2a90030af80dd8874ca727d2cc2858f) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createCylinder](group__visualization#gaa1aef97113fc6a707a7f133832fb78e6) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients, int numsides=30) |
|  | Create a cylinder shape from a set of model coefficients. [More...](group__visualization#gaa1aef97113fc6a707a7f133832fb78e6) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createSphere](group__visualization#ga27b62d4c72329ead01a5d0bdc29720b6) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients, int res=10) |
|  | Create a sphere shape from a set of model coefficients. [More...](group__visualization#ga27b62d4c72329ead01a5d0bdc29720b6) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createLine](group__visualization#ga587f761c86fb1ffc1defe987dd039a7a) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients) |
|  | Create a line shape from a set of model coefficients. [More...](group__visualization#ga587f761c86fb1ffc1defe987dd039a7a) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createPlane](group__visualization#ga3d7d6b7f35877b9feb237e898094c01e) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients) |
|  | Create a planar shape from a set of model coefficients. [More...](group__visualization#ga3d7d6b7f35877b9feb237e898094c01e) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createPlane](group__visualization#ga0bc1fdcd4b6a0012d0fb845b1819a6c1) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients, double x, double y, double z) |
|  | Create a planar shape from a set of model coefficients. [More...](group__visualization#ga0bc1fdcd4b6a0012d0fb845b1819a6c1) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::create2DCircle](group__visualization#gae9c0726430adf81fbdbbc8f21bec56d2) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients, double z=0.0) |
|  | Create a 2d circle shape from a set of model coefficients. [More...](group__visualization#gae9c0726430adf81fbdbbc8f21bec56d2) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createCone](group__visualization#gabcd9db6ceafdd6b36b3700df9134272d) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients) |
|  | Create a cone shape from a set of model coefficients. [More...](group__visualization#gabcd9db6ceafdd6b36b3700df9134272d) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createCube](group__visualization#gab6ea58c22c330bda060ab17eece4cde0) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &coefficients) |
|  | Create a cube shape from a set of model coefficients. [More...](group__visualization#gab6ea58c22c330bda060ab17eece4cde0) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createCube](group__visualization#ga56144f71a55dc5e87fb1a32634555c01) (const Eigen::Vector3f &translation, const Eigen::Quaternionf &rotation, double width, double height, double depth) |
|  | Create a cube shape from a set of model coefficients. [More...](group__visualization#ga56144f71a55dc5e87fb1a32634555c01) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet >  | [pcl::visualization::createEllipsoid](group__visualization#ga5f3163ddfcb7a3358ff62e40d6015294) (const Eigen::Isometry3d &transform, double radius\_x, double radius\_y, double radius\_z) |
|  | Create an ellipsoid shape from the given parameters. [More...](group__visualization#ga5f3163ddfcb7a3358ff62e40d6015294) |
|

 Function Documentation
----------------------

  create2DCircle()
----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::create2DCircle  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients*,  |
|  |  | double  | *z* = `0.0` |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a 2d circle shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the model coefficients (x, y, radius)  |
| [in] | z | (optional) specify a z value (default: 0) |

   
```
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelCircle2D)
// float x, y, radius;
 
pcl::ModelCoefficients circle_coeff;
circle_coeff.values.resize (3); // We need 3 values
circle_coeff.values[0] = x;
circle_coeff.values[1] = y;
circle_coeff.values[2] = radius;
 
vtkSmartPointer<vtkDataSet> data = pcl::visualization::create2DCircle (circle_coeff, z);
vtkSmartPointerDefinition: actor_map.h:51
vtkSmartPointer
Definition: actor_map.h:51
pcl::visualization::create2DCirclePCL_EXPORTS vtkSmartPointer< vtkDataSet > create2DCircle(const pcl::ModelCoefficients &coefficients, double z=0.0)Create a 2d circle shape from a set of model coefficients.
pcl::visualization::create2DCircle
PCL_EXPORTS vtkSmartPointer< vtkDataSet > create2DCircle(const pcl::ModelCoefficients &coefficients, double z=0.0)
Create a 2d circle shape from a set of model coefficients.
pcl::ModelCoefficientsDefinition: ModelCoefficients.h:12
pcl::ModelCoefficients
Definition: ModelCoefficients.h:12
pcl::ModelCoefficients::valuesstd::vector< float > valuesDefinition: ModelCoefficients.h:17
pcl::ModelCoefficients::values
std::vector< float > values
Definition: ModelCoefficients.h:17

```
    createCone()
------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createCone  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients* | ) |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a cone shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the cone coefficients (cone\_apex, axis\_direction, angle) |

   
```
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelCone)
// Eigen::Vector3f cone_apex, axis_direction;
// float angle;
// Note: The height of the cone is set using the magnitude of the axis_direction vector.
 
pcl::ModelCoefficients cone_coeff;
cone_coeff.values.resize (7); // We need 7 values
cone_coeff.values[0] = cone_apex.x ();
cone_coeff.values[1] = cone_apex.y ();
cone_coeff.values[2] = cone_apex.z ();
cone_coeff.values[3] = axis_direction.x ();
cone_coeff.values[4] = axis_direction.y ();
cone_coeff.values[5] = axis_direction.z ();
cone_coeff.values[6] = angle (); // degrees
 
vtkSmartPointer<vtkDataSet> data = pcl::visualization::createCone (cone_coeff);
pcl::visualization::createConePCL_EXPORTS vtkSmartPointer< vtkDataSet > createCone(const pcl::ModelCoefficients &coefficients)Create a cone shape from a set of model coefficients.
pcl::visualization::createCone
PCL_EXPORTS vtkSmartPointer< vtkDataSet > createCone(const pcl::ModelCoefficients &coefficients)
Create a cone shape from a set of model coefficients.

```
    createCube() [1/2]
------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createCube  | ( | const Eigen::Vector3f &  | *translation*,  |
|  |  | const Eigen::Quaternionf &  | *rotation*,  |
|  |  | double  | *width*,  |
|  |  | double  | *height*,  |
|  |  | double  | *depth* |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a cube shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | translation | a translation to apply to the cube from 0,0,0  |
| [in] | rotation | a quaternion-based rotation to apply to the cube  |
| [in] | width | the cube's width  |
| [in] | height | the cube's height  |
| [in] | depth | the cube's depth  |

      createCube() [2/2]
------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createCube  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients* | ) |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a cube shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the cube coefficients (Tx, Ty, Tz, Qx, Qy, Qz, Qw, width, height, depth)  |

      createCylinder()
----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createCylinder  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients*,  |
|  |  | int  | *numsides* = `30` |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a cylinder shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the model coefficients (point\_on\_axis, axis\_direction, radius)  |
| [in] | numsides | (optional) the number of sides used for rendering the cylinder |

   
```
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelCylinder)
// Eigen::Vector3f pt_on_axis, axis_direction;
// float radius;
 
pcl::ModelCoefficients cylinder_coeff;
cylinder_coeff.values.resize (7); // We need 7 values
cylinder_coeff.values[0] = pt_on_axis.x ();
cylinder_coeff.values[1] = pt_on_axis.y ();
cylinder_coeff.values[2] = pt_on_axis.z ();
 
cylinder_coeff.values[3] = axis_direction.x ();
cylinder_coeff.values[4] = axis_direction.y ();
cylinder_coeff.values[5] = axis_direction.z ();
 
cylinder_coeff.values[6] = radius;
 
vtkSmartPointer<vtkDataSet> data = pcl::visualization::createCylinder (cylinder_coeff, numsides);
pcl::visualization::createCylinderPCL_EXPORTS vtkSmartPointer< vtkDataSet > createCylinder(const pcl::ModelCoefficients &coefficients, int numsides=30)Create a cylinder shape from a set of model coefficients.
pcl::visualization::createCylinder
PCL_EXPORTS vtkSmartPointer< vtkDataSet > createCylinder(const pcl::ModelCoefficients &coefficients, int numsides=30)
Create a cylinder shape from a set of model coefficients.

```
    createEllipsoid()
-----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createEllipsoid  | ( | const Eigen::Isometry3d &  | *transform*,  |
|  |  | double  | *radius\_x*,  |
|  |  | double  | *radius\_y*,  |
|  |  | double  | *radius\_z* |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create an ellipsoid shape from the given parameters. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | transform | a transformation to apply to the ellipsoid from 0,0,0  |
| [in] | radius\_x | the ellipsoid's radius along its local x-axis  |
| [in] | radius\_y | the ellipsoid's radius along its local y-axis  |
| [in] | radius\_z | the ellipsoid's radius along its local z-axis  |

      createLine() [1/2]
------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createLine  | ( | const Eigen::Vector4f &  | *pt1*,  |
|  |  | const Eigen::Vector4f &  | *pt2* |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a line shape from two points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | pt1 | the first point on the line  |
| [in] | pt2 | the end point on the line  |

   Referenced by [pcl::visualization::PCLVisualizer::addLine()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00490).

    createLine() [2/2]
------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createLine  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients* | ) |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a line shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the model coefficients (point\_on\_line, line\_direction) |

   
```
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelLine)
// Eigen::Vector3f point_on_line, line_direction;
 
pcl::ModelCoefficients line_coeff;
line_coeff.values.resize (6); // We need 6 values
line_coeff.values[0] = point_on_line.x ();
line_coeff.values[1] = point_on_line.y ();
line_coeff.values[2] = point_on_line.z ();
 
line_coeff.values[3] = line_direction.x ();
line_coeff.values[4] = line_direction.y ();
line_coeff.values[5] = line_direction.z ();
 
vtkSmartPointer<vtkDataSet> data = pcl::visualization::createLine (line_coeff);
pcl::visualization::createLinePCL_EXPORTS vtkSmartPointer< vtkDataSet > createLine(const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2)Create a line shape from two points.
pcl::visualization::createLine
PCL_EXPORTS vtkSmartPointer< vtkDataSet > createLine(const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2)
Create a line shape from two points.

```
    createPlane() [1/2]
-------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createPlane  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients* | ) |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a planar shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the model coefficients (a, b, c, d with ax+by+cz+d=0) |

   
```
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelPlane)
// Eigen::Vector4f plane_parameters;
 
pcl::ModelCoefficients plane_coeff;
plane_coeff.values.resize (4); // We need 4 values
plane_coeff.values[0] = plane_parameters.x ();
plane_coeff.values[1] = plane_parameters.y ();
plane_coeff.values[2] = plane_parameters.z ();
plane_coeff.values[3] = plane_parameters.w ();
 
vtkSmartPointer<vtkDataSet> data = pcl::visualization::createPlane (plane_coeff);
pcl::visualization::createPlanePCL_EXPORTS vtkSmartPointer< vtkDataSet > createPlane(const pcl::ModelCoefficients &coefficients)Create a planar shape from a set of model coefficients.
pcl::visualization::createPlane
PCL_EXPORTS vtkSmartPointer< vtkDataSet > createPlane(const pcl::ModelCoefficients &coefficients)
Create a planar shape from a set of model coefficients.

```
    createPlane() [2/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createPlane  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients*,  |
|  |  | double  | *x*,  |
|  |  | double  | *y*,  |
|  |  | double  | *z* |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a planar shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the model coefficients (a, b, c, d with ax+by+cz+d=0)  |
| [in] | x,y,z | projection of this point on the plane is used to get the center of the plane.  |

      createPolygon() [1/2]
---------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet > pcl::visualization::createPolygon  | ( | const [pcl::PlanarPolygon](classpcl_1_1_planar_polygon)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *planar\_polygon* | ) |  |

 | inline |

 
 `#include <pcl/visualization/common/impl/shapes.hpp>`

 Create a 3d poly line from a set of points on the boundary of a planar region. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | planar\_polygon | the set of points used to create the 3d polyline  |

   Definition at line [82](https://pointclouds.org/documentation/shapes_8hpp_source.html#l00082) of file [shapes.hpp](https://pointclouds.org/documentation/shapes_8hpp_source.html).

 References [pcl::visualization::allocVtkUnstructuredGrid()](https://pointclouds.org/documentation/namespacepcl_1_1visualization.html#aeabaade9c81f6faf7e6d0be905df8f6e), and [pcl::PlanarPolygon< PointT >::getContour()](https://pointclouds.org/documentation/planar__polygon_8h_source.html#l00083).

    createPolygon() [2/2]
---------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [vtkSmartPointer](classvtk_smart_pointer)< vtkDataSet > pcl::visualization::createPolygon  | ( | const typename [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::ConstPtr &  | *cloud* | ) |  |

 | inline |

 
 `#include <pcl/visualization/common/impl/shapes.hpp>`

 Create a 3d poly line from a set of points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the set of points used to create the 3d polyline  |

   Definition at line [54](https://pointclouds.org/documentation/shapes_8hpp_source.html#l00054) of file [shapes.hpp](https://pointclouds.org/documentation/shapes_8hpp_source.html).

 References [pcl::visualization::allocVtkUnstructuredGrid()](https://pointclouds.org/documentation/namespacepcl_1_1visualization.html#aeabaade9c81f6faf7e6d0be905df8f6e), [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    createSphere() [1/2]
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createSphere  | ( | const Eigen::Vector4f &  | *center*,  |
|  |  | double  | *radius*,  |
|  |  | int  | *res* = `10` |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a sphere shape from a point and a radius. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | center | the center of the sphere (as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Vector4f, with only the first 3 coordinates used)  |
| [in] | radius | the radius of the sphere  |
| [in] | res | (optional) the resolution used for rendering the model  |

      createSphere() [2/2]
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [vtkSmartPointer](classvtk_smart_pointer)<vtkDataSet> pcl::visualization::createSphere  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *coefficients*,  |
|  |  | int  | *res* = `10` |
|  | ) |  |  |

 
 `#include <[pcl/visualization/common/shapes.h](https://pointclouds.org/documentation/shapes_8h.html)>`

 Create a sphere shape from a set of model coefficients. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | coefficients | the model coefficients (sphere center, radius)  |
| [in] | res | (optional) the resolution used for rendering the model |

   
```
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelSphere)
// Eigen::Vector3f sphere_center;
// float radius;
 
pcl::ModelCoefficients sphere_coeff;
sphere_coeff.values.resize (4); // We need 4 values
sphere_coeff.values[0] = sphere_center.x ();
sphere_coeff.values[1] = sphere_center.y ();
sphere_coeff.values[2] = sphere_center.z ();
 
sphere_coeff.values[3] = radius;
 
vtkSmartPointer<vtkDataSet> data = pcl::visualization::createSphere (sphere_coeff, resolution);
pcl::visualization::createSpherePCL_EXPORTS vtkSmartPointer< vtkDataSet > createSphere(const Eigen::Vector4f &center, double radius, int res=10)Create a sphere shape from a point and a radius.
pcl::visualization::createSphere
PCL_EXPORTS vtkSmartPointer< vtkDataSet > createSphere(const Eigen::Vector4f &center, double radius, int res=10)
Create a sphere shape from a point and a radius.

```
    getCorrespondingPointCloud()
----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::visualization::getCorrespondingPointCloud  | ( | vtkPolyData \*  | *src*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z) > &  | *tgt*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* |
|  | ) |  |  |

 
 `#include <pcl/visualization/common/io.h>`

 Obtain a list of corresponding indices, for a set of vtk points, from a [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). 

 
Parameters
 

|  |  |
| --- | --- |
| src | the set of vtk points  |
| tgt | the target [pcl::PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") that we need to obtain indices from  |
| indices | the resultant list of indices  |

      savePointData()
---------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::visualization::savePointData  | ( | vtkPolyData \*  | *data*,  |
|  |  | const std::string &  | *out\_file*,  |
|  |  | const [CloudActorMapPtr](https://pointclouds.org/documentation/namespacepcl_1_1visualization.html#a98e7533ef69b79343e9b457236d70e71) &  | *actors* |
|  | ) |  |  |

 
 `#include <pcl/visualization/common/io.h>`

 Saves the vtk-formatted Point Cloud data into a set of files, based on whether the data comes from previously loaded PCD files. 

 The PCD files are matched using the a list of names for the actors on screen. 



Parameters
 

|  |  |
| --- | --- |
| data | the vtk data  |
| out\_file | the output file (extra indices will be appended to it)  |
| actors | the list of actors present on screen  |

     

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__visualization.html>

Detailed Description
--------------------

 
 Overview
==========

 The **pcl\_common** library contains the common data structures and methods used by the majority of PCL libraries. The core data structures include the PointCloud class and a multitude of point types that are used to represent points, surface normals, RGB color values, feature descriptors, etc. It also contains numerous functions for computing distances/norms, means and covariances, angular conversions, geometric transformations, and more.

 
 Requirements
==============

 * none

 

|  |
| --- |
| 
 Classes |
| class  | [pcl::BivariatePolynomialT< real >](classpcl_1_1_bivariate_polynomial_t) |
|  | This represents a bivariate polynomial and provides some functionality for it. [More...](classpcl_1_1_bivariate_polynomial_t#details) |
|
| class  | [pcl::CentroidPoint< PointT >](classpcl_1_1_centroid_point) |
|  | A generic class that computes the centroid of points fed to it. [More...](classpcl_1_1_centroid_point#details) |
|
| struct  | [pcl::NdConcatenateFunctor< PointInT, PointOutT >](structpcl_1_1_nd_concatenate_functor) |
|  | Helper functor structure for concatenate. [More...](structpcl_1_1_nd_concatenate_functor#details) |
|
| class  | [pcl::FeatureHistogram](classpcl_1_1_feature_histogram) |
|  | Type for histograms for computing mean and variance of some floats. [More...](classpcl_1_1_feature_histogram#details) |
|
| class  | [pcl::GaussianKernel](classpcl_1_1_gaussian_kernel) |
|  | Class [GaussianKernel](classpcl_1_1_gaussian_kernel "Class GaussianKernel assembles all the method for computing, convolving, smoothing,...") assembles all the method for computing, convolving, smoothing, gradients computing an image using a gaussian kernel. [More...](classpcl_1_1_gaussian_kernel#details) |
|
| class  | [pcl::PCA< PointT >](classpcl_1_1_p_c_a) |
|  | Principal Component analysis ([PCA](classpcl_1_1_p_c_a "Principal Component analysis (PCA) class.")) class. [More...](classpcl_1_1_p_c_a#details) |
|
| class  | [pcl::PiecewiseLinearFunction](classpcl_1_1_piecewise_linear_function) |
|  | This provides functionalities to efficiently return values for piecewise linear function. [More...](classpcl_1_1_piecewise_linear_function#details) |
|
| class  | [pcl::PolynomialCalculationsT< real >](classpcl_1_1_polynomial_calculations_t) |
|  | This provides some functionality for polynomials, like finding roots or approximating bivariate polynomials. [More...](classpcl_1_1_polynomial_calculations_t#details) |
|
| class  | [pcl::PosesFromMatches](classpcl_1_1_poses_from_matches) |
|  | calculate 3D transformation based on point correspondences [More...](classpcl_1_1_poses_from_matches#details) |
|
| class  | [pcl::StopWatch](https://pointclouds.org/documentation/classpcl_1_1_stop_watch.html) |
|  | Simple stopwatch. [More...](https://pointclouds.org/documentation/classpcl_1_1_stop_watch.html#details) |
|
| class  | [pcl::ScopeTime](classpcl_1_1_scope_time) |
|  | Class to measure the time spent in a scope. [More...](classpcl_1_1_scope_time#details) |
|
| class  | [pcl::EventFrequency](classpcl_1_1_event_frequency) |
|  | A helper class to measure frequency of a certain event. [More...](classpcl_1_1_event_frequency#details) |
|
| class  | [pcl::TimeTrigger](classpcl_1_1_time_trigger) |
|  | Timer class that invokes registered callback methods periodically. [More...](classpcl_1_1_time_trigger#details) |
|
| class  | [pcl::TransformationFromCorrespondences](classpcl_1_1_transformation_from_correspondences) |
|  | Calculates a transformation based on corresponding 3D points. [More...](classpcl_1_1_transformation_from_correspondences#details) |
|
| class  | [pcl::VectorAverage< real, dimension >](classpcl_1_1_vector_average) |
|  | Calculates the weighted average and the covariance matrix. [More...](classpcl_1_1_vector_average#details) |
|
| struct  | [pcl::Correspondence](structpcl_1_1_correspondence) |
|  | [Correspondence](structpcl_1_1_correspondence "Correspondence represents a match between two entities (e.g., points, descriptors,...") represents a match between two entities (e.g., points, descriptors, etc). [More...](structpcl_1_1_correspondence#details) |
|
| struct  | [pcl::PointCorrespondence3D](structpcl_1_1_point_correspondence3_d) |
|  | Representation of a (possible) correspondence between two 3D points in two different coordinate frames (e.g. [More...](structpcl_1_1_point_correspondence3_d#details) |
|
| struct  | [pcl::PointCorrespondence6D](structpcl_1_1_point_correspondence6_d) |
|  | Representation of a (possible) correspondence between two points (e.g. [More...](structpcl_1_1_point_correspondence6_d#details) |
|
| struct  | [pcl::PointXYZ](structpcl_1_1_point_x_y_z) |
|  | A point structure representing Euclidean xyz coordinates. [More...](structpcl_1_1_point_x_y_z#details) |
|
| struct  | [pcl::Intensity](structpcl_1_1_intensity) |
|  | A point structure representing the grayscale intensity in single-channel images. [More...](structpcl_1_1_intensity#details) |
|
| struct  | [pcl::Intensity8u](structpcl_1_1_intensity8u) |
|  | A point structure representing the grayscale intensity in single-channel images. [More...](structpcl_1_1_intensity8u#details) |
|
| struct  | [pcl::Intensity32u](structpcl_1_1_intensity32u) |
|  | A point structure representing the grayscale intensity in single-channel images. [More...](structpcl_1_1_intensity32u#details) |
|
| struct  | [pcl::\_PointXYZI](structpcl_1_1___point_x_y_z_i) |
|  | A point structure representing Euclidean xyz coordinates, and the intensity value. [More...](structpcl_1_1___point_x_y_z_i#details) |
|
| struct  | [pcl::PointXYZRGBA](structpcl_1_1_point_x_y_z_r_g_b_a) |
|  | A point structure representing Euclidean xyz coordinates, and the RGBA color. [More...](structpcl_1_1_point_x_y_z_r_g_b_a#details) |
|
| struct  | [pcl::PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) |
|  | A point structure representing Euclidean xyz coordinates, and the [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") color. [More...](structpcl_1_1_point_x_y_z_r_g_b#details) |
|
| struct  | [pcl::PointXYZLAB](structpcl_1_1_point_x_y_z_l_a_b) |
|  | A point structure representing Euclidean xyz coordinates, and the CIELAB color. [More...](structpcl_1_1_point_x_y_z_l_a_b#details) |
|
| struct  | [pcl::PointXY](structpcl_1_1_point_x_y) |
|  | A 2D point structure representing Euclidean xy coordinates. [More...](structpcl_1_1_point_x_y#details) |
|
| struct  | [pcl::PointUV](structpcl_1_1_point_u_v) |
|  | A 2D point structure representing pixel image coordinates. [More...](structpcl_1_1_point_u_v#details) |
|
| struct  | [pcl::InterestPoint](structpcl_1_1_interest_point) |
|  | A point structure representing an interest point with Euclidean xyz coordinates, and an interest value. [More...](structpcl_1_1_interest_point#details) |
|
| struct  | [pcl::Normal](structpcl_1_1_normal) |
|  | A point structure representing normal coordinates and the surface curvature estimate. [More...](structpcl_1_1_normal#details) |
|
| struct  | [pcl::Axis](structpcl_1_1_axis) |
|  | A point structure representing an [Axis](structpcl_1_1_axis "A point structure representing an Axis using its normal coordinates.") using its normal coordinates. [More...](structpcl_1_1_axis#details) |
|
| struct  | [pcl::PointNormal](structpcl_1_1_point_normal) |
|  | A point structure representing Euclidean xyz coordinates, together with normal coordinates and the surface curvature estimate. [More...](structpcl_1_1_point_normal#details) |
|
| struct  | [pcl::PointXYZRGBNormal](structpcl_1_1_point_x_y_z_r_g_b_normal) |
|  | A point structure representing Euclidean xyz coordinates, and the [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") color, together with normal coordinates and the surface curvature estimate. [More...](structpcl_1_1_point_x_y_z_r_g_b_normal#details) |
|
| struct  | [pcl::PointXYZINormal](structpcl_1_1_point_x_y_z_i_normal) |
|  | A point structure representing Euclidean xyz coordinates, intensity, together with normal coordinates and the surface curvature estimate. [More...](structpcl_1_1_point_x_y_z_i_normal#details) |
|
| struct  | [pcl::PointXYZLNormal](structpcl_1_1_point_x_y_z_l_normal) |
|  | A point structure representing Euclidean xyz coordinates, a label, together with normal coordinates and the surface curvature estimate. [More...](structpcl_1_1_point_x_y_z_l_normal#details) |
|
| struct  | [pcl::PointWithRange](structpcl_1_1_point_with_range) |
|  | A point structure representing Euclidean xyz coordinates, padded with an extra range float. [More...](structpcl_1_1_point_with_range#details) |
|
| struct  | [pcl::PointWithViewpoint](structpcl_1_1_point_with_viewpoint) |
|  | A point structure representing Euclidean xyz coordinates together with the viewpoint from which it was seen. [More...](structpcl_1_1_point_with_viewpoint#details) |
|
| struct  | [pcl::MomentInvariants](structpcl_1_1_moment_invariants) |
|  | A point structure representing the three moment invariants. [More...](structpcl_1_1_moment_invariants#details) |
|
| struct  | [pcl::PrincipalRadiiRSD](structpcl_1_1_principal_radii_r_s_d) |
|  | A point structure representing the minimum and maximum surface radii (in meters) computed using RSD. [More...](structpcl_1_1_principal_radii_r_s_d#details) |
|
| struct  | [pcl::Boundary](structpcl_1_1_boundary) |
|  | A point structure representing a description of whether a point is lying on a surface boundary or not. [More...](structpcl_1_1_boundary#details) |
|
| struct  | [pcl::PrincipalCurvatures](structpcl_1_1_principal_curvatures) |
|  | A point structure representing the principal curvatures and their magnitudes. [More...](structpcl_1_1_principal_curvatures#details) |
|
| struct  | [pcl::PFHSignature125](structpcl_1_1_p_f_h_signature125) |
|  | A point structure representing the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (PFH). [More...](structpcl_1_1_p_f_h_signature125#details) |
|
| struct  | [pcl::PFHRGBSignature250](structpcl_1_1_p_f_h_r_g_b_signature250) |
|  | A point structure representing the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") with colors (PFHRGB). [More...](structpcl_1_1_p_f_h_r_g_b_signature250#details) |
|
| struct  | [pcl::PPFSignature](structpcl_1_1_p_p_f_signature) |
|  | A point structure for storing the Point Pair [Feature](classpcl_1_1_feature "Feature represents the base feature class.") (PPF) values. [More...](structpcl_1_1_p_p_f_signature#details) |
|
| struct  | [pcl::CPPFSignature](structpcl_1_1_c_p_p_f_signature) |
|  | A point structure for storing the Point Pair [Feature](classpcl_1_1_feature "Feature represents the base feature class.") (CPPF) values. [More...](structpcl_1_1_c_p_p_f_signature#details) |
|
| struct  | [pcl::PPFRGBSignature](structpcl_1_1_p_p_f_r_g_b_signature) |
|  | A point structure for storing the Point Pair Color [Feature](classpcl_1_1_feature "Feature represents the base feature class.") (PPFRGB) values. [More...](structpcl_1_1_p_p_f_r_g_b_signature#details) |
|
| struct  | [pcl::NormalBasedSignature12](structpcl_1_1_normal_based_signature12) |
|  | A point structure representing the [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Based Signature for a feature matrix of 4-by-3. [More...](structpcl_1_1_normal_based_signature12#details) |
|
| struct  | [pcl::ShapeContext1980](structpcl_1_1_shape_context1980) |
|  | A point structure representing a Shape Context. [More...](structpcl_1_1_shape_context1980#details) |
|
| struct  | [pcl::UniqueShapeContext1960](structpcl_1_1_unique_shape_context1960) |
|  | A point structure representing a Unique Shape Context. [More...](structpcl_1_1_unique_shape_context1960#details) |
|
| struct  | [pcl::SHOT352](structpcl_1_1_s_h_o_t352) |
|  | A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape only. [More...](structpcl_1_1_s_h_o_t352#details) |
|
| struct  | [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344) |
|  | A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+color. [More...](structpcl_1_1_s_h_o_t1344#details) |
|
| struct  | [pcl::\_ReferenceFrame](structpcl_1_1___reference_frame) |
|  | A structure representing the Local Reference Frame of a point. [More...](structpcl_1_1___reference_frame#details) |
|
| struct  | [pcl::FPFHSignature33](structpcl_1_1_f_p_f_h_signature33) |
|  | A point structure representing the Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH). [More...](structpcl_1_1_f_p_f_h_signature33#details) |
|
| struct  | [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) |
|  | A point structure representing the Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (VFH). [More...](structpcl_1_1_v_f_h_signature308#details) |
|
| struct  | [pcl::GRSDSignature21](structpcl_1_1_g_r_s_d_signature21) |
|  | A point structure representing the Global Radius-based Surface Descriptor (GRSD). [More...](structpcl_1_1_g_r_s_d_signature21#details) |
|
| struct  | [pcl::BRISKSignature512](structpcl_1_1_b_r_i_s_k_signature512) |
|  | A point structure representing the Binary Robust Invariant Scalable Keypoints (BRISK). [More...](structpcl_1_1_b_r_i_s_k_signature512#details) |
|
| struct  | [pcl::ESFSignature640](structpcl_1_1_e_s_f_signature640) |
|  | A point structure representing the Ensemble of Shape Functions (ESF). [More...](structpcl_1_1_e_s_f_signature640#details) |
|
| struct  | [pcl::GASDSignature512](structpcl_1_1_g_a_s_d_signature512) |
|  | A point structure representing the Globally Aligned Spatial Distribution (GASD) shape descriptor. [More...](structpcl_1_1_g_a_s_d_signature512#details) |
|
| struct  | [pcl::GASDSignature984](structpcl_1_1_g_a_s_d_signature984) |
|  | A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descriptor. [More...](structpcl_1_1_g_a_s_d_signature984#details) |
|
| struct  | [pcl::GASDSignature7992](structpcl_1_1_g_a_s_d_signature7992) |
|  | A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descriptor. [More...](structpcl_1_1_g_a_s_d_signature7992#details) |
|
| struct  | [pcl::GFPFHSignature16](structpcl_1_1_g_f_p_f_h_signature16) |
|  | A point structure representing the GFPFH descriptor with 16 bins. [More...](structpcl_1_1_g_f_p_f_h_signature16#details) |
|
| struct  | [pcl::Narf36](structpcl_1_1_narf36) |
|  | A point structure representing the [Narf](classpcl_1_1_narf "NARF (Normal Aligned Radial Features) is a point feature descriptor type for 3D data.") descriptor. [More...](structpcl_1_1_narf36#details) |
|
| struct  | [pcl::BorderDescription](structpcl_1_1_border_description) |
|  | A structure to store if a point in a range image lies on a border between an obstacle and the background. [More...](structpcl_1_1_border_description#details) |
|
| struct  | [pcl::IntensityGradient](structpcl_1_1_intensity_gradient) |
|  | A point structure representing the intensity gradient of an XYZI point cloud. [More...](structpcl_1_1_intensity_gradient#details) |
|
| struct  | [pcl::Histogram< N >](structpcl_1_1_histogram) |
|  | A point structure representing an N-D histogram. [More...](structpcl_1_1_histogram#details) |
|
| struct  | [pcl::PointWithScale](structpcl_1_1_point_with_scale) |
|  | A point structure representing a 3-D position and scale. [More...](structpcl_1_1_point_with_scale#details) |
|
| struct  | [pcl::PointSurfel](structpcl_1_1_point_surfel) |
|  | A surfel, that is, a point structure representing Euclidean xyz coordinates, together with normal coordinates, a RGBA color, a radius, a confidence value and the surface curvature estimate. [More...](structpcl_1_1_point_surfel#details) |
|
| struct  | [pcl::PointDEM](structpcl_1_1_point_d_e_m) |
|  | A point structure representing Digital Elevation Map. [More...](structpcl_1_1_point_d_e_m#details) |
|
| class  | [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
|  | PCL base class. [More...](classpcl_1_1_p_c_l_base#details) |
|
| class  | [pcl::cuda::ScopeTimeCPU](classpcl_1_1cuda_1_1_scope_time_c_p_u) |
|  | Class to measure the time spent in a scope. [More...](classpcl_1_1cuda_1_1_scope_time_c_p_u#details) |
|
| struct  | [pcl::GradientXY](structpcl_1_1_gradient_x_y) |
|  | A point structure representing Euclidean xyz coordinates, and the intensity value. [More...](structpcl_1_1_gradient_x_y#details) |
|




|  |
| --- |
| 
 Files |
| file  | [angles.h](https://pointclouds.org/documentation/angles_8h.html) |
|  | Define standard C methods to do angle calculations.  |
|
| file  | [centroid.h](https://pointclouds.org/documentation/centroid_8h.html) |
|  | Define methods for centroid estimation and covariance matrix calculus.  |
|
| file  | [common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html) |
|  | Define standard C methods and C++ classes that are common to all methods.  |
|
| file  | [distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h.html) |
|  | Define standard C methods to do distance calculations.  |
|
| file  | [file\_io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2file__io_8h.html) |
|  | Define some helper functions for reading and writing files.  |
|
| file  | [random.h](https://pointclouds.org/documentation/random_8h.html) |
|  | CloudGenerator class generates a point cloud using some random number generator.  |
|
| file  | [geometry.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h.html) |
|  | Defines some geometrical functions and utility functions.  |
|
| file  | [intersections.h](https://pointclouds.org/documentation/intersections_8h.html) |
|  | Define line with line intersection functions.  |
|
| file  | [norms.h](https://pointclouds.org/documentation/norms_8h.html) |
|  | Define standard C methods to calculate different norms.  |
|
| file  | [geometry.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h.html) |
|  | Defines some geometrical functions and utility functions.  |
|
| file  | [time.h](https://pointclouds.org/documentation/common_2time_8h.html) |
|  | Define methods for measuring time spent in code blocks.  |
|
| file  | [memory.h](https://pointclouds.org/documentation/memory_8h.html) |
|  | Defines functions, macros and traits for allocating and using memory.  |
|
| file  | [pcl\_macros.h](https://pointclouds.org/documentation/pcl__macros_8h.html) |
|  | Defines all the PCL and non-PCL macros used.  |
|
| file  | [point\_types.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h.html) |
|  | Defines all the PCL implemented PointT point type structures.  |
|
| file  | [types.h](https://pointclouds.org/documentation/types_8h.html) |
|  | Defines basic non-point types used by PCL.  |
|




|  |
| --- |
| 
 Macros |
| #define  | [PCL\_MAKE\_ALIGNED\_OPERATOR\_NEW](group__common#ga35846236568f16ca7fa07d958966e12c) |
|  | Macro to signal a class requires a custom allocator. [More...](group__common#ga35846236568f16ca7fa07d958966e12c) |
|
| #define  | [PCL\_FALLTHROUGH](group__common#gafd6ef917f66c9c9b3cb888aea5013b53) |
|  | Macro to add a no-op or a fallthrough attribute based on compiler feature. [More...](group__common#gafd6ef917f66c9c9b3cb888aea5013b53) |
|




|  |
| --- |
| 
 Typedefs |
| using  | [pcl::BorderTraits](group__common#gafb2b6757a09f69abeb6795cc0956acbf) = std::bitset< 32 > |
|  | Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for [BorderDescription::traits](structpcl_1_1_border_description#a48b78318ec7151ebca3d61a47891470c). [More...](group__common#gafb2b6757a09f69abeb6795cc0956acbf) |
|




|  |
| --- |
| 
 Enumerations |
| enum  | [pcl::NormType](group__common#ga9d37f00989a9de11b48deb263649463c) {  [pcl::L1](group__common#gga9d37f00989a9de11b48deb263649463cac3661be4b6e0d59a4c7b59a788cfc072) , [pcl::L2\_SQR](group__common#gga9d37f00989a9de11b48deb263649463ca98099ccc2b42084990c7a6caac1d03f1) , [pcl::L2](group__common#gga9d37f00989a9de11b48deb263649463ca784d9a41bb0a8d74c4bbb384b5186c44) , [pcl::LINF](group__common#gga9d37f00989a9de11b48deb263649463ca731833ab377b1fbe2ea5968c44a1664f) ,  [pcl::JM](group__common#gga9d37f00989a9de11b48deb263649463cae072ec2ac425bed6c2f5a0781f0bf24f) , [pcl::B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47) , [pcl::SUBLINEAR](group__common#gga9d37f00989a9de11b48deb263649463ca4da495e4c1d4f4415a13df5a1d55c545) , [pcl::CS](group__common#gga9d37f00989a9de11b48deb263649463cad3f14cd5f1b7951b16422d8372b40177) ,  [pcl::DIV](group__common#gga9d37f00989a9de11b48deb263649463ca873d59723678e9e5d0a4c82d95c0e10e) , [pcl::PF](group__common#gga9d37f00989a9de11b48deb263649463ca5bf10e0499f79b70241e2eb83d0bcec3) , [pcl::K](group__common#gga9d37f00989a9de11b48deb263649463ca5c1d5fa96c1a1d9ee8a3d65459576e1f) , [pcl::KL](group__common#gga9d37f00989a9de11b48deb263649463ca8bf338ed604013b750528812f883f95b) ,  [pcl::HIK](group__common#gga9d37f00989a9de11b48deb263649463ca2ab2951d1cd80c4e5374046b5d670527)  } |
|  | Enum that defines all the types of norms available. [More...](group__common#ga9d37f00989a9de11b48deb263649463c) |
|
| enum  | [pcl::BorderTrait](group__common#ga7b4e0dcfd710e4c96737e6012b318e8b) {  [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER](group__common#gga7b4e0dcfd710e4c96737e6012b318e8baba2ab46c88349350939f52bbd63cde63) , [pcl::BORDER\_TRAIT\_\_SHADOW\_BORDER](group__common#gga7b4e0dcfd710e4c96737e6012b318e8babbe3c6413874052b1bd961efd024e707) , [pcl::BORDER\_TRAIT\_\_VEIL\_POINT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8baed1fff632898caa19ba9c1b15e639c6e) , [pcl::BORDER\_TRAIT\_\_SHADOW\_BORDER\_TOP](group__common#gga7b4e0dcfd710e4c96737e6012b318e8bac33023b67fa7bef437316f060a45680a) ,  [pcl::BORDER\_TRAIT\_\_SHADOW\_BORDER\_RIGHT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba02629b93f54ba6f5df84c201841a6885) , [pcl::BORDER\_TRAIT\_\_SHADOW\_BORDER\_BOTTOM](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba930363a872a79a7d81d6e4205855776c) , [pcl::BORDER\_TRAIT\_\_SHADOW\_BORDER\_LEFT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba68f048247d59b845f64a0c2f98e49200) , [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_TOP](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba0126deec3b7ff7353d146e637f5079b0) ,  [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_RIGHT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba95274e6ae483a678bfff02bee92a199f) , [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_BOTTOM](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba9a16989fdc97f0d09f1602922ff5b915) , [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_LEFT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba639881dfaa920ff16178ccd10032596c) , [pcl::BORDER\_TRAIT\_\_VEIL\_POINT\_TOP](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba15f4b2984e8c57fd9e343d4ef7ecfbf5) ,  [pcl::BORDER\_TRAIT\_\_VEIL\_POINT\_RIGHT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba0c79af62cb33c6b991a5560dcae502fe) , [pcl::BORDER\_TRAIT\_\_VEIL\_POINT\_BOTTOM](group__common#gga7b4e0dcfd710e4c96737e6012b318e8ba58422e9652213c3b66933e6488e6934f) , [pcl::BORDER\_TRAIT\_\_VEIL\_POINT\_LEFT](group__common#gga7b4e0dcfd710e4c96737e6012b318e8bab835d36d98c678431e97796376690219)  } |
|  | Specification of the fields for BorderDescription::traits. [More...](group__common#ga7b4e0dcfd710e4c96737e6012b318e8b) |
|




|  |
| --- |
| 
 Functions |
| float  | [pcl::rad2deg](group__common#ga3177c2c084674693cc38f03e80b6ad77) (float alpha) |
|  | Convert an angle from radians to degrees. [More...](group__common#ga3177c2c084674693cc38f03e80b6ad77) |
|
| float  | [pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (float alpha) |
|  | Convert an angle from degrees to radians. [More...](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) |
|
| double  | [pcl::rad2deg](group__common#ga997c583b8ac57ffa9ad9e7321b4673e5) (double alpha) |
|  | Convert an angle from radians to degrees. [More...](group__common#ga997c583b8ac57ffa9ad9e7321b4673e5) |
|
| double  | [pcl::deg2rad](group__common#ga78fe9974ed54012d6cf057afda5d3350) (double alpha) |
|  | Convert an angle from degrees to radians. [More...](group__common#ga78fe9974ed54012d6cf057afda5d3350) |
|
| float  | [pcl::normAngle](group__common#ga3b37d5c19b2773954bbc5320f011f3ec) (float alpha) |
|  | Normalize an angle to (-PI, PI]. [More...](group__common#ga3b37d5c19b2773954bbc5320f011f3ec) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::compute3DCentroid](group__common#gaf5729fae15603888b49743b118025290) ([ConstCloudIterator](classpcl_1_1_const_cloud_iterator)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_iterator, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector. [More...](group__common#gaf5729fae15603888b49743b118025290) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::compute3DCentroid](group__common#ga26f5d53ac5362b04a5c8ed68c4c39038) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector. [More...](group__common#ga26f5d53ac5362b04a5c8ed68c4c39038) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::compute3DCentroid](group__common#gadfd1abc9deae9bb71dea8e6c1fd24af9) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector. [More...](group__common#gadfd1abc9deae9bb71dea8e6c1fd24af9) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::compute3DCentroid](group__common#ga057c72764dfcd1276f7fe19bbfb380a7) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector. [More...](group__common#ga057c72764dfcd1276f7fe19bbfb380a7) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrix](group__common#gac36b146ec26b1ceb7be43a9ecaa010c4) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the 3x3 covariance matrix of a given set of points. [More...](group__common#gac36b146ec26b1ceb7be43a9ecaa010c4) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrixNormalized](group__common#gab5ea605f439a80daf6348547379bad8e) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute normalized the 3x3 covariance matrix of a given set of points. [More...](group__common#gab5ea605f439a80daf6348547379bad8e) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrix](group__common#ga2680eec49635c40687ab378bde204fdc) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the 3x3 covariance matrix of a given set of points using their indices. [More...](group__common#ga2680eec49635c40687ab378bde204fdc) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrix](group__common#ga35305b1593d5417be615e940383f4ced) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the 3x3 covariance matrix of a given set of points using their indices. [More...](group__common#ga35305b1593d5417be615e940383f4ced) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrixNormalized](group__common#ga41c9e7cc83ff0b2619c466ac7f45e952) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the normalized 3x3 covariance matrix of a given set of points using their indices. [More...](group__common#ga41c9e7cc83ff0b2619c466ac7f45e952) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrixNormalized](group__common#gadfb4158efe784f3d3a765f0747b13a80) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the normalized 3x3 covariance matrix of a given set of points using their indices. [More...](group__common#gadfb4158efe784f3d3a765f0747b13a80) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeMeanAndCovarianceMatrix](group__common#ga72dfb6e965df9752c88790e026a8ab5f) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. [More...](group__common#ga72dfb6e965df9752c88790e026a8ab5f) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeMeanAndCovarianceMatrix](group__common#gaf70c66f08214fb34784483627e5fc913) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. [More...](group__common#gaf70c66f08214fb34784483627e5fc913) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeMeanAndCovarianceMatrix](group__common#gac4d7bf1a81f21fb97505c91957b7f033) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix, Eigen::Matrix< Scalar, 4, 1 > &centroid) |
|  | Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. [More...](group__common#gac4d7bf1a81f21fb97505c91957b7f033) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrix](group__common#ga5956698bec9ece7a491ad2fbbfbe6bc1) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. [More...](group__common#ga5956698bec9ece7a491ad2fbbfbe6bc1) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrix](group__common#gae1be0e0d9c0edfe771edb0eca57b8650) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. [More...](group__common#gae1be0e0d9c0edfe771edb0eca57b8650) |
|
| template<typename PointT , typename Scalar >  |
| unsigned int  | [pcl::computeCovarianceMatrix](group__common#gacf3ff94b2145fb22871e41e87ee495b2) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance\_matrix) |
|  | Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. [More...](group__common#gacf3ff94b2145fb22871e41e87ee495b2) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga7f82fbd4e17063ab86287a2543bdea88) ([ConstCloudIterator](classpcl_1_1_const_cloud_iterator)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_iterator, const Eigen::Matrix< Scalar, 4, 1 > &centroid, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, int npts=0) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation. [More...](group__common#ga7f82fbd4e17063ab86287a2543bdea88) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga7953d5001218e840a3a10a2c8649461e) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const Eigen::Matrix< Scalar, 4, 1 > &centroid, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation. [More...](group__common#ga7953d5001218e840a3a10a2c8649461e) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga776aeabe20fa3eb55e6283fea0476f6a) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation. [More...](group__common#ga776aeabe20fa3eb55e6283fea0476f6a) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga516ff833c2593ba6e53d369b25989f81) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation. [More...](group__common#ga516ff833c2593ba6e53d369b25989f81) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga553c2ce698f074fe38d74f01b57a3343) ([ConstCloudIterator](classpcl_1_1_const_cloud_iterator)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_iterator, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud\_out, int npts=0) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. [More...](group__common#ga553c2ce698f074fe38d74f01b57a3343) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#gae19c71709093628e61037337056b99fa) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud\_out) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. [More...](group__common#gae19c71709093628e61037337056b99fa) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga743fe66a6743b81611c70acd59c0d680) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud\_out) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. [More...](group__common#ga743fe66a6743b81611c70acd59c0d680) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::demeanPointCloud](group__common#ga539a53e4b17ad9ed2f00ae8b2e464221) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud\_out) |
|  | Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. [More...](group__common#ga539a53e4b17ad9ed2f00ae8b2e464221) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::computeNDCentroid](group__common#ga4d047d6f7b50a2d81306cc59ac927179) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &centroid) |
|  | General, all purpose nD centroid estimation for a set of points using their indices. [More...](group__common#ga4d047d6f7b50a2d81306cc59ac927179) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::computeNDCentroid](group__common#gaac394645bca960356e4d1aee5e75b92d) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &centroid) |
|  | General, all purpose nD centroid estimation for a set of points using their indices. [More...](group__common#gaac394645bca960356e4d1aee5e75b92d) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::computeNDCentroid](group__common#ga9654681b5a78f1e3ad5566de05e1d638) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &centroid) |
|  | General, all purpose nD centroid estimation for a set of points using their indices. [More...](group__common#ga9654681b5a78f1e3ad5566de05e1d638) |
|
| template<typename PointInT , typename PointOutT >  |
| std::size\_t  | [pcl::computeCentroid](group__common#ga24ba1c9605f3bb1e3063e30fa04857c2) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, PointOutT &centroid) |
|  | Compute the centroid of a set of points and return it as a point. [More...](group__common#ga24ba1c9605f3bb1e3063e30fa04857c2) |
|
| template<typename PointInT , typename PointOutT >  |
| std::size\_t  | [pcl::computeCentroid](group__common#ga9e10574ff42edc90e7dd583a36e94ce6) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, PointOutT &centroid) |
|  | Compute the centroid of a set of points and return it as a point. [More...](group__common#ga9e10574ff42edc90e7dd583a36e94ce6) |
|
| double  | [pcl::getAngle3D](group__common#ga54999c02ba9bee56404539747b0fda51) (const Eigen::Vector4f &v1, const Eigen::Vector4f &v2, const bool in\_degree=false) |
|  | Compute the smallest angle between two 3D vectors in radians (default) or degree. [More...](group__common#ga54999c02ba9bee56404539747b0fda51) |
|
| double  | [pcl::getAngle3D](group__common#ga8c74d7c459961a2650c22eff8126aef8) (const Eigen::Vector3f &v1, const Eigen::Vector3f &v2, const bool in\_degree=false) |
|  | Compute the smallest angle between two 3D vectors in radians (default) or degree. [More...](group__common#ga8c74d7c459961a2650c22eff8126aef8) |
|
| void  | [pcl::getMeanStd](group__common#ga3349ce9c26d4acbb1adae1e9b2d5f7e5) (const std::vector< float > &values, double &mean, double &stddev) |
|  | Compute both the mean and the standard deviation of an array of values. [More...](group__common#ga3349ce9c26d4acbb1adae1e9b2d5f7e5) |
|
| template<typename PointT >  |
| void  | [pcl::getPointsInBox](group__common#gaa67d411e0077c68c31adbc7d0d995e9c) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Vector4f &min\_pt, Eigen::Vector4f &max\_pt, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Get a set of points residing in a box given its bounds. [More...](group__common#gaa67d411e0077c68c31adbc7d0d995e9c) |
|
| template<typename PointT >  |
| void  | [pcl::getMaxDistance](group__common#ga1583a71aef0f54550adef0ebfef89edd) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const Eigen::Vector4f &pivot\_pt, Eigen::Vector4f &max\_pt) |
|  | Get the point at maximum distance from a given point and a given pointcloud. [More...](group__common#ga1583a71aef0f54550adef0ebfef89edd) |
|
| template<typename PointT >  |
| void  | [pcl::getMaxDistance](group__common#ga43df2b30eedda61e26d132db661cf2ec) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Vector4f &pivot\_pt, Eigen::Vector4f &max\_pt) |
|  | Get the point at maximum distance from a given point and a given pointcloud. [More...](group__common#ga43df2b30eedda61e26d132db661cf2ec) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax3D](group__common#ga3166f09aafd659f69dc75e63f5e10f81) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, [PointT](structpcl_1_1_point_x_y_z_r_g_b) &min\_pt, [PointT](structpcl_1_1_point_x_y_z_r_g_b) &max\_pt) |
|  | Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. [More...](group__common#ga3166f09aafd659f69dc75e63f5e10f81) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax3D](group__common#gafd9010977f5e52b35b484be7624df3f8) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, Eigen::Vector4f &min\_pt, Eigen::Vector4f &max\_pt) |
|  | Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. [More...](group__common#gafd9010977f5e52b35b484be7624df3f8) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax3D](group__common#ga8e38f91f115922ef4aa80328b6da28f5) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Vector4f &min\_pt, Eigen::Vector4f &max\_pt) |
|  | Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. [More...](group__common#ga8e38f91f115922ef4aa80328b6da28f5) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax3D](group__common#ga41eb246206d51f77a8cb82b5d963e6a2) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, Eigen::Vector4f &min\_pt, Eigen::Vector4f &max\_pt) |
|  | Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. [More...](group__common#ga41eb246206d51f77a8cb82b5d963e6a2) |
|
| template<typename PointT >  |
| double  | [pcl::getCircumcircleRadius](group__common#gab64d6ba9e834d29feda71a76d3ec841f) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pa, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pb, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pc) |
|  | Compute the radius of a circumscribed circle for a triangle formed of three points pa, pb, and pc. [More...](group__common#gab64d6ba9e834d29feda71a76d3ec841f) |
|
| template<typename PointT >  |
| void  | [pcl::getMinMax](group__common#gaacff2e632283be60810678d329b166ec) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &histogram, int len, float &min\_p, float &max\_p) |
|  | Get the minimum and maximum values on a point histogram. [More...](group__common#gaacff2e632283be60810678d329b166ec) |
|
| template<typename PointT >  |
| float  | [pcl::calculatePolygonArea](group__common#ga1a9e18520c49be76f2a28834e2da8a56) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &polygon) |
|  | Calculate the area of a polygon given a point cloud that defines the polygon. [More...](group__common#ga1a9e18520c49be76f2a28834e2da8a56) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::getMinMax](group__common#ga287e6ce2d4be348c059baf31eaf2dd54) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, int idx, const std::string &field\_name, float &min\_p, float &max\_p) |
|  | Get the minimum and maximum values on a point histogram. [More...](group__common#ga287e6ce2d4be348c059baf31eaf2dd54) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::getMeanStdDev](group__common#gacb684087702126b29c8b99f1e2c2786b) (const std::vector< float > &values, double &mean, double &stddev) |
|  | Compute both the mean and the standard deviation of an array of values. [More...](group__common#gacb684087702126b29c8b99f1e2c2786b) |
|
| template<typename IteratorT , typename Functor >  |
| auto  | [pcl::computeMedian](group__common#ga2f445da2542cd886856beff40c383c3c) (IteratorT begin, IteratorT end, [Functor](structpcl_1_1_functor) f) noexcept -> std::result\_of\_t< [Functor](structpcl_1_1_functor)(decltype(\*begin))> |
|  | Compute the median of a list of values (fast). [More...](group__common#ga2f445da2542cd886856beff40c383c3c) |
|
| template<typename PointInT , typename PointOutT >  |
| void  | [pcl::copyPoint](group__common#gab978bf1754771246b2f140a5b52a8f8b) (const PointInT &point\_in, PointOutT &point\_out) |
|  | Copy the fields of a source point into a target point. [More...](group__common#gab978bf1754771246b2f140a5b52a8f8b) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::lineToLineSegment](group__common#ga4ee346a92c01c042ffae2907ae5c93c5) (const Eigen::VectorXf &line\_a, const Eigen::VectorXf &line\_b, Eigen::Vector4f &pt1\_seg, Eigen::Vector4f &pt2\_seg) |
|  | Get the shortest 3D segment between two 3D lines. [More...](group__common#ga4ee346a92c01c042ffae2907ae5c93c5) |
|
| double  | [pcl::sqrPointToLineDistance](group__common#gad9217ecd4cc14221f178af07a16ef75d) (const Eigen::Vector4f &pt, const Eigen::Vector4f &line\_pt, const Eigen::Vector4f &line\_dir) |
|  | Get the square distance from a point to a line (represented by a point and a direction) [More...](group__common#gad9217ecd4cc14221f178af07a16ef75d) |
|
| double  | [pcl::sqrPointToLineDistance](group__common#ga3d6aa7accd68832e8a4d4707c358e40f) (const Eigen::Vector4f &pt, const Eigen::Vector4f &line\_pt, const Eigen::Vector4f &line\_dir, const double sqr\_length) |
|  | Get the square distance from a point to a line (represented by a point and a direction) [More...](group__common#ga3d6aa7accd68832e8a4d4707c358e40f) |
|
| template<typename PointT >  |
| double  | [pcl::getMaxSegment](group__common#ga30ceb9b4896578ed075a36ad3937ee26) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pmin, [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pmax) |
|  | Obtain the maximum segment in a given set of points, and return the minimum and maximum points. [More...](group__common#ga30ceb9b4896578ed075a36ad3937ee26) |
|
| template<typename PointT >  |
| double  | [pcl::getMaxSegment](group__common#ga29e677fb3cb3143a9665d1eb0bf5f1b0) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pmin, [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pmax) |
|  | Obtain the maximum segment in a given set of points, and return the minimum and maximum points. [More...](group__common#ga29e677fb3cb3143a9665d1eb0bf5f1b0) |
|
| template<typename Matrix , typename Vector >  |
| void  | [pcl::eigen22](group__common#ga72970b7435480c0c1827c8e74bc1d605) (const Matrix &mat, typename Matrix::Scalar &eigenvalue, Vector &eigenvector) |
|  | determine the smallest eigenvalue and its corresponding eigenvector [More...](group__common#ga72970b7435480c0c1827c8e74bc1d605) |
|
| template<typename Matrix , typename Vector >  |
| void  | [pcl::eigen22](group__common#ga4fdd69805d49c416393c604f9f209113) (const Matrix &mat, Matrix &eigenvectors, Vector &eigenvalues) |
|  | determine the smallest eigenvalue and its corresponding eigenvector [More...](group__common#ga4fdd69805d49c416393c604f9f209113) |
|
| template<typename Matrix , typename Vector >  |
| void  | [pcl::computeCorrespondingEigenVector](group__common#ga11c9b186d04d2e8a868e058473214622) (const Matrix &mat, const typename Matrix::Scalar &eigenvalue, Vector &eigenvector) |
|  | determines the corresponding eigenvector to the given eigenvalue of the symmetric positive semi definite input matrix [More...](group__common#ga11c9b186d04d2e8a868e058473214622) |
|
| template<typename Matrix , typename Vector >  |
| void  | [pcl::eigen33](group__common#gaca873868052e7d26efcf4b684a17bef2) (const Matrix &mat, typename Matrix::Scalar &eigenvalue, Vector &eigenvector) |
|  | determines the eigenvector and eigenvalue of the smallest eigenvalue of the symmetric positive semi definite input matrix [More...](group__common#gaca873868052e7d26efcf4b684a17bef2) |
|
| template<typename Matrix , typename Vector >  |
| void  | [pcl::eigen33](group__common#ga3a1ba2729012164635113224cb211581) (const Matrix &mat, Vector &evals) |
|  | determines the eigenvalues of the symmetric positive semi definite input matrix [More...](group__common#ga3a1ba2729012164635113224cb211581) |
|
| template<typename Matrix , typename Vector >  |
| void  | [pcl::eigen33](group__common#ga76d78c3e9c0f3f58a0806499ae6ed97b) (const Matrix &mat, Matrix &evecs, Vector &evals) |
|  | determines the eigenvalues and corresponding eigenvectors of the symmetric positive semi definite input matrix [More...](group__common#ga76d78c3e9c0f3f58a0806499ae6ed97b) |
|
| template<typename Matrix >  |
| Matrix::Scalar  | [pcl::invert2x2](group__common#gad09b0c9a50601f3ae20a7babfd9a8d2d) (const Matrix &matrix, Matrix &inverse) |
|  | Calculate the inverse of a 2x2 matrix. [More...](group__common#gad09b0c9a50601f3ae20a7babfd9a8d2d) |
|
| template<typename Matrix >  |
| Matrix::Scalar  | [pcl::invert3x3SymMatrix](group__common#ga503f55a565c260660c6ac0461f17fa8f) (const Matrix &matrix, Matrix &inverse) |
|  | Calculate the inverse of a 3x3 symmetric matrix. [More...](group__common#ga503f55a565c260660c6ac0461f17fa8f) |
|
| template<typename Matrix >  |
| Matrix::Scalar  | [pcl::invert3x3Matrix](group__common#gabb12d1f85437aafb0a3ac12af5633400) (const Matrix &matrix, Matrix &inverse) |
|  | Calculate the inverse of a general 3x3 matrix. [More...](group__common#gabb12d1f85437aafb0a3ac12af5633400) |
|
| template<typename Matrix >  |
| Matrix::Scalar  | [pcl::determinant3x3Matrix](group__common#ga44d0048ba1efd11359011eb47f6c92fa) (const Matrix &matrix) |
|  | Calculate the determinant of a 3x3 matrix. [More...](group__common#ga44d0048ba1efd11359011eb47f6c92fa) |
|
| void  | [pcl::getTransFromUnitVectorsZY](group__common#gaf457d33994792e63129de9709dcdf329) (const Eigen::Vector3f &z\_axis, const Eigen::Vector3f &y\_direction, Eigen::Affine3f &transformation) |
|  | Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#gaf457d33994792e63129de9709dcdf329) |
|
| Eigen::Affine3f  | [pcl::getTransFromUnitVectorsZY](group__common#ga58d47eda3c3f5f91125296fd7d202ebb) (const Eigen::Vector3f &z\_axis, const Eigen::Vector3f &y\_direction) |
|  | Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#ga58d47eda3c3f5f91125296fd7d202ebb) |
|
| void  | [pcl::getTransFromUnitVectorsXY](group__common#ga8319aa7921bdc742a9d0f95458e9cfe0) (const Eigen::Vector3f &x\_axis, const Eigen::Vector3f &y\_direction, Eigen::Affine3f &transformation) |
|  | Get the unique 3D rotation that will rotate *x\_axis* into (1,0,0) and *y\_direction* into a vector with z=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#ga8319aa7921bdc742a9d0f95458e9cfe0) |
|
| Eigen::Affine3f  | [pcl::getTransFromUnitVectorsXY](group__common#ga8933c653f39db3636bfbdd262278edcb) (const Eigen::Vector3f &x\_axis, const Eigen::Vector3f &y\_direction) |
|  | Get the unique 3D rotation that will rotate *x\_axis* into (1,0,0) and *y\_direction* into a vector with z=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#ga8933c653f39db3636bfbdd262278edcb) |
|
| void  | [pcl::getTransformationFromTwoUnitVectors](group__common#ga7d1f523f342ff69277f23ea9f02fc5a6) (const Eigen::Vector3f &y\_direction, const Eigen::Vector3f &z\_axis, Eigen::Affine3f &transformation) |
|  | Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#ga7d1f523f342ff69277f23ea9f02fc5a6) |
|
| Eigen::Affine3f  | [pcl::getTransformationFromTwoUnitVectors](group__common#gada89edf1699e05ecf7355738e9f56f6b) (const Eigen::Vector3f &y\_direction, const Eigen::Vector3f &z\_axis) |
|  | Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#gada89edf1699e05ecf7355738e9f56f6b) |
|
| void  | [pcl::getTransformationFromTwoUnitVectorsAndOrigin](group__common#ga4375e99ec2ae368eec9379f506568611) (const Eigen::Vector3f &y\_direction, const Eigen::Vector3f &z\_axis, const Eigen::Vector3f &origin, Eigen::Affine3f &transformation) |
|  | Get the transformation that will translate *origin* to (0,0,0) and rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) [More...](group__common#ga4375e99ec2ae368eec9379f506568611) |
|
| template<typename Scalar >  |
| void  | [pcl::getEulerAngles](group__common#ga637da495fec59c1c1d186aa6e3bac15b) (const Eigen::Transform< Scalar, 3, Eigen::Affine > &t, Scalar &roll, Scalar &pitch, Scalar &yaw) |
|  | Extract the Euler angles (intrinsic rotations, ZYX-convention) from the given transformation. [More...](group__common#ga637da495fec59c1c1d186aa6e3bac15b) |
|
| template<typename Scalar >  |
| void  | [pcl::getTranslationAndEulerAngles](group__common#ga3e52d439a979e71096f4dd50f1298f32) (const Eigen::Transform< Scalar, 3, Eigen::Affine > &t, Scalar &x, Scalar &y, Scalar &z, Scalar &roll, Scalar &pitch, Scalar &yaw) |
|  | Extract x,y,z and the Euler angles (intrinsic rotations, ZYX-convention) from the given transformation. [More...](group__common#ga3e52d439a979e71096f4dd50f1298f32) |
|
| template<typename Scalar >  |
| void  | [pcl::getTransformation](group__common#ga5cc746d1fd72f99fee462ed1a9e4abea) (Scalar x, Scalar y, Scalar z, Scalar roll, Scalar pitch, Scalar yaw, Eigen::Transform< Scalar, 3, Eigen::Affine > &t) |
|  | Create a transformation from the given translation and Euler angles (intrinsic rotations, ZYX-convention) [More...](group__common#ga5cc746d1fd72f99fee462ed1a9e4abea) |
|
| Eigen::Affine3f  | [pcl::getTransformation](group__common#gaf49a34180e337479ddeda21222882124) (float x, float y, float z, float roll, float pitch, float yaw) |
|  | Create a transformation from the given translation and Euler angles (intrinsic rotations, ZYX-convention) [More...](group__common#gaf49a34180e337479ddeda21222882124) |
|
| template<typename Derived >  |
| void  | [pcl::saveBinary](group__common#gacc18ebcacd806fd0c9336fe2f8b7208c) (const Eigen::MatrixBase< Derived > &matrix, std::ostream &file) |
|  | Write a matrix to an output stream. [More...](group__common#gacc18ebcacd806fd0c9336fe2f8b7208c) |
|
| template<typename Derived >  |
| void  | [pcl::loadBinary](group__common#ga5281205532955d384c8aa22ff4ff5e80) (Eigen::MatrixBase< Derived > const &matrix, std::istream &file) |
|  | Read a matrix from an input stream. [More...](group__common#ga5281205532955d384c8aa22ff4ff5e80) |
|
| bool  | [pcl::lineWithLineIntersection](group__common#ga4d365f5e3c7400a13c55d001ed76e35b) (const Eigen::VectorXf &line\_a, const Eigen::VectorXf &line\_b, Eigen::Vector4f &point, double sqr\_eps=1e-4) |
|  | Get the intersection of a two 3D lines in space as a 3D point. [More...](group__common#ga4d365f5e3c7400a13c55d001ed76e35b) |
|
| bool  | [pcl::lineWithLineIntersection](group__common#gaeee7c3cfcb96e3884199191a9c24f6f0) (const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &line\_a, const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &line\_b, Eigen::Vector4f &point, double sqr\_eps=1e-4) |
|  | Get the intersection of a two 3D lines in space as a 3D point. [More...](group__common#gaeee7c3cfcb96e3884199191a9c24f6f0) |
|
| int  | [pcl::getFieldIndex](group__common#ga2bc4b9a4e25de1d0b00db4e41f0ad682) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud, const std::string &field\_name) |
|  | Get the index of a specified field (i.e., dimension/channel) [More...](group__common#ga2bc4b9a4e25de1d0b00db4e41f0ad682) |
|
| template<typename PointT >  |
| int  | [pcl::getFieldIndex](group__common#ga21f637d9f7422a769448983af5fcbdeb) (const std::string &field\_name, std::vector< [pcl::PCLPointField](structpcl_1_1_p_c_l_point_field) > &fields) |
|  | Get the index of a specified field (i.e., dimension/channel) [More...](group__common#ga21f637d9f7422a769448983af5fcbdeb) |
|
| template<typename PointT >  |
| int  | [pcl::getFieldIndex](group__common#ga3c5daaf825f6cc4a3fb93a8544d6bdc4) (const std::string &field\_name, const std::vector< [pcl::PCLPointField](structpcl_1_1_p_c_l_point_field) > &fields) |
|  | Get the index of a specified field (i.e., dimension/channel) [More...](group__common#ga3c5daaf825f6cc4a3fb93a8544d6bdc4) |
|
| template<typename PointT >  |
| std::vector< [pcl::PCLPointField](structpcl_1_1_p_c_l_point_field) >  | [pcl::getFields](group__common#gac8788f010a13b19fc04d9dc2305fde22) () |
|  | Get the list of available fields (i.e., dimension/channel) [More...](group__common#gac8788f010a13b19fc04d9dc2305fde22) |
|
| template<typename PointT >  |
| std::string  | [pcl::getFieldsList](group__common#gaabed3f370d11ba5dc154d79e682d35b4) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud) |
|  | Get the list of all fields available in a given cloud. [More...](group__common#gaabed3f370d11ba5dc154d79e682d35b4) |
|
| std::string  | [pcl::getFieldsList](group__common#ga769f320a73865c3fe30cb96c0f932e76) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud) |
|  | Get the available point cloud fields as a space separated string. [More...](group__common#ga769f320a73865c3fe30cb96c0f932e76) |
|
| int  | [pcl::getFieldSize](group__common#ga83ff4ee40cd3c49c7500905f59f37536) (const int datatype) |
|  | Obtains the size of a specific field data type in bytes. [More...](group__common#ga83ff4ee40cd3c49c7500905f59f37536) |
|
| int  | [pcl::getFieldType](group__common#gac282d255323a916e942f85b7f16740e3) (const int size, char type) |
|  | Obtains the type of the [PCLPointField](structpcl_1_1_p_c_l_point_field) from a specific size and type. [More...](group__common#gac282d255323a916e942f85b7f16740e3) |
|
| char  | [pcl::getFieldType](group__common#gac4a4eaf1f19dd043252a0b93ac975a10) (const int type) |
|  | Obtains the type of the [PCLPointField](structpcl_1_1_p_c_l_point_field) from a specific [PCLPointField](structpcl_1_1_p_c_l_point_field) as a char. [More...](group__common#gac4a4eaf1f19dd043252a0b93ac975a10) |
|
| template<typename PointT >  |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::concatenate](group__common#gaeb52cf90499012944c9fa22a9f5b2996) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud1, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud2, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Concatenate two pcl::PointCloud<PointT> [More...](group__common#gaeb52cf90499012944c9fa22a9f5b2996) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::concatenate](group__common#gaa8f7e6227f4c26b09c2b3652650894dd) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud1, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud2, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_out) |
|  | Concatenate two [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2). [More...](group__common#gaa8f7e6227f4c26b09c2b3652650894dd) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::concatenate](group__common#gafc2f1eca95783c3d8d5a6104ae005efe) (const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh1, const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh2, [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &mesh\_out) |
|  | Concatenate two [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html). [More...](group__common#gafc2f1eca95783c3d8d5a6104ae005efe) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::copyPointCloud](group__common#ga11e4d41367cf18852d8aab9cc1e5391a) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_in, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#ga11e4d41367cf18852d8aab9cc1e5391a) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::copyPointCloud](group__common#ga6b2c400723fec337e2681bc86aefc18a) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_in, const [IndicesAllocator](https://pointclouds.org/documentation/namespacepcl.html#a61689ac607f746f728bb76bc14fe8ca4)< Eigen::aligned\_allocator< [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) > > &indices, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#ga6b2c400723fec337e2681bc86aefc18a) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [pcl::copyPointCloud](group__common#ga1c6c02fe197e0ea6ca249c46dda0e602) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_in, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_out) |
|  | Copy fields and point cloud data from *cloud\_in* to *cloud\_out*. [More...](group__common#ga1c6c02fe197e0ea6ca249c46dda0e602) |
|
| template<typename PointT , typename IndicesVectorAllocator >  |
| void  | [pcl::copyPointCloud](group__common#ga63889e8e562908917ec218b86ef826b4) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [IndicesAllocator](https://pointclouds.org/documentation/namespacepcl.html#a61689ac607f746f728bb76bc14fe8ca4)< IndicesVectorAllocator > &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#ga63889e8e562908917ec218b86ef826b4) |
|
| template<typename PointT >  |
| void  | [pcl::copyPointCloud](group__common#ga44ece0c2faffdb26cd75417200454577) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [PointIndices](structpcl_1_1_point_indices) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#ga44ece0c2faffdb26cd75417200454577) |
|
| template<typename PointT >  |
| void  | [pcl::copyPointCloud](group__common#gaafe5bf1194ffaad83a2fc04cde6b20e4) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#gaafe5bf1194ffaad83a2fc04cde6b20e4) |
|
| template<typename PointInT , typename PointOutT >  |
| void  | [pcl::copyPointCloud](group__common#gaff182bca8d0295d727baaa1fd368c6ad) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &cloud\_out) |
|  | Copy all the fields from a given point cloud into a new point cloud. [More...](group__common#gaff182bca8d0295d727baaa1fd368c6ad) |
|
| template<typename PointInT , typename PointOutT , typename IndicesVectorAllocator >  |
| void  | [pcl::copyPointCloud](group__common#ga5c154414777ed872edea44560502922e) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud\_in, const [IndicesAllocator](https://pointclouds.org/documentation/namespacepcl.html#a61689ac607f746f728bb76bc14fe8ca4)< IndicesVectorAllocator > &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#ga5c154414777ed872edea44560502922e) |
|
| template<typename PointInT , typename PointOutT >  |
| void  | [pcl::copyPointCloud](group__common#ga67ab079e174e900e6e0b235fb88d7160) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud\_in, const [PointIndices](structpcl_1_1_point_indices) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#ga67ab079e174e900e6e0b235fb88d7160) |
|
| template<typename PointInT , typename PointOutT >  |
| void  | [pcl::copyPointCloud](group__common#gaa5ab28ac738a42a65f9f2033d6b33252) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud\_in, const std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &cloud\_out) |
|  | Extract the indices of a given point cloud as a new point cloud. [More...](group__common#gaa5ab28ac738a42a65f9f2033d6b33252) |
|
| template<typename PointT >  |
| void  | [pcl::copyPointCloud](group__common#ga4d12b955edd61947ed984e46d65b0046) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, int top, int bottom, int left, int right, [pcl::InterpolationType](https://pointclouds.org/documentation/namespacepcl.html#a223710941333ffcbfd147e4f4c9a1485) border\_type, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &value) |
|  | Copy a point cloud inside a larger one interpolating borders. [More...](group__common#ga4d12b955edd61947ed984e46d65b0046) |
|
| template<typename PointIn1T , typename PointIn2T , typename PointOutT >  |
| void  | [pcl::concatenateFields](group__common#gac6add803f86fd16a998dce541e9ef402) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointIn1T > &cloud1\_in, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointIn2T > &cloud2\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &cloud\_out) |
|  | Concatenate two datasets representing different fields. [More...](group__common#gac6add803f86fd16a998dce541e9ef402) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::concatenateFields](group__common#gac54f3a282986844fc7a804242504461e) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud1\_in, const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud2\_in, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &cloud\_out) |
|  | Concatenate two datasets representing different fields. [More...](group__common#gac54f3a282986844fc7a804242504461e) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::getPointCloudAsEigen](group__common#ga6d121a64a02046c1c38485ea1fad953e) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &in, Eigen::MatrixXf &out) |
|  | Copy the XYZ dimensions of a [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) into [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) format. [More...](group__common#ga6d121a64a02046c1c38485ea1fad953e) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [pcl::getEigenAsPointCloud](group__common#ga7a91d95901fcbac4a753a4212cfbf221) (Eigen::MatrixXf &in, [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &out) |
|  | Copy the XYZ dimensions from an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf into a [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) message. [More...](group__common#ga7a91d95901fcbac4a753a4212cfbf221) |
|
| template<std::size\_t N>  |
| void  | [pcl::io::swapByte](group__common#ga4bb19421457db739a96fe4eacf620139) (char \*bytes) |
|  | swap bytes order of a char array of length N [More...](group__common#ga4bb19421457db739a96fe4eacf620139) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::selectNorm](group__common#ga047d812778a099ab333c847342c4b6bf) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim, [NormType](group__common#ga9d37f00989a9de11b48deb263649463c) norm\_type) |
|  | Method that calculates any norm type available, based on the norm\_type variable. [More...](group__common#ga047d812778a099ab333c847342c4b6bf) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::L1\_Norm](group__common#ga61d1e988b461de40a26b4e4e9e93ce55) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the L1 norm of the vector between two points. [More...](group__common#ga61d1e988b461de40a26b4e4e9e93ce55) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::L2\_Norm\_SQR](group__common#gaf034c4bca3fc85c1e6d27d893c2936a5) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the squared L2 norm of the vector between two points. [More...](group__common#gaf034c4bca3fc85c1e6d27d893c2936a5) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::L2\_Norm](group__common#ga70456fbb6c67cf3c1229e19c831b30ac) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the L2 norm of the vector between two points. [More...](group__common#ga70456fbb6c67cf3c1229e19c831b30ac) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::Linf\_Norm](group__common#ga63fded8c9593744836d761940cab9350) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the L-infinity norm of the vector between two points. [More...](group__common#ga63fded8c9593744836d761940cab9350) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::JM\_Norm](group__common#ga45baeaeb21308cd128a7c44ab786552c) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the JM norm of the vector between two points. [More...](group__common#ga45baeaeb21308cd128a7c44ab786552c) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::B\_Norm](group__common#ga0eb2818b6fa817f3ada41296793283a1) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the B norm of the vector between two points. [More...](group__common#ga0eb2818b6fa817f3ada41296793283a1) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::Sublinear\_Norm](group__common#gac986c55a5b8850fec89cd26c46303747) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the sublinear norm of the vector between two points. [More...](group__common#gac986c55a5b8850fec89cd26c46303747) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::CS\_Norm](group__common#ga7e43f6ae7f0607bfdedaea512c510ff8) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the CS norm of the vector between two points. [More...](group__common#ga7e43f6ae7f0607bfdedaea512c510ff8) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::Div\_Norm](group__common#gae8b5c722d30c22652327a1481528224e) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the div norm of the vector between two points. [More...](group__common#gae8b5c722d30c22652327a1481528224e) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::PF\_Norm](group__common#gaf977fbc818d41de61285d1da0521991a) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim, float P1, float P2) |
|  | Compute the PF norm of the vector between two points. [More...](group__common#gaf977fbc818d41de61285d1da0521991a) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::K\_Norm](group__common#ga4df86a6dafef9778fb8df865ad54e28f) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim, float P1, float P2) |
|  | Compute the K norm of the vector between two points. [More...](group__common#ga4df86a6dafef9778fb8df865ad54e28f) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::KL\_Norm](group__common#ga186a26b9face0cfb0fea3d6eb37f909b) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the KL between two discrete probability density functions. [More...](group__common#ga186a26b9face0cfb0fea3d6eb37f909b) |
|
| template<typename FloatVectorT >  |
| float  | [pcl::HIK\_Norm](group__common#ga86297c76ef1756ff1db90d8e39c14fa3) (FloatVectorT A, FloatVectorT [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), int dim) |
|  | Compute the HIK norm of the vector between two points. [More...](group__common#ga86297c76ef1756ff1db90d8e39c14fa3) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#ga52d532f7f2b4d7bba78d13701d3a33d8) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Transform< Scalar, 3, Eigen::Affine > &transform, bool copy\_all\_fields=true) |
|  | Apply an affine transform defined by an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Transform. [More...](group__common#ga52d532f7f2b4d7bba78d13701d3a33d8) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#ga938b05611e2f2cfa64839852b4d69df8) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Transform< Scalar, 3, Eigen::Affine > &transform, bool copy\_all\_fields=true) |
|  | Apply an affine transform defined by an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Transform. [More...](group__common#ga938b05611e2f2cfa64839852b4d69df8) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#gaa9afb23505913d26d9a1f06242d8eefa) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Transform< Scalar, 3, Eigen::Affine > &transform, bool copy\_all\_fields=true) |
|  | Apply an affine transform defined by an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Transform. [More...](group__common#gaa9afb23505913d26d9a1f06242d8eefa) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#gac841d05d13c925f3a3a8090d9d7ff24d) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy\_all\_fields=true) |
|  | Apply a rigid transform defined by a 4x4 matrix. [More...](group__common#gac841d05d13c925f3a3a8090d9d7ff24d) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#ga69421534f84d8c43314da4753e01b825) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy\_all\_fields=true) |
|  | Apply a rigid transform defined by a 4x4 matrix. [More...](group__common#ga69421534f84d8c43314da4753e01b825) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#ga033e051c786ec84f52598ab711a74a4e) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy\_all\_fields=true) |
|  | Apply a rigid transform defined by a 4x4 matrix. [More...](group__common#ga033e051c786ec84f52598ab711a74a4e) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloudWithNormals](group__common#ga01dcf9e24dec3109a0c8a8b8f2e24bcc) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy\_all\_fields=true) |
|  | Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. [More...](group__common#ga01dcf9e24dec3109a0c8a8b8f2e24bcc) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloudWithNormals](group__common#ga8602e00dcd5398692bc0582db76e1ef3) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy\_all\_fields=true) |
|  | Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. [More...](group__common#ga8602e00dcd5398692bc0582db76e1ef3) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloudWithNormals](group__common#ga3a78021ef33dad9e3d44e6275768760b) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, const [pcl::PointIndices](structpcl_1_1_point_indices) &indices, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy\_all\_fields=true) |
|  | Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. [More...](group__common#ga3a78021ef33dad9e3d44e6275768760b) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloud](group__common#gaff524851ffbcbefdbef2277134382906) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 3, 1 > &offset, const Eigen::Quaternion< Scalar > &rotation, bool copy\_all\_fields=true) |
|  | Apply a rigid transform defined by a 3D offset and a quaternion. [More...](group__common#gaff524851ffbcbefdbef2277134382906) |
|
| template<typename PointT , typename Scalar >  |
| void  | [pcl::transformPointCloudWithNormals](group__common#ga1d67c0cd4ebb26d770c338d93884974a) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out, const Eigen::Matrix< Scalar, 3, 1 > &offset, const Eigen::Quaternion< Scalar > &rotation, bool copy\_all\_fields=true) |
|  | Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. [More...](group__common#ga1d67c0cd4ebb26d770c338d93884974a) |
|
| void  | [pcl::transformPointCloud](group__common#gaf70f429594d4d23700cf97875eef3e73) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointXY](structpcl_1_1_point_x_y) > &cloud\_in, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointXY](structpcl_1_1_point_x_y) > &cloud\_out, const Eigen::Affine2f &transform, bool copy\_all\_fields=true) |
|  | Apply an affine transform on a pointcloud having points of type [PointXY](structpcl_1_1_point_x_y "A 2D point structure representing Euclidean xy coordinates."). [More...](group__common#gaf70f429594d4d23700cf97875eef3e73) |
|
| template<typename PointT , typename Scalar >  |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) | [pcl::transformPoint](group__common#ga1bd2c5ea1258af3a45483dd1341aa429) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, const Eigen::Transform< Scalar, 3, Eigen::Affine > &transform) |
|  | Transform a point with members x,y,z. [More...](group__common#ga1bd2c5ea1258af3a45483dd1341aa429) |
|
| template<typename PointT , typename Scalar >  |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) | [pcl::transformPointWithNormal](group__common#ga6eddef43d5bd5211fcbd774c87962314) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, const Eigen::Transform< Scalar, 3, Eigen::Affine > &transform) |
|  | Transform a point with members x,y,z,normal\_x,normal\_y,normal\_z. [More...](group__common#ga6eddef43d5bd5211fcbd774c87962314) |
|
| bool  | [pcl::isBetterCorrespondence](group__common#ga9683d853583c45c7bc4da676bc46ec7d) (const [Correspondence](structpcl_1_1_correspondence) &pc1, const [Correspondence](structpcl_1_1_correspondence) &pc2) |
|  | [Comparator](classpcl_1_1_comparator "Comparator is the base class for comparators that compare two points given some function.") to enable us to sort a vector of PointCorrespondences according to their scores using std::sort (begin(), end(), isBetterCorrespondence);. [More...](group__common#ga9683d853583c45c7bc4da676bc46ec7d) |
|

 Macro Definition Documentation
------------------------------

  PCL\_FALLTHROUGH
----------------

   

|  |
| --- |
| #define PCL\_FALLTHROUGH |

 
 `#include <[pcl/pcl\_macros.h](https://pointclouds.org/documentation/pcl__macros_8h.html)>`

 Macro to add a no-op or a fallthrough attribute based on compiler feature. 

 Definition at line [433](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00433) of file [pcl\_macros.h](https://pointclouds.org/documentation/pcl__macros_8h_source.html).

    PCL\_MAKE\_ALIGNED\_OPERATOR\_NEW
---------------------------------

   

|  |
| --- |
| #define PCL\_MAKE\_ALIGNED\_OPERATOR\_NEW |

 
 `#include <[pcl/memory.h](https://pointclouds.org/documentation/memory_8h.html)>`

 **Value:**
```
 EIGEN_MAKE_ALIGNED_OPERATOR_NEW \
 using _custom_allocator_type_trait = void;

```
 Macro to signal a class requires a custom allocator. 

 It's an implementation detail to have [pcl::has\_custom\_allocator](structpcl_1_1has__custom__allocator "Tests at compile time if type T has a custom allocator.") work, a thin wrapper over [Eigen](https://pointclouds.org/documentation/namespace_eigen.html)'s own macro

 
See also

[pcl::has\_custom\_allocator](structpcl_1_1has__custom__allocator "Tests at compile time if type T has a custom allocator."), [pcl::make\_shared](https://pointclouds.org/documentation/namespacepcl.html#abf0472aa62fb36ea477ef66c191c8626 "Returns a pcl::shared_ptr compliant with type T's allocation policy.") 
 Definition at line [63](https://pointclouds.org/documentation/memory_8h_source.html#l00063) of file [memory.h](https://pointclouds.org/documentation/memory_8h_source.html).

   Typedef Documentation
---------------------

  BorderTraits
------------

   

|  |
| --- |
| using [pcl::BorderTraits](group__common#gafb2b6757a09f69abeb6795cc0956acbf) = typedef std::bitset<32> |

 
 `#include <[pcl/point\_types.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h.html)>`

 Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for [BorderDescription::traits](structpcl_1_1_border_description#a48b78318ec7151ebca3d61a47891470c). 

 Definition at line [307](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00307) of file [point\_types.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html).

   Enumeration Type Documentation
------------------------------

  BorderTrait
-----------

   

|  |
| --- |
| enum [pcl::BorderTrait](group__common#ga7b4e0dcfd710e4c96737e6012b318e8b) |

 
 `#include <[pcl/point\_types.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h.html)>`

 Specification of the fields for [BorderDescription::traits](structpcl_1_1_border_description#a48b78318ec7151ebca3d61a47891470c). 

 

| Enumerator |
| --- |
| BORDER\_TRAIT\_\_OBSTACLE\_BORDER  |  |
| BORDER\_TRAIT\_\_SHADOW\_BORDER  |  |
| BORDER\_TRAIT\_\_VEIL\_POINT  |  |
| BORDER\_TRAIT\_\_SHADOW\_BORDER\_TOP  |  |
| BORDER\_TRAIT\_\_SHADOW\_BORDER\_RIGHT  |  |
| BORDER\_TRAIT\_\_SHADOW\_BORDER\_BOTTOM  |  |
| BORDER\_TRAIT\_\_SHADOW\_BORDER\_LEFT  |  |
| BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_TOP  |  |
| BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_RIGHT  |  |
| BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_BOTTOM  |  |
| BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_LEFT  |  |
| BORDER\_TRAIT\_\_VEIL\_POINT\_TOP  |  |
| BORDER\_TRAIT\_\_VEIL\_POINT\_RIGHT  |  |
| BORDER\_TRAIT\_\_VEIL\_POINT\_BOTTOM  |  |
| BORDER\_TRAIT\_\_VEIL\_POINT\_LEFT  |  |

 Definition at line [312](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00312) of file [point\_types.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html).

    NormType
--------

   

|  |
| --- |
| enum [pcl::NormType](group__common#ga9d37f00989a9de11b48deb263649463c) |

 
 `#include <[pcl/common/norms.h](https://pointclouds.org/documentation/norms_8h.html)>`

 Enum that defines all the types of norms available. 

 
Note
Any new norm type should have its own enum value and its own case in the selectNorm () method 
 

| Enumerator |
| --- |
| L1  |  |
| L2\_SQR  |  |
| L2  |  |
| LINF  |  |
| JM  |  |
| B  |  |
| SUBLINEAR  |  |
| CS  |  |
| DIV  |  |
| PF  |  |
| K  |  |
| KL  |  |
| HIK  |  |

 Definition at line [54](https://pointclouds.org/documentation/norms_8h_source.html#l00054) of file [norms.h](https://pointclouds.org/documentation/norms_8h_source.html).

   Function Documentation
----------------------

  B\_Norm()
---------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::B\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the B norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [140](https://pointclouds.org/documentation/norms_8hpp_source.html#l00140) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    calculatePolygonArea()
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::calculatePolygonArea  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *polygon* | ) |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Calculate the area of a polygon given a point cloud that defines the polygon. 

 
Parameters
 

|  |  |
| --- | --- |
| polygon | point cloud that contains those vertices that comprises the polygon. [Vertices](structpcl_1_1_vertices "Describes a set of vertices in a polygon mesh, by basically storing an array of indices.") are stored in counterclockwise.  |

   
Returns
the polygon area 
 Definition at line [414](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00414) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    compute3DCentroid() [1/4]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::compute3DCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [out] | centroid | the output centroid  |

   
Returns
number of valid points used to determine the centroid. In case of dense point clouds, this is the same as the size of input indices. 
 
Note
if return value is 0, the centroid is not changed, thus not valid. The last component of the vector is set to 1, this allows to transform the centroid vector with 4x4 matrices. 
 Definition at line [136](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00136) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    compute3DCentroid() [2/4]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::compute3DCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [out] | centroid | the output centroid  |

   
Returns
number of valid points used to determine the centroid. In case of dense point clouds, this is the same as the size of input indices. 
 
Note
if return value is 0, the centroid is not changed, thus not valid. The last component of the vector is set to 1, this allows to transform the centroid vector with 4x4 matrices. 
 Definition at line [182](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00182) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00056), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    compute3DCentroid() [3/4]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::compute3DCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [out] | centroid | the output centroid  |

   
Returns
number of valid points used to determine the centroid. In case of dense point clouds, this is the same as the size of input cloud. 
 
Note
if return value is 0, the centroid is not changed, thus not valid. The last component of the vector is set to 1, this allows to transform the centroid vector with 4x4 matrices. 
 Definition at line [88](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00088) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::empty()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    compute3DCentroid() [4/4]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::compute3DCentroid  | ( | [ConstCloudIterator](classpcl_1_1_const_cloud_iterator)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_iterator*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_iterator | an iterator over the input point cloud  |
| [out] | centroid | the output centroid  |

   
Returns
number of valid points used to determine the centroid. In case of dense point clouds, this is the same as the size of input cloud. 
 
Note
if return value is 0, the centroid is not changed, thus not valid. The last component of the vector is set to 1, this allows to transform the centroid vector with 4x4 matrices. 
 Definition at line [56](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00056) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [pcl::ConstCloudIterator< PointT >::isValid()](https://pointclouds.org/documentation/cloud__iterator_8hpp_source.html#l00547).

 Referenced by [pcl::gpu::people::buildTree()](https://pointclouds.org/documentation/label__tree_8h_source.html#l00605), [pcl::ConvexHull< PointInT >::calculateInputDimension()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00057), [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00182), [pcl::MLSResult::computeMLSSurface()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00690), [pcl::MomentInvariantsEstimation< PointInT, PointOutT >::computePointMomentInvariants()](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html#l00049), [pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__2_d_8hpp_source.html#l00125), [pcl::registration::TransformationEstimation3Point< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__3point_8hpp_source.html#l00135), [pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::linkMatchWithBase()](https://pointclouds.org/documentation/ia__fpcs_8hpp_source.html#l00779), [pcl::SampleConsensusModelLine< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00203), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::ESFEstimation< PointInT, PointOutT >::scale\_points\_unit\_sphere()](https://pointclouds.org/documentation/esf_8hpp_source.html#l00481), and [pcl::gpu::people::label\_skeleton::sortIndicesToBlob2()](https://pointclouds.org/documentation/label__segment_8h_source.html#l00331).

    computeCentroid() [1/2]
-----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| std::size\_t pcl::computeCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | PointOutT &  | *centroid* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the centroid of a set of points and return it as a point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud |  |
| [in] | indices | point cloud indices that need to be used  |
| [out] | centroid | This is an overloaded function provided for convenience. See the documentation for [computeCentroid()](group__common#ga24ba1c9605f3bb1e3063e30fa04857c2 "Compute the centroid of a set of points and return it as a point.").  |

   Definition at line [936](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00936) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computeCentroid() [2/2]
-----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| std::size\_t pcl::computeCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | PointOutT &  | *centroid* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the centroid of a set of points and return it as a point. 

 Implementation leverages [CentroidPoint](classpcl_1_1_centroid_point) class and therefore behaves differently from [compute3DCentroid()](group__common#gaf5729fae15603888b49743b118025290) and [computeNDCentroid()](group__common#ga4d047d6f7b50a2d81306cc59ac927179). See [CentroidPoint](classpcl_1_1_centroid_point) documentation for explanation.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | input point cloud  |
| [out] | centroid | output centroid |

   
Returns
number of valid points used to determine the centroid (will be the same as the size of the cloud if it is dense)
 
Note
If return value is `0`, then the centroid is not changed, thus is not valid. 
 Definition at line [917](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00917) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computeCorrespondingEigenVector()
---------------------------------

    template<typename Matrix , typename Vector >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::computeCorrespondingEigenVector  | ( | const Matrix &  | *mat*,  |
|  |  | const typename Matrix::Scalar &  | *eigenvalue*,  |
|  |  | Vector &  | *eigenvector* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 determines the corresponding eigenvector to the given eigenvalue of the symmetric positive semi definite input matrix 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mat | symmetric positive semi definite input matrix  |
| [in] | eigenvalue | the eigenvalue which corresponding eigenvector is to be computed  |
| [out] | eigenvector | the corresponding eigenvector for the input eigenvalue  |

   Definition at line [226](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00226) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 Referenced by [pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computePointPrincipalCurvatures()](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html#l00050), [pcl::SampleConsensusModelLine< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00203), and [pcl::SampleConsensusModelStick< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00249).

    computeCovarianceMatrix() [1/6]
-------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3x3 covariance matrix of a given set of points. 

 The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeCovarianceMatrixNormalized. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud. 
 
Note
if return value is 0, the covariance matrix is not changed, thus not valid. 
 Definition at line [191](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::empty()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::CovarianceSampling< PointT, PointNT >::applyFilter()](https://pointclouds.org/documentation/covariance__sampling_8hpp_source.html#l00131), [pcl::MomentOfInertiaEstimation< PointT >::compute()](https://pointclouds.org/documentation/moment__of__inertia__estimation_8hpp_source.html#l00134), [pcl::CovarianceSampling< PointT, PointNT >::computeConditionNumber()](https://pointclouds.org/documentation/covariance__sampling_8hpp_source.html#l00086), [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00357), [pcl::computeCovarianceMatrixNormalized()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00268), [pcl::MLSResult::computeMLSSurface()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00690), and [pcl::SampleConsensusModelLine< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00203).

    computeCovarianceMatrix() [2/6]
-------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3x3 covariance matrix of a given set of points using their indices. 

 The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeCovarianceMatrixNormalized. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [in] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [280](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00280) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computeCovarianceMatrix() [3/6]
-------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. 

 Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitly the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function. 



Note
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | subset of points given by their indices  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [445](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00445) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computeCovarianceMatrix() [4/6]
-------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the 3x3 covariance matrix of a given set of points using their indices. 

 The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeCovarianceMatrixNormalized. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [in] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [357](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00357) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    computeCovarianceMatrix() [5/6]
-------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. 

 Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitly the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function. 



Note
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | subset of points given by their indices  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [499](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00499) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    computeCovarianceMatrix() [6/6]
-------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. 

 Normalized means that every entry has been divided by the number of entries in the input point cloud. For small number of points, or if you want explicitly the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function. 



Note
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud. 
 Definition at line [391](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00391) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    computeCovarianceMatrixNormalized() [1/3]
-----------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrixNormalized  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute normalized the 3x3 covariance matrix of a given set of points. 

 The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of points in the point cloud. For small number of points, or if you want explicitly the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud. 
 Definition at line [268](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00268) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191).

 Referenced by [pcl::gpu::people::buildTree()](https://pointclouds.org/documentation/label__tree_8h_source.html#l00605), [pcl::ConvexHull< PointInT >::calculateInputDimension()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00057), [pcl::computeCovarianceMatrixNormalized()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00381), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), and [pcl::gpu::people::label\_skeleton::sortIndicesToBlob2()](https://pointclouds.org/documentation/label__segment_8h_source.html#l00331).

    computeCovarianceMatrixNormalized() [2/3]
-----------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrixNormalized  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix of a given set of points using their indices. 

 The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitly the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [in] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [367](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00367) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191).

    computeCovarianceMatrixNormalized() [3/3]
-----------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeCovarianceMatrixNormalized  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix of a given set of points using their indices. 

 The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitly the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [in] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [381](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00381) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeCovarianceMatrixNormalized()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00268), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    computeMeanAndCovarianceMatrix() [1/3]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeMeanAndCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. 

 Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitly the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function. 



Note
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | subset of points given by their indices  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |
| [out] | centroid | the centroid of the set of points in the cloud  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [580](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00580) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::K](https://pointclouds.org/documentation/norms_8h_source.html#l00054), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    computeMeanAndCovarianceMatrix() [2/3]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeMeanAndCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. 

 Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitly the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function. 



Note
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | subset of points given by their indices  |
| [out] | centroid | the centroid of the set of points in the cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input indices. 
 Definition at line [653](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00653) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    computeMeanAndCovarianceMatrix() [3/3]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| unsigned int pcl::computeMeanAndCovarianceMatrix  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Matrix< Scalar, 3, 3 > &  | *covariance\_matrix*,  |
|  |  | Eigen::Matrix< Scalar, 4, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. 

 Normalized means that every entry has been divided by the number of valid entries in the point cloud. For small number of points, or if you want explicitly the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function. 



Note
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [out] | covariance\_matrix | the resultant 3x3 covariance matrix  |
| [out] | centroid | the centroid of the set of points in the cloud  |

   
Returns
number of valid points used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud. 
 Definition at line [508](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::K](https://pointclouds.org/documentation/norms_8h_source.html#l00054), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00653), [pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00284), [pcl::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00061), [pcl::SampleConsensusModelRegistration< PointT >::computeSampleDistanceThreshold()](https://pointclouds.org/documentation/sac__model__registration_8h_source.html#l00233), [pcl::getPrincipalTransformation()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00495), [pcl::GridProjection< PointNT >::getProjectionWithPlaneFit()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00312), [pcl::isPointIn2DPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00048), [pcl::SampleConsensusModelPlane< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00342), [pcl::SampleConsensusModelStick< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00249), [pcl::ExtractPolygonalPrismData< PointT >::segment()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00149), and [pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segment()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00083).

    computeMedian()
---------------

    template<typename IteratorT , typename Functor >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| auto pcl::computeMedian  | ( | IteratorT  | *begin*,  |
|  |  | IteratorT  | *end*,  |
|  |  | [Functor](structpcl_1_1_functor) | *f* |
|  | ) |  |  -> std::result\_of\_t<[Functor](structpcl_1_1_functor)(decltype(\*begin))>  |

 | inlinenoexcept |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Compute the median of a list of values (fast). 

 If the number of values is even, take the mean of the two middle values. This function can be used like this: 



```
std::vector<double> vector{1.0, 25.0, 9.0, 4.0, 16.0};
const double median = pcl::computeMedian (vector.begin (), vector.end (), static_cast<double(*)(double)>(std::sqrt)); // = 3
pcl::computeMedianauto computeMedian(IteratorT begin, IteratorT end, Functor f) noexcept -> std::result_of_t< Functor(decltype(*begin))>Compute the median of a list of values (fast).Definition: common.h:285
pcl::computeMedian
auto computeMedian(IteratorT begin, IteratorT end, Functor f) noexcept -> std::result_of_t< Functor(decltype(*begin))>
Compute the median of a list of values (fast).
Definition: common.h:285

```
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in,out] | begin,end | Iterators that mark the beginning and end of the value range. These values will be reordered!  |
| [in] | f | A lamda, function pointer, or similar that is implicitly applied to all values before median computation. In reality, it will be applied lazily (i.e. at most twice) and thus may not change the sorting order (e.g. monotonic functions like sqrt are allowed)  |

   
Returns
the median 
 Definition at line [285](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h_source.html#l00285) of file [common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

 Referenced by [pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedian()](https://pointclouds.org/documentation/mlesac_8hpp_source.html#l00261), [pcl::computeMedian()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h_source.html#l00309), [pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedianAbsoluteDeviation()](https://pointclouds.org/documentation/mlesac_8hpp_source.html#l00212), and [pcl::LeastMedianSquares< PointT >::computeModel()](https://pointclouds.org/documentation/lmeds_8hpp_source.html#l00049).

    computeNDCentroid() [1/3]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::computeNDCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 General, all purpose nD centroid estimation for a set of points using their indices. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| indices | the point cloud indices that need to be used  |
| centroid | the output centroid  |

   Definition at line [863](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00863) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

    computeNDCentroid() [2/3]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::computeNDCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 General, all purpose nD centroid estimation for a set of points using their indices. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| indices | the point cloud indices that need to be used  |
| centroid | the output centroid  |

   Definition at line [886](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00886) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::computeNDCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00841), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    computeNDCentroid() [3/3]
-------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::computeNDCentroid  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &  | *centroid* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 General, all purpose nD centroid estimation for a set of points using their indices. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| centroid | the output centroid  |

   Definition at line [841](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00841) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::empty()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::computeNDCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00886).

    concatenate() [1/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::concatenate  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud1*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud2*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_out* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Concatenate two [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2). 

 
Warning
This function will concatenate IFF the non-skip fields are in the correct order and same in number. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud1 | the first input point cloud dataset  |
| [in] | cloud2 | the second input point cloud dataset  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Returns
true if successful, false otherwise 
 Definition at line [291](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00291) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PCLPointCloud2::concatenate()](structpcl_1_1_p_c_l_point_cloud2#a7346aad6c08fcbd799f87f9676e5e0a1).

    concatenate() [2/3]
-------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::concatenate  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud1*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud2*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Concatenate two pcl::PointCloud<PointT> 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud1 | the first input point cloud dataset  |
| [in] | cloud2 | the second input point cloud dataset  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Returns
true if successful, false otherwise 
 Definition at line [273](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00273) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231).

 Referenced by [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00248), [pcl::PCLPointCloud2::concatenate()](https://pointclouds.org/documentation/_p_c_l_point_cloud2_8h_source.html#l00064), [pcl::PolygonMesh::concatenate()](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00066), [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::insertRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00510), [pcl::PointCloud< PointT >::operator+=()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00214), [pcl::PolygonMesh::operator+=()](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00079), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l01370), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes\_subsample()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l01559), and [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::read()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00575).

    concatenate() [3/3]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::concatenate  | ( | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh1*,  |
|  |  | const [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh2*,  |
|  |  | [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html) &  | *mesh\_out* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Concatenate two [pcl::PolygonMesh](https://pointclouds.org/documentation/structpcl_1_1_polygon_mesh.html). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mesh1 | the first input mesh  |
| [in] | mesh2 | the second input mesh  |
| [out] | mesh\_out | the resultant output mesh  |

   
Returns
true if successful, false otherwise 
 Definition at line [306](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00306) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PolygonMesh::concatenate()](https://pointclouds.org/documentation/_polygon_mesh_8h_source.html#l00030).

    concatenateFields() [1/2]
-------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::concatenateFields  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud1\_in*,  |
|  |  | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud2\_in*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Concatenate two datasets representing different fields. 

 
Note
If the input datasets have overlapping fields (i.e., both contain the same fields), then the data in the second cloud (cloud2\_in) will overwrite the data in the first (cloud1\_in).
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud1\_in | the first input dataset  |
| [in] | cloud2\_in | the second input dataset (overwrites the fields of the first dataset for those that are shared)  |
| [out] | cloud\_out | the output dataset created by concatenating all the fields in the input datasets  |

      concatenateFields() [2/2]
-------------------------

    template<typename PointIn1T , typename PointIn2T , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::concatenateFields  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointIn1T > &  | *cloud1\_in*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointIn2T > &  | *cloud2\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Concatenate two datasets representing different fields. 

 
Note
If the input datasets have overlapping fields (i.e., both contain the same fields), then the data in the second cloud (cloud2\_in) will overwrite the data in the first (cloud1\_in).
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud1\_in | the first input dataset  |
| [in] | cloud2\_in | the second input dataset (overwrites the fields of the first dataset for those that are shared)  |
| [out] | cloud\_out | the resultant output dataset created by the concatenation of all the fields in the input datasets  |

   Definition at line [303](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    copyPoint()
-----------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPoint  | ( | const PointInT &  | *point\_in*,  |
|  |  | PointOutT &  | *point\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/copy_point.h>`

 Copy the fields of a source point into a target point. 

 If the source and the target point types are the same, then a complete copy is made. Otherwise only those fields that the two point types share in common are copied.

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point\_in | the source point  |
| [out] | point\_out | the target point  |

   Definition at line [137](https://pointclouds.org/documentation/copy__point_8hpp_source.html#l00137) of file [copy\_point.hpp](https://pointclouds.org/documentation/copy__point_8hpp_source.html).

 Referenced by [pcl::ConditionalRemoval< PointT >::applyFilter()](https://pointclouds.org/documentation/conditional__removal_8hpp_source.html#l00625), [pcl::FilterIndices< PointT >::applyFilter()](https://pointclouds.org/documentation/filter__indices_8hpp_source.html#l00077), [pcl::MovingLeastSquares< PointInT, PointOutT >::copyMissingFields()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00864), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00188), [pcl::detail::copyPointCloudMemcpy()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00122), [pcl::registration::CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar >::determineCorrespondences()](https://pointclouds.org/documentation/correspondence__estimation__backprojection_8hpp_source.html#l00069), [pcl::registration::CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar >::determineCorrespondences()](https://pointclouds.org/documentation/correspondence__estimation__normal__shooting_8hpp_source.html#l00069), [pcl::registration::CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar >::determineReciprocalCorrespondences()](https://pointclouds.org/documentation/correspondence__estimation__backprojection_8hpp_source.html#l00168), [pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar >::determineReciprocalCorrespondences()](https://pointclouds.org/documentation/correspondence__estimation_8hpp_source.html#l00174), [pcl::registration::CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar >::determineReciprocalCorrespondences()](https://pointclouds.org/documentation/correspondence__estimation__normal__shooting_8hpp_source.html#l00178), [pcl::gpu::extractEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__clusters_8hpp_source.html#l00057), [pcl::search::Search< PointT >::nearestKSearchT()](https://pointclouds.org/documentation/search_8h_source.html#l00157), [pcl::KdTree< PointT >::nearestKSearchT()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00172), [pcl::KdTree< PointT >::radiusSearchT()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00262), and [pcl::search::Search< PointT >::radiusSearchT()](https://pointclouds.org/documentation/search_8h_source.html#l00285).

    copyPointCloud() [1/11]
-----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::copyPointCloud  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_in*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the vector of indices representing the points to be copied from *cloud\_in* |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
    copyPointCloud() [2/11]
-----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::copyPointCloud  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_in*,  |
|  |  | const [IndicesAllocator](https://pointclouds.org/documentation/namespacepcl.html#a61689ac607f746f728bb76bc14fe8ca4)< Eigen::aligned\_allocator< [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) > > &  | *indices*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the vector of indices representing the points to be copied from *cloud\_in* |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
    copyPointCloud() [3/11]
-----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::copyPointCloud  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_in*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Copy fields and point cloud data from *cloud\_in* to *cloud\_out*. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

      copyPointCloud() [4/11]
-----------------------

    template<typename PointInT , typename PointOutT , typename IndicesVectorAllocator >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud\_in*,  |
|  |  | const [IndicesAllocator](https://pointclouds.org/documentation/namespacepcl.html#a61689ac607f746f728bb76bc14fe8ca4)< IndicesVectorAllocator > &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the vector of indices representing the points to be copied from *cloud\_in* |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
 Definition at line [188](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00188) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::copyPoint()](https://pointclouds.org/documentation/copy__point_8hpp_source.html#l00137), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    copyPointCloud() [5/11]
-----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud\_in*,  |
|  |  | const [PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the [PointIndices](structpcl_1_1_point_indices) structure representing the points to be copied from cloud\_in  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
 Definition at line [217](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00217) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    copyPointCloud() [6/11]
-----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud\_in*,  |
|  |  | const std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the vector of indices representing the points to be copied from cloud\_in  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
 Definition at line [265](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00265) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::copyPoint()](https://pointclouds.org/documentation/copy__point_8hpp_source.html#l00137), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    copyPointCloud() [7/11]
-----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Copy all the fields from a given point cloud into a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   Definition at line [142](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::detail::copyPointCloudMemcpy()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00122), [pcl::PointCloud< PointT >::empty()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::HypothesisVerification< ModelT, SceneT >::addModels()](https://pointclouds.org/documentation/hypotheses__verification_8h_source.html#l00218), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l00494), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud\_and\_genLOD()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l00701), [pcl::LineRGBD< PointXYZT, PointRGBT >::addTemplate()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00318), [pcl::keypoints::internal::AgastApplyNonMaxSuppresion< Out >::AgastApplyNonMaxSuppresion()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00484), [pcl::keypoints::internal::AgastDetector< Out >::AgastDetector()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00513), [pcl::ExtractIndices< PointT >::applyFilter()](https://pointclouds.org/documentation/extract__indices_8hpp_source.html#l00079), [pcl::FastBilateralFilter< PointT >::applyFilter()](https://pointclouds.org/documentation/fast__bilateral_8hpp_source.html#l00051), [pcl::FastBilateralFilterOMP< PointT >::applyFilter()](https://pointclouds.org/documentation/fast__bilateral__omp_8hpp_source.html#l00062), [pcl::FilterIndices< PointT >::applyFilter()](https://pointclouds.org/documentation/filter__indices_8hpp_source.html#l00077), [pcl::MedianFilter< PointT >::applyFilter()](https://pointclouds.org/documentation/median__filter_8hpp_source.html#l00046), [ObjectRecognition::applyFiltersAndSegment()](https://pointclouds.org/documentation/iccv2011_2include_2object__recognition_8h_source.html#l00138), [pcl::applyMorphologicalOperator()](https://pointclouds.org/documentation/morphological__filter_8hpp_source.html#l00057), [pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::clusterCorrespondences()](https://pointclouds.org/documentation/geometric__consistency_8hpp_source.html#l00057), [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::clusterCorrespondences()](https://pointclouds.org/documentation/hough__3d_8hpp_source.html#l00259), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::computePyramids()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00364), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00208), [pcl::LineRGBD< PointXYZT, PointRGBT >::createAndAddTemplate()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00223), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::BriskKeypoint2D< PointInT, PointOutT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html#l00069), [pcl::Filter< PointT >::filter()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2filter_8h_source.html#l00121), [pcl::occlusion\_reasoning::ZBuffering< ModelT, SceneT >::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8hpp_source.html#l00067), [pcl::occlusion\_reasoning::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00072), [pcl::SupervoxelClustering< PointT >::getLabeledCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00579), [pcl::SupervoxelClustering< PointT >::getLabeledVoxelCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00557), [pcl::occlusion\_reasoning::getOccludedCloud()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00163), [pcl::getPointCloudDifference()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00050), [pcl::SupervoxelClustering< PointT >::getVoxelCentroidCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00548), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l01370), and [pcl::io::savePLYFile()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00868).

    copyPointCloud() [8/11]
-----------------------

    template<typename PointT , typename IndicesVectorAllocator >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [IndicesAllocator](https://pointclouds.org/documentation/namespacepcl.html#a61689ac607f746f728bb76bc14fe8ca4)< IndicesVectorAllocator > &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the vector of indices representing the points to be copied from *cloud\_in* |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
 Definition at line [160](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00160) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::PointCloud< PointT >::transient\_push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00675), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    copyPointCloud() [9/11]
-----------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the [PointIndices](structpcl_1_1_point_indices) structure representing the points to be copied from cloud\_in  |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
 Definition at line [208](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00208) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    copyPointCloud() [10/11]
------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Extract the indices of a given point cloud as a new point cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [in] | indices | the vector of indices representing the points to be copied from *cloud\_in* |
| [out] | cloud\_out | the resultant output point cloud dataset  |

   
Note
Assumes unique indices. 
 Definition at line [226](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00226) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::PointCloud< PointT >::transient\_push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00675), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    copyPointCloud() [11/11]
------------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::copyPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | int  | *top*,  |
|  |  | int  | *bottom*,  |
|  |  | int  | *left*,  |
|  |  | int  | *right*,  |
|  |  | [pcl::InterpolationType](https://pointclouds.org/documentation/namespacepcl.html#a223710941333ffcbfd147e4f4c9a1485) | *border\_type*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *value* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Copy a point cloud inside a larger one interpolating borders. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud dataset  |
| [out] | cloud\_out | the resultant output point cloud dataset  |
|  | top |  |
|  | bottom |  |
|  | left |  |
|  | right | Position of cloud\_in inside cloud\_out is given by *top*, *left*, *bottom* *right*.  |
| [in] | border\_type | the interpolating method (pcl::BORDER\_XXX) BORDER\_REPLICATE: aaaaaa|abcdefgh|hhhhhhh BORDER\_REFLECT: fedcba|abcdefgh|hgfedcb BORDER\_REFLECT\_101: gfedcb|abcdefgh|gfedcba BORDER\_WRAP: cdefgh|abcdefgh|abcdefg BORDER\_CONSTANT: iiiiii|abcdefgh|iiiiiii with some specified 'i' BORDER\_TRANSPARENT: mnopqr|abcdefgh|tuvwxyz where m-r and t-z are original values of cloud\_out  |
|  | value |  |

   
Exceptions
 

|  |  |
| --- | --- |
| [pcl::BadArgumentException](classpcl_1_1_bad_argument_exception "An exception that is thrown when the arguments number or type is wrong/unhandled.") | if any of top, bottom, left or right is negative.  |

   Definition at line [337](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00337) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::BORDER\_CONSTANT](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00248), [pcl::BORDER\_TRANSPARENT](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00250), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::interpolatePointIndex()](https://pointclouds.org/documentation/namespacepcl.html#a4ffcf78b18f7bf6e262782ff7c8050b4), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    CS\_Norm()
----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::CS\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the CS norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [169](https://pointclouds.org/documentation/norms_8hpp_source.html#l00169) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    deg2rad() [1/2]
---------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| double pcl::deg2rad  | ( | double  | *alpha* | ) |  |

 | inline |

 
 `#include <[pcl/common/angles.h](https://pointclouds.org/documentation/angles_8h.html)>`

 Convert an angle from degrees to radians. 

 
Parameters
 

|  |  |
| --- | --- |
| alpha | the input angle (in degrees)  |

   Definition at line [79](https://pointclouds.org/documentation/angles_8hpp_source.html#l00079) of file [angles.hpp](https://pointclouds.org/documentation/angles_8hpp_source.html).

    deg2rad() [2/2]
---------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::deg2rad  | ( | float  | *alpha* | ) |  |

 | inline |

 
 `#include <[pcl/common/angles.h](https://pointclouds.org/documentation/angles_8h.html)>`

 Convert an angle from degrees to radians. 

 
Parameters
 

|  |  |
| --- | --- |
| alpha | the input angle (in degrees)  |

   Definition at line [67](https://pointclouds.org/documentation/angles_8hpp_source.html#l00067) of file [angles.hpp](https://pointclouds.org/documentation/angles_8hpp_source.html).

 Referenced by [pcl::RangeImage::createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImage::createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [pcl::RangeImage::getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891), [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::initCompute()](https://pointclouds.org/documentation/3dsc_8hpp_source.html#l00053), and [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/usc_8hpp_source.html#l00054).

    demeanPointCloud() [1/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | centroid | the centroid of the point cloud  |
| [out] | cloud\_out | the resultant output XYZ0 dimensions of *cloud\_in* as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix (4 rows, N pts columns)  |

   Definition at line [784](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00784) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    demeanPointCloud() [2/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | centroid | the centroid of the point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |

   Definition at line [696](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00696) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

    demeanPointCloud() [3/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [in] | centroid | the centroid of the point cloud  |
| [out] | cloud\_out | the resultant output XYZ0 dimensions of *cloud\_in* as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix (4 rows, N pts columns)  |

   Definition at line [807](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00807) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

    demeanPointCloud() [4/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | centroid | the centroid of the point cloud  |
|  | cloud\_out | the resultant output point cloud  |

   Definition at line [713](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00713) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    demeanPointCloud() [5/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [in] | centroid | the centroid of the point cloud  |
| [out] | cloud\_out | the resultant output XYZ0 dimensions of *cloud\_in* as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix (4 rows, N pts columns)  |

   Definition at line [831](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00831) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    demeanPointCloud() [6/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | centroid | the centroid of the point cloud  |
|  | cloud\_out | the resultant output point cloud  |

   Definition at line [743](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00743) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    demeanPointCloud() [7/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | [ConstCloudIterator](classpcl_1_1_const_cloud_iterator)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_iterator*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &  | *cloud\_out*,  |
|  |  | int  | *npts* = `0` |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_iterator | an iterator over the input point cloud  |
| [in] | centroid | the centroid of the point cloud  |
| [out] | cloud\_out | the resultant output XYZ0 dimensions of *cloud\_in* as an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) matrix (4 rows, N pts columns)  |
| [in] | npts | the number of samples guaranteed to be left in the input cloud, accessible by the iterator. If not given, it will be calculated.  |

   Definition at line [753](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00753) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::ConstCloudIterator< PointT >::isValid()](https://pointclouds.org/documentation/cloud__iterator_8hpp_source.html#l00547), and [pcl::ConstCloudIterator< PointT >::reset()](https://pointclouds.org/documentation/cloud__iterator_8hpp_source.html#l00540).

    demeanPointCloud() [8/8]
------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::demeanPointCloud  | ( | [ConstCloudIterator](classpcl_1_1_const_cloud_iterator)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_iterator*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 1 > &  | *centroid*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | int  | *npts* = `0` |
|  | ) |  |  |

 
 `#include <[pcl/common/centroid.h](https://pointclouds.org/documentation/centroid_8h.html)>`

 Subtract a centroid from a point cloud and return the de-meaned representation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_iterator | an iterator over the input point cloud  |
| [in] | centroid | the centroid of the point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | npts | the number of samples guaranteed to be left in the input cloud, accessible by the iterator. If not given, it will be calculated.  |

   Definition at line [663](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663) of file [centroid.hpp](https://pointclouds.org/documentation/centroid_8hpp_source.html).

 References [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::ConstCloudIterator< PointT >::isValid()](https://pointclouds.org/documentation/cloud__iterator_8hpp_source.html#l00547), [pcl::ConstCloudIterator< PointT >::reset()](https://pointclouds.org/documentation/cloud__iterator_8hpp_source.html#l00540), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00743), [pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__2_d_8hpp_source.html#l00125), [pcl::registration::TransformationEstimation3Point< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__3point_8hpp_source.html#l00135), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ESFEstimation< PointInT, PointOutT >::scale\_points\_unit\_sphere()](https://pointclouds.org/documentation/esf_8hpp_source.html#l00481), and [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::sgurf()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00198).

    determinant3x3Matrix()
----------------------

    template<typename Matrix >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Matrix::Scalar pcl::determinant3x3Matrix  | ( | const Matrix &  | *matrix* | ) |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Calculate the determinant of a 3x3 matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | matrix | matrix  |

   
Returns
determinant of the matrix 
 Definition at line [492](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00492) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    Div\_Norm()
-----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::Div\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the div norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [183](https://pointclouds.org/documentation/norms_8hpp_source.html#l00183) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    eigen22() [1/2]
---------------

    template<typename Matrix , typename Vector >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::eigen22  | ( | const Matrix &  | *mat*,  |
|  |  | Matrix &  | *eigenvectors*,  |
|  |  | Vector &  | *eigenvalues* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 determine the smallest eigenvalue and its corresponding eigenvector 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mat | input matrix that needs to be symmetric and positive semi definite  |
| [out] | eigenvectors | the corresponding eigenvector to the smallest eigenvalue of the input matrix  |
| [out] | eigenvalues | the smallest eigenvalue of the input matrix  |

   Definition at line [172](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00172) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    eigen22() [2/2]
---------------

    template<typename Matrix , typename Vector >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::eigen22  | ( | const Matrix &  | *mat*,  |
|  |  | typename Matrix::Scalar &  | *eigenvalue*,  |
|  |  | Vector &  | *eigenvector* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 determine the smallest eigenvalue and its corresponding eigenvector 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mat | input matrix that needs to be symmetric and positive semi definite  |
| [out] | eigenvalue | the smallest eigenvalue of the input matrix  |
| [out] | eigenvector | the corresponding eigenvector to the smallest eigenvalue of the input matrix  |

   Definition at line [133](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00133) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 Referenced by [pcl::approximatePolygon2D()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00080).

    eigen33() [1/3]
---------------

    template<typename Matrix , typename Vector >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::eigen33  | ( | const Matrix &  | *mat*,  |
|  |  | Matrix &  | *evecs*,  |
|  |  | Vector &  | *evals* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 determines the eigenvalues and corresponding eigenvectors of the symmetric positive semi definite input matrix 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mat | symmetric positive semi definite input matrix  |
| [out] | evecs | corresponding eigenvectors in correct order according to eigenvalues  |
| [out] | evals | resulting eigenvalues in ascending order  |

   Definition at line [334](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00334) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::computeRoots()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00068), and [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

    eigen33() [2/3]
---------------

    template<typename Matrix , typename Vector >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::eigen33  | ( | const Matrix &  | *mat*,  |
|  |  | typename Matrix::Scalar &  | *eigenvalue*,  |
|  |  | Vector &  | *eigenvector* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 determines the eigenvector and eigenvalue of the smallest eigenvalue of the symmetric positive semi definite input matrix 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mat | symmetric positive semi definite input matrix  |
| [out] | eigenvalue | smallest eigenvalue of the input matrix  |
| [out] | eigenvector | the corresponding eigenvector for the input eigenvalue  |

   
Note
if the smallest eigenvalue is not unique, this function may return any eigenvector that is consistent to the eigenvalue. 
 Definition at line [296](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00296) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::computeRoots()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00068).

 Referenced by [pcl::gpu::people::buildTree()](https://pointclouds.org/documentation/label__tree_8h_source.html#l00605), [pcl::ConvexHull< PointInT >::calculateInputDimension()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00057), [pcl::MLSResult::computeMLSSurface()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00690), [pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >::computePointIntensityGradient()](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html#l00050), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormal()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00205), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormalMirror()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00460), [pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computePointPrincipalCurvatures()](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html#l00050), [pcl::SampleConsensusModelRegistration< PointT >::computeSampleDistanceThreshold()](https://pointclouds.org/documentation/sac__model__registration_8h_source.html#l00233), [pcl::VectorAverage< real, dimension >::doPCA()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00147), [pcl::VectorAverage< real, dimension >::getEigenVector1()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00164), [pcl::getPrincipalTransformation()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00495), [pcl::GridProjection< PointNT >::getProjectionWithPlaneFit()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00312), [pcl::isPointIn2DPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00048), [pcl::SampleConsensusModelLine< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00203), [pcl::SampleConsensusModelPlane< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00342), [pcl::SampleConsensusModelStick< PointT >::optimizeModelCoefficients()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00249), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::responseTomasi()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00457), [pcl::ExtractPolygonalPrismData< PointT >::segment()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00149), [pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segment()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00083), [pcl::solvePlaneParameters()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00065), and [pcl::gpu::people::label\_skeleton::sortIndicesToBlob2()](https://pointclouds.org/documentation/label__segment_8h_source.html#l00331).

    eigen33() [3/3]
---------------

    template<typename Matrix , typename Vector >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::eigen33  | ( | const Matrix &  | *mat*,  |
|  |  | Vector &  | *evals* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 determines the eigenvalues of the symmetric positive semi definite input matrix 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | mat | symmetric positive semi definite input matrix  |
| [out] | evals | resulting eigenvalues in ascending order  |

   Definition at line [320](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00320) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::computeRoots()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00068).

    getAngle3D() [1/2]
------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::getAngle3D  | ( | const Eigen::Vector3f &  | *v1*,  |
|  |  | const Eigen::Vector3f &  | *v2*,  |
|  |  | const bool  | *in\_degree* = `false` |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Compute the smallest angle between two 3D vectors in radians (default) or degree. 

 
Parameters
 

|  |  |
| --- | --- |
| v1 | the first 3D vector (represented as a *Eigen::Vector3f*)  |
| v2 | the second 3D vector (represented as a *Eigen::Vector3f*)  |
| in\_degree | determine if angle should be in radians or degrees  |

   
Returns
the angle between v1 and v2 in radians or degrees 
 Definition at line [59](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00059) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    getAngle3D() [2/2]
------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::getAngle3D  | ( | const Eigen::Vector4f &  | *v1*,  |
|  |  | const Eigen::Vector4f &  | *v2*,  |
|  |  | const bool  | *in\_degree* = `false` |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Compute the smallest angle between two 3D vectors in radians (default) or degree. 

 
Parameters
 

|  |  |
| --- | --- |
| v1 | the first 3D vector (represented as a *Eigen::Vector4f*)  |
| v2 | the second 3D vector (represented as a *Eigen::Vector4f*)  |
| in\_degree | determine if angle should be in radians or degrees  |

   
Returns
the angle between v1 and v2 in radians or degrees 
 
Note
Handles rounding error for parallel and anti-parallel vectors 
 Definition at line [47](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00047) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

 Referenced by [pcl::tracking::NormalCoherence< PointInT >::computeCoherence()](https://pointclouds.org/documentation/normal__coherence_8hpp_source.html#l00012), [pcl::tracking::ParticleFilterTracker< PointInT, StateT >::computeTransformedPointCloudWithNormal()](https://pointclouds.org/documentation/particle__filter_8hpp_source.html#l00298), [pcl::LCCPSegmentation< PointT >::connIsConvex()](https://pointclouds.org/documentation/lccp__segmentation_8hpp_source.html#l00428), [pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::countWithinDistance()](https://pointclouds.org/documentation/sac__model__normal__sphere_8hpp_source.html#l00110), [pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::countWithinDistanceStandard()](https://pointclouds.org/documentation/sac__model__normal__plane_8hpp_source.html#l00130), [pcl::SampleConsensusModelCone< PointT, PointNT >::getDistancesToModel()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00146), [pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::getDistancesToModel()](https://pointclouds.org/documentation/sac__model__normal__plane_8hpp_source.html#l00293), [pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::getDistancesToModel()](https://pointclouds.org/documentation/sac__model__normal__sphere_8hpp_source.html#l00161), [pcl::SampleConsensusModelCone< PointT, PointNT >::isModelValid()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00515), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::isModelValid()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00462), [pcl::SampleConsensusModelParallelLine< PointT >::isModelValid()](https://pointclouds.org/documentation/sac__model__parallel__line_8hpp_source.html#l00093), [pcl::SampleConsensusModelPerpendicularPlane< PointT >::isModelValid()](https://pointclouds.org/documentation/sac__model__perpendicular__plane_8hpp_source.html#l00093), [pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::isSampleGood()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00049), [pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::selectWithinDistance()](https://pointclouds.org/documentation/sac__model__normal__plane_8hpp_source.html#l00050), and [pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::selectWithinDistance()](https://pointclouds.org/documentation/sac__model__normal__sphere_8hpp_source.html#l00049).

    getCircumcircleRadius()
-----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::getCircumcircleRadius  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pa*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pb*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pc* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Compute the radius of a circumscribed circle for a triangle formed of three points pa, pb, and pc. 

 
Parameters
 

|  |  |
| --- | --- |
| pa | the first point  |
| pb | the second point  |
| pc | the third point  |

   
Returns
the radius of the circumscribed circle 
 Definition at line [383](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00383) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 Referenced by [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119).

    getEigenAsPointCloud()
----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::getEigenAsPointCloud  | ( | Eigen::MatrixXf &  | *in*,  |
|  |  | [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Copy the XYZ dimensions from an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf into a [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) message. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | in | the [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf format containing XYZ0 / point  |
| [out] | out | the resultant point cloud message  |

   
Note
the method assumes that the [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) message already has the fields set up properly ! 
    getEulerAngles()
----------------

    template<typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getEulerAngles  | ( | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *t*,  |
|  |  | Scalar &  | *roll*,  |
|  |  | Scalar &  | *pitch*,  |
|  |  | Scalar &  | *yaw* |
|  | ) |  |  |

 
 `#include <pcl/common/eigen.h>`

 Extract the Euler angles (intrinsic rotations, ZYX-convention) from the given transformation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | t | the input transformation matrix  |
| [in] | roll | the resulting roll angle  |
| [in] | pitch | the resulting pitch angle  |
| [in] | yaw | the resulting yaw angle  |

   Definition at line [585](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00585) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 Referenced by [pcl::tracking::ParticleXYZRPY::sample()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00060).

    getFieldIndex() [1/3]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::getFieldIndex  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | const std::string &  | *field\_name* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Get the index of a specified field (i.e., dimension/channel) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud message  |
| [in] | field\_name | the string defining the field name  |

   Definition at line [60](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00060) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), and [pcl::PCLPointCloud2::fields](https://pointclouds.org/documentation/_p_c_l_point_cloud2_8h_source.html#l00023).

    getFieldIndex() [2/3]
---------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::getFieldIndex  | ( | const std::string &  | *field\_name*,  |
|  |  | const std::vector< [pcl::PCLPointField](structpcl_1_1_p_c_l_point_field) > &  | *fields* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Get the index of a specified field (i.e., dimension/channel) 

 
Template Parameters
 

|  |  |
| --- | --- |
| PointT | datatype for which fields is being queries  |

   
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | field\_name | the string defining the field name  |
| [in] | fields | a vector to the original *[PCLPointField](structpcl_1_1_p_c_l_point_field)* vector that the raw [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message contains  |

   Definition at line [71](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00071) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

    getFieldIndex() [3/3]
---------------------

    template<typename PointT >  

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::getFieldIndex  | ( | const std::string &  | *field\_name*,  |
|  |  | std::vector< [pcl::PCLPointField](structpcl_1_1_p_c_l_point_field) > &  | *fields* |
|  | ) |  |  |

 
 `#include <pcl/common/impl/io.hpp>`

 Get the index of a specified field (i.e., dimension/channel) 

 
Template Parameters
 

|  |  |
| --- | --- |
| PointT | datatype for which fields is being queries  |

   
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | field\_name | the string defining the field name  |
| [out] | fields | a vector to the original *[PCLPointField](structpcl_1_1_p_c_l_point_field)* vector that the raw [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message contains  |

   Definition at line [61](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00061) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

    getFields()
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::vector< [pcl::PCLPointField](structpcl_1_1_p_c_l_point_field) > pcl::getFields  | ( |  | ) |  |

 | inline |

 
 `#include <pcl/common/impl/io.hpp>`

 Get the list of available fields (i.e., dimension/channel) 

 
Template Parameters
 

|  |  |
| --- | --- |
| PointT | datatype whose details are requested  |

   Definition at line [97](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00097) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

    getFieldSize()
--------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::getFieldSize  | ( | const int  | *datatype* | ) |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Obtains the size of a specific field data type in bytes. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | datatype | the field data type (see [PCLPointField.h](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html))  |

   Definition at line [119](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00119) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PCLPointField::BOOL](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00020), [pcl::PCLPointField::FLOAT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00029), [pcl::PCLPointField::FLOAT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00030), [pcl::PCLPointField::INT16](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00023), [pcl::PCLPointField::INT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00025), [pcl::PCLPointField::INT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00027), [pcl::PCLPointField::INT8](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00021), [PCL\_FALLTHROUGH](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00433), [pcl::PCLPointField::UINT16](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00024), [pcl::PCLPointField::UINT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00026), [pcl::PCLPointField::UINT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00028), and [pcl::PCLPointField::UINT8](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00022).

 Referenced by [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057), [pcl::visualization::PointCloudColorHandlerGenericField< PointT >::getColor()](https://pointclouds.org/documentation/point__cloud__color__handlers_8hpp_source.html#l00383), [pcl::PCDWriter::writeBinary()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00111), and [pcl::PCDWriter::writeBinaryCompressed()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00243).

    getFieldsList() [1/2]
---------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| std::string pcl::getFieldsList  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud* | ) |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Get the available point cloud fields as a space separated string. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | a pointer to the [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |

   Definition at line [108](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00108) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PCLPointCloud2::fields](https://pointclouds.org/documentation/_p_c_l_point_cloud2_8h_source.html#l00023).

    getFieldsList() [2/2]
---------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| std::string pcl::getFieldsList  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud* | ) |  |

 | inline |

 
 `#include <pcl/common/impl/io.hpp>`

 Get the list of all fields available in a given cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud message  |

   Definition at line [107](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00107) of file [io.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html).

    getFieldType() [1/2]
--------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int pcl::getFieldType  | ( | const int  | *size*,  |
|  |  | char  | *type* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Obtains the type of the [PCLPointField](structpcl_1_1_p_c_l_point_field) from a specific size and type. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | size | the size in bytes of the data field  |
| [in] | type | a char describing the type of the field ('B' = bool, 'F' = float, 'I' = signed, 'U' = unsigned)  |

   Definition at line [163](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00163) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PCLPointField::BOOL](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00020), [pcl::PCLPointField::FLOAT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00029), [pcl::PCLPointField::FLOAT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00030), [pcl::PCLPointField::INT16](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00023), [pcl::PCLPointField::INT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00025), [pcl::PCLPointField::INT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00027), [pcl::PCLPointField::INT8](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00021), [pcl::PCLPointField::UINT16](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00024), [pcl::PCLPointField::UINT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00026), [pcl::PCLPointField::UINT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00028), and [pcl::PCLPointField::UINT8](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00022).

 Referenced by [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057).

    getFieldType() [2/2]
--------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| char pcl::getFieldType  | ( | const int  | *type* | ) |  |

 | inline |

 
 `#include <pcl/common/io.h>`

 Obtains the type of the [PCLPointField](structpcl_1_1_p_c_l_point_field) from a specific [PCLPointField](structpcl_1_1_p_c_l_point_field) as a char. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | type | the [PCLPointField](structpcl_1_1_p_c_l_point_field) field type  |

   Definition at line [218](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00218) of file [io.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html).

 References [pcl::PCLPointField::BOOL](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00020), [pcl::PCLPointField::FLOAT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00029), [pcl::PCLPointField::FLOAT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00030), [pcl::PCLPointField::INT16](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00023), [pcl::PCLPointField::INT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00025), [pcl::PCLPointField::INT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00027), [pcl::PCLPointField::INT8](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00021), [PCL\_FALLTHROUGH](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00433), [pcl::PCLPointField::UINT16](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00024), [pcl::PCLPointField::UINT32](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00026), [pcl::PCLPointField::UINT64](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00028), and [pcl::PCLPointField::UINT8](https://pointclouds.org/documentation/_p_c_l_point_field_8h_source.html#l00022).

    getMaxDistance() [1/2]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMaxDistance  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const Eigen::Vector4f &  | *pivot\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the point at maximum distance from a given point and a given pointcloud. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud data message  |
| pivot\_pt | the point from where to compute the distance  |
| max\_pt | the point in cloud that is the farthest point away from pivot\_pt  |

   Definition at line [197](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::GASDEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gasd_8hpp_source.html#l00252), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::computePointSPFHSignature()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00092), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), and [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::sgurf()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00198).

    getMaxDistance() [2/2]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMaxDistance  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Vector4f &  | *pivot\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the point at maximum distance from a given point and a given pointcloud. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud data message  |
| indices | the vector of point indices to use from *cloud* |
| pivot\_pt | the point from where to compute the distance  |
| max\_pt | the point in cloud that is the farthest point away from pivot\_pt  |

   Definition at line [244](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00244) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403).

    getMaxSegment() [1/2]
---------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::getMaxSegment  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pmin*,  |
|  |  | [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pmax* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h.html)>`

 Obtain the maximum segment in a given set of points, and return the minimum and maximum points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud dataset  |
| [in] | indices | a set of point indices to use from *cloud* |
| [out] | pmin | the coordinates of the "minimum" point in *cloud* (one end of the segment)  |
| [out] | pmax | the coordinates of the "maximum" point in *cloud* (the other end of the segment)  |

   
Returns
the length of segment length 
 Definition at line [146](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00146) of file [distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html).

    getMaxSegment() [2/2]
---------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::getMaxSegment  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pmin*,  |
|  |  | [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pmax* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h.html)>`

 Obtain the maximum segment in a given set of points, and return the minimum and maximum points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud dataset  |
| [out] | pmin | the coordinates of the "minimum" point in *cloud* (one end of the segment)  |
| [out] | pmax | the coordinates of the "maximum" point in *cloud* (the other end of the segment)  |

   
Returns
the length of segment length 
 Definition at line [106](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00106) of file [distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    getMeanStd()
------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMeanStd  | ( | const std::vector< float > &  | *values*,  |
|  |  | double &  | *mean*,  |
|  |  | double &  | *stddev* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Compute both the mean and the standard deviation of an array of values. 

 
Parameters
 

|  |  |
| --- | --- |
| values | the array of values  |
| mean | the resultant mean of the distribution  |
| stddev | the resultant standard deviation of the distribution  |

   Definition at line [124](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00124) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

    getMeanStdDev()
---------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::getMeanStdDev  | ( | const std::vector< float > &  | *values*,  |
|  |  | double &  | *mean*,  |
|  |  | double &  | *stddev* |
|  | ) |  |  |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Compute both the mean and the standard deviation of an array of values. 

 
Parameters
 

|  |  |
| --- | --- |
| values | the array of values  |
| mean | the resultant mean of the distribution  |
| stddev | the resultant standard deviation of the distribution  |

      getMinMax() [1/2]
-----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::getMinMax  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *cloud*,  |
|  |  | int  | *idx*,  |
|  |  | const std::string &  | *field\_name*,  |
|  |  | float &  | *min\_p*,  |
|  |  | float &  | *max\_p* |
|  | ) |  |  |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the minimum and maximum values on a point histogram. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the cloud containing multi-dimensional histograms  |
| idx | point index representing the histogram that we need to compute min/max for  |
| field\_name | the field name containing the multi-dimensional histogram  |
| min\_p | the resultant minimum  |
| max\_p | the resultant maximum  |

      getMinMax() [2/2]
-----------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *histogram*,  |
|  |  | int  | *len*,  |
|  |  | float &  | *min\_p*,  |
|  |  | float &  | *max\_p* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the minimum and maximum values on a point histogram. 

 
Parameters
 

|  |  |
| --- | --- |
| histogram | the point representing a multi-dimensional histogram  |
| len | the length of the histogram  |
| min\_p | the resultant minimum  |
| max\_p | the resultant maximum  |

   Definition at line [400](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00400) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 Referenced by [pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel()](https://pointclouds.org/documentation/mlesac_8hpp_source.html#l00050).

    getMinMax3D() [1/4]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax3D  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Vector4f &  | *min\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data message  |
| [in] | indices | the vector of point indices to use from *cloud* |
| [out] | min\_pt | the resultant minimum bounds  |
| [out] | max\_pt | the resultant maximum bounds  |

   Definition at line [348](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00348) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403).

    getMinMax3D() [2/4]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax3D  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | Eigen::Vector4f &  | *min\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data message  |
| [in] | indices | the vector of point indices to use from *cloud* |
| [out] | min\_pt | the resultant minimum bounds  |
| [out] | max\_pt | the resultant maximum bounds  |

   Definition at line [340](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00340) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::getMinMax3D()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00295), and [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    getMinMax3D() [3/4]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax3D  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Vector4f &  | *min\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data message  |
| [out] | min\_pt | the resultant minimum bounds  |
| [out] | max\_pt | the resultant maximum bounds  |

   Definition at line [305](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00305) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395).

    getMinMax3D() [4/4]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getMinMax3D  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *min\_pt*,  |
|  |  | [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *max\_pt* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data message  |
| [out] | min\_pt | the resultant minimum bounds  |
| [out] | max\_pt | the resultant maximum bounds  |

   Definition at line [295](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00295) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 Referenced by [pcl::gpu::people::buildTree()](https://pointclouds.org/documentation/label__tree_8h_source.html#l00605), [pcl::tracking::ParticleFilterTracker< PointInT, StateT >::calcBoundingBox()](https://pointclouds.org/documentation/particle__filter_8hpp_source.html#l00187), [pcl::GASDEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gasd_8hpp_source.html#l00252), [pcl::gpu::DataSource::DataSource()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00082), [pcl::GridProjection< PointNT >::getBoundingBox()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00087), [pcl::MarchingCubes< PointNT >::getBoundingBox()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00050), [pcl::getMinMax3D()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00340), [pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::initCompute()](https://pointclouds.org/documentation/ia__fpcs_8hpp_source.html#l00242), [pcl::MovingLeastSquares< PointInT, PointOutT >::MLSVoxelGrid::MLSVoxelGrid()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00806), and [pcl::gpu::people::label\_skeleton::sortIndicesToBlob2()](https://pointclouds.org/documentation/label__segment_8h_source.html#l00331).

    getPointCloudAsEigen()
----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::getPointCloudAsEigen  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *in*,  |
|  |  | Eigen::MatrixXf &  | *out* |
|  | ) |  |  |

 
 `#include <pcl/common/io.h>`

 Copy the XYZ dimensions of a [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) into [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) format. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | in | the point cloud message  |
| [out] | out | the resultant [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf format containing XYZ0 / point  |

      getPointsInBox()
----------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getPointsInBox  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud*,  |
|  |  | Eigen::Vector4f &  | *min\_pt*,  |
|  |  | Eigen::Vector4f &  | *max\_pt*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/common.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2common_8h.html)>`

 Get a set of points residing in a box given its bounds. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the point cloud data message  |
| min\_pt | the minimum bounds  |
| max\_pt | the maximum bounds  |
| indices | the resultant set of point indices residing in the box  |

   Definition at line [154](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00154) of file [common.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

 Referenced by [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l01370).

    getTransformation() [1/2]
-------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Affine3f pcl::getTransformation  | ( | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | float  | *z*,  |
|  |  | float  | *roll*,  |
|  |  | float  | *pitch*,  |
|  |  | float  | *yaw* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Create a transformation from the given translation and Euler angles (intrinsic rotations, ZYX-convention) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | x | the input x translation  |
| [in] | y | the input y translation  |
| [in] | z | the input z translation  |
| [in] | roll | the input roll angle  |
| [in] | pitch | the input pitch angle  |
| [in] | yaw | the input yaw angle  |

   
Returns
the resulting transformation matrix 
 Definition at line [316](https://pointclouds.org/documentation/common_2include_2pcl_2common_2eigen_8h_source.html#l00316) of file [eigen.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2eigen_8h_source.html).

    getTransformation() [2/2]
-------------------------

    template<typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getTransformation  | ( | Scalar  | *x*,  |
|  |  | Scalar  | *y*,  |
|  |  | Scalar  | *z*,  |
|  |  | Scalar  | *roll*,  |
|  |  | Scalar  | *pitch*,  |
|  |  | Scalar  | *yaw*,  |
|  |  | Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *t* |
|  | ) |  |  |

 
 `#include <pcl/common/eigen.h>`

 Create a transformation from the given translation and Euler angles (intrinsic rotations, ZYX-convention) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | x | the input x translation  |
| [in] | y | the input y translation  |
| [in] | z | the input z translation  |
| [in] | roll | the input roll angle  |
| [in] | pitch | the input pitch angle  |
| [in] | yaw | the input yaw angle  |
| [out] | t | the resulting transformation matrix  |

   Definition at line [608](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00608) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::B](https://pointclouds.org/documentation/norms_8h_source.html#l00054).

 Referenced by [pcl::CropBox< PointT >::applyFilter()](https://pointclouds.org/documentation/crop__box_8hpp_source.html#l00051), [pcl::registration::LUM< PointT >::computeEdge()](https://pointclouds.org/documentation/lum_8hpp_source.html#l00308), [pcl::registration::LUM< PointT >::getConcatenatedCloud()](https://pointclouds.org/documentation/lum_8hpp_source.html#l00294), [pcl::registration::LUM< PointT >::getTransformation()](https://pointclouds.org/documentation/lum_8hpp_source.html#l00171), [pcl::registration::LUM< PointT >::getTransformedCloud()](https://pointclouds.org/documentation/lum_8hpp_source.html#l00285), [pcl::tracking::ParticleXYZRPY::sample()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00060), [pcl::tracking::ParticleXYZRPY::toEigenMatrix()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00118), [pcl::tracking::ParticleXYZR::toEigenMatrix()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00284), [pcl::tracking::ParticleXYRPY::toEigenMatrix()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00450), [pcl::tracking::ParticleXYRP::toEigenMatrix()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00617), and [pcl::tracking::ParticleXYR::toEigenMatrix()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00784).

    getTransformationFromTwoUnitVectors() [1/2]
-------------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Affine3f pcl::getTransformationFromTwoUnitVectors  | ( | const Eigen::Vector3f &  | *y\_direction*,  |
|  |  | const Eigen::Vector3f &  | *z\_axis* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | y\_direction | the y direction  |
| [in] | z\_axis | the z-axis  |

   
Returns
transformation the resultant 3D rotation 
 Definition at line [563](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00563) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::getTransformationFromTwoUnitVectors()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00554).

    getTransformationFromTwoUnitVectors() [2/2]
-------------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getTransformationFromTwoUnitVectors  | ( | const Eigen::Vector3f &  | *y\_direction*,  |
|  |  | const Eigen::Vector3f &  | *z\_axis*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | y\_direction | the y direction  |
| [in] | z\_axis | the z-axis  |
| [out] | transformation | the resultant 3D rotation  |

   Definition at line [554](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00554) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::getTransFromUnitVectorsZY()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00502).

 Referenced by [pcl::RangeImage::getRotationToViewerCoordinateFrame()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01187), [pcl::getTransformationFromTwoUnitVectors()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00563), and [pcl::getTransformationFromTwoUnitVectorsAndOrigin()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00573).

    getTransformationFromTwoUnitVectorsAndOrigin()
----------------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getTransformationFromTwoUnitVectorsAndOrigin  | ( | const Eigen::Vector3f &  | *y\_direction*,  |
|  |  | const Eigen::Vector3f &  | *z\_axis*,  |
|  |  | const Eigen::Vector3f &  | *origin*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the transformation that will translate *origin* to (0,0,0) and rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | y\_direction | the y direction  |
| [in] | z\_axis | the z-axis  |
| [in] | origin | the origin  |
| [in] | transformation | the resultant transformation matrix  |

   Definition at line [573](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00573) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::getTransformationFromTwoUnitVectors()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00554).

 Referenced by [pcl::RangeImage::getTransformationToViewerCoordinateFrame()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01179).

    getTransFromUnitVectorsXY() [1/2]
---------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Affine3f pcl::getTransFromUnitVectorsXY  | ( | const Eigen::Vector3f &  | *x\_axis*,  |
|  |  | const Eigen::Vector3f &  | *y\_direction* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the unique 3D rotation that will rotate *x\_axis* into (1,0,0) and *y\_direction* into a vector with z=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | x\_axis | the x-axis  |
| [in] | y\_direction | the y direction  |

   
Returns
the resulting 3D rotation 
 Definition at line [544](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00544) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::getTransFromUnitVectorsXY()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00528).

    getTransFromUnitVectorsXY() [2/2]
---------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getTransFromUnitVectorsXY  | ( | const Eigen::Vector3f &  | *x\_axis*,  |
|  |  | const Eigen::Vector3f &  | *y\_direction*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the unique 3D rotation that will rotate *x\_axis* into (1,0,0) and *y\_direction* into a vector with z=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | x\_axis | the x-axis  |
| [in] | y\_direction | the y direction  |
| [out] | transformation | the resultant 3D rotation  |

   Definition at line [528](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00528) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 Referenced by [pcl::getTransFromUnitVectorsXY()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00544).

    getTransFromUnitVectorsZY() [1/2]
---------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Affine3f pcl::getTransFromUnitVectorsZY  | ( | const Eigen::Vector3f &  | *z\_axis*,  |
|  |  | const Eigen::Vector3f &  | *y\_direction* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | z\_axis | the z-axis  |
| [in] | y\_direction | the y direction  |

   
Returns
the resultant 3D rotation 
 Definition at line [518](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00518) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 References [pcl::getTransFromUnitVectorsZY()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00502).

    getTransFromUnitVectorsZY() [2/2]
---------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getTransFromUnitVectorsZY  | ( | const Eigen::Vector3f &  | *z\_axis*,  |
|  |  | const Eigen::Vector3f &  | *y\_direction*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Get the unique 3D rotation that will rotate *z\_axis* into (0,0,1) and *y\_direction* into a vector with x=0 (or into (0,1,0) should *y\_direction* be orthogonal to *z\_axis*) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | z\_axis | the z-axis  |
| [in] | y\_direction | the y direction  |
| [out] | transformation | the resultant 3D rotation  |

   Definition at line [502](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00502) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 Referenced by [pcl::getTransformationFromTwoUnitVectors()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00554), and [pcl::getTransFromUnitVectorsZY()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00518).

    getTranslationAndEulerAngles()
------------------------------

    template<typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::getTranslationAndEulerAngles  | ( | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *t*,  |
|  |  | Scalar &  | *x*,  |
|  |  | Scalar &  | *y*,  |
|  |  | Scalar &  | *z*,  |
|  |  | Scalar &  | *roll*,  |
|  |  | Scalar &  | *pitch*,  |
|  |  | Scalar &  | *yaw* |
|  | ) |  |  |

 
 `#include <pcl/common/eigen.h>`

 Extract x,y,z and the Euler angles (intrinsic rotations, ZYX-convention) from the given transformation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | t | the input transformation matrix  |
| [out] | x | the resulting x translation  |
| [out] | y | the resulting y translation  |
| [out] | z | the resulting z translation  |
| [out] | roll | the resulting roll angle  |
| [out] | pitch | the resulting pitch angle  |
| [out] | yaw | the resulting yaw angle  |

   Definition at line [594](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00594) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

 Referenced by [pcl::Narf::copyToNarf36()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00054), [pcl::tracking::ParticleXYZRPY::toState()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00124), [pcl::tracking::ParticleXYZR::toState()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00290), [pcl::tracking::ParticleXYRPY::toState()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00456), [pcl::tracking::ParticleXYRP::toState()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00623), and [pcl::tracking::ParticleXYR::toState()](https://pointclouds.org/documentation/tracking_8hpp_source.html#l00790).

    HIK\_Norm()
-----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::HIK\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the HIK norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [233](https://pointclouds.org/documentation/norms_8hpp_source.html#l00233) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    invert2x2()
-----------

    template<typename Matrix >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Matrix::Scalar pcl::invert2x2  | ( | const Matrix &  | *matrix*,  |
|  |  | Matrix &  | *inverse* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Calculate the inverse of a 2x2 matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | matrix | matrix to be inverted  |
| [out] | inverse | the resultant inverted matrix  |

   
Note
only the upper triangular part is taken into account => non symmetric matrices will give wrong results 
 
Returns
determinant of the original matrix => if 0 no inverse exists => result is invalid 
 Definition at line [405](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00405) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    invert3x3Matrix()
-----------------

    template<typename Matrix >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Matrix::Scalar pcl::invert3x3Matrix  | ( | const Matrix &  | *matrix*,  |
|  |  | Matrix &  | *inverse* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Calculate the inverse of a general 3x3 matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | matrix | matrix to be inverted  |
| [out] | inverse | the resultant inverted matrix  |

   
Returns
determinant of the original matrix => if 0 no inverse exists => result is invalid 
 Definition at line [459](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00459) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    invert3x3SymMatrix()
--------------------

    template<typename Matrix >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Matrix::Scalar pcl::invert3x3SymMatrix  | ( | const Matrix &  | *matrix*,  |
|  |  | Matrix &  | *inverse* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/eigen.h>`

 Calculate the inverse of a 3x3 symmetric matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | matrix | matrix to be inverted  |
| [out] | inverse | the resultant inverted matrix  |

   
Note
only the upper triangular part is taken into account => non symmetric matrices will give wrong results 
 
Returns
determinant of the original matrix => if 0 no inverse exists => result is invalid 
 Definition at line [424](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00424) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    isBetterCorrespondence()
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::isBetterCorrespondence  | ( | const [Correspondence](structpcl_1_1_correspondence) &  | *pc1*,  |
|  |  | const [Correspondence](structpcl_1_1_correspondence) &  | *pc2* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/correspondence.h>`

 [Comparator](classpcl_1_1_comparator "Comparator is the base class for comparators that compare two points given some function.") to enable us to sort a vector of PointCorrespondences according to their scores using std::sort (begin(), end(), isBetterCorrespondence);. 

 Definition at line [146](https://pointclouds.org/documentation/correspondence_8h_source.html#l00146) of file [correspondence.h](https://pointclouds.org/documentation/correspondence_8h_source.html).

 References [pcl::Correspondence::distance](https://pointclouds.org/documentation/correspondence_8h_source.html#l00069).

    JM\_Norm()
----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::JM\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the JM norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [128](https://pointclouds.org/documentation/norms_8hpp_source.html#l00128) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    K\_Norm()
---------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::K\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim*,  |
|  |  | float  | *P1*,  |
|  |  | float  | *P2* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the K norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |
| P1 | the first parameter  |
| P2 | the second parameter  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [208](https://pointclouds.org/documentation/norms_8hpp_source.html#l00208) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

    KL\_Norm()
----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::KL\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the KL between two discrete probability density functions. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first discrete PDF  |
| B | the second discrete PDF  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [219](https://pointclouds.org/documentation/norms_8hpp_source.html#l00219) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    L1\_Norm()
----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::L1\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the L1 norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [88](https://pointclouds.org/documentation/norms_8hpp_source.html#l00088) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::Narf::getDescriptorDistance()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00046), and [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    L2\_Norm()
----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::L2\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the L2 norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [111](https://pointclouds.org/documentation/norms_8hpp_source.html#l00111) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 References [pcl::L2\_Norm\_SQR()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00098).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    L2\_Norm\_SQR()
---------------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::L2\_Norm\_SQR  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the squared L2 norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [98](https://pointclouds.org/documentation/norms_8hpp_source.html#l00098) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::L2\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00111), and [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    lineToLineSegment()
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::lineToLineSegment  | ( | const Eigen::VectorXf &  | *line\_a*,  |
|  |  | const Eigen::VectorXf &  | *line\_b*,  |
|  |  | Eigen::Vector4f &  | *pt1\_seg*,  |
|  |  | Eigen::Vector4f &  | *pt2\_seg* |
|  | ) |  |  |

 
 `#include <[pcl/common/distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h.html)>`

 Get the shortest 3D segment between two 3D lines. 

 
Parameters
 

|  |  |
| --- | --- |
| line\_a | the coefficients of the first line (point, direction)  |
| line\_b | the coefficients of the second line (point, direction)  |
| pt1\_seg | the first point on the line segment  |
| pt2\_seg | the second point on the line segment  |

   Referenced by [pcl::lineWithLineIntersection()](https://pointclouds.org/documentation/intersections_8hpp_source.html#l00049).

    lineWithLineIntersection() [1/2]
--------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::lineWithLineIntersection  | ( | const Eigen::VectorXf &  | *line\_a*,  |
|  |  | const Eigen::VectorXf &  | *line\_b*,  |
|  |  | Eigen::Vector4f &  | *point*,  |
|  |  | double  | *sqr\_eps* = `1e-4` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/intersections.hpp>`

 Get the intersection of a two 3D lines in space as a 3D point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | line\_a | the coefficients of the first line (point, direction)  |
| [in] | line\_b | the coefficients of the second line (point, direction)  |
| [out] | point | holder for the computed 3D point  |
| [in] | sqr\_eps | maximum allowable squared distance to the true solution  |

   Definition at line [49](https://pointclouds.org/documentation/intersections_8hpp_source.html#l00049) of file [intersections.hpp](https://pointclouds.org/documentation/intersections_8hpp_source.html).

 References [pcl::lineToLineSegment()](group__common#ga4ee346a92c01c042ffae2907ae5c93c5).

 Referenced by [pcl::lineWithLineIntersection()](https://pointclouds.org/documentation/intersections_8hpp_source.html#l00069).

    lineWithLineIntersection() [2/2]
--------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::lineWithLineIntersection  | ( | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *line\_a*,  |
|  |  | const [pcl::ModelCoefficients](structpcl_1_1_model_coefficients) &  | *line\_b*,  |
|  |  | Eigen::Vector4f &  | *point*,  |
|  |  | double  | *sqr\_eps* = `1e-4` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/intersections.hpp>`

 Get the intersection of a two 3D lines in space as a 3D point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | line\_a | the coefficients of the first line (point, direction)  |
| [in] | line\_b | the coefficients of the second line (point, direction)  |
| [out] | point | holder for the computed 3D point  |
| [in] | sqr\_eps | maximum allowable squared distance to the true solution  |

   Definition at line [69](https://pointclouds.org/documentation/intersections_8hpp_source.html#l00069) of file [intersections.hpp](https://pointclouds.org/documentation/intersections_8hpp_source.html).

 References [pcl::lineWithLineIntersection()](https://pointclouds.org/documentation/intersections_8hpp_source.html#l00049), and [pcl::ModelCoefficients::values](https://pointclouds.org/documentation/_model_coefficients_8h_source.html#l00017).

    Linf\_Norm()
------------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::Linf\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the L-infinity norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [118](https://pointclouds.org/documentation/norms_8hpp_source.html#l00118) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    loadBinary()
------------

    template<typename Derived >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::loadBinary  | ( | Eigen::MatrixBase< Derived > const &  | *matrix*,  |
|  |  | std::istream &  | *file* |
|  | ) |  |  |

 
 `#include <pcl/common/eigen.h>`

 Read a matrix from an input stream. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | matrix | the resulting matrix, read from the input stream  |
| [in,out] | file | the input stream  |

   Definition at line [638](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00638) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    normAngle()
-----------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::normAngle  | ( | float  | *alpha* | ) |  |

 | inline |

 
 `#include <[pcl/common/angles.h](https://pointclouds.org/documentation/angles_8h.html)>`

 Normalize an angle to (-PI, PI]. 

 
Parameters
 

|  |  |
| --- | --- |
| alpha | the input angle (in radians)  |

   Definition at line [48](https://pointclouds.org/documentation/angles_8hpp_source.html#l00048) of file [angles.hpp](https://pointclouds.org/documentation/angles_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    PF\_Norm()
----------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::PF\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim*,  |
|  |  | float  | *P1*,  |
|  |  | float  | *P2* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the PF norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |
| P1 | the first parameter  |
| P2 | the second parameter  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [197](https://pointclouds.org/documentation/norms_8hpp_source.html#l00197) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

    rad2deg() [1/2]
---------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| double pcl::rad2deg  | ( | double  | *alpha* | ) |  |

 | inline |

 
 `#include <[pcl/common/angles.h](https://pointclouds.org/documentation/angles_8h.html)>`

 Convert an angle from radians to degrees. 

 
Parameters
 

|  |  |
| --- | --- |
| alpha | the input angle (in radians)  |

   Definition at line [73](https://pointclouds.org/documentation/angles_8hpp_source.html#l00073) of file [angles.hpp](https://pointclouds.org/documentation/angles_8hpp_source.html).

    rad2deg() [2/2]
---------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::rad2deg  | ( | float  | *alpha* | ) |  |

 | inline |

 
 `#include <[pcl/common/angles.h](https://pointclouds.org/documentation/angles_8h.html)>`

 Convert an angle from radians to degrees. 

 
Parameters
 

|  |  |
| --- | --- |
| alpha | the input angle (in radians)  |

   Definition at line [61](https://pointclouds.org/documentation/angles_8hpp_source.html#l00061) of file [angles.hpp](https://pointclouds.org/documentation/angles_8hpp_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::computePoint()](https://pointclouds.org/documentation/3dsc_8hpp_source.html#l00133), [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::computePointDescriptor()](https://pointclouds.org/documentation/usc_8hpp_source.html#l00146), and [pcl::Edge< ImageType, ImageType >::detectEdgeRoberts()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00164).

    saveBinary()
------------

    template<typename Derived >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::saveBinary  | ( | const Eigen::MatrixBase< Derived > &  | *matrix*,  |
|  |  | std::ostream &  | *file* |
|  | ) |  |  |

 
 `#include <pcl/common/eigen.h>`

 Write a matrix to an output stream. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | matrix | the matrix to output  |
| [out] | file | the output stream  |

   Definition at line [623](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00623) of file [eigen.hpp](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html).

    selectNorm()
------------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::selectNorm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim*,  |
|  |  | [NormType](group__common#ga9d37f00989a9de11b48deb263649463c) | *norm\_type* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Method that calculates any norm type available, based on the norm\_type variable. 

 
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [50](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 References [pcl::B](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::B\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00140), [pcl::CS](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::CS\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00169), [pcl::DIV](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::Div\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00183), [pcl::HIK](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::HIK\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00233), [pcl::JM](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::JM\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00128), [pcl::K](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::KL](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::KL\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00219), [pcl::L1](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::L1\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00088), [pcl::L2](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::L2\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00111), [pcl::L2\_Norm\_SQR()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00098), [pcl::L2\_SQR](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::LINF](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::Linf\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00118), [pcl::PF](https://pointclouds.org/documentation/norms_8h_source.html#l00054), [pcl::SUBLINEAR](https://pointclouds.org/documentation/norms_8h_source.html#l00054), and [pcl::Sublinear\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00157).

    sqrPointToLineDistance() [1/2]
------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::sqrPointToLineDistance  | ( | const Eigen::Vector4f &  | *pt*,  |
|  |  | const Eigen::Vector4f &  | *line\_pt*,  |
|  |  | const Eigen::Vector4f &  | *line\_dir* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h.html)>`

 Get the square distance from a point to a line (represented by a point and a direction) 

 
Parameters
 

|  |  |
| --- | --- |
| pt | a point  |
| line\_pt | a point on the line (make sure that line\_pt[3] = 0 as there are no internal checks!)  |
| line\_dir | the line direction  |

   Definition at line [75](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00075) of file [distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html).

 Referenced by [pcl::SampleConsensusModelCylinder< PointT, PointNT >::computeModelCoefficients()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00076), [pcl::SampleConsensusModelCone< PointT, PointNT >::pointToAxisDistance()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00505), and [pcl::SampleConsensusModelCylinder< PointT, PointNT >::pointToLineDistance()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00434).

    sqrPointToLineDistance() [2/2]
------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| double pcl::sqrPointToLineDistance  | ( | const Eigen::Vector4f &  | *pt*,  |
|  |  | const Eigen::Vector4f &  | *line\_pt*,  |
|  |  | const Eigen::Vector4f &  | *line\_dir*,  |
|  |  | const double  | *sqr\_length* |
|  | ) |  |  |

 | inline |

 
 `#include <[pcl/common/distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h.html)>`

 Get the square distance from a point to a line (represented by a point and a direction) 

 
Note
This one is useful if one has to compute many distances to a fixed line, so the vector length can be pre-computed 
 
Parameters
 

|  |  |
| --- | --- |
| pt | a point  |
| line\_pt | a point on the line (make sure that line\_pt[3] = 0 as there are no internal checks!)  |
| line\_dir | the line direction  |
| sqr\_length | the squared norm of the line direction  |

   Definition at line [91](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00091) of file [distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html).

    Sublinear\_Norm()
-----------------

    template<typename FloatVectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::Sublinear\_Norm  | ( | FloatVectorT  | *A*,  |
|  |  | FloatVectorT  | *B*,  |
|  |  | int  | *dim* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/norms.hpp>`

 Compute the sublinear norm of the vector between two points. 

 
Parameters
 

|  |  |
| --- | --- |
| A | the first point  |
| B | the second point  |
| dim | the number of dimensions in *A* and *B* (dimensions must match)  |

   
Note
FloatVectorT is any type of vector with its values accessible via [ ] 
 Definition at line [157](https://pointclouds.org/documentation/norms_8hpp_source.html#l00157) of file [norms.hpp](https://pointclouds.org/documentation/norms_8hpp_source.html).

 Referenced by [pcl::selectNorm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00050).

    swapByte()
----------

    template<std::size\_t N>  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::io::swapByte  | ( | char \*  | *bytes* | ) |  |

 
 `#include <pcl/common/io.h>`

 swap bytes order of a char array of length N 

 
Parameters
 

|  |  |
| --- | --- |
| bytes | char array to swap  |

      transformPoint()
----------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) pcl::transformPoint  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *transform* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Transform a point with members x,y,z. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | the point to transform  |
| [out] | transform | the transformation to apply  |

   
Returns
the transformed point 
 Definition at line [474](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00474) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::detail::Transformer< Scalar >::se3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00091).

    transformPointCloud() [1/8]
---------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointXY](structpcl_1_1_point_x_y) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointXY](structpcl_1_1_point_x_y) > &  | *cloud\_out*,  |
|  |  | const Eigen::Affine2f &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Apply an affine transform on a pointcloud having points of type [PointXY](structpcl_1_1_point_x_y "A 2D point structure representing Euclidean xy coordinates."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   Definition at line [310](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00310) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::PointCloud< PointT >::assign()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00548), [pcl::PointCloud< PointT >::begin()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429), [pcl::PointCloud< PointT >::end()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00430), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    transformPointCloud() [2/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 4 > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Apply a rigid transform defined by a 4x4 matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | a rigid transformation  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   Definition at line [263](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00263) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::detail::Transformer< Scalar >::se3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00091), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    transformPointCloud() [3/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/transforms.h>`

 Apply an affine transform defined by an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation (typically a rigid transformation)  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   Definition at line [86](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html#l00086) of file [transforms.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html).

    transformPointCloud() [4/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 4 > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/transforms.h>`

 Apply a rigid transform defined by a 4x4 matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | a rigid transformation  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   Definition at line [280](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html#l00280) of file [transforms.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    transformPointCloud() [5/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/transforms.h>`

 Apply an affine transform defined by an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation (typically a rigid transformation)  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   Definition at line [115](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html#l00115) of file [transforms.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    transformPointCloud() [6/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 3, 1 > &  | *offset*,  |
|  |  | const Eigen::Quaternion< Scalar > &  | *rotation*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Apply a rigid transform defined by a 3D offset and a quaternion. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | offset | the translation component of the rigid transformation  |
| [in] | rotation | the rotation component of the rigid transformation  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   Definition at line [446](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00446) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221).

    transformPointCloud() [7/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 4 > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Apply a rigid transform defined by a 4x4 matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | a rigid transformation  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   
Note
Can be used with cloud\_in equal to cloud\_out 
 Definition at line [221](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::PointCloud< PointT >::assign()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00548), [pcl::PointCloud< PointT >::begin()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429), [pcl::PointCloud< PointT >::data()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00447), [pcl::PointCloud< PointT >::end()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00430), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::detail::Transformer< Scalar >::se3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00091), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [ObjectRecognition::alignModelPoints()](https://pointclouds.org/documentation/iccv2011_2include_2object__recognition_8h_source.html#l00175), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::applyTransformationPointCloud()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00260), [pcl::registration::ELCH< PointT >::compute()](https://pointclouds.org/documentation/elch_8hpp_source.html#l00216), [pcl::GASDEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gasd_8hpp_source.html#l00252), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeStepLengthMT()](https://pointclouds.org/documentation/ndt_8hpp_source.html#l00656), [pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::computeTransformation()](https://pointclouds.org/documentation/ia__fpcs_8hpp_source.html#l00169), [pcl::SampleConsensusInitialAlignment< PointSource, PointTarget, FeatureT >::computeTransformation()](https://pointclouds.org/documentation/ia__ransac_8hpp_source.html#l00189), [pcl::NormalDistributionsTransform2D< PointSource, PointTarget >::computeTransformation()](https://pointclouds.org/documentation/ndt__2d_8hpp_source.html#l00391), [pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >::computeTransformation()](https://pointclouds.org/documentation/sample__consensus__prerejective_8hpp_source.html#l00154), [pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeTransformation()](https://pointclouds.org/documentation/ndt_8hpp_source.html#l00074), [pcl::registration::LUM< PointT >::getConcatenatedCloud()](https://pointclouds.org/documentation/lum_8hpp_source.html#l00294), [pcl::kinfuLS::WorldModel< pcl::PointXYZI >::getExistingData()](https://pointclouds.org/documentation/world__model_8hpp_source.html#l00063), [pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >::getFitness()](https://pointclouds.org/documentation/sample__consensus__prerejective_8hpp_source.html#l00307), [pcl::Registration< PointSource, PointTarget, Scalar >::getFitnessScore()](https://pointclouds.org/documentation/registration_8hpp_source.html#l00134), [pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::getMeshesFromTSDFVector()](https://pointclouds.org/documentation/standalone__marching__cubes_8hpp_source.html#l00094), [pcl::registration::LUM< PointT >::getTransformedCloud()](https://pointclouds.org/documentation/lum_8hpp_source.html#l00285), [pcl::TextureMapping< PointInT >::mapMultipleTexturesToMeshUV()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00281), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::registration::MetaRegistration< PointT, Scalar >::registerCloud()](https://pointclouds.org/documentation/meta__registration_8hpp_source.html#l00052), [pcl::ESFEstimation< PointInT, PointOutT >::scale\_points\_unit\_sphere()](https://pointclouds.org/documentation/esf_8hpp_source.html#l00481), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::sgurf()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00198), [pcl::TextureMapping< PointInT >::sortFacesByCamera()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00530), [pcl::TextureMapping< PointInT >::textureMeshwithMultipleCameras()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00702), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00446), [pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::validateMatch()](https://pointclouds.org/documentation/ia__fpcs_8hpp_source.html#l00832), [pcl::registration::FPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::validateTransformation()](https://pointclouds.org/documentation/ia__fpcs_8hpp_source.html#l00864), and [pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::validateTransformation()](https://pointclouds.org/documentation/ia__kfpcs_8hpp_source.html#l00146).

    transformPointCloud() [8/8]
---------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloud  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/transforms.h>`

 Apply an affine transform defined by an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) Transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation (typically a rigid transformation)  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z) should be copied into the new transformed cloud  |

   
Note
Can be used with cloud\_in equal to cloud\_out 
 Definition at line [59](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html#l00059) of file [transforms.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html).

    transformPointCloudWithNormals() [1/4]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloudWithNormals  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 4 > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation (typically a rigid transformation)  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z, normal\_x, normal\_y, normal\_z) should be copied into the new transformed cloud  |

   
Note
Can be used with cloud\_in equal to cloud\_out 
 Definition at line [395](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00395) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::detail::Transformer< Scalar >::se3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00091), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::detail::Transformer< Scalar >::so3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00079), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    transformPointCloudWithNormals() [2/4]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloudWithNormals  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | const [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 4 > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/transforms.h>`

 Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [in] | indices | the set of point indices to use from the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation (typically a rigid transformation)  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z, normal\_x, normal\_y, normal\_z) should be copied into the new transformed cloud  |

   
Note
Can be used with cloud\_in equal to cloud\_out 
 Definition at line [366](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html#l00366) of file [transforms.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2transforms_8h_source.html).

 References [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020).

    transformPointCloudWithNormals() [3/4]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloudWithNormals  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 3, 1 > &  | *offset*,  |
|  |  | const Eigen::Quaternion< Scalar > &  | *rotation*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | offset | the translation component of the rigid transformation  |
| [in] | rotation | the rotation component of the rigid transformation  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z, normal\_x, normal\_y, normal\_z) should be copied into the new transformed cloud  |

   Definition at line [460](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00460) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349).

    transformPointCloudWithNormals() [4/4]
--------------------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::transformPointCloudWithNormals  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_in*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out*,  |
|  |  | const Eigen::Matrix< Scalar, 4, 4 > &  | *transform*,  |
|  |  | bool  | *copy\_all\_fields* = `true` |
|  | ) |  |  |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Transform a point cloud and rotate its normals using an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) transform. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud\_in | the input point cloud  |
| [out] | cloud\_out | the resultant output point cloud  |
| [in] | transform | an affine transformation (typically a rigid transformation)  |
| [in] | copy\_all\_fields | flag that controls whether the contents of the fields (other than x, y, z, normal\_x, normal\_y, normal\_z) should be copied into the new transformed cloud  |

   
Note
Can be used with cloud\_in equal to cloud\_out 
 Definition at line [349](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::PointCloud< PointT >::assign()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00548), [pcl::PointCloud< PointT >::begin()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429), [pcl::PointCloud< PointT >::end()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00430), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::reserve()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::detail::Transformer< Scalar >::se3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00091), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::detail::Transformer< Scalar >::so3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00079), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::IterativeClosestPointWithNormals< PointSource, PointTarget, Scalar >::transformCloud()](https://pointclouds.org/documentation/icp_8hpp_source.html#l00315), and [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00460).

    transformPointWithNormal()
--------------------------

    template<typename PointT , typename Scalar >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) pcl::transformPointWithNormal  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | const Eigen::Transform< Scalar, 3, Eigen::Affine > &  | *transform* |
|  | ) |  |  |

 | inline |

 
 `#include <pcl/common/impl/transforms.hpp>`

 Transform a point with members x,y,z,normal\_x,normal\_y,normal\_z. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | the point to transform  |
| [out] | transform | the transformation to apply  |

   
Returns
the transformed point 
 Definition at line [484](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00484) of file [transforms.hpp](https://pointclouds.org/documentation/transforms_8hpp_source.html).

 References [pcl::detail::Transformer< Scalar >::se3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00091), and [pcl::detail::Transformer< Scalar >::so3()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00079).

   

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/group__common.html>

[RangeImage](classpcl_1_1_range_image "RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...") is derived from pcl/PointCloud and provides functionalities with focus on situations where a 3D scene was captured from a specific view point. [More...](classpcl_1_1_range_image#details)

 `#include <[pcl/range\_image/range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| enum  | [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) { [CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf) = 0 , [LASER\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992faa7e6d8ab63f2359fd25c11db114db19c) = 1 } |
|
| using  | [BaseClass](classpcl_1_1_range_image#a9aa810c2aa68b3e77745e1f98775be5b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [VectorOfEigenVector3f](classpcl_1_1_range_image#aba06f02358b2efee4b98e086068ee6b1) = std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > |
|
| using  | [Ptr](classpcl_1_1_range_image#a3ba0be0fa2c5cbd409547860c68ff9e8) = shared\_ptr< [RangeImage](classpcl_1_1_range_image) > |
|
| using  | [ConstPtr](classpcl_1_1_range_image#a960ddd0ee536453dc9c042fd4a7754a1) = shared\_ptr< const [RangeImage](classpcl_1_1_range_image) > |
|
| - Public Types inherited from [pcl::PointCloud< PointWithRange >](classpcl_1_1_point_cloud) |
| using  | [PointType](classpcl_1_1_point_cloud#a113035c40ca7dd7e0a627d06679fe448) = [PointWithRange](structpcl_1_1_point_with_range) |
|
| using  | [VectorType](classpcl_1_1_point_cloud#ab45b75e3c8487979f6f77e7df55ada43) = std::vector< [PointWithRange](structpcl_1_1_point_with_range), Eigen::aligned\_allocator< [PointWithRange](structpcl_1_1_point_with_range) > > |
|
| using  | [CloudVectorType](classpcl_1_1_point_cloud#a8735a9dd13685e75bb3eeacc8e10195f) = std::vector< [PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) >, Eigen::aligned\_allocator< [PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > > > |
|
| using  | [Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) = shared\_ptr< [PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > > |
|
| using  | [ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) = shared\_ptr< const [PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > > |
|
| using  | [value\_type](classpcl_1_1_point_cloud#a3c062c8598136181bf309724786c9688) = [PointWithRange](structpcl_1_1_point_with_range) |
|
| using  | [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) = [PointWithRange](structpcl_1_1_point_with_range) & |
|
| using  | [const\_reference](classpcl_1_1_point_cloud#aa12d2232fd5722806001ddbabad6cd24) = const [PointWithRange](structpcl_1_1_point_with_range) & |
|
| using  | [difference\_type](classpcl_1_1_point_cloud#abc9664f2985a6013bef9878309548c7d) = typename VectorType::difference\_type |
|
| using  | [size\_type](classpcl_1_1_point_cloud#a0271fb189501a836a1119d7ee2653f03) = typename VectorType::size\_type |
|
| using  | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) = typename VectorType::iterator |
|
| using  | [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) = typename VectorType::const\_iterator |
|
| using  | [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) = typename VectorType::reverse\_iterator |
|
| using  | [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) = typename VectorType::const\_reverse\_iterator |
|




|  |
| --- |
| 
 Public Member Functions |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) | [RangeImage](classpcl_1_1_range_image#af18b2d3410fb7799ad4de375b51df035) () |
|  | Constructor. [More...](classpcl_1_1_range_image#af18b2d3410fb7799ad4de375b51df035) |
|
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) | [~RangeImage](classpcl_1_1_range_image#a932ac755a26f561c2a90b8f095a44ad0) ()=default |
|  | Destructor. [More...](classpcl_1_1_range_image#a932ac755a26f561c2a90b8f095a44ad0) |
|
| [Ptr](classpcl_1_1_range_image#a3ba0be0fa2c5cbd409547860c68ff9e8) | [makeShared](classpcl_1_1_range_image#a7f898747aa6a52e484d65babc2600a23) () |
|  | Get a boost shared pointer of a copy of this. [More...](classpcl_1_1_range_image#a7f898747aa6a52e484d65babc2600a23) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [reset](classpcl_1_1_range_image#acd539d95dd7bbbd1d67db12e9be275b0) () |
|  | Reset all values to an empty range image. [More...](classpcl_1_1_range_image#acd539d95dd7bbbd1d67db12e9be275b0) |
|
| template<typename PointCloudType >  |
| void  | [createFromPointCloud](classpcl_1_1_range_image#a82f6a143de2d73a0ad9fea6c527a2efb) (const PointCloudType &point\_cloud, float angular\_resolution=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(0.5f), float max\_angle\_width=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(360.0f), float max\_angle\_height=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(180.0f), const Eigen::Affine3f &sensor\_pose=Eigen::Affine3f::Identity(), [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float noise\_level=0.0f, float min\_range=0.0f, int border\_size=0) |
|  | Create the depth image from a point cloud. [More...](classpcl_1_1_range_image#a82f6a143de2d73a0ad9fea6c527a2efb) |
|
| template<typename PointCloudType >  |
| void  | [createFromPointCloud](classpcl_1_1_range_image#ae3a8a2def6dde7446b9fc456f7992aa9) (const PointCloudType &point\_cloud, float angular\_resolution\_x=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(0.5f), float angular\_resolution\_y=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(0.5f), float max\_angle\_width=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(360.0f), float max\_angle\_height=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(180.0f), const Eigen::Affine3f &sensor\_pose=Eigen::Affine3f::Identity(), [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float noise\_level=0.0f, float min\_range=0.0f, int border\_size=0) |
|  | Create the depth image from a point cloud. [More...](classpcl_1_1_range_image#ae3a8a2def6dde7446b9fc456f7992aa9) |
|
| template<typename PointCloudType >  |
| void  | [createFromPointCloudWithKnownSize](classpcl_1_1_range_image#afbb553405d9b1df2b10b08c98c052250) (const PointCloudType &point\_cloud, float angular\_resolution, const Eigen::Vector3f &point\_cloud\_center, float point\_cloud\_radius, const Eigen::Affine3f &sensor\_pose=Eigen::Affine3f::Identity(), [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float noise\_level=0.0f, float min\_range=0.0f, int border\_size=0) |
|  | Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. [More...](classpcl_1_1_range_image#afbb553405d9b1df2b10b08c98c052250) |
|
| template<typename PointCloudType >  |
| void  | [createFromPointCloudWithKnownSize](classpcl_1_1_range_image#ac52b84843090cf756a37c596b5e772d2) (const PointCloudType &point\_cloud, float angular\_resolution\_x, float angular\_resolution\_y, const Eigen::Vector3f &point\_cloud\_center, float point\_cloud\_radius, const Eigen::Affine3f &sensor\_pose=Eigen::Affine3f::Identity(), [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float noise\_level=0.0f, float min\_range=0.0f, int border\_size=0) |
|  | Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. [More...](classpcl_1_1_range_image#ac52b84843090cf756a37c596b5e772d2) |
|
| template<typename PointCloudTypeWithViewpoints >  |
| void  | [createFromPointCloudWithViewpoints](classpcl_1_1_range_image#a91cb7406e0e57923a7f5d533ea578c0f) (const PointCloudTypeWithViewpoints &point\_cloud, float angular\_resolution, float max\_angle\_width, float max\_angle\_height, [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float noise\_level=0.0f, float min\_range=0.0f, int border\_size=0) |
|  | Create the depth image from a point cloud, using the average viewpoint of the points (vp\_x,vp\_y,vp\_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). [More...](classpcl_1_1_range_image#a91cb7406e0e57923a7f5d533ea578c0f) |
|
| template<typename PointCloudTypeWithViewpoints >  |
| void  | [createFromPointCloudWithViewpoints](classpcl_1_1_range_image#a66de72c9511e694d41bd7a48c043f541) (const PointCloudTypeWithViewpoints &point\_cloud, float angular\_resolution\_x, float angular\_resolution\_y, float max\_angle\_width, float max\_angle\_height, [CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float noise\_level=0.0f, float min\_range=0.0f, int border\_size=0) |
|  | Create the depth image from a point cloud, using the average viewpoint of the points (vp\_x,vp\_y,vp\_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). [More...](classpcl_1_1_range_image#a66de72c9511e694d41bd7a48c043f541) |
|
| void  | [createEmpty](classpcl_1_1_range_image#a46cb318d3d6f1cf6aace8d2ed10ed7fa) (float angular\_resolution, const Eigen::Affine3f &sensor\_pose=Eigen::Affine3f::Identity(), [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float angle\_width=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(360.0f), float angle\_height=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(180.0f)) |
|  | Create an empty depth image (filled with unobserved points) [More...](classpcl_1_1_range_image#a46cb318d3d6f1cf6aace8d2ed10ed7fa) |
|
| void  | [createEmpty](classpcl_1_1_range_image#afa9ecf76f97e99ede5b71bb7da6c1715) (float angular\_resolution\_x, float angular\_resolution\_y, const Eigen::Affine3f &sensor\_pose=Eigen::Affine3f::Identity(), [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame=[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf), float angle\_width=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(360.0f), float angle\_height=[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(180.0f)) |
|  | Create an empty depth image (filled with unobserved points) [More...](classpcl_1_1_range_image#afa9ecf76f97e99ede5b71bb7da6c1715) |
|
| template<typename PointCloudType >  |
| void  | [doZBuffer](classpcl_1_1_range_image#a56655a55b4c83c7ce301ca0f020759b4) (const PointCloudType &point\_cloud, float noise\_level, float min\_range, int &top, int &right, int &bottom, int &left) |
|  | Integrate the given point cloud into the current range image using a z-buffer. [More...](classpcl_1_1_range_image#a56655a55b4c83c7ce301ca0f020759b4) |
|
| template<typename PointCloudType >  |
| void  | [integrateFarRanges](classpcl_1_1_range_image#a6c3ceb66679ccc84587eef5c29a16386) (const PointCloudType &far\_ranges) |
|  | Integrates the given far range measurements into the range image. [More...](classpcl_1_1_range_image#a6c3ceb66679ccc84587eef5c29a16386) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [cropImage](classpcl_1_1_range_image#a20f223d93080e9ce32122f90a265f7c4) (int border\_size=0, int top=-1, int right=-1, int bottom=-1, int left=-1) |
|  | Cut the range image to the minimal size so that it still contains all actual range readings. [More...](classpcl_1_1_range_image#a20f223d93080e9ce32122f90a265f7c4) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float \*  | [getRangesArray](classpcl_1_1_range_image#ab124a58f66b1d9a5d0f433c8474ef2b4) () const |
|  | Get all the range values in one float array of size width\*height. [More...](classpcl_1_1_range_image#ab124a58f66b1d9a5d0f433c8474ef2b4) |
|
| const Eigen::Affine3f &  | [getTransformationToRangeImageSystem](classpcl_1_1_range_image#ac503c8e060a6f6b1cae1c1fa87fa6e33) () const |
|  | Getter for the transformation from the world system into the range image system (the sensor coordinate frame) [More...](classpcl_1_1_range_image#ac503c8e060a6f6b1cae1c1fa87fa6e33) |
|
| void  | [setTransformationToRangeImageSystem](classpcl_1_1_range_image#ab0419b66dd9e76fbc6d568049abfad3c) (const Eigen::Affine3f &to\_range\_image\_system) |
|  | Setter for the transformation from the range image system (the sensor coordinate frame) into the world system. [More...](classpcl_1_1_range_image#ab0419b66dd9e76fbc6d568049abfad3c) |
|
| const Eigen::Affine3f &  | [getTransformationToWorldSystem](classpcl_1_1_range_image#afdff6ffbb3bfec294637225b5fb82956) () const |
|  | Getter for the transformation from the range image system (the sensor coordinate frame) into the world system. [More...](classpcl_1_1_range_image#afdff6ffbb3bfec294637225b5fb82956) |
|
| float  | [getAngularResolution](classpcl_1_1_range_image#a6fc3548b0b33e90cead2c1ecfce14c34) () const |
|  | Getter for the angular resolution of the range image in x direction in radians per pixel. [More...](classpcl_1_1_range_image#a6fc3548b0b33e90cead2c1ecfce14c34) |
|
| float  | [getAngularResolutionX](classpcl_1_1_range_image#a6522dbfac4997c15bd24b0b9b3e9d4dd) () const |
|  | Getter for the angular resolution of the range image in x direction in radians per pixel. [More...](classpcl_1_1_range_image#a6522dbfac4997c15bd24b0b9b3e9d4dd) |
|
| float  | [getAngularResolutionY](classpcl_1_1_range_image#af4891c9812652efe513b9ff060490364) () const |
|  | Getter for the angular resolution of the range image in y direction in radians per pixel. [More...](classpcl_1_1_range_image#af4891c9812652efe513b9ff060490364) |
|
| void  | [getAngularResolution](classpcl_1_1_range_image#a41c0b0f74510988357a56fdc48d18f93) (float &angular\_resolution\_x, float &angular\_resolution\_y) const |
|  | Getter for the angular resolution of the range image in x and y direction (in radians). [More...](classpcl_1_1_range_image#a41c0b0f74510988357a56fdc48d18f93) |
|
| void  | [setAngularResolution](classpcl_1_1_range_image#a2720450161caef9a2992b0ac943ab2b7) (float angular\_resolution) |
|  | Set the angular resolution of the range image. [More...](classpcl_1_1_range_image#a2720450161caef9a2992b0ac943ab2b7) |
|
| void  | [setAngularResolution](classpcl_1_1_range_image#a74583440e4ef4b611b7d2b638c6da28e) (float angular\_resolution\_x, float angular\_resolution\_y) |
|  | Set the angular resolution of the range image. [More...](classpcl_1_1_range_image#a74583440e4ef4b611b7d2b638c6da28e) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [getPoint](classpcl_1_1_range_image#a52164736793c99cc9fc48dedee615e45) (int image\_x, int image\_y) const |
|  | Return the 3D point with range at the given image position. [More...](classpcl_1_1_range_image#a52164736793c99cc9fc48dedee615e45) |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [getPoint](classpcl_1_1_range_image#adb229f49ccf885517e905373372b00be) (int image\_x, int image\_y) |
|  | Non-const-version of getPoint. [More...](classpcl_1_1_range_image#adb229f49ccf885517e905373372b00be) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [getPoint](classpcl_1_1_range_image#a0168934416e10ded1eb34d57123b8d37) (float image\_x, float image\_y) const |
|  | Return the 3d point with range at the given image position. [More...](classpcl_1_1_range_image#a0168934416e10ded1eb34d57123b8d37) |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [getPoint](classpcl_1_1_range_image#aa403d6ee9c3d76a50b268204acab27ff) (float image\_x, float image\_y) |
|  | Non-const-version of the above. [More...](classpcl_1_1_range_image#aa403d6ee9c3d76a50b268204acab27ff) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [getPointNoCheck](classpcl_1_1_range_image#a587663a5b4123f4c423c9e38a9b36d41) (int image\_x, int image\_y) const |
|  | Return the 3D point with range at the given image position. [More...](classpcl_1_1_range_image#a587663a5b4123f4c423c9e38a9b36d41) |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [getPointNoCheck](classpcl_1_1_range_image#a45bfd00007940d0043b8f1df43663d07) (int image\_x, int image\_y) |
|  | Non-const-version of getPointNoCheck. [More...](classpcl_1_1_range_image#a45bfd00007940d0043b8f1df43663d07) |
|
| void  | [getPoint](classpcl_1_1_range_image#a35a8dbb8cc328029a928b3cff4225d5b) (int image\_x, int image\_y, Eigen::Vector3f &point) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a35a8dbb8cc328029a928b3cff4225d5b) |
|
| void  | [getPoint](classpcl_1_1_range_image#aa7e520479cc8f66e5ddd7f594649b25f) (int index, Eigen::Vector3f &point) const |
|  | Same as above. [More...](classpcl_1_1_range_image#aa7e520479cc8f66e5ddd7f594649b25f) |
|
| const Eigen::Map< const Eigen::Vector3f >  | [getEigenVector3f](classpcl_1_1_range_image#a63716da3dad788cd23b64e9dc67b1791) (int x, int y) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a63716da3dad788cd23b64e9dc67b1791) |
|
| const Eigen::Map< const Eigen::Vector3f >  | [getEigenVector3f](classpcl_1_1_range_image#aab3ee4df50d138b9f9b4ba34306c1071) (int index) const |
|  | Same as above. [More...](classpcl_1_1_range_image#aab3ee4df50d138b9f9b4ba34306c1071) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [getPoint](classpcl_1_1_range_image#a467a03da34e4ffd323ae0f080ac85570) (int index) const |
|  | Return the 3d point with range at the given index (whereas index=y\*width+x) [More...](classpcl_1_1_range_image#a467a03da34e4ffd323ae0f080ac85570) |
|
| void  | [calculate3DPoint](classpcl_1_1_range_image#a1acc16b4b5fb7071175bada62a5b75d0) (float image\_x, float image\_y, float range, [PointWithRange](structpcl_1_1_point_with_range) &point) const |
|  | Calculate the 3D point according to the given image point and range. [More...](classpcl_1_1_range_image#a1acc16b4b5fb7071175bada62a5b75d0) |
|
| void  | [calculate3DPoint](classpcl_1_1_range_image#a0f969bd0149b7848f0f26b44bb88035c) (float image\_x, float image\_y, [PointWithRange](structpcl_1_1_point_with_range) &point) const |
|  | Calculate the 3D point according to the given image point and the range value at the closest pixel. [More...](classpcl_1_1_range_image#a0f969bd0149b7848f0f26b44bb88035c) |
|
| virtual void  | [calculate3DPoint](classpcl_1_1_range_image#aa9e97e7487ac21a77075b5f8b64ca205) (float image\_x, float image\_y, float range, Eigen::Vector3f &point) const |
|  | Calculate the 3D point according to the given image point and range. [More...](classpcl_1_1_range_image#aa9e97e7487ac21a77075b5f8b64ca205) |
|
| void  | [calculate3DPoint](classpcl_1_1_range_image#abbb77866cf4ee5d2a619f4f8cc62cc9b) (float image\_x, float image\_y, Eigen::Vector3f &point) const |
|  | Calculate the 3D point according to the given image point and the range value at the closest pixel. [More...](classpcl_1_1_range_image#abbb77866cf4ee5d2a619f4f8cc62cc9b) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [recalculate3DPointPositions](classpcl_1_1_range_image#a08d6ccfef80c3788102327df618a3fbf) () |
|  | Recalculate all 3D point positions according to their pixel position and range. [More...](classpcl_1_1_range_image#a08d6ccfef80c3788102327df618a3fbf) |
|
| virtual void  | [getImagePoint](classpcl_1_1_range_image#a7a53bfc9f4a3365ee8e62513ae37eb5c) (const Eigen::Vector3f &point, float &image\_x, float &image\_y, float &range) const |
|  | Get imagePoint from 3D point in world coordinates. [More...](classpcl_1_1_range_image#a7a53bfc9f4a3365ee8e62513ae37eb5c) |
|
| void  | [getImagePoint](classpcl_1_1_range_image#a9295b795c8f52a90eb3af983612fea8a) (const Eigen::Vector3f &point, int &image\_x, int &image\_y, float &range) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a9295b795c8f52a90eb3af983612fea8a) |
|
| void  | [getImagePoint](classpcl_1_1_range_image#a8b9b678a491ddefc1109494157e0aa83) (const Eigen::Vector3f &point, float &image\_x, float &image\_y) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a8b9b678a491ddefc1109494157e0aa83) |
|
| void  | [getImagePoint](classpcl_1_1_range_image#aac7ef90b9c78876a492fd16701d6578e) (const Eigen::Vector3f &point, int &image\_x, int &image\_y) const |
|  | Same as above. [More...](classpcl_1_1_range_image#aac7ef90b9c78876a492fd16701d6578e) |
|
| void  | [getImagePoint](classpcl_1_1_range_image#a09c81c4b4ffd68fc5742167d15f6af87) (float x, float y, float z, float &image\_x, float &image\_y, float &range) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a09c81c4b4ffd68fc5742167d15f6af87) |
|
| void  | [getImagePoint](classpcl_1_1_range_image#a8123412373a87d5030ee5f8a9b3ba3e4) (float x, float y, float z, float &image\_x, float &image\_y) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a8123412373a87d5030ee5f8a9b3ba3e4) |
|
| void  | [getImagePoint](classpcl_1_1_range_image#a2ba0bfce9adcf8161feec7c59f75082c) (float x, float y, float z, int &image\_x, int &image\_y) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a2ba0bfce9adcf8161feec7c59f75082c) |
|
| float  | [checkPoint](classpcl_1_1_range_image#a3e63aa0e7dc143f4a4a15611edcede70) (const Eigen::Vector3f &point, [PointWithRange](structpcl_1_1_point_with_range) &point\_in\_image) const |
|  | point\_in\_image will be the point in the image at the position the given point would be. [More...](classpcl_1_1_range_image#a3e63aa0e7dc143f4a4a15611edcede70) |
|
| float  | [getRangeDifference](classpcl_1_1_range_image#aea43fc18a9695437879d4b3b3860a9ae) (const Eigen::Vector3f &point) const |
|  | Returns the difference in range between the given point and the range of the point in the image at the position the given point would be. [More...](classpcl_1_1_range_image#aea43fc18a9695437879d4b3b3860a9ae) |
|
| void  | [getImagePointFromAngles](classpcl_1_1_range_image#adfd931443541e194f1c53d5f7b1c43e6) (float angle\_x, float angle\_y, float &image\_x, float &image\_y) const |
|  | Get the image point corresponding to the given angles. [More...](classpcl_1_1_range_image#adfd931443541e194f1c53d5f7b1c43e6) |
|
| void  | [getAnglesFromImagePoint](classpcl_1_1_range_image#a2388ab60ff312e9034df5e67f899ea97) (float image\_x, float image\_y, float &angle\_x, float &angle\_y) const |
|  | Get the angles corresponding to the given image point. [More...](classpcl_1_1_range_image#a2388ab60ff312e9034df5e67f899ea97) |
|
| void  | [real2DToInt2D](classpcl_1_1_range_image#a86174b766aa77898e0d49ef11f4613b1) (float x, float y, int &xInt, int &yInt) const |
|  | Transforms an image point in float values to an image point in int values. [More...](classpcl_1_1_range_image#a86174b766aa77898e0d49ef11f4613b1) |
|
| bool  | [isInImage](classpcl_1_1_range_image#a824a6bb27b43a174da775a656b81a483) (int x, int y) const |
|  | Check if a point is inside of the image. [More...](classpcl_1_1_range_image#a824a6bb27b43a174da775a656b81a483) |
|
| bool  | [isValid](classpcl_1_1_range_image#a2372989721c3c119bb5d4b5ebd9b59c3) (int x, int y) const |
|  | Check if a point is inside of the image and has a finite range. [More...](classpcl_1_1_range_image#a2372989721c3c119bb5d4b5ebd9b59c3) |
|
| bool  | [isValid](classpcl_1_1_range_image#ad353c062c9b17adda3797bf970b9934b) (int index) const |
|  | Check if a point has a finite range. [More...](classpcl_1_1_range_image#ad353c062c9b17adda3797bf970b9934b) |
|
| bool  | [isObserved](classpcl_1_1_range_image#a75e51885e151759d815ec1b1b72ea4ff) (int x, int y) const |
|  | Check if a point is inside of the image and has either a finite range or a max reading (range=INFINITY) [More...](classpcl_1_1_range_image#a75e51885e151759d815ec1b1b72ea4ff) |
|
| bool  | [isMaxRange](classpcl_1_1_range_image#a771ab2f1ee2952a319da20301b27ab3b) (int x, int y) const |
|  | Check if a point is a max range (range=INFINITY) - please check isInImage or isObserved first! [More...](classpcl_1_1_range_image#a771ab2f1ee2952a319da20301b27ab3b) |
|
| bool  | [getNormal](classpcl_1_1_range_image#aeb21e9a192704802adabd6693f00e397) (int x, int y, int radius, Eigen::Vector3f &normal, int step\_size=1) const |
|  | Calculate the normal of an image point using the neighbors with a maximum pixel distance of radius. [More...](classpcl_1_1_range_image#aeb21e9a192704802adabd6693f00e397) |
|
| bool  | [getNormalForClosestNeighbors](classpcl_1_1_range_image#accb0781e43e55cff62851019ffac47ce) (int x, int y, int radius, const [PointWithRange](structpcl_1_1_point_with_range) &point, int no\_of\_nearest\_neighbors, Eigen::Vector3f &normal, int step\_size=1) const |
|  | Same as above, but only the no\_of\_nearest\_neighbors points closest to the given point are considered. [More...](classpcl_1_1_range_image#accb0781e43e55cff62851019ffac47ce) |
|
| bool  | [getNormalForClosestNeighbors](classpcl_1_1_range_image#a3e583b912d095111ad61232ca2e8705e) (int x, int y, int radius, const Eigen::Vector3f &point, int no\_of\_nearest\_neighbors, Eigen::Vector3f &normal, Eigen::Vector3f \*point\_on\_plane=nullptr, int step\_size=1) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a3e583b912d095111ad61232ca2e8705e) |
|
| bool  | [getNormalForClosestNeighbors](classpcl_1_1_range_image#a5cb82433197f15970647793c6271fe9a) (int x, int y, Eigen::Vector3f &normal, int radius=2) const |
|  | Same as above, using default values. [More...](classpcl_1_1_range_image#a5cb82433197f15970647793c6271fe9a) |
|
| bool  | [getSurfaceInformation](classpcl_1_1_range_image#aa44f7eb7c10f57ca223fed1e1267ac51) (int x, int y, int radius, const Eigen::Vector3f &point, int no\_of\_closest\_neighbors, int step\_size, float &max\_closest\_neighbor\_distance\_squared, Eigen::Vector3f &normal, Eigen::Vector3f &mean, Eigen::Vector3f &eigen\_values, Eigen::Vector3f \*normal\_all\_neighbors=nullptr, Eigen::Vector3f \*mean\_all\_neighbors=nullptr, Eigen::Vector3f \*eigen\_values\_all\_neighbors=nullptr) const |
|  | Same as above but extracts some more data and can also return the extracted information for all neighbors in radius if normal\_all\_neighbors is not NULL. [More...](classpcl_1_1_range_image#aa44f7eb7c10f57ca223fed1e1267ac51) |
|
| float  | [getSquaredDistanceOfNthNeighbor](classpcl_1_1_range_image#ae259a9342238404e8dbb3ff938470ce2) (int x, int y, int radius, int n, int step\_size) const |
|
| float  | [getImpactAngle](classpcl_1_1_range_image#a6b87fa04fd32ec986f1af9149bd46841) (const [PointWithRange](structpcl_1_1_point_with_range) &point1, const [PointWithRange](structpcl_1_1_point_with_range) &point2) const |
|  | Calculate the impact angle based on the sensor position and the two given points - will return -INFINITY if one of the points is unobserved. [More...](classpcl_1_1_range_image#a6b87fa04fd32ec986f1af9149bd46841) |
|
| float  | [getImpactAngle](classpcl_1_1_range_image#aa6210710d430006d4c4ca93b6f8023da) (int x1, int y1, int x2, int y2) const |
|  | Same as above. [More...](classpcl_1_1_range_image#aa6210710d430006d4c4ca93b6f8023da) |
|
| float  | [getImpactAngleBasedOnLocalNormal](classpcl_1_1_range_image#a1ca716a0e6b2aba846bdb4079275f6d9) (int x, int y, int radius) const |
|  | Extract a local normal (with a heuristic not to include background points) and calculate the impact angle based on this. [More...](classpcl_1_1_range_image#a1ca716a0e6b2aba846bdb4079275f6d9) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float \*  | [getImpactAngleImageBasedOnLocalNormals](classpcl_1_1_range_image#aecd52c29445543d03e40f0d75c8120c0) (int radius) const |
|  | Uses the above function for every point in the image. [More...](classpcl_1_1_range_image#aecd52c29445543d03e40f0d75c8120c0) |
|
| float  | [getNormalBasedAcutenessValue](classpcl_1_1_range_image#a5b6d4bb74fa5134a6c21823dfdcdb13e) (int x, int y, int radius) const |
|  | Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) This uses getImpactAngleBasedOnLocalNormal Will return -INFINITY if no normal could be calculated. [More...](classpcl_1_1_range_image#a5b6d4bb74fa5134a6c21823dfdcdb13e) |
|
| float  | [getAcutenessValue](classpcl_1_1_range_image#a2290765b8ccd5608ffa4967dc282395a) (const [PointWithRange](structpcl_1_1_point_with_range) &point1, const [PointWithRange](structpcl_1_1_point_with_range) &point2) const |
|  | Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) will return -INFINITY if one of the points is unobserved. [More...](classpcl_1_1_range_image#a2290765b8ccd5608ffa4967dc282395a) |
|
| float  | [getAcutenessValue](classpcl_1_1_range_image#a428803af781c88a43cf0c9b251d081bf) (int x1, int y1, int x2, int y2) const |
|  | Same as above. [More...](classpcl_1_1_range_image#a428803af781c88a43cf0c9b251d081bf) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getAcutenessValueImages](classpcl_1_1_range_image#a56821ed68e8701450b4725ed9c6fd7a0) (int pixel\_distance, float \*&acuteness\_value\_image\_x, float \*&acuteness\_value\_image\_y) const |
|  | Calculate getAcutenessValue for every point. [More...](classpcl_1_1_range_image#a56821ed68e8701450b4725ed9c6fd7a0) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float  | [getSurfaceChange](classpcl_1_1_range_image#a16b744103dab2ba2a9ada137aa75887f) (int x, int y, int radius) const |
|  | Calculates, how much the surface changes at a point. [More...](classpcl_1_1_range_image#a16b744103dab2ba2a9ada137aa75887f) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float \*  | [getSurfaceChangeImage](classpcl_1_1_range_image#a23b27f51c94a493a2c98c96a6acf3f11) (int radius) const |
|  | Uses the above function for every point in the image. [More...](classpcl_1_1_range_image#a23b27f51c94a493a2c98c96a6acf3f11) |
|
| void  | [getSurfaceAngleChange](classpcl_1_1_range_image#afd94afe865f6cd46cfbc64f45bb1d03e) (int x, int y, int radius, float &angle\_change\_x, float &angle\_change\_y) const |
|  | Calculates, how much the surface changes at a point. [More...](classpcl_1_1_range_image#afd94afe865f6cd46cfbc64f45bb1d03e) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getSurfaceAngleChangeImages](classpcl_1_1_range_image#a0501e4697fe05327423b4e247baa3528) (int radius, float \*&angle\_change\_image\_x, float \*&angle\_change\_image\_y) const |
|  | Uses the above function for every point in the image. [More...](classpcl_1_1_range_image#a0501e4697fe05327423b4e247baa3528) |
|
| float  | [getCurvature](classpcl_1_1_range_image#ac6a22e10be8bfcedf9297d1e1badef1c) (int x, int y, int radius, int step\_size) const |
|  | Calculates the curvature in a point using pca. [More...](classpcl_1_1_range_image#ac6a22e10be8bfcedf9297d1e1badef1c) |
|
| const Eigen::Vector3f  | [getSensorPos](classpcl_1_1_range_image#a942d6b253c5df68008614af6dfed323a) () const |
|  | Get the sensor position. [More...](classpcl_1_1_range_image#a942d6b253c5df68008614af6dfed323a) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [setUnseenToMaxRange](classpcl_1_1_range_image#ad4f7d854c4f15ab0ab2193cc726c353f) () |
|  | Sets all -INFINITY values to INFINITY. [More...](classpcl_1_1_range_image#ad4f7d854c4f15ab0ab2193cc726c353f) |
|
| int  | [getImageOffsetX](classpcl_1_1_range_image#a25e2db660717d67a19f5cdb39937c00a) () const |
|  | Getter for image\_offset\_x\_. [More...](classpcl_1_1_range_image#a25e2db660717d67a19f5cdb39937c00a) |
|
| int  | [getImageOffsetY](classpcl_1_1_range_image#a42c06aa5693077ab6db7ec5c691dc677) () const |
|  | Getter for image\_offset\_y\_. [More...](classpcl_1_1_range_image#a42c06aa5693077ab6db7ec5c691dc677) |
|
| void  | [setImageOffsets](classpcl_1_1_range_image#a962a922e6a1170b1494ee21859087b4e) (int offset\_x, int offset\_y) |
|  | Setter for image offsets. [More...](classpcl_1_1_range_image#a962a922e6a1170b1494ee21859087b4e) |
|
| virtual void  | [getSubImage](classpcl_1_1_range_image#a33f4985713cf3f17ac8f8c69c0201729) (int sub\_image\_image\_offset\_x, int sub\_image\_image\_offset\_y, int sub\_image\_width, int sub\_image\_height, int combine\_pixels, [RangeImage](classpcl_1_1_range_image) &sub\_image) const |
|  | Get a sub part of the complete image as a new range image. [More...](classpcl_1_1_range_image#a33f4985713cf3f17ac8f8c69c0201729) |
|
| virtual void  | [getHalfImage](classpcl_1_1_range_image#ab39a4eac61ba75bb9f2913a1ff3ec84d) ([RangeImage](classpcl_1_1_range_image) &half\_image) const |
|  | Get a range image with half the resolution. [More...](classpcl_1_1_range_image#ab39a4eac61ba75bb9f2913a1ff3ec84d) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getMinMaxRanges](classpcl_1_1_range_image#a83b475eb983cd9edaea5d97c6d098a7c) (float &min\_range, float &max\_range) const |
|  | Find the minimum and maximum range in the image. [More...](classpcl_1_1_range_image#a83b475eb983cd9edaea5d97c6d098a7c) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [change3dPointsToLocalCoordinateFrame](classpcl_1_1_range_image#a37582520baf6b317bbb81e85c95cc602) () |
|  | This function sets the sensor pose to 0 and transforms all point positions to this local coordinate frame. [More...](classpcl_1_1_range_image#a37582520baf6b317bbb81e85c95cc602) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float \*  | [getInterpolatedSurfaceProjection](classpcl_1_1_range_image#a225cab091b80ff23a3c7b0d7291dead2) (const Eigen::Affine3f &pose, int pixel\_size, float world\_size) const |
|  | Calculate a range patch as the z values of the coordinate frame given by pose. [More...](classpcl_1_1_range_image#a225cab091b80ff23a3c7b0d7291dead2) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float \*  | [getInterpolatedSurfaceProjection](classpcl_1_1_range_image#accadf69890d534cfcb0f9d65c60feaac) (const Eigen::Vector3f &point, int pixel\_size, float world\_size) const |
|  | Same as above, but using the local coordinate frame defined by point and the viewing direction. [More...](classpcl_1_1_range_image#accadf69890d534cfcb0f9d65c60feaac) |
|
| Eigen::Affine3f  | [getTransformationToViewerCoordinateFrame](classpcl_1_1_range_image#a6646c58459dc6780f114039d296d88d4) (const Eigen::Vector3f &point) const |
|  | Get the local coordinate frame with 0,0,0 in point, upright and Z as the viewing direction. [More...](classpcl_1_1_range_image#a6646c58459dc6780f114039d296d88d4) |
|
| void  | [getTransformationToViewerCoordinateFrame](classpcl_1_1_range_image#a4f79a45cb9beea2cca3a6f17a16d44b7) (const Eigen::Vector3f &point, Eigen::Affine3f &transformation) const |
|  | Same as above, using a reference for the retrurn value. [More...](classpcl_1_1_range_image#a4f79a45cb9beea2cca3a6f17a16d44b7) |
|
| void  | [getRotationToViewerCoordinateFrame](classpcl_1_1_range_image#ab38c579faf678914119d4190b0068ab6) (const Eigen::Vector3f &point, Eigen::Affine3f &transformation) const |
|  | Same as above, but only returning the rotation. [More...](classpcl_1_1_range_image#ab38c579faf678914119d4190b0068ab6) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool  | [getNormalBasedUprightTransformation](classpcl_1_1_range_image#a0ee070d08d3e3688e24f8ebffc9b6436) (const Eigen::Vector3f &point, float max\_dist, Eigen::Affine3f &transformation) const |
|  | Get a local coordinate frame at the given point based on the normal. [More...](classpcl_1_1_range_image#a0ee070d08d3e3688e24f8ebffc9b6436) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getIntegralImage](classpcl_1_1_range_image#a03e02f341db8f43860b2cb83824a2123) (float \*&integral\_image, int \*&valid\_points\_num\_image) const |
|  | Get the integral image of the range values (used for fast blur operations). [More...](classpcl_1_1_range_image#a03e02f341db8f43860b2cb83824a2123) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getBlurredImageUsingIntegralImage](classpcl_1_1_range_image#a1037c5597389ad0f981c91f820b392a9) (int blur\_radius, float \*integral\_image, int \*valid\_points\_num\_image, [RangeImage](classpcl_1_1_range_image) &range\_image) const |
|  | Get a blurred version of the range image using box filters on the provided integral image. [More...](classpcl_1_1_range_image#a1037c5597389ad0f981c91f820b392a9) |
|
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getBlurredImage](classpcl_1_1_range_image#a29b238256cffb27a526bf89e857e5602) (int blur\_radius, [RangeImage](classpcl_1_1_range_image) &range\_image) const |
|  | Get a blurred version of the range image using box filters. [More...](classpcl_1_1_range_image#a29b238256cffb27a526bf89e857e5602) |
|
| float  | [getEuclideanDistanceSquared](classpcl_1_1_range_image#a9270139a4ebc5b01e91262bba72c1cf5) (int x1, int y1, int x2, int y2) const |
|  | Get the squared euclidean distance between the two image points. [More...](classpcl_1_1_range_image#a9270139a4ebc5b01e91262bba72c1cf5) |
|
| float  | [getAverageEuclideanDistance](classpcl_1_1_range_image#a4d702bb8f446bb382040e5872b6dbfb1) (int x, int y, int offset\_x, int offset\_y, int max\_steps) const |
|  | Doing the above for some steps in the given direction and averaging. [More...](classpcl_1_1_range_image#a4d702bb8f446bb382040e5872b6dbfb1) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getRangeImageWithSmoothedSurface](classpcl_1_1_range_image#a42e94ffae804608d0a7d2762cddd6fd2) (int radius, [RangeImage](classpcl_1_1_range_image) &smoothed\_range\_image) const |
|  | Project all points on the local plane approximation, thereby smoothing the surface of the scan. [More...](classpcl_1_1_range_image#a42e94ffae804608d0a7d2762cddd6fd2) |
|
| void  | [get1dPointAverage](classpcl_1_1_range_image#a397d6c6b38906e98ab89b817c4191247) (int x, int y, int delta\_x, int delta\_y, int no\_of\_points, [PointWithRange](structpcl_1_1_point_with_range) &average\_point) const |
|  | Calculates the average 3D position of the no\_of\_points points described by the start point x,y in the direction delta. [More...](classpcl_1_1_range_image#a397d6c6b38906e98ab89b817c4191247) |
|
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float  | [getOverlap](classpcl_1_1_range_image#addd0bcec3d51c70ac205bbfc75dd8c18) (const [RangeImage](classpcl_1_1_range_image) &other\_range\_image, const Eigen::Affine3f &relative\_transformation, int search\_radius, float max\_distance, int pixel\_step=1) const |
|  | Calculates the overlap of two range images given the relative transformation (from the given image to \*this) [More...](classpcl_1_1_range_image#addd0bcec3d51c70ac205bbfc75dd8c18) |
|
| bool  | [getViewingDirection](classpcl_1_1_range_image#ad37bc4a8aab3d63ee7c9ef9428239f00) (int x, int y, Eigen::Vector3f &viewing\_direction) const |
|  | Get the viewing direction for the given point. [More...](classpcl_1_1_range_image#ad37bc4a8aab3d63ee7c9ef9428239f00) |
|
| void  | [getViewingDirection](classpcl_1_1_range_image#a32dfa3c681a50aebc74ae6830767a831) (const Eigen::Vector3f &point, Eigen::Vector3f &viewing\_direction) const |
|  | Get the viewing direction for the given point. [More...](classpcl_1_1_range_image#a32dfa3c681a50aebc74ae6830767a831) |
|
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [RangeImage](classpcl_1_1_range_image) \*  | [getNew](classpcl_1_1_range_image#a7bca09c1eb8be12975c47cb6d6233ca5) () const |
|  | Return a newly created Range image. [More...](classpcl_1_1_range_image#a7bca09c1eb8be12975c47cb6d6233ca5) |
|
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [copyTo](classpcl_1_1_range_image#a454c9018fc001c85e9d8df6900ceb0f6) ([RangeImage](classpcl_1_1_range_image) &other) const |
|  | Copy other to \*this. [More...](classpcl_1_1_range_image#a454c9018fc001c85e9d8df6900ceb0f6) |
|
| - Public Member Functions inherited from [pcl::PointCloud< PointWithRange >](classpcl_1_1_point_cloud) |
|  | [PointCloud](classpcl_1_1_point_cloud#a827dc5d5c287df03ce7ae106fece588c) ()=default |
|  | Default constructor. [More...](classpcl_1_1_point_cloud#a827dc5d5c287df03ce7ae106fece588c) |
|
|  | [PointCloud](classpcl_1_1_point_cloud#a810a6a220de5bce04c22a8d6632fa490) (const [PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &pc, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Copy constructor from point cloud subset. [More...](classpcl_1_1_point_cloud#a810a6a220de5bce04c22a8d6632fa490) |
|
|  | [PointCloud](classpcl_1_1_point_cloud#a34f9808c10574cf7ff8d1b5bdcb0f4a2) (std::uint32\_t width\_, std::uint32\_t height\_, const [PointWithRange](structpcl_1_1_point_with_range) &value\_=[PointWithRange](structpcl_1_1_point_with_range)()) |
|  | Allocate constructor from point cloud subset. [More...](classpcl_1_1_point_cloud#a34f9808c10574cf7ff8d1b5bdcb0f4a2) |
|
| [PointCloud](classpcl_1_1_point_cloud) &  | [operator+=](classpcl_1_1_point_cloud#a335a1cf1c305cc563f9ebeb2a61f994b) (const [PointCloud](classpcl_1_1_point_cloud) &rhs) |
|  | Add a point cloud to the current cloud. [More...](classpcl_1_1_point_cloud#a335a1cf1c305cc563f9ebeb2a61f994b) |
|
| [PointCloud](classpcl_1_1_point_cloud) | [operator+](classpcl_1_1_point_cloud#a430e4cb8d38c4a7f581199e03a88a779) (const [PointCloud](classpcl_1_1_point_cloud) &rhs) |
|  | Add a point cloud to another cloud. [More...](classpcl_1_1_point_cloud#a430e4cb8d38c4a7f581199e03a88a779) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [at](classpcl_1_1_point_cloud#a1155fe4ba5cdc7e83cb72159a4ea02dc) (int column, int row) const |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#a1155fe4ba5cdc7e83cb72159a4ea02dc) |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [at](classpcl_1_1_point_cloud#a930c2d1f3d8682ca228873ce1c5cc7c4) (int column, int row) |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#a930c2d1f3d8682ca228873ce1c5cc7c4) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [at](classpcl_1_1_point_cloud#a47a5ee1f334013d9413e11457e695e41) (std::size\_t n) const |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [at](classpcl_1_1_point_cloud#a3a6e0eeeced9f72e3d65196b56945ffe) (std::size\_t n) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [operator()](classpcl_1_1_point_cloud#ab4061110abf7f3761e6702c3d26397da) (std::size\_t column, std::size\_t row) const |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#ab4061110abf7f3761e6702c3d26397da) |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [operator()](classpcl_1_1_point_cloud#a6a0466c2a757298f353339f75c367d79) (std::size\_t column, std::size\_t row) |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#a6a0466c2a757298f353339f75c367d79) |
|
| bool  | [isOrganized](classpcl_1_1_point_cloud#a914dbcef25abdb46f32991ac112002e7) () const |
|  | Return whether a dataset is organized (e.g., arranged in a structured grid). [More...](classpcl_1_1_point_cloud#a914dbcef25abdb46f32991ac112002e7) |
|
| Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#ab9486898ac363e8206829da7c01ea62d) (int dim, int stride, int offset) |
|  | Return an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf (assumes float values) mapped to the specified dimensions of the PointCloud. [More...](classpcl_1_1_point_cloud#ab9486898ac363e8206829da7c01ea62d) |
|
| const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#a0fb96c26772eca605280d622efe35995) (int dim, int stride, int offset) const |
|  | Return an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf (assumes float values) mapped to the specified dimensions of the PointCloud. [More...](classpcl_1_1_point_cloud#a0fb96c26772eca605280d622efe35995) |
|
| Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#a33dc0edddaa502394241e777cf6721f2) () |
|
| const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#ad5f6eac70c5fa9b370834f64377c546d) () const |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [begin](classpcl_1_1_point_cloud#ad03bb625caff9989dda162c1a4200baf) () noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [begin](classpcl_1_1_point_cloud#a1aad777b644c1cdcbf50296d7e9b5ca8) () const noexcept |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [end](classpcl_1_1_point_cloud#a907a15bd2319bec9c1c93a7009c8cfd1) () noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [end](classpcl_1_1_point_cloud#ac6a36f40543b5ed4fc7e1f3fedd323d6) () const noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [cbegin](classpcl_1_1_point_cloud#a09d55a476ea1f914dd05358f05ffb94d) () const noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [cend](classpcl_1_1_point_cloud#a1e3830550c0a4b37087dd70c4c265488) () const noexcept |
|
| [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) | [rbegin](classpcl_1_1_point_cloud#a18743b0063f36acb5b30dd914846fbb7) () noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [rbegin](classpcl_1_1_point_cloud#adccc094edd51016399ffac2a68dc6e17) () const noexcept |
|
| [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) | [rend](classpcl_1_1_point_cloud#af2e170fb43f21d0906261ea193fb738b) () noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [rend](classpcl_1_1_point_cloud#a07a833ed28b82e19e789955da4faa91a) () const noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [crbegin](classpcl_1_1_point_cloud#a3bc2461bcf057365249e0271ca87836b) () const noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [crend](classpcl_1_1_point_cloud#a2a602bcc677728560fec7671aad9fbdc) () const noexcept |
|
| std::size\_t  | [size](classpcl_1_1_point_cloud#aa3fc6f30bae069ca325b80f60757276e) () const |
|
| [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | [max\_size](classpcl_1_1_point_cloud#ac23c437751d8449ccd9fda9b0a473c4e) () const noexcept |
|
| void  | [reserve](classpcl_1_1_point_cloud#ab2d68c32d71772ac16943d65e87deb98) (std::size\_t n) |
|
| bool  | [empty](classpcl_1_1_point_cloud#a1626420d44e28b5ab22bdc2f1fc6c7ff) () const |
|
| [PointWithRange](structpcl_1_1_point_with_range) \*  | [data](classpcl_1_1_point_cloud#a02ea96f88e94451f4fd7522d5237474e) () noexcept |
|
| const [PointWithRange](structpcl_1_1_point_with_range) \*  | [data](classpcl_1_1_point_cloud#afd841515594abf38b743c76b088e6734) () const noexcept |
|
| void  | [resize](classpcl_1_1_point_cloud#a552575b03243c7f5d95bb03c59842238) (std::size\_t count) |
|  | Resizes the container to contain `count` elements. [More...](classpcl_1_1_point_cloud#a552575b03243c7f5d95bb03c59842238) |
|
| void  | [resize](classpcl_1_1_point_cloud#a09a0de19c29af92d1ba70b509a256e5a) ([uindex\_t](https://pointclouds.org/documentation/namespacepcl.html#a1b98b7f9535916d9dffec6d425d2eed9) new\_width, [uindex\_t](https://pointclouds.org/documentation/namespacepcl.html#a1b98b7f9535916d9dffec6d425d2eed9) new\_height) |
|  | Resizes the container to contain `new_width * new_height` elements. [More...](classpcl_1_1_point_cloud#a09a0de19c29af92d1ba70b509a256e5a) |
|
| void  | [resize](classpcl_1_1_point_cloud#a35d32bd327ffede23a9ef04fc853f29d) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) count, const [PointWithRange](structpcl_1_1_point_with_range) &value) |
|  | Resizes the container to contain count elements. [More...](classpcl_1_1_point_cloud#a35d32bd327ffede23a9ef04fc853f29d) |
|
| void  | [resize](classpcl_1_1_point_cloud#a978165fe6667ba14ed0995366d05052c) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_height, const [PointWithRange](structpcl_1_1_point_with_range) &value) |
|  | Resizes the container to contain count elements. [More...](classpcl_1_1_point_cloud#a978165fe6667ba14ed0995366d05052c) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [operator[]](classpcl_1_1_point_cloud#a2630bae5a9bf001bcadfa69c2831ab0a) (std::size\_t n) const |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [operator[]](classpcl_1_1_point_cloud#a0cbbb3749be776301025d308b07436f9) (std::size\_t n) |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [front](classpcl_1_1_point_cloud#a4eb4170da773993d46db2e760d74736d) () const |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [front](classpcl_1_1_point_cloud#a157e45c8c8bb7b028b315e3a1548cc85) () |
|
| const [PointWithRange](structpcl_1_1_point_with_range) &  | [back](classpcl_1_1_point_cloud#a6381d79fcde03c65cdddb8abf610ae46) () const |
|
| [PointWithRange](structpcl_1_1_point_with_range) &  | [back](classpcl_1_1_point_cloud#a21a3d18a47ea5ef7ea379fac42f7575a) () |
|
| void  | [assign](classpcl_1_1_point_cloud#ad1392d4d379c4ad616d32f2ddabe2669) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) count, const [PointWithRange](structpcl_1_1_point_with_range) &value) |
|  | Replaces the points with `count` copies of `value` [More...](classpcl_1_1_point_cloud#ad1392d4d379c4ad616d32f2ddabe2669) |
|
| void  | [assign](classpcl_1_1_point_cloud#ae7cc1fb81be813d45dcda878c9a43d44) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_height, const [PointWithRange](structpcl_1_1_point_with_range) &value) |
|  | Replaces the points with `new_width * new_height` copies of `value` [More...](classpcl_1_1_point_cloud#ae7cc1fb81be813d45dcda878c9a43d44) |
|
| void  | [assign](classpcl_1_1_point_cloud#a8ea087ba09ba530dcdc695603fec0481) (InputIterator first, InputIterator last) |
|  | Replaces the points with copies of those in the range `[first, last)` [More...](classpcl_1_1_point_cloud#a8ea087ba09ba530dcdc695603fec0481) |
|
| void  | [assign](classpcl_1_1_point_cloud#a568f6def0da4101cdf002450e97bbfed) (InputIterator first, InputIterator last, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width) |
|  | Replaces the points with copies of those in the range `[first, last)` [More...](classpcl_1_1_point_cloud#a568f6def0da4101cdf002450e97bbfed) |
|
| void  | [assign](classpcl_1_1_point_cloud#a72c2ea8956c5d274df8dc6f7cfe22785) (std::initializer\_list< [PointWithRange](structpcl_1_1_point_with_range) > ilist) |
|  | Replaces the points with the elements from the initializer list `ilist` [More...](classpcl_1_1_point_cloud#a72c2ea8956c5d274df8dc6f7cfe22785) |
|
| void  | [assign](classpcl_1_1_point_cloud#aab40a980803206183436c7535f2f59af) (std::initializer\_list< [PointWithRange](structpcl_1_1_point_with_range) > ilist, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width) |
|  | Replaces the points with the elements from the initializer list `ilist` [More...](classpcl_1_1_point_cloud#aab40a980803206183436c7535f2f59af) |
|
| void  | [push\_back](classpcl_1_1_point_cloud#a0b4d7abee110e47d90635eb042488bb4) (const [PointWithRange](structpcl_1_1_point_with_range) &pt) |
|  | Insert a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a0b4d7abee110e47d90635eb042488bb4) |
|
| void  | [transient\_push\_back](classpcl_1_1_point_cloud#a6270ef2fbbaa127f0af8645dfa2be586) (const [PointWithRange](structpcl_1_1_point_with_range) &pt) |
|  | Insert a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a6270ef2fbbaa127f0af8645dfa2be586) |
|
| [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) | [emplace\_back](classpcl_1_1_point_cloud#a73c6b2deef3b70d309fbf4513000e85d) (Args &&...args) |
|  | Emplace a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a73c6b2deef3b70d309fbf4513000e85d) |
|
| [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) | [transient\_emplace\_back](classpcl_1_1_point_cloud#a0b591c143dd6d869eaa179bdac23826c) (Args &&...args) |
|  | Emplace a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a0b591c143dd6d869eaa179bdac23826c) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [insert](classpcl_1_1_point_cloud#a75387c07a2d24ee943eb71ab1c00e4a7) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, const [PointWithRange](structpcl_1_1_point_with_range) &pt) |
|  | Insert a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#a75387c07a2d24ee943eb71ab1c00e4a7) |
|
| void  | [insert](classpcl_1_1_point_cloud#a26c2892860c2c0caf349ada9f4f0690a) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, std::size\_t n, const [PointWithRange](structpcl_1_1_point_with_range) &pt) |
|  | Insert a new point in the cloud N times, given an iterator. [More...](classpcl_1_1_point_cloud#a26c2892860c2c0caf349ada9f4f0690a) |
|
| void  | [insert](classpcl_1_1_point_cloud#a3cccb494b2875101b528a8919c738f9b) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, InputIterator first, InputIterator last) |
|  | Insert a new range of points in the cloud, at a certain position. [More...](classpcl_1_1_point_cloud#a3cccb494b2875101b528a8919c738f9b) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_insert](classpcl_1_1_point_cloud#aea1b4ade6ac50d278a0e952f42bfd8c3) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, const [PointWithRange](structpcl_1_1_point_with_range) &pt) |
|  | Insert a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#aea1b4ade6ac50d278a0e952f42bfd8c3) |
|
| void  | [transient\_insert](classpcl_1_1_point_cloud#a26d57b306764b0b59eca9cc0466c365a) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, std::size\_t n, const [PointWithRange](structpcl_1_1_point_with_range) &pt) |
|  | Insert a new point in the cloud N times, given an iterator. [More...](classpcl_1_1_point_cloud#a26d57b306764b0b59eca9cc0466c365a) |
|
| void  | [transient\_insert](classpcl_1_1_point_cloud#a9a98e42fd659610b6bd8624f73382aff) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, InputIterator first, InputIterator last) |
|  | Insert a new range of points in the cloud, at a certain position. [More...](classpcl_1_1_point_cloud#a9a98e42fd659610b6bd8624f73382aff) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [emplace](classpcl_1_1_point_cloud#a8ce40296ecfd6900af3afe6758ace0cd) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, Args &&...args) |
|  | Emplace a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#a8ce40296ecfd6900af3afe6758ace0cd) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_emplace](classpcl_1_1_point_cloud#aedee4c14db3d5a9bb5a218020f6e34c1) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, Args &&...args) |
|  | Emplace a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#aedee4c14db3d5a9bb5a218020f6e34c1) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [erase](classpcl_1_1_point_cloud#a06463926e7cbe52ed3c024c7bc7565d3) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position) |
|  | Erase a point in the cloud. [More...](classpcl_1_1_point_cloud#a06463926e7cbe52ed3c024c7bc7565d3) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [erase](classpcl_1_1_point_cloud#a2901a922dac074254160e1e11912d2c5) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) first, [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) last) |
|  | Erase a set of points given by a (first, last) iterator pair. [More...](classpcl_1_1_point_cloud#a2901a922dac074254160e1e11912d2c5) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_erase](classpcl_1_1_point_cloud#a51393e25f013a4c2ca8a99a91fc7309c) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position) |
|  | Erase a point in the cloud. [More...](classpcl_1_1_point_cloud#a51393e25f013a4c2ca8a99a91fc7309c) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_erase](classpcl_1_1_point_cloud#a41808523a136b52f1b2ef2b7301faa3b) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) first, [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) last) |
|  | Erase a set of points given by a (first, last) iterator pair. [More...](classpcl_1_1_point_cloud#a41808523a136b52f1b2ef2b7301faa3b) |
|
| void  | [swap](classpcl_1_1_point_cloud#ab4a0b63e9c8442286b08336f8385a9ea) ([PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &rhs) |
|  | Swap a point cloud with another cloud. [More...](classpcl_1_1_point_cloud#ab4a0b63e9c8442286b08336f8385a9ea) |
|
| void  | [clear](classpcl_1_1_point_cloud#a963c0da7320055c79e5af0df4f6ad224) () |
|  | Removes all points in a cloud and sets the width and height to 0. [More...](classpcl_1_1_point_cloud#a963c0da7320055c79e5af0df4f6ad224) |
|
| [Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) | [makeShared](classpcl_1_1_point_cloud#afebbbb9c522a94cf245dd3968b50ed5e) () const |
|  | Copy the cloud to the heap and return a smart pointer Note that deep copy is performed, so avoid using this function on non-empty clouds. [More...](classpcl_1_1_point_cloud#afebbbb9c522a94cf245dd3968b50ed5e) |
|




|  |
| --- |
| 
 Static Public Member Functions |
| static float  | [getMaxAngleSize](classpcl_1_1_range_image#ac504743608967dcd142dc4249b82ea5a) (const Eigen::Affine3f &viewer\_pose, const Eigen::Vector3f &center, float radius) |
|  | Get the size of a certain area when seen from the given pose. [More...](classpcl_1_1_range_image#ac504743608967dcd142dc4249b82ea5a) |
|
| static Eigen::Vector3f  | [getEigenVector3f](classpcl_1_1_range_image#a2e3b75077a96415e431b90f53a249773) (const [PointWithRange](structpcl_1_1_point_with_range) &point) |
|  | Get Eigen::Vector3f from [PointWithRange](structpcl_1_1_point_with_range "A point structure representing Euclidean xyz coordinates, padded with an extra range float."). [More...](classpcl_1_1_range_image#a2e3b75077a96415e431b90f53a249773) |
|
| static [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [getCoordinateFrameTransformation](classpcl_1_1_range_image#af5c0908bfbe060fdb517728fe56b2c55) ([RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) coordinate\_frame, Eigen::Affine3f &transformation) |
|  | Get the transformation that transforms the given coordinate frame into CAMERA\_FRAME. [More...](classpcl_1_1_range_image#af5c0908bfbe060fdb517728fe56b2c55) |
|
| template<typename PointCloudTypeWithViewpoints >  |
| static Eigen::Vector3f  | [getAverageViewPoint](classpcl_1_1_range_image#a49c425d518d92def18300cd029ae1855) (const PointCloudTypeWithViewpoints &point\_cloud) |
|  | Get the average viewpoint of a point cloud where each point carries viewpoint information as vp\_x, vp\_y, vp\_z. [More...](classpcl_1_1_range_image#a49c425d518d92def18300cd029ae1855) |
|
| static [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void  | [extractFarRanges](classpcl_1_1_range_image#a75e39ee2587a56fbdda651c27cc7898e) (const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &point\_cloud\_data, [PointCloud](classpcl_1_1_point_cloud)< [PointWithViewpoint](structpcl_1_1_point_with_viewpoint) > &far\_ranges) |
|  | Check if the provided data includes far ranges and add them to far\_ranges. [More...](classpcl_1_1_range_image#a75e39ee2587a56fbdda651c27cc7898e) |
|
| - Static Public Member Functions inherited from [pcl::PointCloud< PointWithRange >](classpcl_1_1_point_cloud) |
| static bool  | [concatenate](classpcl_1_1_point_cloud#af029c33f2907e4b9bd4d7bc719afce2a) ([pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &cloud1, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &cloud2) |
|
| static bool  | [concatenate](classpcl_1_1_point_cloud#a8dd03c68e99f7857d1f7f9ce991e9fd4) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &cloud1, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &cloud2, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > &cloud\_out) |
|




|  |
| --- |
| 
 Static Public Attributes |
| static int  | [max\_no\_of\_threads](classpcl_1_1_range_image#a34fe4f6701548e2514ae45099309cac4) |
|  | The maximum number of openmp threads that can be used in this class. [More...](classpcl_1_1_range_image#a34fe4f6701548e2514ae45099309cac4) |
|
| static bool  | [debug](classpcl_1_1_range_image#a1bd552e2971d69843fdec72413823f57) |
|  | Just for... [More...](classpcl_1_1_range_image#a1bd552e2971d69843fdec72413823f57) |
|




|  |
| --- |
| 
 Static Protected Member Functions |
| static void  | [createLookupTables](classpcl_1_1_range_image#ae74c34594e1417fb702d92ff51f2b495) () |
|  | Create lookup tables for trigonometric functions. [More...](classpcl_1_1_range_image#ae74c34594e1417fb702d92ff51f2b495) |
|
| static float  | [asinLookUp](classpcl_1_1_range_image#a6cb20514cdc04674448a5e5c6cb373bc) (float value) |
|  | Query the asin lookup table. [More...](classpcl_1_1_range_image#a6cb20514cdc04674448a5e5c6cb373bc) |
|
| static float  | [atan2LookUp](classpcl_1_1_range_image#a17835570c515cca3ba1ecd0f132bf013) (float y, float x) |
|  | Query the std::atan2 lookup table. [More...](classpcl_1_1_range_image#a17835570c515cca3ba1ecd0f132bf013) |
|
| static float  | [cosLookUp](classpcl_1_1_range_image#a29ab1f1088b1c8d111dfe02139882ded) (float value) |
|  | Query the cos lookup table. [More...](classpcl_1_1_range_image#a29ab1f1088b1c8d111dfe02139882ded) |
|




|  |
| --- |
| 
 Protected Attributes |
| Eigen::Affine3f  | [to\_range\_image\_system\_](classpcl_1_1_range_image#ada8177479f0e95999a66294db4c0c3eb) |
|  | Inverse of to\_world\_system\_. [More...](classpcl_1_1_range_image#ada8177479f0e95999a66294db4c0c3eb) |
|
| Eigen::Affine3f  | [to\_world\_system\_](classpcl_1_1_range_image#a31c36f147403c0f64e1c3a386b30e229) |
|  | Inverse of to\_range\_image\_system\_. [More...](classpcl_1_1_range_image#a31c36f147403c0f64e1c3a386b30e229) |
|
| float  | [angular\_resolution\_x\_](classpcl_1_1_range_image#abdbfb655cdfeb5d8ace1ac841a52a524) |
|  | Angular resolution of the range image in x direction in radians per pixel. [More...](classpcl_1_1_range_image#abdbfb655cdfeb5d8ace1ac841a52a524) |
|
| float  | [angular\_resolution\_y\_](classpcl_1_1_range_image#a9471a00ecde65c754227e155cc234942) |
|  | Angular resolution of the range image in y direction in radians per pixel. [More...](classpcl_1_1_range_image#a9471a00ecde65c754227e155cc234942) |
|
| float  | [angular\_resolution\_x\_reciprocal\_](classpcl_1_1_range_image#adbb1466576e6c2d08e3065b67da0b250) |
|  | 1.0/angular\_resolution\_x\_ - provided for better performance of multiplication compared to division [More...](classpcl_1_1_range_image#adbb1466576e6c2d08e3065b67da0b250) |
|
| float  | [angular\_resolution\_y\_reciprocal\_](classpcl_1_1_range_image#a843659230146a43690ee4d4fb53fcc92) |
|  | 1.0/angular\_resolution\_y\_ - provided for better performance of multiplication compared to division [More...](classpcl_1_1_range_image#a843659230146a43690ee4d4fb53fcc92) |
|
| int  | [image\_offset\_x\_](classpcl_1_1_range_image#ac01b76b2e83df5967984084e7558c2d5) |
|
| int  | [image\_offset\_y\_](classpcl_1_1_range_image#a1518af9f1c9eb6ac259be92824842e23) |
|  | Position of the top left corner of the range image compared to an image of full size (360x180 degrees) [More...](classpcl_1_1_range_image#a1518af9f1c9eb6ac259be92824842e23) |
|
| [PointWithRange](structpcl_1_1_point_with_range) | [unobserved\_point](classpcl_1_1_range_image#a51bf019906a3256038561354d6b95885) |
|  | This point is used to be able to return a reference to a non-existing point. [More...](classpcl_1_1_range_image#a51bf019906a3256038561354d6b95885) |
|




|  |
| --- |
| 
 Static Protected Attributes |
| static const int  | [lookup\_table\_size](classpcl_1_1_range_image#a9429abb4524c74600122006d213242ee) |
|
| static std::vector< float >  | [asin\_lookup\_table](classpcl_1_1_range_image#aa864a69c51f0de61769d0bcc6fc3b172) |
|
| static std::vector< float >  | [atan\_lookup\_table](classpcl_1_1_range_image#a6de3e6d8b323a2d6900cc15815c93d7d) |
|
| static std::vector< float >  | [cos\_lookup\_table](classpcl_1_1_range_image#aa811b322d035983d020b3599a06fee3d) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Attributes inherited from [pcl::PointCloud< PointWithRange >](classpcl_1_1_point_cloud) |
| [pcl::PCLHeader](structpcl_1_1_p_c_l_header) | [header](classpcl_1_1_point_cloud#a82e0be055a617e5e74102ed62712b352) |
|  | The point cloud header. [More...](classpcl_1_1_point_cloud#a82e0be055a617e5e74102ed62712b352) |
|
| std::vector< [PointWithRange](structpcl_1_1_point_with_range), Eigen::aligned\_allocator< [PointWithRange](structpcl_1_1_point_with_range) > >  | [points](classpcl_1_1_point_cloud#af16a62638198313b9c093127c492c884) |
|  | The point data. [More...](classpcl_1_1_point_cloud#af16a62638198313b9c093127c492c884) |
|
| std::uint32\_t  | [width](classpcl_1_1_point_cloud#a644dc7161c2e3f23bc4d36d36c58e7b4) |
|  | The point cloud width (if organized as an image-structure). [More...](classpcl_1_1_point_cloud#a644dc7161c2e3f23bc4d36d36c58e7b4) |
|
| std::uint32\_t  | [height](classpcl_1_1_point_cloud#a917b6eb0ef204836c56a2334ddd703fe) |
|  | The point cloud height (if organized as an image-structure). [More...](classpcl_1_1_point_cloud#a917b6eb0ef204836c56a2334ddd703fe) |
|
| bool  | [is\_dense](classpcl_1_1_point_cloud#a3ca88d8ebf6f4f35acbc31cdfb38aa94) |
|  | True if no points are invalid (e.g., have NaN or Inf values in any of their floating point fields). [More...](classpcl_1_1_point_cloud#a3ca88d8ebf6f4f35acbc31cdfb38aa94) |
|
| Eigen::Vector4f  | [sensor\_origin\_](classpcl_1_1_point_cloud#aad7c2cd4b0d1c7f0fbc096276b5e2230) |
|  | Sensor acquisition pose (origin/translation). [More...](classpcl_1_1_point_cloud#aad7c2cd4b0d1c7f0fbc096276b5e2230) |
|
| Eigen::Quaternionf  | [sensor\_orientation\_](classpcl_1_1_point_cloud#a5de17e88bdf15e1c4fd1bcc6b85b1941) |
|  | Sensor acquisition pose (rotation). [More...](classpcl_1_1_point_cloud#a5de17e88bdf15e1c4fd1bcc6b85b1941) |
|

 Detailed Description
--------------------

 
[RangeImage](classpcl_1_1_range_image "RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...") is derived from pcl/PointCloud and provides functionalities with focus on situations where a 3D scene was captured from a specific view point. 

 
Author
Bastian Steder 
 Definition at line [54](https://pointclouds.org/documentation/range__image_8h_source.html#l00054) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 
Member Typedef Documentation
----------------------------

  BaseClass
---------

   

|  |
| --- |
| using [pcl::RangeImage::BaseClass](classpcl_1_1_range_image#a9aa810c2aa68b3e77745e1f98775be5b) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[PointWithRange](structpcl_1_1_point_with_range)> |

 
 Definition at line [58](https://pointclouds.org/documentation/range__image_8h_source.html#l00058) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

    ConstPtr
--------

   

|  |
| --- |
| using [pcl::RangeImage::ConstPtr](classpcl_1_1_range_image#a960ddd0ee536453dc9c042fd4a7754a1) = shared\_ptr<const [RangeImage](classpcl_1_1_range_image)> |

 
 Definition at line [61](https://pointclouds.org/documentation/range__image_8h_source.html#l00061) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::RangeImage::Ptr](classpcl_1_1_range_image#a3ba0be0fa2c5cbd409547860c68ff9e8) = shared\_ptr<[RangeImage](classpcl_1_1_range_image)> |

 
 Definition at line [60](https://pointclouds.org/documentation/range__image_8h_source.html#l00060) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

    VectorOfEigenVector3f
---------------------

   

|  |
| --- |
| using [pcl::RangeImage::VectorOfEigenVector3f](classpcl_1_1_range_image#aba06f02358b2efee4b98e086068ee6b1) = std::vector<Eigen::Vector3f, Eigen::aligned\_allocator<Eigen::Vector3f> > |

 
 Definition at line [59](https://pointclouds.org/documentation/range__image_8h_source.html#l00059) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

   Member Enumeration Documentation
--------------------------------

  CoordinateFrame
---------------

   

|  |
| --- |
| enum [pcl::RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) |

 
 

| Enumerator |
| --- |
| CAMERA\_FRAME  |  |
| LASER\_FRAME  |  |

 Definition at line [63](https://pointclouds.org/documentation/range__image_8h_source.html#l00063) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  RangeImage()
------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) pcl::RangeImage::RangeImage  | ( |  | ) |  |

 
 Constructor. 

 Referenced by [getNew()](https://pointclouds.org/documentation/range__image_8h_source.html#l00749).

    ~RangeImage()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) pcl::RangeImage::~RangeImage  | ( |  | ) |  |

 | virtualdefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  asinLookUp()
------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::RangeImage::asinLookUp  | ( | float  | *value* | ) |  |

 | inlinestaticprotected |

 
 Query the asin lookup table. 

 Definition at line [54](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00054) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [asin\_lookup\_table](https://pointclouds.org/documentation/range__image_8h_source.html#l00786), [lookup\_table\_size](https://pointclouds.org/documentation/range__image_8h_source.html#l00785), and [pcl\_lrintf](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00254).

 Referenced by [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), and [pcl::RangeImageSpherical::getImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00060).

    atan2LookUp()
-------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::atan2LookUp  | ( | float  | *y*,  |
|  |  | float  | *x* |
|  | ) |  |  |

 | inlinestaticprotected |

 
 Query the std::atan2 lookup table. 

 Definition at line [64](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00064) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [atan\_lookup\_table](https://pointclouds.org/documentation/range__image_8h_source.html#l00787), [lookup\_table\_size](https://pointclouds.org/documentation/range__image_8h_source.html#l00785), [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), and [pcl\_lrintf](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00254).

 Referenced by [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), and [pcl::RangeImageSpherical::getImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00060).

    calculate3DPoint() [1/4]
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::calculate3DPoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y*,  |
|  |  | Eigen::Vector3f &  | *point* |
|  | ) |  |  const |

 | inline |

 
 Calculate the 3D point according to the given image point and the range value at the closest pixel. 

 Definition at line [584](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00584) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

    calculate3DPoint() [2/4]
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::calculate3DPoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y*,  |
|  |  | float  | *range*,  |
|  |  | Eigen::Vector3f &  | *point* |
|  | ) |  |  const |

 | inlinevirtual |

 
 Calculate the 3D point according to the given image point and range. 

 Reimplemented in [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar#ac897815d91a94243d6c50a7b47c50abd), and [pcl::RangeImageSpherical](classpcl_1_1_range_image_spherical#a43849e7a155b8af09e0355fe77e65266).

 Definition at line [571](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00571) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00609), and [to\_world\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00769).

    calculate3DPoint() [3/4]
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::calculate3DPoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y*,  |
|  |  | float  | *range*,  |
|  |  | [PointWithRange](structpcl_1_1_point_with_range) &  | *point* |
|  | ) |  |  const |

 | inline |

 
 Calculate the 3D point according to the given image point and range. 

 Definition at line [592](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

 Referenced by [calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00584), and [pcl::RangeImageBorderExtractor::get3dDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00120).

    calculate3DPoint() [4/4]
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::calculate3DPoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y*,  |
|  |  | [PointWithRange](structpcl_1_1_point_with_range) &  | *point* |
|  | ) |  |  const |

 | inline |

 
 Calculate the 3D point according to the given image point and the range value at the closest pixel. 

 Definition at line [601](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00601) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

    change3dPointsToLocalCoordinateFrame()
--------------------------------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::change3dPointsToLocalCoordinateFrame  | ( |  | ) |  |

 
 This function sets the sensor pose to 0 and transforms all point positions to this local coordinate frame. 

    checkPoint()
------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::checkPoint  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | [PointWithRange](structpcl_1_1_point_with_range) &  | *point\_in\_image* |
|  | ) |  |  const |

 | inline |

 
 point\_in\_image will be the point in the image at the position the given point would be. 

 Returns the range of the given point. 

 Definition at line [401](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00401) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), and [unobserved\_point](https://pointclouds.org/documentation/range__image_8h_source.html#l00778).

    copyTo()
--------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::copyTo  | ( | [RangeImage](classpcl_1_1_range_image) &  | *other* | ) |  const |

 | virtual |

 
 Copy other to \*this. 

 Necessary for use in virtual functions that need to copy derived [RangeImage](classpcl_1_1_range_image "RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...") classes (like [RangeImagePlanar](classpcl_1_1_range_image_planar "RangeImagePlanar is derived from the original range image and differs from it because it's not a sphe...")) 

 Reimplemented in [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar#a6eb0cd99d5062b11ccd54b4274340c0c).

    cosLookUp()
-----------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::RangeImage::cosLookUp  | ( | float  | *value* | ) |  |

 | inlinestaticprotected |

 
 Query the cos lookup table. 

 Definition at line [90](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00090) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [cos\_lookup\_table](https://pointclouds.org/documentation/range__image_8h_source.html#l00788), [lookup\_table\_size](https://pointclouds.org/documentation/range__image_8h_source.html#l00785), [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), and [pcl\_lrintf](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00254).

 Referenced by [pcl::RangeImagePlanar::calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592).

    createEmpty() [1/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createEmpty  | ( | float  | *angular\_resolution*,  |
|  |  | const Eigen::Affine3f &  | *sensor\_pose* = `Eigen::Affine3f::Identity()`,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *angle\_width* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(360.0f)`,  |
|  |  | float  | *angle\_height* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(180.0f)` |
|  | ) |  |  |

 
 Create an empty depth image (filled with unobserved points) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | angular\_resolution | the angle (in radians) between each sample in the depth image  |
| [in] | sensor\_pose | an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () )  |
| [in] | coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| [in] | angle\_width | an angle (in radians) defining the horizontal bounds of the sensor (defaults to 2\*pi (360deg))  |
| [in] | angle\_height | an angle (in radians) defining the vertical bounds of the sensor (defaults to pi (180deg))  |

      createEmpty() [2/2]
-------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createEmpty  | ( | float  | *angular\_resolution\_x*,  |
|  |  | float  | *angular\_resolution\_y*,  |
|  |  | const Eigen::Affine3f &  | *sensor\_pose* = `Eigen::Affine3f::Identity()`,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *angle\_width* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(360.0f)`,  |
|  |  | float  | *angle\_height* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6)(180.0f)` |
|  | ) |  |  |

 
 Create an empty depth image (filled with unobserved points) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
|  | angular\_resolution\_x | the angular difference (in radians) between the individual pixels in the image in the x-direction  |
|  | angular\_resolution\_y | the angular difference (in radians) between the individual pixels in the image in the y-direction  |
| [in] | sensor\_pose | an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () )  |
| [in] | coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| [in] | angle\_width | an angle (in radians) defining the horizontal bounds of the sensor (defaults to 2\*pi (360deg))  |
| [in] | angle\_height | an angle (in radians) defining the vertical bounds of the sensor (defaults to pi (180deg))  |

      createFromPointCloud() [1/2]
----------------------------

    template<typename PointCloudType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createFromPointCloud  | ( | const PointCloudType &  | *point\_cloud*,  |
|  |  | float  | *angular\_resolution* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (0.5f)`,  |
|  |  | float  | *max\_angle\_width* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (360.0f)`,  |
|  |  | float  | *max\_angle\_height* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (180.0f)`,  |
|  |  | const Eigen::Affine3f &  | *sensor\_pose* = `Eigen::Affine3f::Identity ()`,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *noise\_level* = `0.0f`,  |
|  |  | float  | *min\_range* = `0.0f`,  |
|  |  | int  | *border\_size* = `0` |
|  | ) |  |  |

 
 Create the depth image from a point cloud. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| angular\_resolution | the angular difference (in radians) between the individual pixels in the image  |
| max\_angle\_width | an angle (in radians) defining the horizontal bounds of the sensor  |
| max\_angle\_height | an angle (in radians) defining the vertical bounds of the sensor  |
| sensor\_pose | an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () )  |
| coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range (defaults to 0)  |
| border\_size | the border size (defaults to 0). Set to `std::numeric_limits<int>::min()` to turn cropping off.  |

   Definition at line [98](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00098) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), and [createFromPointCloudWithViewpoints()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00224).

    createFromPointCloud() [2/2]
----------------------------

    template<typename PointCloudType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createFromPointCloud  | ( | const PointCloudType &  | *point\_cloud*,  |
|  |  | float  | *angular\_resolution\_x* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (0.5f)`,  |
|  |  | float  | *angular\_resolution\_y* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (0.5f)`,  |
|  |  | float  | *max\_angle\_width* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (360.0f)`,  |
|  |  | float  | *max\_angle\_height* = `[pcl::deg2rad](group__common#ga25b0ce695e2a10abb0130bcb5cf90eb6) (180.0f)`,  |
|  |  | const Eigen::Affine3f &  | *sensor\_pose* = `Eigen::Affine3f::Identity ()`,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *noise\_level* = `0.0f`,  |
|  |  | float  | *min\_range* = `0.0f`,  |
|  |  | int  | *border\_size* = `0` |
|  | ) |  |  |

 
 Create the depth image from a point cloud. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| angular\_resolution\_x | the angular difference (in radians) between the individual pixels in the image in the x-direction  |
| angular\_resolution\_y | the angular difference (in radians) between the individual pixels in the image in the y-direction  |
| max\_angle\_width | an angle (in radians) defining the horizontal bounds of the sensor  |
| max\_angle\_height | an angle (in radians) defining the vertical bounds of the sensor  |
| sensor\_pose | an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () )  |
| coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range (defaults to 0)  |
| border\_size | the border size (defaults to 0). Set to `std::numeric_limits<int>::min()` to turn cropping off.  |

   Definition at line [109](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [angular\_resolution\_x\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00772), [angular\_resolution\_y\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00774), [cropImage()](classpcl_1_1_range_image#a20f223d93080e9ce32122f90a265f7c4), [pcl::deg2rad()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00067), [doZBuffer()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00238), [getCoordinateFrameTransformation()](classpcl_1_1_range_image#af5c0908bfbe060fdb517728fe56b2c55), [pcl::PointCloud< PointWithRange >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [image\_offset\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), [image\_offset\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), [pcl::PointCloud< PointWithRange >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl\_lrint](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00253), [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [recalculate3DPointPositions()](classpcl_1_1_range_image#a08d6ccfef80c3788102327df618a3fbf), [setAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195), [pcl::PointCloud< PointWithRange >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [to\_range\_image\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00768), [to\_world\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00769), [unobserved\_point](https://pointclouds.org/documentation/range__image_8h_source.html#l00778), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    createFromPointCloudWithKnownSize() [1/2]
-----------------------------------------

    template<typename PointCloudType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createFromPointCloudWithKnownSize  | ( | const PointCloudType &  | *point\_cloud*,  |
|  |  | float  | *angular\_resolution*,  |
|  |  | const Eigen::Vector3f &  | *point\_cloud\_center*,  |
|  |  | float  | *point\_cloud\_radius*,  |
|  |  | const Eigen::Affine3f &  | *sensor\_pose* = `Eigen::Affine3f::Identity ()`,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *noise\_level* = `0.0f`,  |
|  |  | float  | *min\_range* = `0.0f`,  |
|  |  | int  | *border\_size* = `0` |
|  | ) |  |  |

 
 Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| angular\_resolution | the angle (in radians) between each sample in the depth image  |
| point\_cloud\_center | the center of bounding sphere  |
| point\_cloud\_radius | the radius of the bounding sphere  |
| sensor\_pose | an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () )  |
| coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range (defaults to 0)  |
| border\_size | the border size (defaults to 0). Set to `std::numeric_limits<int>::min()` to turn cropping off.  |

   Definition at line [148](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00148) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

    createFromPointCloudWithKnownSize() [2/2]
-----------------------------------------

    template<typename PointCloudType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createFromPointCloudWithKnownSize  | ( | const PointCloudType &  | *point\_cloud*,  |
|  |  | float  | *angular\_resolution\_x*,  |
|  |  | float  | *angular\_resolution\_y*,  |
|  |  | const Eigen::Vector3f &  | *point\_cloud\_center*,  |
|  |  | float  | *point\_cloud\_radius*,  |
|  |  | const Eigen::Affine3f &  | *sensor\_pose* = `Eigen::Affine3f::Identity ()`,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *noise\_level* = `0.0f`,  |
|  |  | float  | *min\_range* = `0.0f`,  |
|  |  | int  | *border\_size* = `0` |
|  | ) |  |  |

 
 Create the depth image from a point cloud, getting a hint about the size of the scene for faster calculation. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| angular\_resolution\_x | the angular difference (in radians) between the individual pixels in the image in the x-direction  |
| angular\_resolution\_y | the angular difference (in radians) between the individual pixels in the image in the y-direction  |
| point\_cloud\_center | the center of bounding sphere  |
| point\_cloud\_radius | the radius of the bounding sphere  |
| sensor\_pose | an affine matrix defining the pose of the sensor (defaults to Eigen::Affine3f::Identity () )  |
| coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range (defaults to 0)  |
| border\_size | the border size (defaults to 0). Set to `std::numeric_limits<int>::min()` to turn cropping off.  |

   Definition at line [159](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [angular\_resolution\_x\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00772), [angular\_resolution\_y\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00774), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00098), [cropImage()](classpcl_1_1_range_image#a20f223d93080e9ce32122f90a265f7c4), [pcl::deg2rad()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00067), [doZBuffer()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00238), [getCoordinateFrameTransformation()](classpcl_1_1_range_image#af5c0908bfbe060fdb517728fe56b2c55), [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), [getMaxAngleSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00795), [pcl::PointCloud< PointWithRange >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [image\_offset\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), [image\_offset\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), [pcl::PointCloud< PointWithRange >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl\_lrint](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00253), [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [recalculate3DPointPositions()](classpcl_1_1_range_image#a08d6ccfef80c3788102327df618a3fbf), [setAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195), [to\_range\_image\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00768), [to\_world\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00769), [unobserved\_point](https://pointclouds.org/documentation/range__image_8h_source.html#l00778), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    createFromPointCloudWithViewpoints() [1/2]
------------------------------------------

    template<typename PointCloudTypeWithViewpoints >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createFromPointCloudWithViewpoints  | ( | const PointCloudTypeWithViewpoints &  | *point\_cloud*,  |
|  |  | float  | *angular\_resolution*,  |
|  |  | float  | *max\_angle\_width*,  |
|  |  | float  | *max\_angle\_height*,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *noise\_level* = `0.0f`,  |
|  |  | float  | *min\_range* = `0.0f`,  |
|  |  | int  | *border\_size* = `0` |
|  | ) |  |  |

 
 Create the depth image from a point cloud, using the average viewpoint of the points (vp\_x,vp\_y,vp\_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| angular\_resolution | the angle (in radians) between each sample in the depth image  |
| max\_angle\_width | an angle (in radians) defining the horizontal bounds of the sensor  |
| max\_angle\_height | an angle (in radians) defining the vertical bounds of the sensor  |
| coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range (defaults to 0)  |
| border\_size | the border size (defaults to 0). Set to `std::numeric_limits<int>::min()` to turn cropping off.  |

   
Note
If wrong\_coordinate\_system is true, the sensor pose will be rotated to change from a coordinate frame with x to the front, y to the left and z to the top to the coordinate frame we use here (x to the right, y to the bottom and z to the front) 
 Definition at line [211](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00211) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

    createFromPointCloudWithViewpoints() [2/2]
------------------------------------------

    template<typename PointCloudTypeWithViewpoints >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::createFromPointCloudWithViewpoints  | ( | const PointCloudTypeWithViewpoints &  | *point\_cloud*,  |
|  |  | float  | *angular\_resolution\_x*,  |
|  |  | float  | *angular\_resolution\_y*,  |
|  |  | float  | *max\_angle\_width*,  |
|  |  | float  | *max\_angle\_height*,  |
|  |  | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame* = `[CAMERA\_FRAME](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992facc23a9ec8c5fe7011f1168b87ec945bf)`,  |
|  |  | float  | *noise\_level* = `0.0f`,  |
|  |  | float  | *min\_range* = `0.0f`,  |
|  |  | int  | *border\_size* = `0` |
|  | ) |  |  |

 
 Create the depth image from a point cloud, using the average viewpoint of the points (vp\_x,vp\_y,vp\_z in the point type) in the point cloud as sensor pose (assuming a rotation of (0,0,0)). 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| angular\_resolution\_x | the angular difference (in radians) between the individual pixels in the image in the x-direction  |
| angular\_resolution\_y | the angular difference (in radians) between the individual pixels in the image in the y-direction  |
| max\_angle\_width | an angle (in radians) defining the horizontal bounds of the sensor  |
| max\_angle\_height | an angle (in radians) defining the vertical bounds of the sensor  |
| coordinate\_frame | the coordinate frame (defaults to CAMERA\_FRAME)  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range (defaults to 0)  |
| border\_size | the border size (defaults to 0). Set to `std::numeric_limits<int>::min()` to turn cropping off.  |

   
Note
If wrong\_coordinate\_system is true, the sensor pose will be rotated to change from a coordinate frame with x to the front, y to the left and z to the top to the coordinate frame we use here (x to the right, y to the bottom and z to the front) 
 Definition at line [224](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00224) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00098), and [getAverageViewPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01133).

    createLookupTables()
--------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| static void pcl::RangeImage::createLookupTables  | ( |  | ) |  |

 | staticprotected |

 
 Create lookup tables for trigonometric functions. 

    cropImage()
-----------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::cropImage  | ( | int  | *border\_size* = `0`,  |
|  |  | int  | *top* = `-1`,  |
|  |  | int  | *right* = `-1`,  |
|  |  | int  | *bottom* = `-1`,  |
|  |  | int  | *left* = `-1` |
|  | ) |  |  |

 
 Cut the range image to the minimal size so that it still contains all actual range readings. 

 
Parameters
 

|  |  |
| --- | --- |
| border\_size | allows increase from the minimal size by the specified number of pixels (defaults to 0)  |
| top | if positive, this value overrides the position of the top edge (defaults to -1)  |
| right | if positive, this value overrides the position of the right edge (defaults to -1)  |
| bottom | if positive, this value overrides the position of the bottom edge (defaults to -1)  |
| left | if positive, this value overrides the position of the left edge (defaults to -1)  |

   Referenced by [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), and [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159).

    doZBuffer()
-----------

    template<typename PointCloudType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::doZBuffer  | ( | const PointCloudType &  | *point\_cloud*,  |
|  |  | float  | *noise\_level*,  |
|  |  | float  | *min\_range*,  |
|  |  | int &  | *top*,  |
|  |  | int &  | *right*,  |
|  |  | int &  | *bottom*,  |
|  |  | int &  | *left* |
|  | ) |  |  |

 
 Integrate the given point cloud into the current range image using a z-buffer. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |
| noise\_level | - The distance in meters inside of which the z-buffer will not use the minimum, but the mean of the points. If 0.0 it is equivalent to a normal z-buffer and will always take the minimum per cell.  |
| min\_range | the minimum visible range  |
| top | returns the minimum y pixel position in the image where a point was added  |
| right | returns the maximum x pixel position in the image where a point was added  |
| bottom | returns the maximum y pixel position in the image where a point was added  |
| left | returns the minimum x pixel position in the image where a point was added  |

   Definition at line [238](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00238) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), [pcl::PointCloud< PointWithRange >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [pcl\_lrint](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00253), [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [real2DToInt2D()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442), [pcl::PointCloud< PointWithRange >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImagePlanar::createFromPointCloudWithFixedSize()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00050), and [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159).

    extractFarRanges()
------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::extractFarRanges  | ( | const [pcl::PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) &  | *point\_cloud\_data*,  |
|  |  | [PointCloud](classpcl_1_1_point_cloud)< [PointWithViewpoint](structpcl_1_1_point_with_viewpoint) > &  | *far\_ranges* |
|  | ) |  |  |

 | static |

 
 Check if the provided data includes far ranges and add them to far\_ranges. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud\_data | a [PCLPointCloud2](structpcl_1_1_p_c_l_point_cloud2) message containing the input cloud  |
| far\_ranges | the resulting cloud containing those points with far ranges  |

      get1dPointAverage()
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::get1dPointAverage  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *delta\_x*,  |
|  |  | int  | *delta\_y*,  |
|  |  | int  | *no\_of\_points*,  |
|  |  | [PointWithRange](structpcl_1_1_point_with_range) &  | *average\_point* |
|  | ) |  |  const |

 | inline |

 
 Calculates the average 3D position of the no\_of\_points points described by the start point x,y in the direction delta. 

 Returns a max range point (range=INFINITY) if the first point is max range and an unobserved point (range=-INFINITY) if non of the points is observed. 

 Definition at line [809](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00809) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getPointNoCheck()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00495), [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457), [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073), and [unobserved\_point](https://pointclouds.org/documentation/range__image_8h_source.html#l00778).

 Referenced by [pcl::RangeImageBorderExtractor::getNeighborDistanceChangeScore()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00070).

    getAcutenessValue() [1/2]
-------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getAcutenessValue  | ( | const [PointWithRange](structpcl_1_1_point_with_range) &  | *point1*,  |
|  |  | const [PointWithRange](structpcl_1_1_point_with_range) &  | *point2* |
|  | ) |  |  const |

 | inline |

 
 Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) will return -INFINITY if one of the points is unobserved. 

 Definition at line [659](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00659) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImpactAngle()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00627), and [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

 Referenced by [getAcutenessValue()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00674).

    getAcutenessValue() [2/2]
-------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getAcutenessValue  | ( | int  | *x1*,  |
|  |  | int  | *y1*,  |
|  |  | int  | *x2*,  |
|  |  | int  | *y2* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [674](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00674) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getAcutenessValue()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00659), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450).

    getAcutenessValueImages()
-------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getAcutenessValueImages  | ( | int  | *pixel\_distance*,  |
|  |  | float \*&  | *acuteness\_value\_image\_x*,  |
|  |  | float \*&  | *acuteness\_value\_image\_y* |
|  | ) |  |  const |

 
 Calculate getAcutenessValue for every point. 

    getAnglesFromImagePoint()
-------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getAnglesFromImagePoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y*,  |
|  |  | float &  | *angle\_x*,  |
|  |  | float &  | *angle\_y* |
|  | ) |  |  const |

 | inline |

 
 Get the angles corresponding to the given image point. 

 Definition at line [609](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00609) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [angular\_resolution\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00770), [angular\_resolution\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00771), [image\_offset\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), [image\_offset\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), and [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

 Referenced by [calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00571).

    getAngularResolution() [1/2]
----------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float pcl::RangeImage::getAngularResolution  | ( |  | ) |  const |

 | inline |

 
 Getter for the angular resolution of the range image in x direction in radians per pixel. 

 Provided for downwards compatibility 

 Definition at line [352](https://pointclouds.org/documentation/range__image_8h_source.html#l00352) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [angular\_resolution\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00770).

    getAngularResolution() [2/2]
----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getAngularResolution  | ( | float &  | *angular\_resolution\_x*,  |
|  |  | float &  | *angular\_resolution\_y* |
|  | ) |  |  const |

 | inline |

 
 Getter for the angular resolution of the range image in x and y direction (in radians). 

 Definition at line [1221](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01221) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [angular\_resolution\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00770), and [angular\_resolution\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00771).

    getAngularResolutionX()
-----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float pcl::RangeImage::getAngularResolutionX  | ( |  | ) |  const |

 | inline |

 
 Getter for the angular resolution of the range image in x direction in radians per pixel. 

 Definition at line [356](https://pointclouds.org/documentation/range__image_8h_source.html#l00356) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [angular\_resolution\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00770).

 Referenced by [pcl::operator<<()](https://pointclouds.org/documentation/range__image_8h_source.html#l00814).

    getAngularResolutionY()
-----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float pcl::RangeImage::getAngularResolutionY  | ( |  | ) |  const |

 | inline |

 
 Getter for the angular resolution of the range image in y direction in radians per pixel. 

 Definition at line [360](https://pointclouds.org/documentation/range__image_8h_source.html#l00360) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [angular\_resolution\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00771).

 Referenced by [pcl::operator<<()](https://pointclouds.org/documentation/range__image_8h_source.html#l00814).

    getAverageEuclideanDistance()
-----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getAverageEuclideanDistance  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *offset\_x*,  |
|  |  | int  | *offset\_y*,  |
|  |  | int  | *max\_steps* |
|  | ) |  |  const |

 | inline |

 
 Doing the above for some steps in the given direction and averaging. 

 Definition at line [864](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00864) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getEuclideanDistanceSquared()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00849).

    getAverageViewPoint()
---------------------

    template<typename PointCloudTypeWithViewpoints >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Eigen::Vector3f pcl::RangeImage::getAverageViewPoint  | ( | const PointCloudTypeWithViewpoints &  | *point\_cloud* | ) |  |

 | static |

 
 Get the average viewpoint of a point cloud where each point carries viewpoint information as vp\_x, vp\_y, vp\_z. 

 
Parameters
 

|  |  |
| --- | --- |
| point\_cloud | the input point cloud  |

   
Returns
the average viewpoint (as an Eigen::Vector3f) 
 Definition at line [1133](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01133) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [createFromPointCloudWithViewpoints()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00224).

    getBlurredImage()
-----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getBlurredImage  | ( | int  | *blur\_radius*,  |
|  |  | [RangeImage](classpcl_1_1_range_image) &  | *range\_image* |
|  | ) |  |  const |

 | virtual |

 
 Get a blurred version of the range image using box filters. 

    getBlurredImageUsingIntegralImage()
-----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getBlurredImageUsingIntegralImage  | ( | int  | *blur\_radius*,  |
|  |  | float \*  | *integral\_image*,  |
|  |  | int \*  | *valid\_points\_num\_image*,  |
|  |  | [RangeImage](classpcl_1_1_range_image) &  | *range\_image* |
|  | ) |  |  const |

 
 Get a blurred version of the range image using box filters on the provided integral image. 

    getCoordinateFrameTransformation()
----------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getCoordinateFrameTransformation  | ( | [RangeImage::CoordinateFrame](classpcl_1_1_range_image#a8b5785b0499f0a70d5c87fceba55992f) | *coordinate\_frame*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  |

 | static |

 
 Get the transformation that transforms the given coordinate frame into CAMERA\_FRAME. 

 
Parameters
 

|  |  |
| --- | --- |
| coordinate\_frame | the input coordinate frame  |
| transformation | the resulting transformation that warps *coordinate\_frame* into CAMERA\_FRAME  |

   Referenced by [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImagePlanar::createFromPointCloudWithFixedSize()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00050), and [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159).

    getCurvature()
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getCurvature  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | int  | *step\_size* |
|  | ) |  |  const |

 | inline |

 
 Calculates the curvature in a point using pca. 

 Definition at line [1108](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01108) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::VectorAverage< real, dimension >::add()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00063), [pcl::VectorAverage< real, dimension >::doPCA()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00084), [pcl::VectorAverage< real, dimension >::getNoOfSamples()](https://pointclouds.org/documentation/vector__average_8h_source.html#l00083), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

    getEigenVector3f() [1/3]
------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Eigen::Vector3f pcl::RangeImage::getEigenVector3f  | ( | const [PointWithRange](structpcl_1_1_point_with_range) &  | *point* | ) |  |

 | inlinestatic |

 
 Get Eigen::Vector3f from [PointWithRange](structpcl_1_1_point_with_range "A point structure representing Euclidean xyz coordinates, padded with an extra range float."). 

 
Parameters
 

|  |  |
| --- | --- |
| point | the input point  |

   
Returns
an Eigen::Vector3f representation of the input point 
 Definition at line [802](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00802) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891).

    getEigenVector3f() [2/3]
------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| const Eigen::Map< const Eigen::Vector3f > pcl::RangeImage::getEigenVector3f  | ( | int  | *index* | ) |  const |

 | inline |

 
 Same as above. 

 Definition at line [564](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00564) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486).

    getEigenVector3f() [3/3]
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const Eigen::Map< const Eigen::Vector3f > pcl::RangeImage::getEigenVector3f  | ( | int  | *x*,  |
|  |  | int  | *y* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [557](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00557) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486).

    getEuclideanDistanceSquared()
-----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getEuclideanDistanceSquared  | ( | int  | *x1*,  |
|  |  | int  | *y1*,  |
|  |  | int  | *x2*,  |
|  |  | int  | *y2* |
|  | ) |  |  const |

 | inline |

 
 Get the squared euclidean distance between the two image points. 

 Returns -INFINITY if one of the points was not observed 

 Definition at line [849](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00849) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [isObserved()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00471), [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073), and [pcl::squaredEuclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00182).

 Referenced by [getAverageEuclideanDistance()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00864).

    getHalfImage()
--------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual void pcl::RangeImage::getHalfImage  | ( | [RangeImage](classpcl_1_1_range_image) &  | *half\_image* | ) |  const |

 | virtual |

 
 Get a range image with half the resolution. 

 Reimplemented in [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar#a08d9e7838a64e2d041f73597f205fd35).

    getImageOffsetX()
-----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int pcl::RangeImage::getImageOffsetX  | ( |  | ) |  const |

 | inline |

 
 Getter for image\_offset\_x\_. 

 Definition at line [630](https://pointclouds.org/documentation/range__image_8h_source.html#l00630) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [image\_offset\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776).

    getImageOffsetY()
-----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int pcl::RangeImage::getImageOffsetY  | ( |  | ) |  const |

 | inline |

 
 Getter for image\_offset\_y\_. 

 Definition at line [633](https://pointclouds.org/documentation/range__image_8h_source.html#l00633) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [image\_offset\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776).

    getImagePoint() [1/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | float &  | *image\_x*,  |
|  |  | float &  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [384](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00384) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357).

    getImagePoint() [2/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | float &  | *image\_x*,  |
|  |  | float &  | *image\_y*,  |
|  |  | float &  | *range* |
|  | ) |  |  const |

 | inlinevirtual |

 
 Get imagePoint from 3D point in world coordinates. 

 Reimplemented in [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar#acc9341cdb5d210534ea69dd0ad1bcbcf), and [pcl::RangeImageSpherical](classpcl_1_1_range_image_spherical#ac3d6279042ea8f5da9ea0efd8221a749).

 Definition at line [357](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [asinLookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00054), [atan2LookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00064), [getImagePointFromAngles()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00434), and [to\_range\_image\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00768).

 Referenced by [checkPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00401), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [doZBuffer()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00238), [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00332), [getRangeDifference()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00415), and [integrateFarRanges()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01229).

    getImagePoint() [3/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | int &  | *image\_x*,  |
|  |  | int &  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [392](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00392) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), and [real2DToInt2D()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442).

    getImagePoint() [4/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | int &  | *image\_x*,  |
|  |  | int &  | *image\_y*,  |
|  |  | float &  | *range* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [376](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00376) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), and [real2DToInt2D()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442).

    getImagePoint() [5/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | float  | *z*,  |
|  |  | float &  | *image\_x*,  |
|  |  | float &  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [340](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00340) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357).

    getImagePoint() [6/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | float  | *z*,  |
|  |  | float &  | *image\_x*,  |
|  |  | float &  | *image\_y*,  |
|  |  | float &  | *range* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [332](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00332) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357).

    getImagePoint() [7/7]
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePoint  | ( | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | float  | *z*,  |
|  |  | int &  | *image\_x*,  |
|  |  | int &  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [348](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00348) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), and [real2DToInt2D()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442).

    getImagePointFromAngles()
-------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getImagePointFromAngles  | ( | float  | *angle\_x*,  |
|  |  | float  | *angle\_y*,  |
|  |  | float &  | *image\_x*,  |
|  |  | float &  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Get the image point corresponding to the given angles. 

 Definition at line [434](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00434) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357).

    getImpactAngle() [1/2]
----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getImpactAngle  | ( | const [PointWithRange](structpcl_1_1_point_with_range) &  | *point1*,  |
|  |  | const [PointWithRange](structpcl_1_1_point_with_range) &  | *point2* |
|  | ) |  |  const |

 | inline |

 
 Calculate the impact angle based on the sensor position and the two given points - will return -INFINITY if one of the points is unobserved. 

 Definition at line [627](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00627) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073), and [pcl::squaredEuclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00182).

 Referenced by [getAcutenessValue()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00659), and [getImpactAngle()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00618).

    getImpactAngle() [2/2]
----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getImpactAngle  | ( | int  | *x1*,  |
|  |  | int  | *y1*,  |
|  |  | int  | *x2*,  |
|  |  | int  | *y2* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [618](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00618) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImpactAngle()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00627), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450).

    getImpactAngleBasedOnLocalNormal()
----------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getImpactAngleBasedOnLocalNormal  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius* |
|  | ) |  |  const |

 | inline |

 
 Extract a local normal (with a heuristic not to include background points) and calculate the impact angle based on this. 

 Definition at line [891](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::deg2rad()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00067), [getEigenVector3f()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00802), [getNormalForClosestNeighbors()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00944), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), and [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457).

 Referenced by [getNormalBasedAcutenessValue()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00932).

    getImpactAngleImageBasedOnLocalNormals()
----------------------------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float\* pcl::RangeImage::getImpactAngleImageBasedOnLocalNormals  | ( | int  | *radius* | ) |  const |

 
 Uses the above function for every point in the image. 

    getIntegralImage()
------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getIntegralImage  | ( | float \*&  | *integral\_image*,  |
|  |  | int \*&  | *valid\_points\_num\_image* |
|  | ) |  |  const |

 
 Get the integral image of the range values (used for fast blur operations). 

 You are responsible for deleting it after usage! 

    getInterpolatedSurfaceProjection() [1/2]
----------------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float\* pcl::RangeImage::getInterpolatedSurfaceProjection  | ( | const Eigen::Affine3f &  | *pose*,  |
|  |  | int  | *pixel\_size*,  |
|  |  | float  | *world\_size* |
|  | ) |  |  const |

 
 Calculate a range patch as the z values of the coordinate frame given by pose. 

 The patch will have size pixel\_size x pixel\_size and each pixel covers world\_size/pixel\_size meters in the world You are responsible for deleting the structure afterwards! 

    getInterpolatedSurfaceProjection() [2/2]
----------------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float\* pcl::RangeImage::getInterpolatedSurfaceProjection  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | int  | *pixel\_size*,  |
|  |  | float  | *world\_size* |
|  | ) |  |  const |

 
 Same as above, but using the local coordinate frame defined by point and the viewing direction. 

    getMaxAngleSize()
-----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getMaxAngleSize  | ( | const Eigen::Affine3f &  | *viewer\_pose*,  |
|  |  | const Eigen::Vector3f &  | *center*,  |
|  |  | float  | *radius* |
|  | ) |  |  |

 | inlinestatic |

 
 Get the size of a certain area when seen from the given pose. 

 
Parameters
 

|  |  |
| --- | --- |
| viewer\_pose | an affine matrix defining the pose of the viewer  |
| center | the center of the area  |
| radius | the radius of the area  |

   
Returns
the size of the area as viewed according to *viewer\_pose* 
 Definition at line [795](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00795) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159).

    getMinMaxRanges()
-----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getMinMaxRanges  | ( | float &  | *min\_range*,  |
|  |  | float &  | *max\_range* |
|  | ) |  |  const |

 
 Find the minimum and maximum range in the image. 

    getNew()
--------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) [RangeImage](classpcl_1_1_range_image)\* pcl::RangeImage::getNew  | ( |  | ) |  const |

 | inlinevirtual |

 
 Return a newly created Range image. 

 Can be reimplemented in derived classes like [RangeImagePlanar](classpcl_1_1_range_image_planar "RangeImagePlanar is derived from the original range image and differs from it because it's not a sphe...") to return an image of the same type. 

 Reimplemented in [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar#a3d641496a2a90649d32419a2f3d00726), and [pcl::RangeImageSpherical](classpcl_1_1_range_image_spherical#acb6dc5877e1e91d773392a346778b0bc).

 Definition at line [749](https://pointclouds.org/documentation/range__image_8h_source.html#l00749) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [RangeImage()](classpcl_1_1_range_image#af18b2d3410fb7799ad4de375b51df035).

    getNormal()
-----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::getNormal  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | Eigen::Vector3f &  | *normal*,  |
|  |  | int  | *step\_size* = `1` |
|  | ) |  |  const |

 | inline |

 
 Calculate the normal of an image point using the neighbors with a maximum pixel distance of radius. 

 step\_size determines how many pixels are used. 1 means all, 2 only every second, etc.. Returns false if it was unable to calculate a normal. 

 Definition at line [906](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00906) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::VectorAverage< real, dimension >::add()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00063), [pcl::VectorAverage< real, dimension >::doPCA()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00084), [pcl::VectorAverage< real, dimension >::getMean()](https://pointclouds.org/documentation/vector__average_8h_source.html#l00071), [pcl::VectorAverage< real, dimension >::getNoOfSamples()](https://pointclouds.org/documentation/vector__average_8h_source.html#l00083), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

    getNormalBasedAcutenessValue()
------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getNormalBasedAcutenessValue  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius* |
|  | ) |  |  const |

 | inline |

 
 Calculate a score [0,1] that tells how acute the impact angle is (1.0f - getImpactAngle/90deg) This uses getImpactAngleBasedOnLocalNormal Will return -INFINITY if no normal could be calculated. 

 Definition at line [932](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00932) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891), and [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    getNormalBasedUprightTransformation()
-------------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) bool pcl::RangeImage::getNormalBasedUprightTransformation  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | float  | *max\_dist*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  const |

 
 Get a local coordinate frame at the given point based on the normal. 

    getNormalForClosestNeighbors() [1/3]
------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::getNormalForClosestNeighbors  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | Eigen::Vector3f &  | *normal*,  |
|  |  | int  | *radius* = `2` |
|  | ) |  |  const |

 | inline |

 
 Same as above, using default values. 

 Definition at line [952](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00952) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getNormalForClosestNeighbors()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00944), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457).

    getNormalForClosestNeighbors() [2/3]
------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::getNormalForClosestNeighbors  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | const Eigen::Vector3f &  | *point*,  |
|  |  | int  | *no\_of\_nearest\_neighbors*,  |
|  |  | Eigen::Vector3f &  | *normal*,  |
|  |  | Eigen::Vector3f \*  | *point\_on\_plane* = `nullptr`,  |
|  |  | int  | *step\_size* = `1` |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [1089](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01089) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getSurfaceInformation()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00972).

    getNormalForClosestNeighbors() [3/3]
------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::getNormalForClosestNeighbors  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | const [PointWithRange](structpcl_1_1_point_with_range) &  | *point*,  |
|  |  | int  | *no\_of\_nearest\_neighbors*,  |
|  |  | Eigen::Vector3f &  | *normal*,  |
|  |  | int  | *step\_size* = `1` |
|  | ) |  |  const |

 | inline |

 
 Same as above, but only the no\_of\_nearest\_neighbors points closest to the given point are considered. 

 Definition at line [944](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00944) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891), and [getNormalForClosestNeighbors()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00952).

    getOverlap()
------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float pcl::RangeImage::getOverlap  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *other\_range\_image*,  |
|  |  | const Eigen::Affine3f &  | *relative\_transformation*,  |
|  |  | int  | *search\_radius*,  |
|  |  | float  | *max\_distance*,  |
|  |  | int  | *pixel\_step* = `1` |
|  | ) |  |  const |

 
 Calculates the overlap of two range images given the relative transformation (from the given image to \*this) 

    getPoint() [1/7]
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y* |
|  | ) |  |  |

 | inline |

 
 Non-const-version of the above. 

 Definition at line [533](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00533) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [real2DToInt2D()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442).

    getPoint() [2/7]
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPoint  | ( | float  | *image\_x*,  |
|  |  | float  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Return the 3d point with range at the given image position. 

 Definition at line [524](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00524) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [real2DToInt2D()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442).

    getPoint() [3/7]
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPoint  | ( | int  | *image\_x*,  |
|  |  | int  | *image\_y* |
|  | ) |  |  |

 | inline |

 
 Non-const-version of getPoint. 

 Definition at line [509](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00509) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    getPoint() [4/7]
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPoint  | ( | int  | *image\_x*,  |
|  |  | int  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Return the 3D point with range at the given image position. 

 
Parameters
 

|  |  |
| --- | --- |
| image\_x | the x coordinate  |
| image\_y | the y coordinate  |

   
Returns
the point at the specified location (returns unobserved\_point if outside of the image bounds) 
 Definition at line [486](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [unobserved\_point](https://pointclouds.org/documentation/range__image_8h_source.html#l00778), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00584), [checkPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00401), [get1dPointAverage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00809), [pcl::RangeImageBorderExtractor::get3dDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00120), [getAcutenessValue()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00674), [getCurvature()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01108), [getEigenVector3f()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00557), [getEuclideanDistanceSquared()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00849), [pcl::RangeImagePlanar::getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00376), [getImpactAngle()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00618), [getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891), [pcl::RangeImageBorderExtractor::getNeighborDistanceChangeScore()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00070), [getNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00906), [getNormalForClosestNeighbors()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00952), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00524), [getRangeDifference()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00415), [getSquaredDistanceOfNthNeighbor()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01059), [getSurfaceAngleChange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00690), [getSurfaceInformation()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00972), [getViewingDirection()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01153), [integrateFarRanges()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01229), and [isMaxRange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00478).

    getPoint() [5/7]
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getPoint  | ( | int  | *image\_x*,  |
|  |  | int  | *image\_y*,  |
|  |  | Eigen::Vector3f &  | *point* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [542](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00542) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486).

    getPoint() [6/7]
----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| const [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPoint  | ( | int  | *index* | ) |  const |

 | inline |

 
 Return the 3d point with range at the given index (whereas index=y\*width+x) 

 Definition at line [517](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00517) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395).

    getPoint() [7/7]
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getPoint  | ( | int  | *index*,  |
|  |  | Eigen::Vector3f &  | *point* |
|  | ) |  |  const |

 | inline |

 
 Same as above. 

 Definition at line [550](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00550) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486).

    getPointNoCheck() [1/2]
-----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPointNoCheck  | ( | int  | *image\_x*,  |
|  |  | int  | *image\_y* |
|  | ) |  |  |

 | inline |

 
 Non-const-version of getPointNoCheck. 

 Definition at line [502](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00502) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    getPointNoCheck() [2/2]
-----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const [PointWithRange](structpcl_1_1_point_with_range) & pcl::RangeImage::getPointNoCheck  | ( | int  | *image\_x*,  |
|  |  | int  | *image\_y* |
|  | ) |  |  const |

 | inline |

 
 Return the 3D point with range at the given image position. 

 This method performs no error checking to make sure the specified image position is inside of the image! 



Parameters
 

|  |  |
| --- | --- |
| image\_x | the x coordinate  |
| image\_y | the y coordinate  |

   
Returns
the point at the specified location (program may fail if the location is outside of the image bounds) 
 Definition at line [495](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00495) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::PointCloud< PointWithRange >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [get1dPointAverage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00809), and [getSquaredDistanceOfNthNeighbor()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01059).

    getRangeDifference()
--------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::RangeImage::getRangeDifference  | ( | const Eigen::Vector3f &  | *point* | ) |  const |

 | inline |

 
 Returns the difference in range between the given point and the range of the point in the image at the position the given point would be. 

 (Return value is point\_in\_image.range-given\_point.range) 

 Definition at line [415](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00415) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

    getRangeImageWithSmoothedSurface()
----------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getRangeImageWithSmoothedSurface  | ( | int  | *radius*,  |
|  |  | [RangeImage](classpcl_1_1_range_image) &  | *smoothed\_range\_image* |
|  | ) |  |  const |

 
 Project all points on the local plane approximation, thereby smoothing the surface of the scan. 

    getRangesArray()
----------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float\* pcl::RangeImage::getRangesArray  | ( |  | ) |  const |

 
 Get all the range values in one float array of size width\*height. 

 
Returns
a pointer to a new float array containing the range values 
 
Note
This method allocates a new float array; the caller is responsible for freeing this memory. 
    getRotationToViewerCoordinateFrame()
------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getRotationToViewerCoordinateFrame  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  const |

 | inline |

 
 Same as above, but only returning the rotation. 

 Definition at line [1187](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01187) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), and [pcl::getTransformationFromTwoUnitVectors()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00554).

    getSensorPos()
--------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Vector3f pcl::RangeImage::getSensorPos  | ( |  | ) |  const |

 | inline |

 
 Get the sensor position. 

 Definition at line [683](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [to\_world\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00769).

 Referenced by [pcl::RangeImageBorderExtractor::get3dDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00120), [getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891), [getNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00906), [getRotationToViewerCoordinateFrame()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01187), [getSurfaceInformation()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00972), [getTransformationToViewerCoordinateFrame()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01179), and [getViewingDirection()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01153).

    getSquaredDistanceOfNthNeighbor()
---------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImage::getSquaredDistanceOfNthNeighbor  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | int  | *n*,  |
|  |  | int  | *step\_size* |
|  | ) |  |  const |

 | inline |

 
 Definition at line [1059](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01059) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getPointNoCheck()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00495), [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457), [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073), and [pcl::squaredEuclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00182).

    getSubImage()
-------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual void pcl::RangeImage::getSubImage  | ( | int  | *sub\_image\_image\_offset\_x*,  |
|  |  | int  | *sub\_image\_image\_offset\_y*,  |
|  |  | int  | *sub\_image\_width*,  |
|  |  | int  | *sub\_image\_height*,  |
|  |  | int  | *combine\_pixels*,  |
|  |  | [RangeImage](classpcl_1_1_range_image) &  | *sub\_image* |
|  | ) |  |  const |

 | virtual |

 
 Get a sub part of the complete image as a new range image. 

 
Parameters
 

|  |  |
| --- | --- |
| sub\_image\_image\_offset\_x | - The x coordinate of the top left pixel of the sub image. This is always according to absolute 0,0 meaning -180°,-90° and it is already in the system of the new image, so the actual pixel used in the original image is combine\_pixels\* (image\_offset\_x-image\_offset\_x\_)  |
| sub\_image\_image\_offset\_y | - Same as image\_offset\_x for the y coordinate  |
| sub\_image\_width | - width of the new image  |
| sub\_image\_height | - height of the new image  |
| combine\_pixels | - shrinking factor, meaning the new angular resolution is combine\_pixels times the old one  |
| sub\_image | - the output image  |

   Reimplemented in [pcl::RangeImagePlanar](classpcl_1_1_range_image_planar#a46bcbab49438968be9c743987b408b86).

    getSurfaceAngleChange()
-----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getSurfaceAngleChange  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | float &  | *angle\_change\_x*,  |
|  |  | float &  | *angle\_change\_y* |
|  | ) |  |  const |

 | inline |

 
 Calculates, how much the surface changes at a point. 

 Returns an angle [0.0f, PI] for x and y direction. A return value of -INFINITY means that a point was unobserved. 

 Definition at line [690](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00690) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getTransformationToViewerCoordinateFrame()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01170), [isMaxRange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00478), [isObserved()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00471), and [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457).

    getSurfaceAngleChangeImages()
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::getSurfaceAngleChangeImages  | ( | int  | *radius*,  |
|  |  | float \*&  | *angle\_change\_image\_x*,  |
|  |  | float \*&  | *angle\_change\_image\_y* |
|  | ) |  |  const |

 
 Uses the above function for every point in the image. 

    getSurfaceChange()
------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float pcl::RangeImage::getSurfaceChange  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius* |
|  | ) |  |  const |

 
 Calculates, how much the surface changes at a point. 

 Pi meaning a flat surface and 0.0f would be a needle point Calculates, how much the surface changes at a point. 1 meaning a 90deg angle and 0 a flat surface 

    getSurfaceChangeImage()
-----------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) float\* pcl::RangeImage::getSurfaceChangeImage  | ( | int  | *radius* | ) |  const |

 
 Uses the above function for every point in the image. 

    getSurfaceInformation()
-----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::getSurfaceInformation  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | const Eigen::Vector3f &  | *point*,  |
|  |  | int  | *no\_of\_closest\_neighbors*,  |
|  |  | int  | *step\_size*,  |
|  |  | float &  | *max\_closest\_neighbor\_distance\_squared*,  |
|  |  | Eigen::Vector3f &  | *normal*,  |
|  |  | Eigen::Vector3f &  | *mean*,  |
|  |  | Eigen::Vector3f &  | *eigen\_values*,  |
|  |  | Eigen::Vector3f \*  | *normal\_all\_neighbors* = `nullptr`,  |
|  |  | Eigen::Vector3f \*  | *mean\_all\_neighbors* = `nullptr`,  |
|  |  | Eigen::Vector3f \*  | *eigen\_values\_all\_neighbors* = `nullptr` |
|  | ) |  |  const |

 | inline |

 
 Same as above but extracts some more data and can also return the extracted information for all neighbors in radius if normal\_all\_neighbors is not NULL. 

 Definition at line [972](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00972) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::VectorAverage< real, dimension >::add()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00063), [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), [pcl::VectorAverage< real, dimension >::doPCA()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00084), [pcl::VectorAverage< real, dimension >::getMean()](https://pointclouds.org/documentation/vector__average_8h_source.html#l00071), [pcl::VectorAverage< real, dimension >::getNoOfSamples()](https://pointclouds.org/documentation/vector__average_8h_source.html#l00083), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457), and [pcl::squaredEuclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00182).

 Referenced by [getNormalForClosestNeighbors()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01089).

    getTransformationToRangeImageSystem()
-------------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Affine3f& pcl::RangeImage::getTransformationToRangeImageSystem  | ( |  | ) |  const |

 | inline |

 
 Getter for the transformation from the world system into the range image system (the sensor coordinate frame) 

 Definition at line [337](https://pointclouds.org/documentation/range__image_8h_source.html#l00337) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [to\_range\_image\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00768).

    getTransformationToViewerCoordinateFrame() [1/2]
------------------------------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Eigen::Affine3f pcl::RangeImage::getTransformationToViewerCoordinateFrame  | ( | const Eigen::Vector3f &  | *point* | ) |  const |

 | inline |

 
 Get the local coordinate frame with 0,0,0 in point, upright and Z as the viewing direction. 

 Definition at line [1170](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01170) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [getSurfaceAngleChange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00690).

    getTransformationToViewerCoordinateFrame() [2/2]
------------------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getTransformationToViewerCoordinateFrame  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | Eigen::Affine3f &  | *transformation* |
|  | ) |  |  const |

 | inline |

 
 Same as above, using a reference for the retrurn value. 

 Definition at line [1179](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01179) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), and [pcl::getTransformationFromTwoUnitVectorsAndOrigin()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00573).

    getTransformationToWorldSystem()
--------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Affine3f& pcl::RangeImage::getTransformationToWorldSystem  | ( |  | ) |  const |

 | inline |

 
 Getter for the transformation from the range image system (the sensor coordinate frame) into the world system. 

 Definition at line [347](https://pointclouds.org/documentation/range__image_8h_source.html#l00347) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [to\_world\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00769).

    getViewingDirection() [1/2]
---------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::getViewingDirection  | ( | const Eigen::Vector3f &  | *point*,  |
|  |  | Eigen::Vector3f &  | *viewing\_direction* |
|  | ) |  |  const |

 | inline |

 
 Get the viewing direction for the given point. 

 Definition at line [1163](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01163) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683).

    getViewingDirection() [2/2]
---------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::getViewingDirection  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | Eigen::Vector3f &  | *viewing\_direction* |
|  | ) |  |  const |

 | inline |

 
 Get the viewing direction for the given point. 

 Definition at line [1153](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01153) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), and [isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457).

    integrateFarRanges()
--------------------

    template<typename PointCloudType >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::RangeImage::integrateFarRanges  | ( | const PointCloudType &  | *far\_ranges* | ) |  |

 
 Integrates the given far range measurements into the range image. 

 Definition at line [1229](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01229) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [pcl\_lrint](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00253), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

    isInImage()
-----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::isInImage  | ( | int  | *x*,  |
|  |  | int  | *y* |
|  | ) |  |  const |

 | inline |

 
 Check if a point is inside of the image. 

 Definition at line [450](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [pcl::PointCloud< PointWithRange >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), and [pcl::PointCloud< PointWithRange >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00180), [pcl::RangeImageBorderExtractor::checkIfMaximum()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00289), [checkPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00401), [pcl::RangeImageBorderExtractor::checkPotentialBorder()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00258), [doZBuffer()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00238), [getAcutenessValue()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00674), [getCurvature()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01108), [pcl::RangeImagePlanar::getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00376), [getImpactAngle()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00618), [getNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00906), [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [getRangeDifference()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00415), [integrateFarRanges()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01229), and [pcl::RangeImageBorderExtractor::updatedScoreAccordingToNeighborValues()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00226).

    isMaxRange()
------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::isMaxRange  | ( | int  | *x*,  |
|  |  | int  | *y* |
|  | ) |  |  const |

 | inline |

 
 Check if a point is a max range (range=INFINITY) - please check isInImage or isObserved first! 

 Definition at line [478](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00478) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), and [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073).

 Referenced by [pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00180), and [getSurfaceAngleChange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00690).

    isObserved()
------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::isObserved  | ( | int  | *x*,  |
|  |  | int  | *y* |
|  | ) |  |  const |

 | inline |

 
 Check if a point is inside of the image and has either a finite range or a max reading (range=INFINITY) 

 Definition at line [471](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00471) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [getEuclideanDistanceSquared()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00849), and [getSurfaceAngleChange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00690).

    isValid() [1/2]
---------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool pcl::RangeImage::isValid  | ( | int  | *index* | ) |  const |

 | inline |

 
 Check if a point has a finite range. 

 Definition at line [464](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00464) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

    isValid() [2/2]
---------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImage::isValid  | ( | int  | *x*,  |
|  |  | int  | *y* |
|  | ) |  |  const |

 | inline |

 
 Check if a point is inside of the image and has a finite range. 

 Definition at line [457](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [pcl::RangeImageBorderExtractor::calculateMainPrincipalCurvature()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00312), [get1dPointAverage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00809), [getImpactAngleBasedOnLocalNormal()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00891), [getNormalForClosestNeighbors()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00952), [getSquaredDistanceOfNthNeighbor()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01059), [getSurfaceAngleChange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00690), [getSurfaceInformation()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00972), and [getViewingDirection()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01153).

    makeShared()
------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Ptr](classpcl_1_1_range_image#a3ba0be0fa2c5cbd409547860c68ff9e8) pcl::RangeImage::makeShared  | ( |  | ) |  |

 | inline |

 
 Get a boost shared pointer of a copy of this. 

 Definition at line [124](https://pointclouds.org/documentation/range__image_8h_source.html#l00124) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

    real2DToInt2D()
---------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::real2DToInt2D  | ( | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | int &  | *xInt*,  |
|  |  | int &  | *yInt* |
|  | ) |  |  const |

 | inline |

 
 Transforms an image point in float values to an image point in int values. 

 Definition at line [442](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00442) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 Referenced by [doZBuffer()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00238), [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00348), and [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00524).

    recalculate3DPointPositions()
-----------------------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::recalculate3DPointPositions  | ( |  | ) |  |

 
 Recalculate all 3D point positions according to their pixel position and range. 

 Referenced by [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImagePlanar::createFromPointCloudWithFixedSize()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00050), and [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159).

    reset()
-------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::reset  | ( |  | ) |  |

 
 Reset all values to an empty range image. 

    setAngularResolution() [1/2]
----------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::RangeImage::setAngularResolution  | ( | float  | *angular\_resolution* | ) |  |

 | inline |

 
 Set the angular resolution of the range image. 

 
Parameters
 

|  |  |
| --- | --- |
| angular\_resolution | the new angular resolution in x and y direction (in radians per pixel)  |

   Definition at line [1195](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [angular\_resolution\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00770), [angular\_resolution\_x\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00772), [angular\_resolution\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00771), and [angular\_resolution\_y\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00774).

 Referenced by [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), and [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159).

    setAngularResolution() [2/2]
----------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::setAngularResolution  | ( | float  | *angular\_resolution\_x*,  |
|  |  | float  | *angular\_resolution\_y* |
|  | ) |  |  |

 | inline |

 
 Set the angular resolution of the range image. 

 
Parameters
 

|  |  |
| --- | --- |
| angular\_resolution\_x | the new angular resolution in x direction (in radians per pixel)  |
| angular\_resolution\_y | the new angular resolution in y direction (in radians per pixel)  |

   Definition at line [1203](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01203) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [angular\_resolution\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00770), [angular\_resolution\_x\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00772), [angular\_resolution\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00771), and [angular\_resolution\_y\_reciprocal\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00774).

    setImageOffsets()
-----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImage::setImageOffsets  | ( | int  | *offset\_x*,  |
|  |  | int  | *offset\_y* |
|  | ) |  |  |

 | inline |

 
 Setter for image offsets. 

 Definition at line [637](https://pointclouds.org/documentation/range__image_8h_source.html#l00637) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 References [image\_offset\_x\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776), and [image\_offset\_y\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00776).

    setTransformationToRangeImageSystem()
-------------------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::RangeImage::setTransformationToRangeImageSystem  | ( | const Eigen::Affine3f &  | *to\_range\_image\_system* | ) |  |

 | inline |

 
 Setter for the transformation from the range image system (the sensor coordinate frame) into the world system. 

 Definition at line [1213](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01213) of file [range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html).

 References [to\_range\_image\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00768), and [to\_world\_system\_](https://pointclouds.org/documentation/range__image_8h_source.html#l00769).

    setUnseenToMaxRange()
---------------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PCL\_EXPORTS](https://pointclouds.org/documentation/pcl__macros_8h.html#a2b443b7908f11aed38b620b570e5ebce) void pcl::RangeImage::setUnseenToMaxRange  | ( |  | ) |  |

 
 Sets all -INFINITY values to INFINITY. 

   Member Data Documentation
-------------------------

  angular\_resolution\_x\_
------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float pcl::RangeImage::angular\_resolution\_x\_ |

 | protected |

 
 Angular resolution of the range image in x direction in radians per pixel. 

 Definition at line [770](https://pointclouds.org/documentation/range__image_8h_source.html#l00770) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00609), [pcl::RangeImageSpherical::getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00070), [getAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01221), [getAngularResolutionX()](https://pointclouds.org/documentation/range__image_8h_source.html#l00356), and [setAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195).

    angular\_resolution\_x\_reciprocal\_
------------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float pcl::RangeImage::angular\_resolution\_x\_reciprocal\_ |

 | protected |

 
 1.0/angular\_resolution\_x\_ - provided for better performance of multiplication compared to division 

 Definition at line [772](https://pointclouds.org/documentation/range__image_8h_source.html#l00772) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [pcl::RangeImagePlanar::calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [pcl::RangeImageSpherical::getImagePointFromAngles()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00077), and [setAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195).

    angular\_resolution\_y\_
------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float pcl::RangeImage::angular\_resolution\_y\_ |

 | protected |

 
 Angular resolution of the range image in y direction in radians per pixel. 

 Definition at line [771](https://pointclouds.org/documentation/range__image_8h_source.html#l00771) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00609), [pcl::RangeImageSpherical::getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00070), [getAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01221), [getAngularResolutionY()](https://pointclouds.org/documentation/range__image_8h_source.html#l00360), and [setAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195).

    angular\_resolution\_y\_reciprocal\_
------------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float pcl::RangeImage::angular\_resolution\_y\_reciprocal\_ |

 | protected |

 
 1.0/angular\_resolution\_y\_ - provided for better performance of multiplication compared to division 

 Definition at line [774](https://pointclouds.org/documentation/range__image_8h_source.html#l00774) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [pcl::RangeImagePlanar::calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [pcl::RangeImageSpherical::getImagePointFromAngles()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00077), and [setAngularResolution()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01195).

    asin\_lookup\_table
-------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImage::asin\_lookup\_table |

 | staticprotected |

 
 Definition at line [786](https://pointclouds.org/documentation/range__image_8h_source.html#l00786) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [asinLookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00054).

    atan\_lookup\_table
-------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImage::atan\_lookup\_table |

 | staticprotected |

 
 Definition at line [787](https://pointclouds.org/documentation/range__image_8h_source.html#l00787) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [atan2LookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00064).

    cos\_lookup\_table
------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImage::cos\_lookup\_table |

 | staticprotected |

 
 Definition at line [788](https://pointclouds.org/documentation/range__image_8h_source.html#l00788) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [cosLookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00090).

    debug
-----

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool pcl::RangeImage::debug |

 | static |

 
 Just for... 

 well... debugging purposes. :-) 

 Definition at line [764](https://pointclouds.org/documentation/range__image_8h_source.html#l00764) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

    image\_offset\_x\_
------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::RangeImage::image\_offset\_x\_ |

 | protected |

 
 Definition at line [776](https://pointclouds.org/documentation/range__image_8h_source.html#l00776) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [pcl::RangeImagePlanar::calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00609), [pcl::RangeImageSpherical::getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00070), [getImageOffsetX()](https://pointclouds.org/documentation/range__image_8h_source.html#l00630), [pcl::RangeImagePlanar::getImagePoint()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00105), [pcl::RangeImageSpherical::getImagePointFromAngles()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00077), and [setImageOffsets()](https://pointclouds.org/documentation/range__image_8h_source.html#l00637).

    image\_offset\_y\_
------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::RangeImage::image\_offset\_y\_ |

 | protected |

 
 Position of the top left corner of the range image compared to an image of full size (360x180 degrees) 

 Definition at line [776](https://pointclouds.org/documentation/range__image_8h_source.html#l00776) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [pcl::RangeImagePlanar::calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00609), [pcl::RangeImageSpherical::getAnglesFromImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00070), [getImageOffsetY()](https://pointclouds.org/documentation/range__image_8h_source.html#l00633), [pcl::RangeImagePlanar::getImagePoint()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00105), [pcl::RangeImageSpherical::getImagePointFromAngles()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00077), and [setImageOffsets()](https://pointclouds.org/documentation/range__image_8h_source.html#l00637).

    lookup\_table\_size
-------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| const int pcl::RangeImage::lookup\_table\_size |

 | staticprotected |

 
 Definition at line [785](https://pointclouds.org/documentation/range__image_8h_source.html#l00785) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [asinLookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00054), [atan2LookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00064), and [cosLookUp()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00090).

    max\_no\_of\_threads
--------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::RangeImage::max\_no\_of\_threads |

 | static |

 
 The maximum number of openmp threads that can be used in this class. 

 Definition at line [78](https://pointclouds.org/documentation/range__image_8h_source.html#l00078) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

    to\_range\_image\_system\_
--------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Affine3f pcl::RangeImage::to\_range\_image\_system\_ |

 | protected |

 
 Inverse of to\_world\_system\_. 

 Definition at line [768](https://pointclouds.org/documentation/range__image_8h_source.html#l00768) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImagePlanar::createFromPointCloudWithFixedSize()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00050), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [getImagePoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00357), [pcl::RangeImageSpherical::getImagePoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00060), [pcl::RangeImagePlanar::getImagePoint()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00105), [getTransformationToRangeImageSystem()](https://pointclouds.org/documentation/range__image_8h_source.html#l00337), and [setTransformationToRangeImageSystem()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01213).

    to\_world\_system\_
-------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Affine3f pcl::RangeImage::to\_world\_system\_ |

 | protected |

 
 Inverse of to\_range\_image\_system\_. 

 Definition at line [769](https://pointclouds.org/documentation/range__image_8h_source.html#l00769) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00571), [pcl::RangeImageSpherical::calculate3DPoint()](https://pointclouds.org/documentation/range__image__spherical_8hpp_source.html#l00048), [pcl::RangeImagePlanar::calculate3DPoint()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00092), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImagePlanar::createFromPointCloudWithFixedSize()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00050), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), [getTransformationToWorldSystem()](https://pointclouds.org/documentation/range__image_8h_source.html#l00347), and [setTransformationToRangeImageSystem()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l01213).

    unobserved\_point
-----------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointWithRange](structpcl_1_1_point_with_range) pcl::RangeImage::unobserved\_point |

 | protected |

 
 This point is used to be able to return a reference to a non-existing point. 

 Definition at line [778](https://pointclouds.org/documentation/range__image_8h_source.html#l00778) of file [range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html).

 Referenced by [checkPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00401), [createFromPointCloud()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00109), [pcl::RangeImagePlanar::createFromPointCloudWithFixedSize()](https://pointclouds.org/documentation/range__image__planar_8hpp_source.html#l00050), [createFromPointCloudWithKnownSize()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00159), [get1dPointAverage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00809), and [getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486).

   

---

The documentation for this class was generated from the following files:* pcl/range\_image/[range\_image.h](https://pointclouds.org/documentation/range__image_8h_source.html)
* pcl/range\_image/impl/[range\_image.hpp](https://pointclouds.org/documentation/range__image_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_range_image.html>

[ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation "ShapeContext3DEstimation implements the 3D shape context descriptor as described in:") implements the 3D shape context descriptor as described in: [More...](classpcl_1_1_shape_context3_d_estimation#details)

 `#include <[pcl/features/3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_shape_context3_d_estimation#afe2d89b3bddc9de2f69a7eb76b4e56a3) = shared\_ptr< [ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_shape_context3_d_estimation#a6ed1598dc37dd8bb2c24501712ab28d3) = shared\_ptr< const [ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_shape_context3_d_estimation#a95d6638b9fcd2282e3c4d3862b89f30c) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_shape_context3_d_estimation#a95d6638b9fcd2282e3c4d3862b89f30c) |
|
| using  | [PointCloudIn](classpcl_1_1_shape_context3_d_estimation#a789a2e60c12ba68b9ae62792c8f39aeb) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_shape_context3_d_estimation#a789a2e60c12ba68b9ae62792c8f39aeb) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::ShapeContext1980](structpcl_1_1_shape_context1980) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::ShapeContext1980](structpcl_1_1_shape_context1980) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation#aec9b00c71722e6956c4769a64c8558be) (bool random=false) |
|  | Constructor. [More...](classpcl_1_1_shape_context3_d_estimation#aec9b00c71722e6956c4769a64c8558be) |
|
|  | [~ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation#ae7f58aaec207366a8824505d61b31a10) () override=default |
|
| std::size\_t  | [getAzimuthBins](classpcl_1_1_shape_context3_d_estimation#a556aa3015205c00d8e9bc4967e192828) () |
|
| std::size\_t  | [getElevationBins](classpcl_1_1_shape_context3_d_estimation#a8f9a129cd42ddc57b30a68e266d7af15) () |
|
| std::size\_t  | [getRadiusBins](classpcl_1_1_shape_context3_d_estimation#afa0a74808afc7ffe70efb08bdfc952dc) () |
|
| void  | [setMinimalRadius](classpcl_1_1_shape_context3_d_estimation#a1797a3547853cde1cb8b7d53dba359be) (double radius) |
|  | The minimal radius value for the search sphere (rmin) in the original paper. [More...](classpcl_1_1_shape_context3_d_estimation#a1797a3547853cde1cb8b7d53dba359be) |
|
| double  | [getMinimalRadius](classpcl_1_1_shape_context3_d_estimation#af7031bdf8cd4b2a948bc6f25767518cc) () |
|
| void  | [setPointDensityRadius](classpcl_1_1_shape_context3_d_estimation#aff1671ba68b09cb865057443aff9bd55) (double radius) |
|  | This radius is used to compute local point density density = number of points within this radius. [More...](classpcl_1_1_shape_context3_d_estimation#aff1671ba68b09cb865057443aff9bd55) |
|
| double  | [getPointDensityRadius](classpcl_1_1_shape_context3_d_estimation#a99b84d1f4079f42014ae6bd91d65f856) () |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_shape_context3_d_estimation#a5ad35bf2e037d347e932a3ce2588dc01) () override |
|  | Initialize computation by allocating all the intervals and the volume lookup table. [More...](classpcl_1_1_shape_context3_d_estimation#a5ad35bf2e037d347e932a3ce2588dc01) |
|
| bool  | [computePoint](classpcl_1_1_shape_context3_d_estimation#a31c91421fae448dc07b3a17637d01e61) (std::size\_t index, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, float rf[9], std::vector< float > &desc) |
|  | Estimate a descriptor for a given point. [More...](classpcl_1_1_shape_context3_d_estimation#a31c91421fae448dc07b3a17637d01e61) |
|
| void  | [computeFeature](classpcl_1_1_shape_context3_d_estimation#aa71280e637046576f66acebd491a4856) ([PointCloudOut](classpcl_1_1_shape_context3_d_estimation#a95d6638b9fcd2282e3c4d3862b89f30c) &output) override |
|  | Estimate the actual feature. [More...](classpcl_1_1_shape_context3_d_estimation#aa71280e637046576f66acebd491a4856) |
|
| float  | [rnd](classpcl_1_1_shape_context3_d_estimation#a94d12d978233e25161d734bc2b628e4e) () |
|  | Boost-based random number generator. [More...](classpcl_1_1_shape_context3_d_estimation#a94d12d978233e25161d734bc2b628e4e) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::vector< float >  | [radii\_interval\_](classpcl_1_1_shape_context3_d_estimation#a85fe8fd0e4cb0c2545a9d35a692779df) |
|  | Values of the radii interval. [More...](classpcl_1_1_shape_context3_d_estimation#a85fe8fd0e4cb0c2545a9d35a692779df) |
|
| std::vector< float >  | [theta\_divisions\_](classpcl_1_1_shape_context3_d_estimation#ae2e2952dc77471b30709cebac6bab76e) |
|  | Theta divisions interval. [More...](classpcl_1_1_shape_context3_d_estimation#ae2e2952dc77471b30709cebac6bab76e) |
|
| std::vector< float >  | [phi\_divisions\_](classpcl_1_1_shape_context3_d_estimation#af37e905bdf176c47880c445bdcd9ac60) |
|  | Phi divisions interval. [More...](classpcl_1_1_shape_context3_d_estimation#af37e905bdf176c47880c445bdcd9ac60) |
|
| std::vector< float >  | [volume\_lut\_](classpcl_1_1_shape_context3_d_estimation#ac39c10aa538ee073380d3964018555df) |
|  | Volumes look up table. [More...](classpcl_1_1_shape_context3_d_estimation#ac39c10aa538ee073380d3964018555df) |
|
| std::size\_t  | [azimuth\_bins\_](classpcl_1_1_shape_context3_d_estimation#a4872a6ce97ac4472f3c23a0c6f41f235) |
|  | Bins along the azimuth dimension. [More...](classpcl_1_1_shape_context3_d_estimation#a4872a6ce97ac4472f3c23a0c6f41f235) |
|
| std::size\_t  | [elevation\_bins\_](classpcl_1_1_shape_context3_d_estimation#afd92bbf05ac7596e3428b77ff8da0d51) |
|  | Bins along the elevation dimension. [More...](classpcl_1_1_shape_context3_d_estimation#afd92bbf05ac7596e3428b77ff8da0d51) |
|
| std::size\_t  | [radius\_bins\_](classpcl_1_1_shape_context3_d_estimation#a74bd50ea33bd0d32a85d81e0300263d3) |
|  | Bins along the radius dimension. [More...](classpcl_1_1_shape_context3_d_estimation#a74bd50ea33bd0d32a85d81e0300263d3) |
|
| double  | [min\_radius\_](classpcl_1_1_shape_context3_d_estimation#a9a33a2c7d4d33c22a2b8532dba05b0bf) |
|  | Minimal radius value. [More...](classpcl_1_1_shape_context3_d_estimation#a9a33a2c7d4d33c22a2b8532dba05b0bf) |
|
| double  | [point\_density\_radius\_](classpcl_1_1_shape_context3_d_estimation#aa752ddd8a5b0501f6b6dcbfd133ffa47) |
|  | Point density radius. [More...](classpcl_1_1_shape_context3_d_estimation#aa752ddd8a5b0501f6b6dcbfd133ffa47) |
|
| std::size\_t  | [descriptor\_length\_](classpcl_1_1_shape_context3_d_estimation#acfc43f61899f42ac5474d6136832c138) |
|  | Descriptor length. [More...](classpcl_1_1_shape_context3_d_estimation#acfc43f61899f42ac5474d6136832c138) |
|
| std::mt19937  | [rng\_](classpcl_1_1_shape_context3_d_estimation#a94ef7336409ae43a630a01a8721b44d0) |
|  | Random number generator algorithm. [More...](classpcl_1_1_shape_context3_d_estimation#a94ef7336409ae43a630a01a8721b44d0) |
|
| std::uniform\_real\_distribution< float >  | [rng\_dist\_](classpcl_1_1_shape_context3_d_estimation#a01127ba741f9f220a0ac9a6c80fd6b58) |
|  | Random number generator distribution. [More...](classpcl_1_1_shape_context3_d_estimation#a01127ba741f9f220a0ac9a6c80fd6b58) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::ShapeContext1980> class pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >

 [ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation "ShapeContext3DEstimation implements the 3D shape context descriptor as described in:") implements the 3D shape context descriptor as described in: 

 * Andrea Frome, Daniel Huber, Ravi Kolluri and Thomas Bülow, Jitendra Malik Recognizing Objects in Range Data Using Regional Point Descriptors, In proceedings of the 8th European Conference on Computer Vision (ECCV), Prague, May 11-14, 2004

 The suggested PointOutT is [pcl::ShapeContext1980](structpcl_1_1_shape_context1980 "A point structure representing a Shape Context.")

 
Attention
The convention for a 3D shape context descriptor is:* if a query point's nearest neighbors cannot be estimated, the feature descriptor will be set to NaN (not a number), and the RF to 0
* it is impossible to estimate a 3D shape context descriptor for a point that doesn't have finite 3D coordinates. Therefore, any point that contains NaN data on x, y, or z, will have its boundary feature property set to NaN.

 
 
Author
Alessandro Franchi, Samuele Salti, Federico Tombari (original code)   Nizar Sallem (port to PCL) 
 Definition at line [72](https://pointclouds.org/documentation/3dsc_8h_source.html#l00072) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |
| --- |
| using [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_shape_context3_d_estimation#a6ed1598dc37dd8bb2c24501712ab28d3) = shared\_ptr<const [ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [76](https://pointclouds.org/documentation/3dsc_8h_source.html#l00076) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |
| --- |
| using [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_shape_context3_d_estimation#a789a2e60c12ba68b9ae62792c8f39aeb) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_shape_context3_d_estimation#a789a2e60c12ba68b9ae62792c8f39aeb) |

 
 Definition at line [89](https://pointclouds.org/documentation/3dsc_8h_source.html#l00089) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |
| --- |
| using [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_shape_context3_d_estimation#a95d6638b9fcd2282e3c4d3862b89f30c) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_shape_context3_d_estimation#a95d6638b9fcd2282e3c4d3862b89f30c) |

 
 Definition at line [88](https://pointclouds.org/documentation/3dsc_8h_source.html#l00088) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |
| --- |
| using [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_shape_context3_d_estimation#afe2d89b3bddc9de2f69a7eb76b4e56a3) = shared\_ptr<[ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [75](https://pointclouds.org/documentation/3dsc_8h_source.html#l00075) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  ShapeContext3DEstimation()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::[ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation) | ( | bool  | *random* = `false` | ) |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | random | If true the random seed is set to current time, else it is set to 12345 prior to computing the descriptor (used to select X axis)  |

   Definition at line [95](https://pointclouds.org/documentation/3dsc_8h_source.html#l00095) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rng\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00218), and [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

    ~ShapeContext3DEstimation()
---------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::~[ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation) | ( |  | ) |  |

 | overridedefault |

 
   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_shape_context3_d_estimation#a95d6638b9fcd2282e3c4d3862b89f30c) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the actual feature. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant feature  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [255](https://pointclouds.org/documentation/3dsc_8hpp_source.html#l00255) of file [3dsc.hpp](https://pointclouds.org/documentation/3dsc_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::computePoint  | ( | std::size\_t  | *index*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | float  | *rf*[9],  |
|  |  | std::vector< float > &  | *desc* |
|  | ) |  |  |

 | protected |

 
 Estimate a descriptor for a given point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point to estimate a descriptor for  |
| [in] | normals | a pointer to the set of normals  |
| [out] | rf | the reference frame  |
| [out] | desc | the resultant estimated descriptor  |

   
Returns
true if the descriptor was computed successfully, false if there was an error (e.g. the nearest neighbor didn't return any neighbors) 
 --— Compute current neighbour polar coordinates --— Get distance between the neighbour and the origin

 Project point into the tangent plane

 Normalize to compute the dot product

 Compute the angle between the projection and the x axis in the interval [0,360]

 Compute the angle between the neighbour and the z axis (normal) in the interval [0, 180]

 Accumulate w into correspondent Bin(j,k,l)

 Definition at line [133](https://pointclouds.org/documentation/3dsc_8hpp_source.html#l00133) of file [3dsc.hpp](https://pointclouds.org/documentation/3dsc_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), [pcl::utils::equal()](https://pointclouds.org/documentation/utils_8h_source.html#l00055), [pcl::isNormalFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00131), [pcl::geometry::project()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00081), and [pcl::rad2deg()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00061).

    getAzimuthBins()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::getAzimuthBins  | ( |  | ) |  |

 | inline |

 
 
Returns
the number of bins along the azimuth 
 Definition at line [128](https://pointclouds.org/documentation/3dsc_8h_source.html#l00128) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::azimuth\_bins\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00200).

    getElevationBins()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::getElevationBins  | ( |  | ) |  |

 | inline |

 
 
Returns
The number of bins along the elevation 
 Definition at line [135](https://pointclouds.org/documentation/3dsc_8h_source.html#l00135) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::elevation\_bins\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00203).

    getMinimalRadius()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::getMinimalRadius  | ( |  | ) |  |

 | inline |

 
 
Returns
The minimal sphere radius 
 Definition at line [152](https://pointclouds.org/documentation/3dsc_8h_source.html#l00152) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::min\_radius\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00209).

    getPointDensityRadius()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::getPointDensityRadius  | ( |  | ) |  |

 | inline |

 
 
Returns
The point density search radius 
 Definition at line [163](https://pointclouds.org/documentation/3dsc_8h_source.html#l00163) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::point\_density\_radius\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00212).

    getRadiusBins()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::getRadiusBins  | ( |  | ) |  |

 | inline |

 
 
Returns
The number of bins along the radii direction 
 Definition at line [142](https://pointclouds.org/documentation/3dsc_8h_source.html#l00142) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::radius\_bins\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00206).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::initCompute |

 | overrideprotectedvirtual |

 
 Initialize computation by allocating all the intervals and the volume lookup table. 

 Reimplemented from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [53](https://pointclouds.org/documentation/3dsc_8hpp_source.html#l00053) of file [3dsc.hpp](https://pointclouds.org/documentation/3dsc_8hpp_source.html).

 References [pcl::deg2rad()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00067).

    rnd()
-----

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::rnd  | ( |  | ) |  |

 | inlineprotected |

 
 Boost-based random number generator. 

 Definition at line [233](https://pointclouds.org/documentation/3dsc_8h_source.html#l00233) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rng\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00218), and [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rng\_dist\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00221).

    setMinimalRadius()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::setMinimalRadius  | ( | double  | *radius* | ) |  |

 | inline |

 
 The minimal radius value for the search sphere (rmin) in the original paper. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | the desired minimal radius  |

   Definition at line [148](https://pointclouds.org/documentation/3dsc_8h_source.html#l00148) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::min\_radius\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00209).

    setPointDensityRadius()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::setPointDensityRadius  | ( | double  | *radius* | ) |  |

 | inline |

 
 This radius is used to compute local point density density = number of points within this radius. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | value of the point density search radius  |

   Definition at line [159](https://pointclouds.org/documentation/3dsc_8h_source.html#l00159) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 References [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::point\_density\_radius\_](https://pointclouds.org/documentation/3dsc_8h_source.html#l00212).

   Member Data Documentation
-------------------------

  azimuth\_bins\_
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::azimuth\_bins\_ |

 | protected |

 
 Bins along the azimuth dimension. 

 Definition at line [200](https://pointclouds.org/documentation/3dsc_8h_source.html#l00200) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getAzimuthBins()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00128).

    descriptor\_length\_
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::descriptor\_length\_ |

 | protected |

 
 Descriptor length. 

 Definition at line [215](https://pointclouds.org/documentation/3dsc_8h_source.html#l00215) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    elevation\_bins\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::elevation\_bins\_ |

 | protected |

 
 Bins along the elevation dimension. 

 Definition at line [203](https://pointclouds.org/documentation/3dsc_8h_source.html#l00203) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getElevationBins()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00135).

    min\_radius\_
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::min\_radius\_ |

 | protected |

 
 Minimal radius value. 

 Definition at line [209](https://pointclouds.org/documentation/3dsc_8h_source.html#l00209) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getMinimalRadius()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00152), and [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::setMinimalRadius()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00148).

    phi\_divisions\_
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::phi\_divisions\_ |

 | protected |

 
 Phi divisions interval. 

 Definition at line [194](https://pointclouds.org/documentation/3dsc_8h_source.html#l00194) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    point\_density\_radius\_
------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::point\_density\_radius\_ |

 | protected |

 
 Point density radius. 

 Definition at line [212](https://pointclouds.org/documentation/3dsc_8h_source.html#l00212) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getPointDensityRadius()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00163), and [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::setPointDensityRadius()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00159).

    radii\_interval\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::radii\_interval\_ |

 | protected |

 
 Values of the radii interval. 

 Definition at line [188](https://pointclouds.org/documentation/3dsc_8h_source.html#l00188) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    radius\_bins\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::radius\_bins\_ |

 | protected |

 
 Bins along the radius dimension. 

 Definition at line [206](https://pointclouds.org/documentation/3dsc_8h_source.html#l00206) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getRadiusBins()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00142).

    rng\_
-----

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::mt19937 [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::rng\_ |

 | protected |

 
 Random number generator algorithm. 

 Definition at line [218](https://pointclouds.org/documentation/3dsc_8h_source.html#l00218) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rnd()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00233), and [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::ShapeContext3DEstimation()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00095).

    rng\_dist\_
-----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::uniform\_real\_distribution<float> [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::rng\_dist\_ |

 | protected |

 
 Random number generator distribution. 

 Definition at line [221](https://pointclouds.org/documentation/3dsc_8h_source.html#l00221) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

 Referenced by [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rnd()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00233).

    theta\_divisions\_
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::theta\_divisions\_ |

 | protected |

 
 Theta divisions interval. 

 Definition at line [191](https://pointclouds.org/documentation/3dsc_8h_source.html#l00191) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

    volume\_lut\_
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::ShapeContext1980>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::ShapeContext3DEstimation](classpcl_1_1_shape_context3_d_estimation)< PointInT, PointNT, PointOutT >::volume\_lut\_ |

 | protected |

 
 Volumes look up table. 

 Definition at line [197](https://pointclouds.org/documentation/3dsc_8h_source.html#l00197) of file [3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[3dsc.h](https://pointclouds.org/documentation/3dsc_8h_source.html)
* pcl/features/impl/[3dsc.hpp](https://pointclouds.org/documentation/3dsc_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_shape_context3_d_estimation.html>

[BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation "BOARDLocalReferenceFrameEstimation implements the BOrder Aware Repeatable Directions algorithm for lo...") implements the BOrder Aware Repeatable Directions algorithm for local reference frame estimation as described here: [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#details)

 `#include <[pcl/features/board.h](https://pointclouds.org/documentation/board_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ad2384579881b3668c799045d4cf75069) = shared\_ptr< [BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#afff81a16003671aaffd5fa21d52b4ea9) = shared\_ptr< const [BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a9fa7273a3e5b10ba7d377cf7f022eef2) () |
|  | Constructor. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a9fa7273a3e5b10ba7d377cf7f022eef2) |
|
|  | [~BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a91acb1bb0788b17ca5f066aa35c295af) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a91acb1bb0788b17ca5f066aa35c295af) |
|
| void  | [setTangentRadius](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a6b84b273b35a2c0e1ce2db35a0c344b5) (float radius) |
|  | Set the maximum distance of the points used to estimate the x\_axis and y\_axis of the BOARD Reference Frame for a given point. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a6b84b273b35a2c0e1ce2db35a0c344b5) |
|
| float  | [getTangentRadius](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a256c12a56092a55bdeed19ac1a77ec15) () const |
|  | Get the maximum distance of the points used to estimate the x\_axis and y\_axis of the BOARD Reference Frame for a given point. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a256c12a56092a55bdeed19ac1a77ec15) |
|
| void  | [setFindHoles](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#aff653a5a1a90a17c50e2f1c0ba9c225d) (bool find\_holes) |
|  | Sets whether holes in the margin of the support, for each point, are searched and accounted for in the estimation of the Reference Frame or not. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#aff653a5a1a90a17c50e2f1c0ba9c225d) |
|
| bool  | [getFindHoles](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a132a85d60b60164853924bafb14e1f3b) () const |
|  | Gets whether holes in the margin of the support, for each point, are searched and accounted for in the estimation of the Reference Frame or not. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a132a85d60b60164853924bafb14e1f3b) |
|
| void  | [setMarginThresh](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab133cdddc92c41a0a53accfa4e83ea28) (float margin\_thresh) |
|  | Sets the percentage of the search radius (or tangent radius if set) after which a point is considered part of the support margin. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab133cdddc92c41a0a53accfa4e83ea28) |
|
| float  | [getMarginThresh](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a6ffa76944c0cbdb3c38645e4af539d99) () const |
|  | Gets the percentage of the search radius (or tangent radius if set) after which a point is considered part of the support margin. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a6ffa76944c0cbdb3c38645e4af539d99) |
|
| void  | [setCheckMarginArraySize](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a697610a41cdc46220a777b1b3d804a79) (int size) |
|  | Sets the number of slices in which is divided the margin for the search of missing regions. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a697610a41cdc46220a777b1b3d804a79) |
|
| int  | [getCheckMarginArraySize](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#acca15a07b92d4e6aac69fccafb6f5d7a) () const |
|  | Gets the number of slices in which is divided the margin for the search of missing regions. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#acca15a07b92d4e6aac69fccafb6f5d7a) |
|
| void  | [setHoleSizeProbThresh](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a40a126956e22130de00aeb223a522ba8) (float prob\_thresh) |
|  | Given the angle width of a hole in the support margin, sets the minimum percentage of a circumference this angle must cover to be considered a missing region in the support and hence used for the estimation of the Reference Frame. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a40a126956e22130de00aeb223a522ba8) |
|
| float  | [getHoleSizeProbThresh](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#af455b091134c659ef542b6b68d92302d) () const |
|  | Given the angle width of a hole in the support margin, gets the minimum percentage of a circumference this angle must cover to be considered a missing region in the support and hence used for the estimation of the Reference Frame. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#af455b091134c659ef542b6b68d92302d) |
|
| void  | [setSteepThresh](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a121b2c872aab8a5ab7708b378369437c) (float steep\_thresh) |
|  | Sets the minimum steepness that the normals of the points situated on the borders of the hole, with reference to the normal of the best point found by the algorithm, must have in order to be considered in the calculation of the Reference Frame. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a121b2c872aab8a5ab7708b378369437c) |
|
| float  | [getSteepThresh](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab7f7236eb7e247383e2b22650cfc2a99) () const |
|  | Gets the minimum steepness that the normals of the points situated on the borders of the hole, with reference to the normal of the best point found by the algorithm, must have in order to be considered in the calculation of the Reference Frame. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab7f7236eb7e247383e2b22650cfc2a99) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Types |
| using  | [PointCloudIn](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab36b5cd8321c6c8ef33928c3163a57a6) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab36b5cd8321c6c8ef33928c3163a57a6) |
|
| using  | [PointCloudOut](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a664c77767f2a3ba43aeddc566020aaf5) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a664c77767f2a3ba43aeddc566020aaf5) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [resetData](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a0d115b55f54fc088ed0f013a96a2e617) () |
|
| float  | [computePointLRF](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a443d413a50bc03235dfca64d6a0d4563) (const int &index, Eigen::Matrix3f &lrf) |
|  | Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a443d413a50bc03235dfca64d6a0d4563) |
|
| void  | [computeFeature](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ad7e434bc0239e122096cb46d1a05ad00) ([PointCloudOut](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a664c77767f2a3ba43aeddc566020aaf5) &output) override |
|  | Abstract feature estimation method. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ad7e434bc0239e122096cb46d1a05ad00) |
|
| void  | [directedOrthogonalAxis](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a372933f17aa96381feed1149b935d337) (Eigen::Vector3f const &axis, Eigen::Vector3f const &axis\_origin, Eigen::Vector3f const &point, Eigen::Vector3f &directed\_ortho\_axis) |
|  | Given an axis (with origin axis\_origin), return the orthogonal axis directed to point. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a372933f17aa96381feed1149b935d337) |
|
| float  | [getAngleBetweenUnitVectors](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a78e4538355e85c97aac9550bf05b0c4e) (Eigen::Vector3f const &v1, Eigen::Vector3f const &v2, Eigen::Vector3f const &axis) |
|  | return the angle (in radians) that rotate v1 to v2 with respect to axis . [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a78e4538355e85c97aac9550bf05b0c4e) |
|
| void  | [normalDisambiguation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a8a0e9e1b827ca6d30093d386093eeea8) ([pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > const &normals\_cloud, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) const &normal\_indices, Eigen::Vector3f &normal) |
|  | Disambiguates a normal direction using adjacent normals. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a8a0e9e1b827ca6d30093d386093eeea8) |
|
| void  | [planeFitting](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a539340a12ac997e4a6bc4c20764d1ed1) (Eigen::Matrix< float, Eigen::Dynamic, 3 > const &points, Eigen::Vector3f &center, Eigen::Vector3f &norm) |
|  | Compute Least Square Plane Fitting in a set of 3D points. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a539340a12ac997e4a6bc4c20764d1ed1) |
|
| void  | [projectPointOnPlane](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a26951f67a6cc8abb851ba700125084a9) (Eigen::Vector3f const &point, Eigen::Vector3f const &origin\_point, Eigen::Vector3f const &plane\_normal, Eigen::Vector3f &projected\_point) |
|  | Given a plane (origin and normal) and a point, return the projection of x on plane. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a26951f67a6cc8abb851ba700125084a9) |
|
| void  | [randomOrthogonalAxis](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#aecb6595caf21c9109e84f7c5964e04d9) (Eigen::Vector3f const &axis, Eigen::Vector3f &rand\_ortho\_axis) |
|  | Given an axis, return a random orthogonal axis. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#aecb6595caf21c9109e84f7c5964e04d9) |
|
| bool  | [areEquals](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#aee8fdbbcd1053a970dd15835cce2d9b1) (float val1, float val2, float zero\_float\_eps=1E-8f) const |
|  | Check if val1 and val2 are equals. [More...](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#aee8fdbbcd1053a970dd15835cce2d9b1) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = ReferenceFrame> class pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >

 [BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation "BOARDLocalReferenceFrameEstimation implements the BOrder Aware Repeatable Directions algorithm for lo...") implements the BOrder Aware Repeatable Directions algorithm for local reference frame estimation as described here: 

 * A. Petrelli, L. Di Stefano, "On the repeatability of the local reference frame for partial shape matching", 13th International Conference on Computer Vision (ICCV), 2011

 
Author
Alioscia Petrelli (original), Tommaso Cavallari (PCL port) 
 Definition at line [58](https://pointclouds.org/documentation/board_8h_source.html#l00058) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |
| --- |
| using [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#afff81a16003671aaffd5fa21d52b4ea9) = shared\_ptr<const [BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [62](https://pointclouds.org/documentation/board_8h_source.html#l00062) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab36b5cd8321c6c8ef33928c3163a57a6) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ab36b5cd8321c6c8ef33928c3163a57a6) |

 | protected |

 
 Definition at line [233](https://pointclouds.org/documentation/board_8h_source.html#l00233) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a664c77767f2a3ba43aeddc566020aaf5) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a664c77767f2a3ba43aeddc566020aaf5) |

 | protected |

 
 Definition at line [234](https://pointclouds.org/documentation/board_8h_source.html#l00234) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |
| --- |
| using [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#ad2384579881b3668c799045d4cf75069) = shared\_ptr<[BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [61](https://pointclouds.org/documentation/board_8h_source.html#l00061) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  BOARDLocalReferenceFrameEstimation()
------------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::[BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [65](https://pointclouds.org/documentation/board_8h_source.html#l00065) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

 References [pcl::Feature< PointInT, ReferenceFrame >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), and [pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::setCheckMarginArraySize()](https://pointclouds.org/documentation/board_8h_source.html#l00149).

    ~BOARDLocalReferenceFrameEstimation()
-------------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::~[BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  areEquals()
-----------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::areEquals  | ( | float  | *val1*,  |
|  |  | float  | *val2*,  |
|  |  | float  | *zero\_float\_eps* = `1E-8f` |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if val1 and val2 are equals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | val1 | first number to check.  |
| [in] | val2 | second number to check.  |
| [in] | zero\_float\_eps | epsilon  |

   
Returns
true if val1 is equal to val2, false otherwise. 
 Definition at line [327](https://pointclouds.org/documentation/board_8h_source.html#l00327) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation#a664c77767f2a3ba43aeddc566020aaf5) &  | *output* | ) |  |

 | overrideprotected |

 
 Abstract feature estimation method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant features  |

   Definition at line [569](https://pointclouds.org/documentation/board_8hpp_source.html#l00569) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

    computePointLRF()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::computePointLRF  | ( | const int &  | *index*,  |
|  |  | Eigen::Matrix3f &  | *lrf* |
|  | ) |  |  |

 | protected |

 
 Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point in input\_  |
| [out] | lrf | the resultant local reference frame  |

   Definition at line [183](https://pointclouds.org/documentation/board_8hpp_source.html#l00183) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), and [pcl::geometry::randomOrthogonalAxis()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00134).

    directedOrthogonalAxis()
------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::directedOrthogonalAxis  | ( | Eigen::Vector3f const &  | *axis*,  |
|  |  | Eigen::Vector3f const &  | *axis\_origin*,  |
|  |  | Eigen::Vector3f const &  | *point*,  |
|  |  | Eigen::Vector3f &  | *directed\_ortho\_axis* |
|  | ) |  |  |

 | protected |

 
 Given an axis (with origin axis\_origin), return the orthogonal axis directed to point. 

 
Note
axis must be normalized.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | axis | the axis  |
| [in] | axis\_origin | the axis\_origin  |
| [in] | point | the point towards which the resulting axis is directed  |
| [out] | directed\_ortho\_axis | the directed orthogonal axis calculated  |

   Definition at line [48](https://pointclouds.org/documentation/board_8hpp_source.html#l00048) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

    getAngleBetweenUnitVectors()
----------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getAngleBetweenUnitVectors  | ( | Eigen::Vector3f const &  | *v1*,  |
|  |  | Eigen::Vector3f const &  | *v2*,  |
|  |  | Eigen::Vector3f const &  | *axis* |
|  | ) |  |  |

 | protected |

 
 return the angle (in radians) that rotate v1 to v2 with respect to axis . 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | v1 | the first vector  |
| [in] | v2 | the second vector  |
| [in] | axis | the rotation axis. [Axis](structpcl_1_1_axis "A point structure representing an Axis using its normal coordinates.") must be normalized and orthogonal to plane defined by v1 and v2.  |

   
Returns
angle 
 Definition at line [83](https://pointclouds.org/documentation/board_8hpp_source.html#l00083) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    getCheckMarginArraySize()
-------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getCheckMarginArraySize  | ( |  | ) |  const |

 | inline |

 
 Gets the number of slices in which is divided the margin for the search of missing regions. 

 
Returns
the number of margin slices. 
 Definition at line [174](https://pointclouds.org/documentation/board_8h_source.html#l00174) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    getFindHoles()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getFindHoles  | ( |  | ) |  const |

 | inline |

 
 Gets whether holes in the margin of the support, for each point, are searched and accounted for in the estimation of the Reference Frame or not. 

 
Returns
The search for holes in the support is enabled/disabled. 
 Definition at line [119](https://pointclouds.org/documentation/board_8h_source.html#l00119) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    getHoleSizeProbThresh()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getHoleSizeProbThresh  | ( |  | ) |  const |

 | inline |

 
 Given the angle width of a hole in the support margin, gets the minimum percentage of a circumference this angle must cover to be considered a missing region in the support and hence used for the estimation of the Reference Frame. 

 
Returns
the minimum percentage of a circumference after which a hole is considered in the calculation 
 Definition at line [196](https://pointclouds.org/documentation/board_8h_source.html#l00196) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    getMarginThresh()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getMarginThresh  | ( |  | ) |  const |

 | inline |

 
 Gets the percentage of the search radius (or tangent radius if set) after which a point is considered part of the support margin. 

 
Returns
The percentage of the search radius after which a point is considered a margin point. 
 Definition at line [139](https://pointclouds.org/documentation/board_8h_source.html#l00139) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    getSteepThresh()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getSteepThresh  | ( |  | ) |  const |

 | inline |

 
 Gets the minimum steepness that the normals of the points situated on the borders of the hole, with reference to the normal of the best point found by the algorithm, must have in order to be considered in the calculation of the Reference Frame. 

 
Returns
threshold that defines if a missing region contains a point with the most different normal. 
 Definition at line [218](https://pointclouds.org/documentation/board_8h_source.html#l00218) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    getTangentRadius()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::getTangentRadius  | ( |  | ) |  const |

 | inline |

 
 Get the maximum distance of the points used to estimate the x\_axis and y\_axis of the BOARD Reference Frame for a given point. 

 
Returns
The search radius for x and y axes. If set to 0 the parameter given with setRadiusSearch is used. 
 Definition at line [97](https://pointclouds.org/documentation/board_8h_source.html#l00097) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    normalDisambiguation()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::normalDisambiguation  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > const &  | *normals\_cloud*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) const &  | *normal\_indices*,  |
|  |  | Eigen::Vector3f &  | *normal* |
|  | ) |  |  |

 | protected |

 
 Disambiguates a normal direction using adjacent normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normals\_cloud | a cloud of normals used for the calculation  |
| [in] | normal\_indices | the indices of the normals in the cloud that should to be used for the calculation  |
| [in,out] | normal | the normal to disambiguate, the calculation is performed in place  |

   Definition at line [158](https://pointclouds.org/documentation/board_8hpp_source.html#l00158) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

    planeFitting()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::planeFitting  | ( | Eigen::Matrix< float, Eigen::Dynamic, 3 > const &  | *points*,  |
|  |  | Eigen::Vector3f &  | *center*,  |
|  |  | Eigen::Vector3f &  | *norm* |
|  | ) |  |  |

 | protected |

 
 Compute Least Square Plane Fitting in a set of 3D points. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | points | Matrix(nPoints,3) of 3D points coordinates  |
| [out] | center | centroid of the distribution of points that belongs to the fitted plane  |
| [out] | norm | normal to the fitted plane  |

   Definition at line [130](https://pointclouds.org/documentation/board_8hpp_source.html#l00130) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

    projectPointOnPlane()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::projectPointOnPlane  | ( | Eigen::Vector3f const &  | *point*,  |
|  |  | Eigen::Vector3f const &  | *origin\_point*,  |
|  |  | Eigen::Vector3f const &  | *plane\_normal*,  |
|  |  | Eigen::Vector3f &  | *projected\_point* |
|  | ) |  |  |

 | protected |

 
 Given a plane (origin and normal) and a point, return the projection of x on plane. 

 Equivalent to vtkPlane::ProjectPoint()

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | the point to project  |
| [in] | origin\_point | a point belonging to the plane  |
| [in] | plane\_normal | normal of the plane  |
| [out] | projected\_point | the projection of the point on the plane  |

   Definition at line [66](https://pointclouds.org/documentation/board_8hpp_source.html#l00066) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

    randomOrthogonalAxis()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::randomOrthogonalAxis  | ( | Eigen::Vector3f const &  | *axis*,  |
|  |  | Eigen::Vector3f &  | *rand\_ortho\_axis* |
|  | ) |  |  |

 | protected |

 
 Given an axis, return a random orthogonal axis. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | axis | input axis  |
| [out] | rand\_ortho\_axis | an axis orthogonal to the input axis and whose direction is random  |

   Definition at line [99](https://pointclouds.org/documentation/board_8hpp_source.html#l00099) of file [board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html).

    resetData()
-----------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::resetData  | ( |  | ) |  |

 | inlineprotected |

 
 Definition at line [237](https://pointclouds.org/documentation/board_8h_source.html#l00237) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

 References [pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::setCheckMarginArraySize()](https://pointclouds.org/documentation/board_8h_source.html#l00149).

    setCheckMarginArraySize()
-------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::setCheckMarginArraySize  | ( | int  | *size* | ) |  |

 | inline |

 
 Sets the number of slices in which is divided the margin for the search of missing regions. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | size | the number of margin slices.  |

   Definition at line [149](https://pointclouds.org/documentation/board_8h_source.html#l00149) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

 Referenced by [pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::BOARDLocalReferenceFrameEstimation()](https://pointclouds.org/documentation/board_8h_source.html#l00065), and [pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::resetData()](https://pointclouds.org/documentation/board_8h_source.html#l00237).

    setFindHoles()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::setFindHoles  | ( | bool  | *find\_holes* | ) |  |

 | inline |

 
 Sets whether holes in the margin of the support, for each point, are searched and accounted for in the estimation of the Reference Frame or not. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | find\_holes | Enable/Disable the search for holes in the support.  |

   Definition at line [108](https://pointclouds.org/documentation/board_8h_source.html#l00108) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

 Referenced by [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf()](https://pointclouds.org/documentation/hough__3d_8hpp_source.html#l00055).

    setHoleSizeProbThresh()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::setHoleSizeProbThresh  | ( | float  | *prob\_thresh* | ) |  |

 | inline |

 
 Given the angle width of a hole in the support margin, sets the minimum percentage of a circumference this angle must cover to be considered a missing region in the support and hence used for the estimation of the Reference Frame. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | prob\_thresh | the minimum percentage of a circumference after which a hole is considered in the calculation  |

   Definition at line [185](https://pointclouds.org/documentation/board_8h_source.html#l00185) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    setMarginThresh()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::setMarginThresh  | ( | float  | *margin\_thresh* | ) |  |

 | inline |

 
 Sets the percentage of the search radius (or tangent radius if set) after which a point is considered part of the support margin. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | margin\_thresh | the percentage of the search radius after which a point is considered a margin point.  |

   Definition at line [129](https://pointclouds.org/documentation/board_8h_source.html#l00129) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    setSteepThresh()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::setSteepThresh  | ( | float  | *steep\_thresh* | ) |  |

 | inline |

 
 Sets the minimum steepness that the normals of the points situated on the borders of the hole, with reference to the normal of the best point found by the algorithm, must have in order to be considered in the calculation of the Reference Frame. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | steep\_thresh | threshold that defines if a missing region contains a point with the most different normal.  |

   Definition at line [207](https://pointclouds.org/documentation/board_8h_source.html#l00207) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

    setTangentRadius()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BOARDLocalReferenceFrameEstimation](classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation)< PointInT, PointNT, PointOutT >::setTangentRadius  | ( | float  | *radius* | ) |  |

 | inline |

 
 Set the maximum distance of the points used to estimate the x\_axis and y\_axis of the BOARD Reference Frame for a given point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | The search radius for x and y axes. If not set or set to 0 the parameter given with setRadiusSearch is used.  |

   Definition at line [87](https://pointclouds.org/documentation/board_8h_source.html#l00087) of file [board.h](https://pointclouds.org/documentation/board_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[board.h](https://pointclouds.org/documentation/board_8h_source.html)
* pcl/features/impl/[board.hpp](https://pointclouds.org/documentation/board_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_b_o_a_r_d_local_reference_frame_estimation.html>

[BoundaryEstimation](classpcl_1_1_boundary_estimation "BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...") estimates whether a set of points is lying on surface boundaries using an angle criterion. [More...](classpcl_1_1_boundary_estimation#details)

 `#include <[pcl/features/boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_boundary_estimation#a0b89b65423ad0f43f179ae6abd49a0b0) = shared\_ptr< [BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_boundary_estimation#a2515d6220cbae4de71d807fc2f580a41) = shared\_ptr< const [BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_boundary_estimation#a572520445b0933a1b63ba6a00d36326d) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_boundary_estimation#a572520445b0933a1b63ba6a00d36326d) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [BoundaryEstimation](classpcl_1_1_boundary_estimation#a20834d3b9eed1dcf4afa9dfe31dae4c4) () |
|  | Empty constructor. [More...](classpcl_1_1_boundary_estimation#a20834d3b9eed1dcf4afa9dfe31dae4c4) |
|
| bool  | [isBoundaryPoint](classpcl_1_1_boundary_estimation#a631d7e66ca6e9b62dc31235c3856c254) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, int q\_idx, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle\_threshold) |
|  | Check whether a point is a boundary point in a planar patch of projected points given by indices. [More...](classpcl_1_1_boundary_estimation#a631d7e66ca6e9b62dc31235c3856c254) |
|
| bool  | [isBoundaryPoint](classpcl_1_1_boundary_estimation#a4ac3fc46382a2b2c3fb6136868486ba3) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const PointInT &q\_point, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle\_threshold) |
|  | Check whether a point is a boundary point in a planar patch of projected points given by indices. [More...](classpcl_1_1_boundary_estimation#a4ac3fc46382a2b2c3fb6136868486ba3) |
|
| void  | [setAngleThreshold](classpcl_1_1_boundary_estimation#a46c6b6f8197a56be4651739d2f897084) (float angle) |
|  | Set the decision boundary (angle threshold) that marks points as boundary or regular. [More...](classpcl_1_1_boundary_estimation#a46c6b6f8197a56be4651739d2f897084) |
|
| float  | [getAngleThreshold](classpcl_1_1_boundary_estimation#a0e22a0a0dd6cb8a7254490e645a10c88) () |
|  | Get the decision boundary (angle threshold) as set by the user. [More...](classpcl_1_1_boundary_estimation#a0e22a0a0dd6cb8a7254490e645a10c88) |
|
| void  | [getCoordinateSystemOnPlane](classpcl_1_1_boundary_estimation#a085a59e06686a13ebe69997e6319e6c9) (const PointNT &p\_coeff, Eigen::Vector4f &u, Eigen::Vector4f &v) |
|  | Get a u-v-n coordinate system that lies on a plane defined by its normal. [More...](classpcl_1_1_boundary_estimation#a085a59e06686a13ebe69997e6319e6c9) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_boundary_estimation#a34c7e758d93f6ee09c33ad72cd733908) ([PointCloudOut](classpcl_1_1_boundary_estimation#a572520445b0933a1b63ba6a00d36326d) &output) override |
|  | Estimate whether a set of points is lying on surface boundaries using an angle criterion for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_boundary_estimation#a34c7e758d93f6ee09c33ad72cd733908) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| float  | [angle\_threshold\_](classpcl_1_1_boundary_estimation#ab8bae1e67f3069db947d2e873a53e24c) |
|  | The decision boundary (angle threshold) that marks points as boundary or regular. [More...](classpcl_1_1_boundary_estimation#ab8bae1e67f3069db947d2e873a53e24c) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT> class pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >

 [BoundaryEstimation](classpcl_1_1_boundary_estimation "BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...") estimates whether a set of points is lying on surface boundaries using an angle criterion. 

 The code makes use of the estimated surface normals at each point in the input dataset.

 Here's an example for estimating boundary points for a [PointXYZ](structpcl_1_1_point_x_y_z "A point structure representing Euclidean xyz coordinates.") point cloud: 



```
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
// fill in the cloud data here
 
pcl::PointCloud<pcl::Normal>::Ptr normals (new pcl::PointCloud<pcl::Normal>);
// estimate normals and fill in \a normals
 
pcl::PointCloud<pcl::Boundary> boundaries;
pcl::BoundaryEstimation<pcl::PointXYZ, pcl::Normal, pcl::Boundary> est;
est.setInputCloud (cloud);
est.setInputNormals (normals);
est.setRadiusSearch (0.02); // 2cm radius
est.setSearchMethod (typename pcl::search::KdTree<PointXYZ>::Ptr (new pcl::search::KdTree<PointXYZ>)
est.compute (boundaries);
pcl::BoundaryEstimationBoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...Definition: boundary.h:80
pcl::BoundaryEstimation
BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...
Definition: boundary.h:80
pcl::FeatureFromNormals::setInputNormalsvoid setInputNormals(const PointCloudNConstPtr &normals)Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.Definition: feature.h:339
pcl::FeatureFromNormals::setInputNormals
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.
Definition: feature.h:339
pcl::Feature::setRadiusSearchvoid setRadiusSearch(double radius)Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...Definition: feature.h:198
pcl::Feature::setRadiusSearch
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...
Definition: feature.h:198
pcl::Feature::setSearchMethodvoid setSearchMethod(const KdTreePtr &tree)Provide a pointer to the search object.Definition: feature.h:164
pcl::Feature::setSearchMethod
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
Definition: feature.h:164
pcl::Feature::computevoid compute(PointCloudOut &output)Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...Definition: feature.hpp:194
pcl::Feature::compute
void compute(PointCloudOut &output)
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...
Definition: feature.hpp:194
pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud::Ptrshared_ptr< PointCloud< PointT > > PtrDefinition: point_cloud.h:413
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:413
pcl::search::KdTreesearch::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...Definition: kdtree.h:62
pcl::search::KdTree
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
Definition: kdtree.h:62
pcl::search::KdTree::Ptrshared_ptr< KdTree< PointT, Tree > > PtrDefinition: kdtree.h:75
pcl::search::KdTree::Ptr
shared_ptr< KdTree< PointT, Tree > > Ptr
Definition: kdtree.h:75

```


Attention
The convention for [Boundary](structpcl_1_1_boundary "A point structure representing a description of whether a point is lying on a surface boundary or not...") features is:* if a query point's nearest neighbors cannot be estimated, the boundary feature will be set to NaN (not a number)
* it is impossible to estimate a boundary property for a point that doesn't have finite 3D coordinates. Therefore, any point that contains NaN data on x, y, or z, will have its boundary feature property set to NaN.

 
 
Author
Radu B. Rusu 
 Definition at line [79](https://pointclouds.org/documentation/boundary_8h_source.html#l00079) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_boundary_estimation#a2515d6220cbae4de71d807fc2f580a41) = shared\_ptr<const [BoundaryEstimation](classpcl_1_1_boundary_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [83](https://pointclouds.org/documentation/boundary_8h_source.html#l00083) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_boundary_estimation#a572520445b0933a1b63ba6a00d36326d) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_boundary_estimation#a572520445b0933a1b63ba6a00d36326d) |

 
 Definition at line [96](https://pointclouds.org/documentation/boundary_8h_source.html#l00096) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_boundary_estimation#a0b89b65423ad0f43f179ae6abd49a0b0) = shared\_ptr<[BoundaryEstimation](classpcl_1_1_boundary_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [82](https://pointclouds.org/documentation/boundary_8h_source.html#l00082) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  BoundaryEstimation()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::[BoundaryEstimation](classpcl_1_1_boundary_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 The angular threshold *angle\_threshold\_* is set to M\_PI / 2.0 

 Definition at line [102](https://pointclouds.org/documentation/boundary_8h_source.html#l00102) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_boundary_estimation#a572520445b0933a1b63ba6a00d36326d) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate whether a set of points is lying on surface boundaries using an angle criterion for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains boundary point estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [116](https://pointclouds.org/documentation/boundary_8hpp_source.html#l00116) of file [boundary.hpp](https://pointclouds.org/documentation/boundary_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    getAngleThreshold()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::getAngleThreshold  | ( |  | ) |  |

 | inline |

 
 Get the decision boundary (angle threshold) as set by the user. 

 Definition at line [148](https://pointclouds.org/documentation/boundary_8h_source.html#l00148) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

 References [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle\_threshold\_](https://pointclouds.org/documentation/boundary_8h_source.html#l00177).

    getCoordinateSystemOnPlane()
----------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::getCoordinateSystemOnPlane  | ( | const PointNT &  | *p\_coeff*,  |
|  |  | Eigen::Vector4f &  | *u*,  |
|  |  | Eigen::Vector4f &  | *v* |
|  | ) |  |  |

 | inline |

 
 Get a u-v-n coordinate system that lies on a plane defined by its normal. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | p\_coeff | the plane coefficients (containing the plane normal)  |
| [out] | u | the resultant u direction  |
| [out] | v | the resultant v direction  |

   Definition at line [159](https://pointclouds.org/documentation/boundary_8h_source.html#l00159) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::getBoundaryPoints()](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00120).

    isBoundaryPoint() [1/2]
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::isBoundaryPoint  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const PointInT &  | *q\_point*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Vector4f &  | *u*,  |
|  |  | const Eigen::Vector4f &  | *v*,  |
|  |  | const float  | *angle\_threshold* |
|  | ) |  |  |

 
 Check whether a point is a boundary point in a planar patch of projected points given by indices. 

 
Note
A coordinate system u-v-n must be computed a-priori using *getCoordinateSystemOnPlane* 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | a pointer to the input point cloud  |
| [in] | q\_point | a pointer to the query point  |
| [in] | indices | the estimated point neighbors of the query point  |
| [in] | u | the u direction  |
| [in] | v | the v direction  |
| [in] | angle\_threshold | the threshold angle (default $\pi / 2.0$)  |

   Definition at line [62](https://pointclouds.org/documentation/boundary_8hpp_source.html#l00062) of file [boundary.hpp](https://pointclouds.org/documentation/boundary_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    isBoundaryPoint() [2/2]
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::isBoundaryPoint  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | int  | *q\_idx*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Vector4f &  | *u*,  |
|  |  | const Eigen::Vector4f &  | *v*,  |
|  |  | const float  | *angle\_threshold* |
|  | ) |  |  |

 
 Check whether a point is a boundary point in a planar patch of projected points given by indices. 

 
Note
A coordinate system u-v-n must be computed a-priori using *getCoordinateSystemOnPlane* 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | a pointer to the input point cloud  |
| [in] | q\_idx | the index of the query point in *cloud* |
| [in] | indices | the estimated point neighbors of the query point  |
| [in] | u | the u direction  |
| [in] | v | the v direction  |
| [in] | angle\_threshold | the threshold angle (default $\pi / 2.0$)  |

   Definition at line [51](https://pointclouds.org/documentation/boundary_8hpp_source.html#l00051) of file [boundary.hpp](https://pointclouds.org/documentation/boundary_8hpp_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::getBoundaryPoints()](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00120).

    setAngleThreshold()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::setAngleThreshold  | ( | float  | *angle* | ) |  |

 | inline |

 
 Set the decision boundary (angle threshold) that marks points as boundary or regular. 

 (default ![$\pi / 2.0$] 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | angle | the angle threshold  |

   Definition at line [141](https://pointclouds.org/documentation/boundary_8h_source.html#l00141) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

 References [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle\_threshold\_](https://pointclouds.org/documentation/boundary_8h_source.html#l00177).

   Member Data Documentation
-------------------------

  angle\_threshold\_
------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::BoundaryEstimation](classpcl_1_1_boundary_estimation)< PointInT, PointNT, PointOutT >::angle\_threshold\_ |

 | protected |

 
 The decision boundary (angle threshold) that marks points as boundary or regular. 

 (default ![$\pi / 2.0$] 

 Definition at line [177](https://pointclouds.org/documentation/boundary_8h_source.html#l00177) of file [boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html).

 Referenced by [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::getAngleThreshold()](https://pointclouds.org/documentation/boundary_8h_source.html#l00148), and [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::setAngleThreshold()](https://pointclouds.org/documentation/boundary_8h_source.html#l00141).

   

---

The documentation for this class was generated from the following files:* pcl/features/[boundary.h](https://pointclouds.org/documentation/boundary_8h_source.html)
* pcl/features/impl/[boundary.hpp](https://pointclouds.org/documentation/boundary_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_boundary_estimation.html>

Implementation of the BRISK-descriptor, based on the original code and paper reference by. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#details)

 `#include <[pcl/features/brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html)>`

 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_b_r_i_s_k2_d_estimation#a247c61653244d62e35c30a78f90e9176) = shared\_ptr< [BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT > > |
|
| using  | [ConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#ad99af1080e08835ec969114063dd0ac6) = shared\_ptr< const [BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT > > |
|
| using  | [PointCloudInT](classpcl_1_1_b_r_i_s_k2_d_estimation#a9984d33207516f52f158989af32580c5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInTConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a2ea523f2578d1804a22045678ce5786a) = typename [PointCloudInT::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [KeypointPointCloudT](classpcl_1_1_b_r_i_s_k2_d_estimation#a67290fb055fbf6137e5818f36598f099) = [pcl::PointCloud](classpcl_1_1_point_cloud)< KeypointT > |
|
| using  | [KeypointPointCloudTPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a9884d2b835018ab4c59b8ca10ea2101b) = typename [KeypointPointCloudT::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [KeypointPointCloudTConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a348526a83012ce26b6039ffe5bb81769) = typename [KeypointPointCloudT::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOutT](classpcl_1_1_b_r_i_s_k2_d_estimation#aea9bb3703e6232e5c6128135a2959202) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation#a2b09cb9c9905d554e0485e02cd3bae67) () |
|  | Constructor. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a2b09cb9c9905d554e0485e02cd3bae67) |
|
| virtual  | [~BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation#a65f054587480bd8171e2a5e48ec4bd15) () |
|  | Destructor. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a65f054587480bd8171e2a5e48ec4bd15) |
|
| void  | [setRotationInvariance](classpcl_1_1_b_r_i_s_k2_d_estimation#a1c71657903ba18f6a215293bde39b4aa) (const bool enable) |
|  | Determines whether rotation invariance is enabled. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a1c71657903ba18f6a215293bde39b4aa) |
|
| void  | [setScaleInvariance](classpcl_1_1_b_r_i_s_k2_d_estimation#a34e1ab259174e7b90acc99f3afa47fbf) (const bool enable) |
|  | Determines whether scale invariance is enabled. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a34e1ab259174e7b90acc99f3afa47fbf) |
|
| void  | [setInputCloud](classpcl_1_1_b_r_i_s_k2_d_estimation#a3b877ad7c832b6970e859cac1112a93c) (const [PointCloudInTConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a2ea523f2578d1804a22045678ce5786a) &cloud) |
|  | Sets the input cloud. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a3b877ad7c832b6970e859cac1112a93c) |
|
| void  | [setKeypoints](classpcl_1_1_b_r_i_s_k2_d_estimation#aada03d4a0a68d27e72c61ebe14f3cbbb) (const [KeypointPointCloudTPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a9884d2b835018ab4c59b8ca10ea2101b) &keypoints) |
|  | Sets the input keypoints. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#aada03d4a0a68d27e72c61ebe14f3cbbb) |
|
| void  | [compute](classpcl_1_1_b_r_i_s_k2_d_estimation#a8c49accdbf2a6abe5ebb7c4b4c1ffbce) ([PointCloudOutT](classpcl_1_1_b_r_i_s_k2_d_estimation#aea9bb3703e6232e5c6128135a2959202) &output) |
|  | Computes the descriptors for the previously specified points and input data. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a8c49accdbf2a6abe5ebb7c4b4c1ffbce) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [generateKernel](classpcl_1_1_b_r_i_s_k2_d_estimation#a83f156da9cf9303dd24c4d4979b2fcc3) (std::vector< float > &radius\_list, std::vector< int > &number\_list, float d\_max=5.85f, float d\_min=8.2f, std::vector< int > index\_change=std::vector< int >()) |
|  | Call this to generate the kernel: circle of radius r (pixels), with n points; short pairings with dMax, long pairings with dMin. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#a83f156da9cf9303dd24c4d4979b2fcc3) |
|
| int  | [smoothedIntensity](classpcl_1_1_b_r_i_s_k2_d_estimation#aea20d5cbb783493f6e384ac07c360db2) (const std::vector< unsigned char > &image, int image\_width, int image\_height, const std::vector< int > &integral\_image, const float key\_x, const float key\_y, const unsigned int scale, const unsigned int rot, const unsigned int point) const |
|  | Compute the smoothed intensity for a given x/y position in the image. [More...](classpcl_1_1_b_r_i_s_k2_d_estimation#aea20d5cbb783493f6e384ac07c360db2) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>> class pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >

 Implementation of the BRISK-descriptor, based on the original code and paper reference by. 

 

Stefan Leutenegger,Margarita Chli and Roland Siegwart, BRISK: Binary Robust Invariant Scalable Keypoints, in Proceedings of the IEEE International Conference on Computer Vision (ICCV2011).
 
Warning
The input keypoints cloud is not const, and it will be modified: keypoints for which descriptors can not be computed will be deleted from the cloud.
 
Author
Radu B. Rusu, Stefan Holzer 
 Definition at line [66](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00066) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[ConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#ad99af1080e08835ec969114063dd0ac6) = shared\_ptr<const [BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)<PointInT, PointOutT, KeypointT, IntensityT> > |

 
 Definition at line [70](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00070) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    KeypointPointCloudT
-------------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[KeypointPointCloudT](classpcl_1_1_b_r_i_s_k2_d_estimation#a67290fb055fbf6137e5818f36598f099) = [pcl::PointCloud](classpcl_1_1_point_cloud)<KeypointT> |

 
 Definition at line [75](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00075) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    KeypointPointCloudTConstPtr
---------------------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[KeypointPointCloudTConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a348526a83012ce26b6039ffe5bb81769) = typename [KeypointPointCloudT::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [77](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00077) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    KeypointPointCloudTPtr
----------------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[KeypointPointCloudTPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a9884d2b835018ab4c59b8ca10ea2101b) = typename [KeypointPointCloudT::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [76](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00076) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    PointCloudInT
-------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[PointCloudInT](classpcl_1_1_b_r_i_s_k2_d_estimation#a9984d33207516f52f158989af32580c5) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [72](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00072) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    PointCloudInTConstPtr
---------------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[PointCloudInTConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a2ea523f2578d1804a22045678ce5786a) = typename [PointCloudInT::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [73](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00073) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    PointCloudOutT
--------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[PointCloudOutT](classpcl_1_1_b_r_i_s_k2_d_estimation#aea9bb3703e6232e5c6128135a2959202) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointOutT> |

 
 Definition at line [79](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00079) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[Ptr](classpcl_1_1_b_r_i_s_k2_d_estimation#a247c61653244d62e35c30a78f90e9176) = shared\_ptr<[BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)<PointInT, PointOutT, KeypointT, IntensityT> > |

 
 Definition at line [69](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00069) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  BRISK2DEstimation()
-------------------

    template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >  

|  |
| --- |
| [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::[BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation) |

 
 Constructor. 

 Definition at line [49](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00049) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html).

 References [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::generateKernel()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00101).

    ~BRISK2DEstimation()
--------------------

    template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::~[BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation) |

 | virtual |

 
 Destructor. 

 Definition at line [90](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00090) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html).

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::compute  | ( | [PointCloudOutT](classpcl_1_1_b_r_i_s_k2_d_estimation#aea9bb3703e6232e5c6128135a2959202) &  | *output* | ) |  |

 
 Computes the descriptors for the previously specified points and input data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | descriptors the destination for the computed descriptors.  |

   Definition at line [446](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00446) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html).

 References [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    generateKernel()
----------------

    template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::generateKernel  | ( | std::vector< float > &  | *radius\_list*,  |
|  |  | std::vector< int > &  | *number\_list*,  |
|  |  | float  | *d\_max* = `5.85f`,  |
|  |  | float  | *d\_min* = `8.2f`,  |
|  |  | std::vector< int >  | *index\_change* = `std::vector<int> ()` |
|  | ) |  |  |

 | protected |

 
 Call this to generate the kernel: circle of radius r (pixels), with n points; short pairings with dMax, long pairings with dMin. 

 
Note
This should never be called by a regular user. We use a fixed type in PCL ([BRISKSignature512](structpcl_1_1_b_r_i_s_k_signature512 "A point structure representing the Binary Robust Invariant Scalable Keypoints (BRISK).")) and tampering with the parameters might lead to a different size descriptor which the user needs to accommodate in a new point type. 
 Definition at line [101](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00101) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

 Referenced by [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::BRISK2DEstimation()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00049).

    setInputCloud()
---------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::setInputCloud  | ( | const [PointCloudInTConstPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a2ea523f2578d1804a22045678ce5786a) &  | *cloud* | ) |  |

 | inline |

 
 Sets the input cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input cloud.  |

   Definition at line [109](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00109) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    setKeypoints()
--------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::setKeypoints  | ( | const [KeypointPointCloudTPtr](classpcl_1_1_b_r_i_s_k2_d_estimation#a9884d2b835018ab4c59b8ca10ea2101b) &  | *keypoints* | ) |  |

 | inline |

 
 Sets the input keypoints. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | keypoints | the input cloud containing the keypoints.  |

   Definition at line [118](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00118) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    setRotationInvariance()
-----------------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::setRotationInvariance  | ( | const bool  | *enable* | ) |  |

 | inline |

 
 Determines whether rotation invariance is enabled. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | enable | determines whether rotation invariance is enabled.  |

   Definition at line [91](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00091) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    setScaleInvariance()
--------------------

    template<typename PointInT , typename PointOutT = pcl::BRISKSignature512, typename KeypointT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::setScaleInvariance  | ( | const bool  | *enable* | ) |  |

 | inline |

 
 Determines whether scale invariance is enabled. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | enable | determines whether scale invariance is enabled.  |

   Definition at line [100](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html#l00100) of file [brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html).

    smoothedIntensity()
-------------------

    template<typename PointInT , typename PointOutT , typename KeypointT , typename IntensityT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::BRISK2DEstimation](classpcl_1_1_b_r_i_s_k2_d_estimation)< PointInT, PointOutT, KeypointT, IntensityT >::smoothedIntensity  | ( | const std::vector< unsigned char > &  | *image*,  |
|  |  | int  | *image\_width*,  |
|  |  | int  | *image\_height*,  |
|  |  | const std::vector< int > &  | *integral\_image*,  |
|  |  | const float  | *key\_x*,  |
|  |  | const float  | *key\_y*,  |
|  |  | const unsigned int  | *scale*,  |
|  |  | const unsigned int  | *rot*,  |
|  |  | const unsigned int  | *point* |
|  | ) |  |  const |

 | inlineprotected |

 
 Compute the smoothed intensity for a given x/y position in the image. 

 Definition at line [219](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00219) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html).

 References [pcl::B](https://pointclouds.org/documentation/norms_8h_source.html#l00054).

   

---

The documentation for this class was generated from the following files:* pcl/features/[brisk\_2d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2brisk__2d_8h_source.html)
* pcl/features/impl/[brisk\_2d.hpp](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_b_r_i_s_k2_d_estimation.html>

[CRHEstimation](classpcl_1_1_c_r_h_estimation "CRHEstimation estimates the Camera Roll Histogram (CRH) descriptor for a given point cloud dataset co...") estimates the [Camera](https://pointclouds.org/documentation/class_camera.html) Roll [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CRH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: [More...](classpcl_1_1_c_r_h_estimation#details)

 `#include <[pcl/features/crh.h](https://pointclouds.org/documentation/crh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_c_r_h_estimation#a3678cad73b1601529159a34a8db08d82) = shared\_ptr< [CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_c_r_h_estimation#a5c51459e49b4b65a3c63ea817cc2c946) = shared\_ptr< const [CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_c_r_h_estimation#a50e35ef383e3bb8adae4b4d1fa022a30) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_c_r_h_estimation#a50e35ef383e3bb8adae4b4d1fa022a30) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::Histogram< 90 > >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::Histogram](structpcl_1_1_histogram)< 90 > > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::Histogram](structpcl_1_1_histogram)< 90 > > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [CRHEstimation](classpcl_1_1_c_r_h_estimation#ad59900973c9c072fbdfa875da25323d2) () |
|  | Constructor. [More...](classpcl_1_1_c_r_h_estimation#ad59900973c9c072fbdfa875da25323d2) |
|
| void  | [setViewPoint](classpcl_1_1_c_r_h_estimation#aba9af5cf651e603963884a2f394716e4) (float vpx, float vpy, float vpz) |
|  | Set the viewpoint. [More...](classpcl_1_1_c_r_h_estimation#aba9af5cf651e603963884a2f394716e4) |
|
| void  | [getViewPoint](classpcl_1_1_c_r_h_estimation#a7451fcc002fff92263b234bf45b36f60) (float &vpx, float &vpy, float &vpz) |
|  | Get the viewpoint. [More...](classpcl_1_1_c_r_h_estimation#a7451fcc002fff92263b234bf45b36f60) |
|
| void  | [setCentroid](classpcl_1_1_c_r_h_estimation#a2675818c2709e6f2d9a89503d74661ce) (Eigen::Vector4f &centroid) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::Histogram< 90 > >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::Histogram< 90 > >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::Histogram< 90 > >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::Histogram<90>> class pcl::CRHEstimation< PointInT, PointNT, PointOutT >

 [CRHEstimation](classpcl_1_1_c_r_h_estimation "CRHEstimation estimates the Camera Roll Histogram (CRH) descriptor for a given point cloud dataset co...") estimates the [Camera](https://pointclouds.org/documentation/class_camera.html) Roll [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CRH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: 

 * CAD-Model Recognition and 6 DOF Pose Estimation A. Aldoma, N. Blodow, D. Gossow, S. Gedikli, R.B. Rusu, M. Vincze and G. Bradski ICCV 2011, 3D Representation and Recognition (3dRR11) workshop Barcelona, Spain, (2011)

 The suggested PointOutT is pcl::Histogram<90>. //dc (real) + 44 complex numbers (real, imaginary) + nyquist (real)

 
Author
Aitor Aldoma 
 Definition at line [60](https://pointclouds.org/documentation/crh_8h_source.html#l00060) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |
| --- |
| using [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_c_r_h_estimation#a5c51459e49b4b65a3c63ea817cc2c946) = shared\_ptr<const [CRHEstimation](classpcl_1_1_c_r_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [64](https://pointclouds.org/documentation/crh_8h_source.html#l00064) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |
| --- |
| using [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_c_r_h_estimation#a50e35ef383e3bb8adae4b4d1fa022a30) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_c_r_h_estimation#a50e35ef383e3bb8adae4b4d1fa022a30) |

 
 Definition at line [74](https://pointclouds.org/documentation/crh_8h_source.html#l00074) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |
| --- |
| using [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_c_r_h_estimation#a3678cad73b1601529159a34a8db08d82) = shared\_ptr<[CRHEstimation](classpcl_1_1_c_r_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [63](https://pointclouds.org/documentation/crh_8h_source.html#l00063) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  CRHEstimation()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::[CRHEstimation](classpcl_1_1_c_r_h_estimation) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [77](https://pointclouds.org/documentation/crh_8h_source.html#l00077) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), and [pcl::Feature< PointInT, PointOutT >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240).

   Member Function Documentation
-----------------------------

  getViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::getViewPoint  | ( | float &  | *vpx*,  |
|  |  | float &  | *vpy*,  |
|  |  | float &  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Get the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | vpx | the X coordinate of the viewpoint  |
| [out] | vpy | the Y coordinate of the viewpoint  |
| [out] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [104](https://pointclouds.org/documentation/crh_8h_source.html#l00104) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

    setCentroid()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::setCentroid  | ( | Eigen::Vector4f &  | *centroid* | ) |  |

 | inline |

 
 Definition at line [112](https://pointclouds.org/documentation/crh_8h_source.html#l00112) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

    setViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::Histogram<90>>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::CRHEstimation](classpcl_1_1_c_r_h_estimation)< PointInT, PointNT, PointOutT >::setViewPoint  | ( | float  | *vpx*,  |
|  |  | float  | *vpy*,  |
|  |  | float  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Set the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vpx | the X coordinate of the viewpoint  |
| [in] | vpy | the Y coordinate of the viewpoint  |
| [in] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [91](https://pointclouds.org/documentation/crh_8h_source.html#l00091) of file [crh.h](https://pointclouds.org/documentation/crh_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[crh.h](https://pointclouds.org/documentation/crh_8h_source.html)
* pcl/features/impl/[crh.hpp](https://pointclouds.org/documentation/crh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_c_r_h_estimation.html>

A point structure representing an N-D histogram. [More...](structpcl_1_1_histogram#details)

 `#include <[pcl/impl/point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)>`

 

|  |
| --- |
| 
 Static Public Member Functions |
| static constexpr int  | [descriptorSize](structpcl_1_1_histogram#ae9b5e62dffc51004715480b53f9cf519) () |
|




|  |
| --- |
| 
 Public Attributes |
| float  | [histogram](structpcl_1_1_histogram#a7e69e48b43652748bc55aad45338182c) [N] |
|

 Detailed Description
--------------------

 
### template<int N> struct pcl::Histogram< N >

 A point structure representing an N-D histogram. 

 Members: float histogram[N]. 

 Definition at line [1626](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01626) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

 
Member Function Documentation
-----------------------------

  descriptorSize()
----------------

    template<int N>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| static constexpr int [pcl::Histogram](structpcl_1_1_histogram)< N >::descriptorSize  | ( |  | ) |  |

 | inlinestaticconstexpr |

 
 Definition at line [1629](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01629) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

   Member Data Documentation
-------------------------

  histogram
---------

    template<int N>  

|  |
| --- |
| float [pcl::Histogram](structpcl_1_1_histogram)< N >::histogram[N] |

 
 Definition at line [1628](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01628) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

 Referenced by [pcl::operator<<()](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01746).

   

---

The documentation for this struct was generated from the following file:* pcl/impl/[point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/structpcl_1_1_histogram.html>

[CVFHEstimation](classpcl_1_1_c_v_f_h_estimation "CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given poin...") estimates the Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CVFH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: [More...](classpcl_1_1_c_v_f_h_estimation#details)

 `#include <[pcl/features/cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_c_v_f_h_estimation#a3222f81b32e9ee73bdf5054c81e786dc) = shared\_ptr< [CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_c_v_f_h_estimation#a4ccf4fae2d09aff2f136cdba6ef5acc7) = shared\_ptr< const [CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_c_v_f_h_estimation#a3c4513d3199a97527f156eb355b511be) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_c_v_f_h_estimation#a3c4513d3199a97527f156eb355b511be) |
|
| using  | [KdTreePtr](classpcl_1_1_c_v_f_h_estimation#aad044ee79c15cb04b72718fe96747523) = typename [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointNormal](structpcl_1_1_point_normal) >::[Ptr](classpcl_1_1_c_v_f_h_estimation#a3222f81b32e9ee73bdf5054c81e786dc) |
|
| using  | [VFHEstimator](classpcl_1_1_c_v_f_h_estimation#aedc8f006dcb7092d4104a4390cc0ee2c) = [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [CVFHEstimation](classpcl_1_1_c_v_f_h_estimation#ad0b9db574d2322790e78ca65ba616d9f) () |
|  | Empty constructor. [More...](classpcl_1_1_c_v_f_h_estimation#ad0b9db574d2322790e78ca65ba616d9f) |
|
| void  | [filterNormalsWithHighCurvature](classpcl_1_1_c_v_f_h_estimation#a87c46ebc55463f9f9b08d5d2d700bf45) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &cloud, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices\_to\_use, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices\_out, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices\_in, float threshold) |
|  | Removes normals with high curvature caused by real edges or noisy data. [More...](classpcl_1_1_c_v_f_h_estimation#a87c46ebc55463f9f9b08d5d2d700bf45) |
|
| void  | [setViewPoint](classpcl_1_1_c_v_f_h_estimation#a8c3f91511cdb0adc804cef5951818cfb) (float vpx, float vpy, float vpz) |
|  | Set the viewpoint. [More...](classpcl_1_1_c_v_f_h_estimation#a8c3f91511cdb0adc804cef5951818cfb) |
|
| void  | [setRadiusNormals](classpcl_1_1_c_v_f_h_estimation#a817d51fb519d869452f5be86aeba7231) (float radius\_normals) |
|  | Set the radius used to compute normals. [More...](classpcl_1_1_c_v_f_h_estimation#a817d51fb519d869452f5be86aeba7231) |
|
| void  | [getViewPoint](classpcl_1_1_c_v_f_h_estimation#ace0c386de1014734937e4e1e111cf6e6) (float &vpx, float &vpy, float &vpz) |
|  | Get the viewpoint. [More...](classpcl_1_1_c_v_f_h_estimation#ace0c386de1014734937e4e1e111cf6e6) |
|
| void  | [getCentroidClusters](classpcl_1_1_c_v_f_h_estimation#aaadbb7d910ad8d7a8348b50946db1d05) (std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &centroids) |
|  | Get the centroids used to compute different CVFH descriptors. [More...](classpcl_1_1_c_v_f_h_estimation#aaadbb7d910ad8d7a8348b50946db1d05) |
|
| void  | [getCentroidNormalClusters](classpcl_1_1_c_v_f_h_estimation#a6e63cce1a86f1a3384c32c830022280f) (std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &centroids) |
|  | Get the normal centroids used to compute different CVFH descriptors. [More...](classpcl_1_1_c_v_f_h_estimation#a6e63cce1a86f1a3384c32c830022280f) |
|
| void  | [setClusterTolerance](classpcl_1_1_c_v_f_h_estimation#ac3af76d5e945d82d80336655dfce4f3e) (float d) |
|  | Sets max. [More...](classpcl_1_1_c_v_f_h_estimation#ac3af76d5e945d82d80336655dfce4f3e) |
|
| void  | [setEPSAngleThreshold](classpcl_1_1_c_v_f_h_estimation#a05d6d3755a79736c32ba79ae3fff1dd5) (float d) |
|  | Sets max. [More...](classpcl_1_1_c_v_f_h_estimation#a05d6d3755a79736c32ba79ae3fff1dd5) |
|
| void  | [setCurvatureThreshold](classpcl_1_1_c_v_f_h_estimation#a7abe8d84706f1689a54329118c87a727) (float d) |
|  | Sets curvature threshold for removing normals. [More...](classpcl_1_1_c_v_f_h_estimation#a7abe8d84706f1689a54329118c87a727) |
|
| void  | [setMinPoints](classpcl_1_1_c_v_f_h_estimation#a3720f07ece98fbb6b03ef63413a5c1b6) (std::size\_t min) |
|  | Set minimum amount of points for a cluster to be considered. [More...](classpcl_1_1_c_v_f_h_estimation#a3720f07ece98fbb6b03ef63413a5c1b6) |
|
| void  | [setNormalizeBins](classpcl_1_1_c_v_f_h_estimation#a7467a0488bc6c091f498ae4f89636a60) (bool normalize) |
|  | Sets whether if the CVFH signatures should be normalized or not. [More...](classpcl_1_1_c_v_f_h_estimation#a7467a0488bc6c091f498ae4f89636a60) |
|
| void  | [compute](classpcl_1_1_c_v_f_h_estimation#af3263e05fc67057d005373ac2ad30ba5) ([PointCloudOut](classpcl_1_1_c_v_f_h_estimation#a3c4513d3199a97527f156eb355b511be) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_c_v_f_h_estimation#af3263e05fc67057d005373ac2ad30ba5) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > >  | [centroids\_dominant\_orientations\_](classpcl_1_1_c_v_f_h_estimation#a00fd32a2e6c4d8e292524b48c0cfea84) |
|  | Centroids that were used to compute different CVFH descriptors. [More...](classpcl_1_1_c_v_f_h_estimation#a00fd32a2e6c4d8e292524b48c0cfea84) |
|
| std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > >  | [dominant\_normals\_](classpcl_1_1_c_v_f_h_estimation#a5128a5872d0f14bee983a0a34af1e39d) |
|  | [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") centroids that were used to compute different CVFH descriptors. [More...](classpcl_1_1_c_v_f_h_estimation#a5128a5872d0f14bee983a0a34af1e39d) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::VFHSignature308> class pcl::CVFHEstimation< PointInT, PointNT, PointOutT >

 [CVFHEstimation](classpcl_1_1_c_v_f_h_estimation "CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given poin...") estimates the Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CVFH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: 

 * CAD-Model Recognition and 6 DOF Pose Estimation A. Aldoma, N. Blodow, D. Gossow, S. Gedikli, R.B. Rusu, M. Vincze and G. Bradski ICCV 2011, 3D Representation and Recognition (3dRR11) workshop Barcelona, Spain, (2011)

 The suggested PointOutT is [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308 "A point structure representing the Viewpoint Feature Histogram (VFH).").

 
Author
Aitor Aldoma 
 Definition at line [62](https://pointclouds.org/documentation/cvfh_8h_source.html#l00062) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_c_v_f_h_estimation#a4ccf4fae2d09aff2f136cdba6ef5acc7) = shared\_ptr<const [CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [66](https://pointclouds.org/documentation/cvfh_8h_source.html#l00066) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    KdTreePtr
---------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[KdTreePtr](classpcl_1_1_c_v_f_h_estimation#aad044ee79c15cb04b72718fe96747523) = typename [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)<[PointNormal](structpcl_1_1_point_normal)>::[Ptr](classpcl_1_1_c_v_f_h_estimation#a3222f81b32e9ee73bdf5054c81e786dc) |

 
 Definition at line [77](https://pointclouds.org/documentation/cvfh_8h_source.html#l00077) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_c_v_f_h_estimation#a3c4513d3199a97527f156eb355b511be) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_c_v_f_h_estimation#a3c4513d3199a97527f156eb355b511be) |

 
 Definition at line [76](https://pointclouds.org/documentation/cvfh_8h_source.html#l00076) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_c_v_f_h_estimation#a3222f81b32e9ee73bdf5054c81e786dc) = shared\_ptr<[CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [65](https://pointclouds.org/documentation/cvfh_8h_source.html#l00065) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    VFHEstimator
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[VFHEstimator](classpcl_1_1_c_v_f_h_estimation#aedc8f006dcb7092d4104a4390cc0ee2c) = [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)<PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308)> |

 
 Definition at line [78](https://pointclouds.org/documentation/cvfh_8h_source.html#l00078) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  CVFHEstimation()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[CVFHEstimation](classpcl_1_1_c_v_f_h_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [81](https://pointclouds.org/documentation/cvfh_8h_source.html#l00081) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), [pcl::Feature< PointInT, PointOutT >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240), and [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_c_v_f_h_estimation#a3c4513d3199a97527f156eb355b511be) &  | *output* | ) |  |

 
 Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [50](https://pointclouds.org/documentation/cvfh_8hpp_source.html#l00050) of file [cvfh.hpp](https://pointclouds.org/documentation/cvfh_8hpp_source.html).

    filterNormalsWithHighCurvature()
--------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::filterNormalsWithHighCurvature  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *cloud*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices\_to\_use*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices\_out*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices\_in*,  |
|  |  | float  | *threshold* |
|  | ) |  |  |

 
 Removes normals with high curvature caused by real edges or noisy data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | pointcloud to be filtered  |
| [in] | indices\_to\_use | the indices to use  |
| [out] | indices\_out | the indices of the points with higher curvature than threshold  |
| [out] | indices\_in | the indices of the remaining points after filtering  |
| [in] | threshold | threshold value for curvature  |

   Definition at line [160](https://pointclouds.org/documentation/cvfh_8hpp_source.html#l00160) of file [cvfh.hpp](https://pointclouds.org/documentation/cvfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    getCentroidClusters()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getCentroidClusters  | ( | std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &  | *centroids* | ) |  |

 | inline |

 
 Get the centroids used to compute different CVFH descriptors. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | centroids | vector to hold the centroids  |

   Definition at line [147](https://pointclouds.org/documentation/cvfh_8h_source.html#l00147) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

 References [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::centroids\_dominant\_orientations\_](https://pointclouds.org/documentation/cvfh_8h_source.html#l00279).

    getCentroidNormalClusters()
---------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getCentroidNormalClusters  | ( | std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &  | *centroids* | ) |  |

 | inline |

 
 Get the normal centroids used to compute different CVFH descriptors. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | centroids | vector to hold the normal centroids  |

   Definition at line [157](https://pointclouds.org/documentation/cvfh_8h_source.html#l00157) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

 References [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::dominant\_normals\_](https://pointclouds.org/documentation/cvfh_8h_source.html#l00281).

    getViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getViewPoint  | ( | float &  | *vpx*,  |
|  |  | float &  | *vpy*,  |
|  |  | float &  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Get the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | vpx | the X coordinate of the viewpoint  |
| [out] | vpy | the Y coordinate of the viewpoint  |
| [out] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [136](https://pointclouds.org/documentation/cvfh_8h_source.html#l00136) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setClusterTolerance()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setClusterTolerance  | ( | float  | *d* | ) |  |

 | inline |

 
 Sets max. 

 Euclidean distance between points to be added to the cluster 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | d | the maximum Euclidean distance  |

   Definition at line [168](https://pointclouds.org/documentation/cvfh_8h_source.html#l00168) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setCurvatureThreshold()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setCurvatureThreshold  | ( | float  | *d* | ) |  |

 | inline |

 
 Sets curvature threshold for removing normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | d | the curvature threshold  |

   Definition at line [186](https://pointclouds.org/documentation/cvfh_8h_source.html#l00186) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setEPSAngleThreshold()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setEPSAngleThreshold  | ( | float  | *d* | ) |  |

 | inline |

 
 Sets max. 

 deviation of the normals between two points so they can be clustered together 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | d | the maximum deviation  |

   Definition at line [177](https://pointclouds.org/documentation/cvfh_8h_source.html#l00177) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setMinPoints()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setMinPoints  | ( | std::size\_t  | *min* | ) |  |

 | inline |

 
 Set minimum amount of points for a cluster to be considered. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min | the minimum amount of points to be set  |

   Definition at line [195](https://pointclouds.org/documentation/cvfh_8h_source.html#l00195) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setNormalizeBins()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setNormalizeBins  | ( | bool  | *normalize* | ) |  |

 | inline |

 
 Sets whether if the CVFH signatures should be normalized or not. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normalize | true if normalization is required, false otherwise  |

   Definition at line [204](https://pointclouds.org/documentation/cvfh_8h_source.html#l00204) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setRadiusNormals()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setRadiusNormals  | ( | float  | *radius\_normals* | ) |  |

 | inline |

 
 Set the radius used to compute normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius\_normals | the radius  |

   Definition at line [125](https://pointclouds.org/documentation/cvfh_8h_source.html#l00125) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

    setViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setViewPoint  | ( | float  | *vpx*,  |
|  |  | float  | *vpy*,  |
|  |  | float  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Set the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vpx | the X coordinate of the viewpoint  |
| [in] | vpy | the Y coordinate of the viewpoint  |
| [in] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [114](https://pointclouds.org/documentation/cvfh_8h_source.html#l00114) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

   Member Data Documentation
-------------------------

  centroids\_dominant\_orientations\_
-----------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<Eigen::Vector3f, Eigen::aligned\_allocator<Eigen::Vector3f> > [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::centroids\_dominant\_orientations\_ |

 | protected |

 
 Centroids that were used to compute different CVFH descriptors. 

 Definition at line [279](https://pointclouds.org/documentation/cvfh_8h_source.html#l00279) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

 Referenced by [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::getCentroidClusters()](https://pointclouds.org/documentation/cvfh_8h_source.html#l00147).

    dominant\_normals\_
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<Eigen::Vector3f, Eigen::aligned\_allocator<Eigen::Vector3f> > [pcl::CVFHEstimation](classpcl_1_1_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::dominant\_normals\_ |

 | protected |

 
 [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") centroids that were used to compute different CVFH descriptors. 

 Definition at line [281](https://pointclouds.org/documentation/cvfh_8h_source.html#l00281) of file [cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html).

 Referenced by [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::getCentroidNormalClusters()](https://pointclouds.org/documentation/cvfh_8h_source.html#l00157).

   

---

The documentation for this class was generated from the following files:* pcl/features/[cvfh.h](https://pointclouds.org/documentation/cvfh_8h_source.html)
* pcl/features/impl/[cvfh.hpp](https://pointclouds.org/documentation/cvfh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_c_v_f_h_estimation.html>

[Feature](classpcl_1_1_feature "Feature represents the base feature class.") represents the base feature class. [More...](classpcl_1_1_feature#details)

 `#include <[pcl/features/feature.h](https://pointclouds.org/documentation/feature_8h_source.html)>`

    ![Inheritance graph](https://pointclouds.org/documentation/classpcl_1_1_feature__inherit__graph.png)                                                                            [[legend](graph_legend)]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT> class pcl::Feature< PointInT, PointOutT >

 [Feature](classpcl_1_1_feature "Feature represents the base feature class.") represents the base feature class. 

 Some generic 3D operations that are applicable to all features are defined here as static methods.

 
Attention
The convention for a feature descriptor is:* if the nearest neighbors for the query point at which the descriptor is to be computed cannot be determined, the descriptor values will be set to NaN (not a number)
* it is impossible to estimate a feature descriptor for a point that doesn't have finite 3D coordinates. Therefore, any point that has NaN data on x, y, or z, will most likely have its descriptor set to NaN.

 
 
Author
Radu B. Rusu 
 Definition at line [106](https://pointclouds.org/documentation/feature_8h_source.html#l00106) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 
Member Typedef Documentation
----------------------------

  BaseClass
---------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)<PointInT> |

 
 Definition at line [112](https://pointclouds.org/documentation/feature_8h_source.html#l00112) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    ConstPtr
--------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)<PointInT, PointOutT> > |

 
 Definition at line [115](https://pointclouds.org/documentation/feature_8h_source.html#l00115) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)<PointInT> |

 
 Definition at line [117](https://pointclouds.org/documentation/feature_8h_source.html#l00117) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    KdTreePtr
---------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |

 
 Definition at line [118](https://pointclouds.org/documentation/feature_8h_source.html#l00118) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [120](https://pointclouds.org/documentation/feature_8h_source.html#l00120) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [122](https://pointclouds.org/documentation/feature_8h_source.html#l00122) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudInPtr
---------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [121](https://pointclouds.org/documentation/feature_8h_source.html#l00121) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointOutT> |

 
 Definition at line [124](https://pointclouds.org/documentation/feature_8h_source.html#l00124) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)<PointInT, PointOutT> > |

 
 Definition at line [114](https://pointclouds.org/documentation/feature_8h_source.html#l00114) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    SearchMethod
------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function<int (std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector<float> &)> |

 
 Definition at line [126](https://pointclouds.org/documentation/feature_8h_source.html#l00126) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    SearchMethodSurface
-------------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function<int (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector<float> &)> |

 
 Definition at line [127](https://pointclouds.org/documentation/feature_8h_source.html#l00127) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  Feature()
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[Feature](classpcl_1_1_feature) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [131](https://pointclouds.org/documentation/feature_8h_source.html#l00131) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [194](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194) of file [feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::UnaryClassifier< PointT >::computeFPFH()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00202), [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf()](https://pointclouds.org/documentation/hough__3d_8hpp_source.html#l00055), [pcl::SurfaceNormalModality< PointInT >::computeSurfaceNormals()](https://pointclouds.org/documentation/surface__normal__modality_8h_source.html#l00543), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::gpu::DataSource::estimateNormals()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00107), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00192), [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00212), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00216), and [pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/trajkovic__3d_8hpp_source.html#l00048).

    deinitCompute()
---------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::deinitCompute |

 | protectedvirtual |

 
 This method should get called after ending the actual computation. 

 Reimplemented in [pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a33b47a8caddc0091d321958d78f6d684).

 Definition at line [181](https://pointclouds.org/documentation/feature_8hpp_source.html#l00181) of file [feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html).

 Referenced by [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::initCompute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00232), [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >::initCompute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00265), and [pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::initCompute()](https://pointclouds.org/documentation/spin__image_8hpp_source.html#l00237).

    getClassName()
--------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const std::string& [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::getClassName  | ( |  | ) |  const |

 | inlineprotected |

 
 Get a string representation of the name of this class. 

 Definition at line [244](https://pointclouds.org/documentation/feature_8h_source.html#l00244) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

 Referenced by [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::setKSearch()](https://pointclouds.org/documentation/rsd_8h_source.html#l00184).

    getKSearch()
------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::getKSearch  | ( |  | ) |  const |

 | inline |

 
 get the number of k nearest neighbors used for the feature estimation. 

 Definition at line [188](https://pointclouds.org/documentation/feature_8h_source.html#l00188) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240).

    getRadiusSearch()
-----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::getRadiusSearch  | ( |  | ) |  const |

 | inline |

 
 Get the sphere radius used for determining the neighbors. 

 Definition at line [205](https://pointclouds.org/documentation/feature_8h_source.html#l00205) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

    getSearchMethod()
-----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::getSearchMethod  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the search method used. 

 Definition at line [168](https://pointclouds.org/documentation/feature_8h_source.html#l00168) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::tree\_](https://pointclouds.org/documentation/feature_8h_source.html#l00231).

    getSearchParameter()
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::getSearchParameter  | ( |  | ) |  const |

 | inline |

 
 Get the internal search parameter. 

 Definition at line [175](https://pointclouds.org/documentation/feature_8h_source.html#l00175) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::search\_parameter\_](https://pointclouds.org/documentation/feature_8h_source.html#l00234).

    getSearchSurface()
------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::getSearchSurface  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the surface point cloud dataset. 

 Definition at line [155](https://pointclouds.org/documentation/feature_8h_source.html#l00155) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::surface\_](https://pointclouds.org/documentation/feature_8h_source.html#l00228).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::initCompute |

 | protectedvirtual |

 
 This method should get called before starting the actual computation. 

 Reimplemented in [pcl::VFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_v_f_h_estimation#a8aee67cc11b324fccb4214668b0a4da7), [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >](classpcl_1_1_unique_shape_context#ab00140ee7d9f123f83a188b3ad84adcd), [pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_spin_image_estimation#ab81b861f4dfafe17792838bd73c1277a), [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#afa6224ab473b6e62726861dd3071ea8d), [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_estimation_o_m_p#a41b1760fe4b41e4c273baf35b9e43e2b), [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f), [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f), [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f), [pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#abd9de776472628c7677680e29f70c854), [pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_difference_of_normals_estimation#a8e7b5906f3d7e966adfea5f4c0de6c6b), [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_shape_context3_d_estimation#a5ad35bf2e037d347e932a3ce2588dc01), [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >](classpcl_1_1_feature_from_labels#a93acfa34d625f616e094f65ddef10ae9), [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHRGBSignature250 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, pcl::FPFHSignature33 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, pcl::Histogram< 90 > >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointT, PointNT, PointFeature >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3), and [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [95](https://pointclouds.org/documentation/feature_8hpp_source.html#l00095) of file [feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html).

    searchForNeighbors() [1/2]
--------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::searchForNeighbors  | ( | const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &  | *cloud*,  |
|  |  | std::size\_t  | *index*,  |
|  |  | double  | *parameter*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | std::vector< float > &  | *distances* |
|  | ) |  |  const |

 | inlineprotected |

 
 Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the query point cloud  |
| [in] | index | the index of the query point in *cloud* |
| [in] | parameter | the search parameter (either k or radius)  |
| [out] | indices | the resultant vector of indices representing the k-nearest neighbors  |
| [out] | distances | the resultant vector of distances representing the distances from the query point to the k-nearest neighbors |

   
Returns
the number of neighbors found. If no neighbors are found or an error occurred, return 0. 
 Definition at line [286](https://pointclouds.org/documentation/feature_8h_source.html#l00286) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::search\_method\_surface\_](https://pointclouds.org/documentation/feature_8h_source.html#l00223).

    searchForNeighbors() [2/2]
--------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::searchForNeighbors  | ( | std::size\_t  | *index*,  |
|  |  | double  | *parameter*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | std::vector< float > &  | *distances* |
|  | ) |  |  const |

 | inlineprotected |

 
 Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the query point  |
| [in] | parameter | the search parameter (either k or radius)  |
| [out] | indices | the resultant vector of indices representing the k-nearest neighbors  |
| [out] | distances | the resultant vector of distances representing the distances from the query point to the k-nearest neighbors |

   
Returns
the number of neighbors found. If no neighbors are found or an error occurred, return 0. 
 Definition at line [268](https://pointclouds.org/documentation/feature_8h_source.html#l00268) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::PCLBase< PointInT >::input\_](https://pointclouds.org/documentation/pcl__base_8h_source.html#l00147), and [pcl::Feature< PointInT, PointOutT >::search\_method\_surface\_](https://pointclouds.org/documentation/feature_8h_source.html#l00223).

    setKSearch()
------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::setKSearch  | ( | int  | *k* | ) |  |

 | inline |

 
 Set the number of k nearest neighbors to use for the feature estimation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | k | the number of k-nearest neighbors  |

   Definition at line [184](https://pointclouds.org/documentation/feature_8h_source.html#l00184) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240).

 Referenced by [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf()](https://pointclouds.org/documentation/hough__3d_8hpp_source.html#l00055), and [pcl::gpu::DataSource::estimateNormals()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00107).

    setRadiusSearch()
-----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::setRadiusSearch  | ( | double  | *radius* | ) |  |

 | inline |

 
 Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | the sphere radius used as the maximum distance to consider a point a neighbor  |

   Definition at line [198](https://pointclouds.org/documentation/feature_8h_source.html#l00198) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

 Referenced by [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::UnaryClassifier< PointT >::computeFPFH()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00202), [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf()](https://pointclouds.org/documentation/hough__3d_8hpp_source.html#l00055), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00050), [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00088), [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/usc_8hpp_source.html#l00054), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00192), [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00212), and [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00216).

    setSearchMethod()
-----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::setSearchMethod  | ( | const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &  | *tree* | ) |  |

 | inline |

 
 Provide a pointer to the search object. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | tree | a pointer to the spatial search object.  |

   Definition at line [164](https://pointclouds.org/documentation/feature_8h_source.html#l00164) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::tree\_](https://pointclouds.org/documentation/feature_8h_source.html#l00231).

 Referenced by [pcl::UnaryClassifier< PointT >::computeFPFH()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00202), and [pcl::gpu::DataSource::estimateNormals()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00107).

    setSearchSurface()
------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::setSearchSurface  | ( | const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &  | *cloud* | ) |  |

 | inline |

 
 Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. 

 This is optional, if this is not set, it will only use the data in the input cloud to estimate the features. This is useful when you only need to compute the features for a downsampled cloud. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | a pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |

   Definition at line [146](https://pointclouds.org/documentation/feature_8h_source.html#l00146) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::fake\_surface\_](https://pointclouds.org/documentation/feature_8h_source.html#l00255), and [pcl::Feature< PointInT, PointOutT >::surface\_](https://pointclouds.org/documentation/feature_8h_source.html#l00228).

 Referenced by [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00050), [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00088), and [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/usc_8hpp_source.html#l00054).

   Member Data Documentation
-------------------------

  fake\_surface\_
---------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::fake\_surface\_ |

 | protected |

 
 If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. 

 Definition at line [255](https://pointclouds.org/documentation/feature_8h_source.html#l00255) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::Feature< PointInT, PointOutT >::setSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00146).

    feature\_name\_
---------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::string [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::feature\_name\_ |

 | protected |

 
 The feature name. 

 Definition at line [220](https://pointclouds.org/documentation/feature_8h_source.html#l00220) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::BoundaryEstimation()](https://pointclouds.org/documentation/boundary_8h_source.html#l00102), [pcl::CPPFEstimation< PointInT, PointNT, PointOutT >::CPPFEstimation()](https://pointclouds.org/documentation/cppf_8hpp_source.html#l00048), [pcl::CRHEstimation< PointInT, PointNT, PointOutT >::CRHEstimation()](https://pointclouds.org/documentation/crh_8h_source.html#l00077), [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::CVFHEstimation()](https://pointclouds.org/documentation/cvfh_8h_source.html#l00081), [pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::DifferenceOfNormalsEstimation()](https://pointclouds.org/documentation/don_8h_source.html#l00084), [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::FPFHEstimation()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00095), [pcl::FPFHEstimationOMP< PointInT, PointNT, PointOutT >::FPFHEstimationOMP()](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00097), [pcl::GASDColorEstimation< PointInT, PointOutT >::GASDColorEstimation()](https://pointclouds.org/documentation/gasd_8h_source.html#l00272), [pcl::Feature< PointInT, PointOutT >::getClassName()](https://pointclouds.org/documentation/feature_8h_source.html#l00244), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::GFPFHEstimation()](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00084), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::GRSDEstimation()](https://pointclouds.org/documentation/grsd_8h_source.html#l00090), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::IntegralImageNormalEstimation()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00107), [pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >::IntensityGradientEstimation()](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00072), [pcl::IntensitySpinEstimation< PointInT, PointOutT >::IntensitySpinEstimation()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00077), [pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::LinearLeastSquaresNormalEstimation()](https://pointclouds.org/documentation/linear__least__squares__normal_8h_source.html#l00062), [pcl::MomentInvariantsEstimation< PointInT, PointOutT >::MomentInvariantsEstimation()](https://pointclouds.org/documentation/moment__invariants_8h_source.html#l00072), [pcl::NormalEstimation< PointInT, PointOutT >::NormalEstimation()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00261), [pcl::NormalEstimationOMP< PointInT, PointOutT >::NormalEstimationOMP()](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00076), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::OURCVFHEstimation()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00076), [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::PFHEstimation()](https://pointclouds.org/documentation/pfh_8h_source.html#l00101), [pcl::PFHRGBEstimation< PointInT, PointNT, PointOutT >::PFHRGBEstimation()](https://pointclouds.org/documentation/pfhrgb_8h_source.html#l00061), [pcl::PPFEstimation< PointInT, PointNT, PointOutT >::PPFEstimation()](https://pointclouds.org/documentation/ppf_8hpp_source.html#l00049), [pcl::PPFRGBEstimation< PointInT, PointNT, PointOutT >::PPFRGBEstimation()](https://pointclouds.org/documentation/ppfrgb_8hpp_source.html#l00046), [pcl::PPFRGBRegionEstimation< PointInT, PointNT, PointOutT >::PPFRGBRegionEstimation()](https://pointclouds.org/documentation/ppfrgb_8hpp_source.html#l00114), [pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PrincipalCurvaturesEstimation()](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00077), [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::RIFTEstimation()](https://pointclouds.org/documentation/rift_8h_source.html#l00083), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::RSDEstimation()](https://pointclouds.org/documentation/rsd_8h_source.html#l00151), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00190), [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::ShapeContext3DEstimation()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00095), [pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::SHOTColorEstimation()](https://pointclouds.org/documentation/shot_8h_source.html#l00325), [pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >::SHOTEstimation()](https://pointclouds.org/documentation/shot_8h_source.html#l00245), [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::SHOTEstimationBase()](https://pointclouds.org/documentation/shot_8h_source.html#l00093), and [pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::SpinImageEstimation()](https://pointclouds.org/documentation/spin__image_8hpp_source.html#l00052).

    k\_
---

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::k\_ |

 | protected |

 
 The number of K nearest neighbors to use for each point. 

 Definition at line [240](https://pointclouds.org/documentation/feature_8h_source.html#l00240) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::CRHEstimation< PointInT, PointNT, PointOutT >::CRHEstimation()](https://pointclouds.org/documentation/crh_8h_source.html#l00077), [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::CVFHEstimation()](https://pointclouds.org/documentation/cvfh_8h_source.html#l00081), [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >::FeatureFromLabels()](https://pointclouds.org/documentation/feature_8h_source.html#l00386), [pcl::Feature< PointInT, PointOutT >::getKSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00188), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::IntegralImageNormalEstimation()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00107), [pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::LinearLeastSquaresNormalEstimation()](https://pointclouds.org/documentation/linear__least__squares__normal_8h_source.html#l00062), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::OURCVFHEstimation()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00076), and [pcl::Feature< PointInT, PointOutT >::setKSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00184).

    search\_method\_surface\_
-------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::search\_method\_surface\_ |

 | protected |

 
 The search method template for points. 

 Definition at line [223](https://pointclouds.org/documentation/feature_8h_source.html#l00223) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::Feature< PointInT, PointOutT >::searchForNeighbors()](https://pointclouds.org/documentation/feature_8h_source.html#l00268).

    search\_parameter\_
-------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::search\_parameter\_ |

 | protected |

 
 The actual search parameter (from either *search\_radius\_* or *k\_*). 

 Definition at line [234](https://pointclouds.org/documentation/feature_8h_source.html#l00234) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::Feature< PointInT, PointOutT >::getSearchParameter()](https://pointclouds.org/documentation/feature_8h_source.html#l00175).

    search\_radius\_
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::search\_radius\_ |

 | protected |

 
 The nearest neighbors search radius for each point. 

 Definition at line [237](https://pointclouds.org/documentation/feature_8h_source.html#l00237) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::CVFHEstimation()](https://pointclouds.org/documentation/cvfh_8h_source.html#l00081), [pcl::Feature< PointInT, PointOutT >::getRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00205), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::getRadiusSearch()](https://pointclouds.org/documentation/grsd_8h_source.html#l00107), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::OURCVFHEstimation()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00076), [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/grsd_8h_source.html#l00101), and [pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::ShapeContext3DEstimation()](https://pointclouds.org/documentation/3dsc_8h_source.html#l00095).

    surface\_
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::surface\_ |

 | protected |

 
 An input point cloud describing the surface that is to be used for nearest neighbors estimation. 

 Definition at line [228](https://pointclouds.org/documentation/feature_8h_source.html#l00228) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::Feature< PointInT, PointOutT >::getSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00155), and [pcl::Feature< PointInT, PointOutT >::setSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00146).

    tree\_
------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) [pcl::Feature](classpcl_1_1_feature)< PointInT, PointOutT >::tree\_ |

 | protected |

 
 A pointer to the spatial search object. 

 Definition at line [231](https://pointclouds.org/documentation/feature_8h_source.html#l00231) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::Feature< PointInT, PointOutT >::getSearchMethod()](https://pointclouds.org/documentation/feature_8h_source.html#l00168), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::IntegralImageNormalEstimation()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00107), [pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::LinearLeastSquaresNormalEstimation()](https://pointclouds.org/documentation/linear__least__squares__normal_8h_source.html#l00062), and [pcl::Feature< PointInT, PointOutT >::setSearchMethod()](https://pointclouds.org/documentation/feature_8h_source.html#l00164).

   

---

The documentation for this class was generated from the following files:* pcl/features/[feature.h](https://pointclouds.org/documentation/feature_8h_source.html)
* pcl/features/impl/[feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_feature.html>

A Difference of Normals (DoN) scale filter implementation for point cloud data. [More...](classpcl_1_1_difference_of_normals_estimation#details)

 `#include <[pcl/features/don.h](https://pointclouds.org/documentation/don_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_difference_of_normals_estimation#a9167100e4a13be5b611295160a944674) = shared\_ptr< [DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_difference_of_normals_estimation#ad26704a46df0c6404f7405118b180fb0) = shared\_ptr< const [DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation#a55d2bb3e22b081cf5559fc5f782f50ec) () |
|  | Creates a new Difference of Normals filter. [More...](classpcl_1_1_difference_of_normals_estimation#a55d2bb3e22b081cf5559fc5f782f50ec) |
|
|  | [~DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation#ade5a7163e66cd954d4ee26261d03fbc2) () override=default |
|
| void  | [setNormalScaleSmall](classpcl_1_1_difference_of_normals_estimation#ab1ff79f5d6dcaaeaa8bf6835379060c2) (const PointCloudNConstPtr &normals) |
|  | Set the normals calculated using a smaller search radius (scale) for the DoN operator. [More...](classpcl_1_1_difference_of_normals_estimation#ab1ff79f5d6dcaaeaa8bf6835379060c2) |
|
| void  | [setNormalScaleLarge](classpcl_1_1_difference_of_normals_estimation#a12b0c3887a821de34f00ead9a17e86d1) (const PointCloudNConstPtr &normals) |
|  | Set the normals calculated using a larger search radius (scale) for the DoN operator. [More...](classpcl_1_1_difference_of_normals_estimation#a12b0c3887a821de34f00ead9a17e86d1) |
|
| void  | [computeFeature](classpcl_1_1_difference_of_normals_estimation#a9e3bc6d78c8a95dc054b6579373fe6f4) (PointCloudOut &output) override |
|  | Computes the DoN vector for each point in the input point cloud and outputs the vector cloud to the given output. [More...](classpcl_1_1_difference_of_normals_estimation#a9e3bc6d78c8a95dc054b6579373fe6f4) |
|
| bool  | [initCompute](classpcl_1_1_difference_of_normals_estimation#a8e7b5906f3d7e966adfea5f4c0de6c6b) () override |
|  | Initialize for computation of features. [More...](classpcl_1_1_difference_of_normals_estimation#a8e7b5906f3d7e966adfea5f4c0de6c6b) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT> class pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >

 A Difference of Normals (DoN) scale filter implementation for point cloud data. 

 For each point in the point cloud two normals estimated with a differing search radius (sigma\_s, sigma\_l) are subtracted, the difference of these normals provides a scale-based feature which can be further used to filter the point cloud, somewhat like the Difference of Guassians in image processing, but instead on surfaces. Best results are had when the two search radii are related as sigma\_l=10\*sigma\_s, the octaves between the two search radii can be though of as a filter bandwidth. For appropriate values and thresholds it can be used for surface edge extraction.

 
Attention
The input normals given by setInputNormalsSmall and setInputNormalsLarge have to match the input point cloud given by setInputCloud. This behavior is different than feature estimation methods that extend [FeatureFromNormals](classpcl_1_1_feature_from_normals), which match the normals with the search surface.
 
Note
For more information please see **Yani Ioannou. Automatic Urban Modelling using Mobile Urban LIDAR Data. Thesis (Master, Computing), Queen's University, March, 2010.**

 
Author
Yani Ioannou. 
 Definition at line [68](https://pointclouds.org/documentation/don_8h_source.html#l00068) of file [don.h](https://pointclouds.org/documentation/don_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_difference_of_normals_estimation#ad26704a46df0c6404f7405118b180fb0) = shared\_ptr<const [DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [79](https://pointclouds.org/documentation/don_8h_source.html#l00079) of file [don.h](https://pointclouds.org/documentation/don_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_difference_of_normals_estimation#a9167100e4a13be5b611295160a944674) = shared\_ptr<[DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [78](https://pointclouds.org/documentation/don_8h_source.html#l00078) of file [don.h](https://pointclouds.org/documentation/don_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  DifferenceOfNormalsEstimation()
-------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::[DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation) | ( |  | ) |  |

 | inline |

 
 Creates a new Difference of Normals filter. 

 Definition at line [84](https://pointclouds.org/documentation/don_8h_source.html#l00084) of file [don.h](https://pointclouds.org/documentation/don_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~DifferenceOfNormalsEstimation()
--------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::~[DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation) | ( |  | ) |  |

 | overridedefault |

 
   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | PointCloudOut &  | *output* | ) |  |

 | overridevirtual |

 
 Computes the DoN vector for each point in the input point cloud and outputs the vector cloud to the given output. 

 
Parameters
 

|  |  |
| --- | --- |
| output | the cloud to output the DoN vector cloud to.  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [85](https://pointclouds.org/documentation/don_8hpp_source.html#l00085) of file [don.hpp](https://pointclouds.org/documentation/don_8hpp_source.html).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::initCompute |

 | overridevirtual |

 
 Initialize for computation of features. 

 
Returns
true if parameters (input normals, input) are sufficient to perform computation. 
 Reimplemented from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5).

 Definition at line [44](https://pointclouds.org/documentation/don_8hpp_source.html#l00044) of file [don.hpp](https://pointclouds.org/documentation/don_8hpp_source.html).

    setNormalScaleLarge()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::setNormalScaleLarge  | ( | const PointCloudNConstPtr &  | *normals* | ) |  |

 | inline |

 
 Set the normals calculated using a larger search radius (scale) for the DoN operator. 

 
Parameters
 

|  |  |
| --- | --- |
| normals | the larger radius (scale) of the DoN filter.  |

   Definition at line [106](https://pointclouds.org/documentation/don_8h_source.html#l00106) of file [don.h](https://pointclouds.org/documentation/don_8h_source.html).

    setNormalScaleSmall()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::DifferenceOfNormalsEstimation](classpcl_1_1_difference_of_normals_estimation)< PointInT, PointNT, PointOutT >::setNormalScaleSmall  | ( | const PointCloudNConstPtr &  | *normals* | ) |  |

 | inline |

 
 Set the normals calculated using a smaller search radius (scale) for the DoN operator. 

 
Parameters
 

|  |  |
| --- | --- |
| normals | the smaller radius (scale) of the DoN filter.  |

   Definition at line [96](https://pointclouds.org/documentation/don_8h_source.html#l00096) of file [don.h](https://pointclouds.org/documentation/don_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[don.h](https://pointclouds.org/documentation/don_8h_source.html)
* pcl/features/impl/[don.hpp](https://pointclouds.org/documentation/don_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_difference_of_normals_estimation.html>

**[ESFEstimation](classpcl_1_1_e_s_f_estimation "ESFEstimation estimates the ensemble of shape functions descriptors for a given point cloud dataset c...")** estimates the ensemble of shape functions descriptors for a given point cloud dataset containing points. [More...](classpcl_1_1_e_s_f_estimation#details)

 `#include <[pcl/features/esf.h](https://pointclouds.org/documentation/esf_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_e_s_f_estimation#a5ec78813d6c99b6a5c4b81374b95d557) = shared\_ptr< [ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_e_s_f_estimation#a0606c4509e343c09ec3e7ef2225b7419) = shared\_ptr< const [ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT > > |
|
| using  | [PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) |
|
| - Public Types inherited from [pcl::Feature< PointInT, pcl::ESFSignature640 >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [pcl::ESFSignature640](structpcl_1_1_e_s_f_signature640) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [pcl::ESFSignature640](structpcl_1_1_e_s_f_signature640) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ESFSignature640](structpcl_1_1_e_s_f_signature640) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [ESFEstimation](classpcl_1_1_e_s_f_estimation#a9c48f7e8482e94011d37edfddb123fbe) () |
|  | Empty constructor. [More...](classpcl_1_1_e_s_f_estimation#a9c48f7e8482e94011d37edfddb123fbe) |
|
| void  | [compute](classpcl_1_1_e_s_f_estimation#a81326b9eedf99476ef5487d3d9aa61c6) ([PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_e_s_f_estimation#a81326b9eedf99476ef5487d3d9aa61c6) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, pcl::ESFSignature640 >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_e_s_f_estimation#adce189c017d9ff8d7b2af552e0422e52) ([PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) &output) override |
|  | Estimate the Ensebmel of Shape Function (ESF) descriptors at a set of points given by <setInputCloud (),. [More...](classpcl_1_1_e_s_f_estimation#adce189c017d9ff8d7b2af552e0422e52) |
|
| int  | [lci](classpcl_1_1_e_s_f_estimation#ad0869dfa37c2b6bd6f856c2fef64bf7c) (const int x1, const int y1, const int z1, const int x2, const int y2, const int z2, float &ratio, int &incnt, int &pointcount) |
|  | ... [More...](classpcl_1_1_e_s_f_estimation#ad0869dfa37c2b6bd6f856c2fef64bf7c) |
|
| void  | [computeESF](classpcl_1_1_e_s_f_estimation#a9243fc3893c034328cb71412adfd38c7) ([PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) &pc, std::vector< float > &hist) |
|  | ... [More...](classpcl_1_1_e_s_f_estimation#a9243fc3893c034328cb71412adfd38c7) |
|
| void  | [voxelize9](classpcl_1_1_e_s_f_estimation#ac1c8d8d942f99673371f96e0dcc57705) ([PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) &cluster) |
|  | ... [More...](classpcl_1_1_e_s_f_estimation#ac1c8d8d942f99673371f96e0dcc57705) |
|
| void  | [cleanup9](classpcl_1_1_e_s_f_estimation#ad7a79ec865e97ac900803f026c75f8e9) ([PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) &cluster) |
|  | ... [More...](classpcl_1_1_e_s_f_estimation#ad7a79ec865e97ac900803f026c75f8e9) |
|
| void  | [scale\_points\_unit\_sphere](classpcl_1_1_e_s_f_estimation#acaed7e05b4bacf4211d6bfbfb8d246f0) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &pc, float scalefactor, Eigen::Vector4f &centroid) |
|  | ... [More...](classpcl_1_1_e_s_f_estimation#acaed7e05b4bacf4211d6bfbfb8d246f0) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, pcl::ESFSignature640 >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Feature< PointInT, pcl::ESFSignature640 >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = pcl::ESFSignature640> class pcl::ESFEstimation< PointInT, PointOutT >

 **[ESFEstimation](classpcl_1_1_e_s_f_estimation "ESFEstimation estimates the ensemble of shape functions descriptors for a given point cloud dataset c...")** estimates the ensemble of shape functions descriptors for a given point cloud dataset containing points. 

 Shape functions are D2, D3, A3. For more information about the ESF descriptor, see: Walter Wohlkinger and Markus Vincze, "Ensemble of Shape Functions for 3D Object Classification", IEEE International Conference on Robotics and Biomimetics (IEEE-ROBIO), 2011 



Author
Walter Wohlkinger 
 Definition at line [59](https://pointclouds.org/documentation/esf_8h_source.html#l00059) of file [esf.h](https://pointclouds.org/documentation/esf_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = pcl::ESFSignature640>  

|  |
| --- |
| using [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_e_s_f_estimation#a0606c4509e343c09ec3e7ef2225b7419) = shared\_ptr<const [ESFEstimation](classpcl_1_1_e_s_f_estimation)<PointInT, PointOutT> > |

 
 Definition at line [63](https://pointclouds.org/documentation/esf_8h_source.html#l00063) of file [esf.h](https://pointclouds.org/documentation/esf_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT = pcl::ESFSignature640>  

|  |
| --- |
| using [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [73](https://pointclouds.org/documentation/esf_8h_source.html#l00073) of file [esf.h](https://pointclouds.org/documentation/esf_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT = pcl::ESFSignature640>  

|  |
| --- |
| using [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) |

 
 Definition at line [74](https://pointclouds.org/documentation/esf_8h_source.html#l00074) of file [esf.h](https://pointclouds.org/documentation/esf_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = pcl::ESFSignature640>  

|  |
| --- |
| using [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_e_s_f_estimation#a5ec78813d6c99b6a5c4b81374b95d557) = shared\_ptr<[ESFEstimation](classpcl_1_1_e_s_f_estimation)<PointInT, PointOutT> > |

 
 Definition at line [62](https://pointclouds.org/documentation/esf_8h_source.html#l00062) of file [esf.h](https://pointclouds.org/documentation/esf_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  ESFEstimation()
---------------

    template<typename PointInT , typename PointOutT = pcl::ESFSignature640>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::[ESFEstimation](classpcl_1_1_e_s_f_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [77](https://pointclouds.org/documentation/esf_8h_source.html#l00077) of file [esf.h](https://pointclouds.org/documentation/esf_8h_source.html).

 References [pcl::Feature< PointInT, pcl::ESFSignature640 >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), [pcl::Feature< PointInT, pcl::ESFSignature640 >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240), and [pcl::Feature< PointInT, pcl::ESFSignature640 >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

   Member Function Documentation
-----------------------------

  cleanup9()
----------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::cleanup9  | ( | [PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) &  | *cluster* | ) |  |

 | protected |

 
 ... 

 Definition at line [453](https://pointclouds.org/documentation/esf_8hpp_source.html#l00453) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

    compute()
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) &  | *output* | ) |  |

 
 Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [506](https://pointclouds.org/documentation/esf_8hpp_source.html#l00506) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

    computeESF()
------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::computeESF  | ( | [PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) &  | *pc*,  |
|  |  | std::vector< float > &  | *hist* |
|  | ) |  |  |

 | protected |

 
 ... 

 Definition at line [52](https://pointclouds.org/documentation/esf_8hpp_source.html#l00052) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

 References [pcl::euclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00204), [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), [pcl\_round()](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00239), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_e_s_f_estimation#aae854565d7e870ddb47652be1f4f8c4b) &  | *output* | ) |  |

 | overrideprotected |

 
 Estimate the Ensebmel of Shape Function (ESF) descriptors at a set of points given by <setInputCloud (),. 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model histogram that contains the ESF feature estimates  |

   Definition at line [534](https://pointclouds.org/documentation/esf_8hpp_source.html#l00534) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

    lci()
-----

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::lci  | ( | const int  | *x1*,  |
|  |  | const int  | *y1*,  |
|  |  | const int  | *z1*,  |
|  |  | const int  | *x2*,  |
|  |  | const int  | *y2*,  |
|  |  | const int  | *z2*,  |
|  |  | float &  | *ratio*,  |
|  |  | int &  | *incnt*,  |
|  |  | int &  | *pointcount* |
|  | ) |  |  |

 | protected |

 
 ... 

 Definition at line [306](https://pointclouds.org/documentation/esf_8hpp_source.html#l00306) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

    scale\_points\_unit\_sphere()
-----------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::scale\_points\_unit\_sphere  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *pc*,  |
|  |  | float  | *scalefactor*,  |
|  |  | Eigen::Vector4f &  | *centroid* |
|  | ) |  |  |

 | protected |

 
 ... 

 Definition at line [481](https://pointclouds.org/documentation/esf_8hpp_source.html#l00481) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

 References [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00056), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), [pcl::euclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00204), and [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221).

    voxelize9()
-----------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ESFEstimation](classpcl_1_1_e_s_f_estimation)< PointInT, PointOutT >::voxelize9  | ( | [PointCloudIn](classpcl_1_1_e_s_f_estimation#a47da0c0dbac00f4097176a1b2333723d) &  | *cluster* | ) |  |

 | protected |

 
 ... 

 Definition at line [425](https://pointclouds.org/documentation/esf_8hpp_source.html#l00425) of file [esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[esf.h](https://pointclouds.org/documentation/esf_8h_source.html)
* pcl/features/impl/[esf.hpp](https://pointclouds.org/documentation/esf_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_e_s_f_estimation.html>

[FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames "FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which ne...") provides a public interface for descriptor extractor classes which need a local reference frame at each input keypoint. [More...](classpcl_1_1_feature_with_local_reference_frames#details)

 `#include <[pcl/features/feature.h](https://pointclouds.org/documentation/feature_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointRFT > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Protected Types |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, PointRFT >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|




|  |
| --- |
| 
 Protected Member Functions |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Protected Attributes |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointRFT> class pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >

 [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames "FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which ne...") provides a public interface for descriptor extractor classes which need a local reference frame at each input keypoint. 

 
Attention
This interface is for backward compatibility with existing code and in the future it could be merged with [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). Subclasses should call the protected method initLocalReferenceFrames () to correctly initialize the frames\_ member.
 
Author
Nicola Fioraio 
 Definition at line [439](https://pointclouds.org/documentation/feature_8h_source.html#l00439) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 
Member Typedef Documentation
----------------------------

  LRFEstimationPtr
----------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)<PointInT, PointRFT>::Ptr |

 | protected |

 
 Check if frames\_ has been correctly initialized and compute it if needed. 

 
Parameters
 

|  |  |
| --- | --- |
| input | the subclass' input cloud dataset.  |
| lrf\_estimation | a pointer to a local reference frame estimation class to be used as default.  |

   
Returns
true if frames\_ has been correctly initialized. 
 Definition at line [484](https://pointclouds.org/documentation/feature_8h_source.html#l00484) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudLRF
-------------

    template<typename PointInT , typename PointRFT >  

|  |
| --- |
| using [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::[PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointRFT> |

 
 Definition at line [442](https://pointclouds.org/documentation/feature_8h_source.html#l00442) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudLRFConstPtr
---------------------

    template<typename PointInT , typename PointRFT >  

|  |
| --- |
| using [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::[PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [444](https://pointclouds.org/documentation/feature_8h_source.html#l00444) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    PointCloudLRFPtr
----------------

    template<typename PointInT , typename PointRFT >  

|  |
| --- |
| using [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::[PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [443](https://pointclouds.org/documentation/feature_8h_source.html#l00443) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  FeatureWithLocalReferenceFrames()
---------------------------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::[FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [447](https://pointclouds.org/documentation/feature_8h_source.html#l00447) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

    ~FeatureWithLocalReferenceFrames()
----------------------------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::~[FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames) | ( |  | ) |  |

 | virtualdefault |

 
 Default virtual destructor. 

   Member Function Documentation
-----------------------------

  getInputReferenceFrames()
-------------------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::getInputReferenceFrames  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the local reference frames. 

 Definition at line [468](https://pointclouds.org/documentation/feature_8h_source.html#l00468) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >::frames\_](https://pointclouds.org/documentation/feature_8h_source.html#l00475).

    initLocalReferenceFrames()
--------------------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::initLocalReferenceFrames  | ( | const std::size\_t &  | *indices\_size*,  |
|  |  | const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &  | *lrf\_estimation* = `[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()` |
|  | ) |  |  |

 | protectedvirtual |

 
 Definition at line [294](https://pointclouds.org/documentation/feature_8hpp_source.html#l00294) of file [feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html).

    setInputReferenceFrames()
-------------------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::setInputReferenceFrames  | ( | const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &  | *frames* | ) |  |

 | inline |

 
 Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. 

 In case of search surface is set to be different from the input cloud, local reference frames should correspond to the input cloud, not the search surface! 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | frames | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") of reference frames.  |

   Definition at line [460](https://pointclouds.org/documentation/feature_8h_source.html#l00460) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 References [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >::frames\_](https://pointclouds.org/documentation/feature_8h_source.html#l00475), and [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >::frames\_never\_defined\_](https://pointclouds.org/documentation/feature_8h_source.html#l00477).

   Member Data Documentation
-------------------------

  frames\_
--------

    template<typename PointInT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::frames\_ |

 | protected |

 
 A boost shared pointer to the local reference frames. 

 Definition at line [475](https://pointclouds.org/documentation/feature_8h_source.html#l00475) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >::getInputReferenceFrames()](https://pointclouds.org/documentation/feature_8h_source.html#l00468), and [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >::setInputReferenceFrames()](https://pointclouds.org/documentation/feature_8h_source.html#l00460).

    frames\_never\_defined\_
------------------------

    template<typename PointInT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames)< PointInT, PointRFT >::frames\_never\_defined\_ |

 | protected |

 
 The user has never set the frames. 

 Definition at line [477](https://pointclouds.org/documentation/feature_8h_source.html#l00477) of file [feature.h](https://pointclouds.org/documentation/feature_8h_source.html).

 Referenced by [pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >::setInputReferenceFrames()](https://pointclouds.org/documentation/feature_8h_source.html#l00460).

   

---

The documentation for this class was generated from the following files:* pcl/features/[feature.h](https://pointclouds.org/documentation/feature_8h_source.html)
* pcl/features/impl/[feature.hpp](https://pointclouds.org/documentation/feature_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_feature_with_local_reference_frames.html>

[FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation "FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local refe...") implements the Fast LocAl Reference framE algorithm for local reference frame estimation as described here: [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#details)

 `#include <[pcl/features/flare.h](https://pointclouds.org/documentation/flare_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Member Functions |
|  | [FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a040fadf1d6fe7dd1766b325df107052d) () |
|  | Constructor. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a040fadf1d6fe7dd1766b325df107052d) |
|
| void  | [setTangentRadius](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a733abbee0b01879d08d0d23467b8364a) (float radius) |
|  | Set the maximum distance of the points used to estimate the x\_axis of the FLARE Reference Frame for a given point. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a733abbee0b01879d08d0d23467b8364a) |
|
| float  | [getTangentRadius](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a8898c2fb9e11e1695dbc813e0d040585) () const |
|  | Get the maximum distance of the points used to estimate the x\_axis of the FLARE Reference Frame for a given point. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a8898c2fb9e11e1695dbc813e0d040585) |
|
| void  | [setMarginThresh](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a1aa4a99da0bc1571df158eb2c61c6f47) (float margin\_thresh) |
|  | Set the percentage of the search tangent radius after which a point is considered part of the support. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a1aa4a99da0bc1571df158eb2c61c6f47) |
|
| float  | [getMarginThresh](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a6e3422f2265f202eca88e14bf912880c) () const |
|  | Get the percentage of the search tangent radius after which a point is considered part of the support. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a6e3422f2265f202eca88e14bf912880c) |
|
| void  | [setMinNeighboursForNormalAxis](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#acf4ffbb83ef0ecee36e6dd49119513b9) (int min\_neighbors\_for\_normal\_axis) |
|  | Set min number of neighbours required for the computation of Z axis. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#acf4ffbb83ef0ecee36e6dd49119513b9) |
|
| int  | [getMinNeighboursForNormalAxis](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a19c8a7308a5cadab36ee306d6abbdb46) () const |
|  | Get min number of neighbours required for the computation of Z axis. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a19c8a7308a5cadab36ee306d6abbdb46) |
|
| void  | [setMinNeighboursForTangentAxis](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#ad36ad261266c64c0f1a0bccaf8bbaa07) (int min\_neighbors\_for\_tangent\_axis) |
|  | Set min number of neighbours required for the computation of X axis. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#ad36ad261266c64c0f1a0bccaf8bbaa07) |
|
| int  | [getMinNeighboursForTangentAxis](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#abca4f362c6cf5a2a58e96b01c162d95c) () const |
|  | Get min number of neighbours required for the computation of X axis. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#abca4f362c6cf5a2a58e96b01c162d95c) |
|
| void  | [setSearchSampledSurface](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#af3cd8da1fb6501f82286ddc7a4f8e525) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to the dataset used for the estimation of X axis. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#af3cd8da1fb6501f82286ddc7a4f8e525) |
|
| const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &  | [getSearchSampledSurface](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a338d18429402f9bdf32e78ea5f0f2ef4) () const |
|  | Get a pointer to the sampled\_surface\_ cloud dataset. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a338d18429402f9bdf32e78ea5f0f2ef4) |
|
| void  | [setSearchMethodForSampledSurface](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a393bb9b6d55211a254c7bc9eac12838a) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object linked to sampled\_surface. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a393bb9b6d55211a254c7bc9eac12838a) |
|
| const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &  | [getSearchMethodForSampledSurface](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#af33e8614bf06b86177d898ff69481e04) () const |
|  | Get a pointer to the search method used for the estimation of x axis. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#af33e8614bf06b86177d898ff69481e04) |
|
| const std::vector< SignedDistanceT > &  | [getSignedDistancesFromHighestPoints](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a2dd8b61828d1e19279c346cd679cdac0) () const |
|  | Get the signed distances of the highest points from the fitted planes. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a2dd8b61828d1e19279c346cd679cdac0) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Types |
| using  | [PointCloudSignedDistance](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a1289cd0521d50a8ed4fb9143c91a7c61) = [pcl::PointCloud](classpcl_1_1_point_cloud)< SignedDistanceT > |
|
| using  | [PointCloudSignedDistancePtr](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#aff3eadebfae622e452abb99fbfd496d1) = typename [PointCloudSignedDistance::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [Ptr](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#aff4eb971976abc869ccc6fbfcd2f3209) = shared\_ptr< [FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a63dba3745b50a781bfa375a5335cd39b) = shared\_ptr< const [FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT > > |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#abd9de776472628c7677680e29f70c854) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#abd9de776472628c7677680e29f70c854) |
|
| bool  | [deinitCompute](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a33b47a8caddc0091d321958d78f6d684) () override |
|  | This method should get called after the actual computation is ended. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a33b47a8caddc0091d321958d78f6d684) |
|
| SignedDistanceT  | [computePointLRF](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#ac2b95585183b29a4f0ad8ad3159ff3b3) (const int index, Eigen::Matrix3f &lrf) |
|  | Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#ac2b95585183b29a4f0ad8ad3159ff3b3) |
|
| void  | [computeFeature](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a682f72f11e96f8c59246c5783d883147) (PointCloudOut &output) override |
|  | Abstract feature estimation method. [More...](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a682f72f11e96f8c59246c5783d883147) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = ReferenceFrame, typename SignedDistanceT = float> class pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >

 [FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation "FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local refe...") implements the Fast LocAl Reference framE algorithm for local reference frame estimation as described here: 

 * A. Petrelli, L. Di Stefano, "A repeatable and efficient canonical reference for surface matching", 3DimPVT, 2012

 FLARE algorithm is deployed in ReLOC algorithm proposed in:

 Petrelli A., Di Stefano L., "Pairwise registration by local orientation cues", Computer Graphics Forum, 2015.

 
Author
Alioscia Petrelli 
 Definition at line [64](https://pointclouds.org/documentation/flare_8h_source.html#l00064) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::[ConstPtr](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a63dba3745b50a781bfa375a5335cd39b) = shared\_ptr<const [FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)<PointInT, PointNT, PointOutT> > |

 | protected |

 
 Definition at line [88](https://pointclouds.org/documentation/flare_8h_source.html#l00088) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    PointCloudSignedDistance
------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::[PointCloudSignedDistance](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#a1289cd0521d50a8ed4fb9143c91a7c61) = [pcl::PointCloud](classpcl_1_1_point_cloud)<SignedDistanceT> |

 | protected |

 
 Definition at line [84](https://pointclouds.org/documentation/flare_8h_source.html#l00084) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    PointCloudSignedDistancePtr
---------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::[PointCloudSignedDistancePtr](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#aff3eadebfae622e452abb99fbfd496d1) = typename [PointCloudSignedDistance::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 | protected |

 
 Definition at line [85](https://pointclouds.org/documentation/flare_8h_source.html#l00085) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::[Ptr](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation#aff4eb971976abc869ccc6fbfcd2f3209) = shared\_ptr<[FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)<PointInT, PointNT, PointOutT> > |

 | protected |

 
 Definition at line [87](https://pointclouds.org/documentation/flare_8h_source.html#l00087) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  FLARELocalReferenceFrameEstimation()
------------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::[FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [92](https://pointclouds.org/documentation/flare_8h_source.html#l00092) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

 References [pcl::Feature< PointInT, ReferenceFrame >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::computeFeature  | ( | PointCloudOut &  | *output* | ) |  |

 | overrideprotected |

 
 Abstract feature estimation method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant features  |

   Definition at line [233](https://pointclouds.org/documentation/flare_8hpp_source.html#l00233) of file [flare.hpp](https://pointclouds.org/documentation/flare_8hpp_source.html).

    computePointLRF()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| SignedDistanceT [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::computePointLRF  | ( | const int  | *index*,  |
|  |  | Eigen::Matrix3f &  | *lrf* |
|  | ) |  |  |

 | protected |

 
 Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point in input\_  |
| [out] | lrf | the resultant local reference frame  |

   
Returns
signed distance of the highest point from the fitted plane. Max if the lrf is not computable. 
 Definition at line [110](https://pointclouds.org/documentation/flare_8hpp_source.html#l00110) of file [flare.hpp](https://pointclouds.org/documentation/flare_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::geometry::projectedAsUnitVector()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00115), and [pcl::geometry::randomOrthogonalAxis()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00134).

    deinitCompute()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::deinitCompute |

 | overrideprotectedvirtual |

 
 This method should get called after the actual computation is ended. 

 Reimplemented from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413).

 Definition at line [91](https://pointclouds.org/documentation/flare_8hpp_source.html#l00091) of file [flare.hpp](https://pointclouds.org/documentation/flare_8hpp_source.html).

    getMarginThresh()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getMarginThresh  | ( |  | ) |  const |

 | inline |

 
 Get the percentage of the search tangent radius after which a point is considered part of the support. 

 
Returns
The percentage of the search tangent radius after which a point is considered part of the support. 
 Definition at line [141](https://pointclouds.org/documentation/flare_8h_source.html#l00141) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    getMinNeighboursForNormalAxis()
-------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getMinNeighboursForNormalAxis  | ( |  | ) |  const |

 | inline |

 
 Get min number of neighbours required for the computation of Z axis. 

 
Returns
min number of neighbours required for the computation of Z axis. 
 Definition at line [162](https://pointclouds.org/documentation/flare_8h_source.html#l00162) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    getMinNeighboursForTangentAxis()
--------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getMinNeighboursForTangentAxis  | ( |  | ) |  const |

 | inline |

 
 Get min number of neighbours required for the computation of X axis. 

 
Returns
min number of neighbours required for the computation of X axis. 
 Definition at line [183](https://pointclouds.org/documentation/flare_8h_source.html#l00183) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    getSearchMethodForSampledSurface()
----------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e)& [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getSearchMethodForSampledSurface  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the search method used for the estimation of x axis. 

 Definition at line [218](https://pointclouds.org/documentation/flare_8h_source.html#l00218) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    getSearchSampledSurface()
-------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba)& [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getSearchSampledSurface  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the sampled\_surface\_ cloud dataset. 

 Definition at line [205](https://pointclouds.org/documentation/flare_8h_source.html#l00205) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    getSignedDistancesFromHighestPoints()
-------------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const std::vector<SignedDistanceT>& [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getSignedDistancesFromHighestPoints  | ( |  | ) |  const |

 | inline |

 
 Get the signed distances of the highest points from the fitted planes. 

 Definition at line [225](https://pointclouds.org/documentation/flare_8h_source.html#l00225) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    getTangentRadius()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::getTangentRadius  | ( |  | ) |  const |

 | inline |

 
 Get the maximum distance of the points used to estimate the x\_axis of the FLARE Reference Frame for a given point. 

 
Returns
The search radius for x axis. 
 Definition at line [121](https://pointclouds.org/documentation/flare_8h_source.html#l00121) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::initCompute |

 | overrideprotectedvirtual |

 
 This method should get called before starting the actual computation. 

 Reimplemented from [pcl::FeatureFromNormals< PointInT, PointNT, ReferenceFrame >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [47](https://pointclouds.org/documentation/flare_8hpp_source.html#l00047) of file [flare.hpp](https://pointclouds.org/documentation/flare_8hpp_source.html).

    setMarginThresh()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::setMarginThresh  | ( | float  | *margin\_thresh* | ) |  |

 | inline |

 
 Set the percentage of the search tangent radius after which a point is considered part of the support. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | margin\_thresh | the percentage of the search tangent radius after which a point is considered part of the support.  |

   Definition at line [131](https://pointclouds.org/documentation/flare_8h_source.html#l00131) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    setMinNeighboursForNormalAxis()
-------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::setMinNeighboursForNormalAxis  | ( | int  | *min\_neighbors\_for\_normal\_axis* | ) |  |

 | inline |

 
 Set min number of neighbours required for the computation of Z axis. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min\_neighbors\_for\_normal\_axis | min number of neighbours required for the computation of Z axis.  |

   Definition at line [152](https://pointclouds.org/documentation/flare_8h_source.html#l00152) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    setMinNeighboursForTangentAxis()
--------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::setMinNeighboursForTangentAxis  | ( | int  | *min\_neighbors\_for\_tangent\_axis* | ) |  |

 | inline |

 
 Set min number of neighbours required for the computation of X axis. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min\_neighbors\_for\_tangent\_axis | min number of neighbours required for the computation of X axis.  |

   Definition at line [173](https://pointclouds.org/documentation/flare_8h_source.html#l00173) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    setSearchMethodForSampledSurface()
----------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::setSearchMethodForSampledSurface  | ( | const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &  | *tree* | ) |  |

 | inline |

 
 Provide a pointer to the search object linked to sampled\_surface. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | tree | a pointer to the spatial search object linked to sampled\_surface.  |

   Definition at line [214](https://pointclouds.org/documentation/flare_8h_source.html#l00214) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    setSearchSampledSurface()
-------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::setSearchSampledSurface  | ( | const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &  | *cloud* | ) |  |

 | inline |

 
 Provide a pointer to the dataset used for the estimation of X axis. 

 As the estimation of x axis is negligibly affected by surface downsampling, this method lets to consider a downsampled version of surface\_ in the estimation of x axis.   
 This is optional, if this is not set, it will only use the data in the surface\_ cloud to estimate the x axis. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | a pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") |

   Definition at line [197](https://pointclouds.org/documentation/flare_8h_source.html#l00197) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

    setTangentRadius()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FLARELocalReferenceFrameEstimation](classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation)< PointInT, PointNT, PointOutT, SignedDistanceT >::setTangentRadius  | ( | float  | *radius* | ) |  |

 | inline |

 
 Set the maximum distance of the points used to estimate the x\_axis of the FLARE Reference Frame for a given point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | The search radius for x axis.  |

   Definition at line [111](https://pointclouds.org/documentation/flare_8h_source.html#l00111) of file [flare.h](https://pointclouds.org/documentation/flare_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[flare.h](https://pointclouds.org/documentation/flare_8h_source.html)
* pcl/features/impl/[flare.hpp](https://pointclouds.org/documentation/flare_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_f_l_a_r_e_local_reference_frame_estimation.html>

[FPFHEstimation](classpcl_1_1_f_p_f_h_estimation "FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud d...") estimates the **Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH)** descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_f_p_f_h_estimation#details)

 `#include <[pcl/features/fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_f_p_f_h_estimation#ad013b2605952866c9ab427478e354480) = shared\_ptr< [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_f_p_f_h_estimation#ae59bcd960ea2e1cfdd7eb2e6bd3b9382) = shared\_ptr< const [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_f_p_f_h_estimation#a472a178e9393bb882252e9cff2e190f6) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::FPFHSignature33 >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::FPFHSignature33](structpcl_1_1_f_p_f_h_signature33) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::FPFHSignature33](structpcl_1_1_f_p_f_h_signature33) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation#abf2447f74cdee9ae5d5c316a488c3ce9) () |
|  | Empty constructor. [More...](classpcl_1_1_f_p_f_h_estimation#abf2447f74cdee9ae5d5c316a488c3ce9) |
|
| bool  | [computePairFeatures](classpcl_1_1_f_p_f_h_estimation#ab9e1a82df2cfe1b5ac5bef3060f093a7) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, int p\_idx, int q\_idx, float &f1, float &f2, float &f3, float &f4) |
|  | Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. [More...](classpcl_1_1_f_p_f_h_estimation#ab9e1a82df2cfe1b5ac5bef3060f093a7) |
|
| void  | [computePointSPFHSignature](classpcl_1_1_f_p_f_h_estimation#a57779841adc97676c66118eba0784b05) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) p\_idx, int row, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::MatrixXf &hist\_f1, Eigen::MatrixXf &hist\_f2, Eigen::MatrixXf &hist\_f3) |
|  | Estimate the SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) individual signatures of the three angular (f1, f2, f3) features for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_f_p_f_h_estimation#a57779841adc97676c66118eba0784b05) |
|
| void  | [weightPointSPFHSignature](classpcl_1_1_f_p_f_h_estimation#af62ac39fe0333591ab5b4ae1ccfaa1f8) (const Eigen::MatrixXf &hist\_f1, const Eigen::MatrixXf &hist\_f2, const Eigen::MatrixXf &hist\_f3, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &dists, Eigen::VectorXf &fpfh\_histogram) |
|  | Weight the SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) individual histograms to create the final FPFH (Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.")) for a given point based on its 3D spatial neighborhood. [More...](classpcl_1_1_f_p_f_h_estimation#af62ac39fe0333591ab5b4ae1ccfaa1f8) |
|
| void  | [setNrSubdivisions](classpcl_1_1_f_p_f_h_estimation#ae19c8f4c3d2e6c384db71f40dcab0dd4) (int nr\_bins\_f1, int nr\_bins\_f2, int nr\_bins\_f3) |
|  | Set the number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation#ae19c8f4c3d2e6c384db71f40dcab0dd4) |
|
| void  | [getNrSubdivisions](classpcl_1_1_f_p_f_h_estimation#a3f8d75ebe5861dc669094c9100bcd3e8) (int &nr\_bins\_f1, int &nr\_bins\_f2, int &nr\_bins\_f3) |
|  | Get the number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation#a3f8d75ebe5861dc669094c9100bcd3e8) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::FPFHSignature33 >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeSPFHSignatures](classpcl_1_1_f_p_f_h_estimation#a4817bc94da4f0b23bccbb793b6849469) (std::vector< int > &spf\_hist\_lookup, Eigen::MatrixXf &hist\_f1, Eigen::MatrixXf &hist\_f2, Eigen::MatrixXf &hist\_f3) |
|  | Estimate the set of all SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) signatures for the input cloud. [More...](classpcl_1_1_f_p_f_h_estimation#a4817bc94da4f0b23bccbb793b6849469) |
|
| void  | [computeFeature](classpcl_1_1_f_p_f_h_estimation#a8dfb20141ba085c9d088d996349373a5) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (FPFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_f_p_f_h_estimation#a8dfb20141ba085c9d088d996349373a5) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::FPFHSignature33 >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| int  | [nr\_bins\_f1\_](classpcl_1_1_f_p_f_h_estimation#ae3086a63fe60b49fe5c819e56722ce91) |
|  | The number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation#ae3086a63fe60b49fe5c819e56722ce91) |
|
| int  | [nr\_bins\_f2\_](classpcl_1_1_f_p_f_h_estimation#ab2cbedff11dd1b269a67c7dd7cfaecd0) |
|
| int  | [nr\_bins\_f3\_](classpcl_1_1_f_p_f_h_estimation#a48f5f74204df97c7fac532ee8164c5d6) |
|
| Eigen::MatrixXf  | [hist\_f1\_](classpcl_1_1_f_p_f_h_estimation#a97dc7164a7afc7c6861b173c71e20ece) |
|  | Placeholder for the f1 histogram. [More...](classpcl_1_1_f_p_f_h_estimation#a97dc7164a7afc7c6861b173c71e20ece) |
|
| Eigen::MatrixXf  | [hist\_f2\_](classpcl_1_1_f_p_f_h_estimation#a69a85d6a81b7cd3ff49f93578e3a23d7) |
|  | Placeholder for the f2 histogram. [More...](classpcl_1_1_f_p_f_h_estimation#a69a85d6a81b7cd3ff49f93578e3a23d7) |
|
| Eigen::MatrixXf  | [hist\_f3\_](classpcl_1_1_f_p_f_h_estimation#a52949a65f799b96065cc45b36924d2c4) |
|  | Placeholder for the f3 histogram. [More...](classpcl_1_1_f_p_f_h_estimation#a52949a65f799b96065cc45b36924d2c4) |
|
| Eigen::VectorXf  | [fpfh\_histogram\_](classpcl_1_1_f_p_f_h_estimation#aad2aa2a9a8c6b3c08a1ed45a75ab23f3) |
|  | Placeholder for a point's FPFH signature. [More...](classpcl_1_1_f_p_f_h_estimation#aad2aa2a9a8c6b3c08a1ed45a75ab23f3) |
|
| float  | [d\_pi\_](classpcl_1_1_f_p_f_h_estimation#a44079dfd6916950b62004ee617d84099) |
|  | Float constant = 1.0 / (2.0 \* M\_PI) [More...](classpcl_1_1_f_p_f_h_estimation#a44079dfd6916950b62004ee617d84099) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::FPFHSignature33 >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::FPFHSignature33> class pcl::FPFHEstimation< PointInT, PointNT, PointOutT >

 [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation "FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud d...") estimates the **Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH)** descriptor for a given point cloud dataset containing points and normals. 

 A commonly used type for PointOutT is [pcl::FPFHSignature33](structpcl_1_1_f_p_f_h_signature33 "A point structure representing the Fast Point Feature Histogram (FPFH).").

 
Note
If you use this code in any academic work, please cite:
 * R.B. Rusu, N. Blodow, M. Beetz. Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (FPFH) for 3D [Registration](classpcl_1_1_registration "Registration represents the base registration class for general purpose, ICP-like methods."). In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Kobe, Japan, May 12-17 2009.
* R.B. Rusu, A. Holzbach, N. Blodow, M. Beetz. Fast Geometric Point Labeling using Conditional Random Fields. In Proceedings of the 22nd IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), St. Louis, MO, USA, October 11-15 2009.

 
Attention
The convention for FPFH features is:* if a query point's nearest neighbors cannot be estimated, the FPFH feature will be set to NaN (not a number)
* it is impossible to estimate a FPFH descriptor for a point that doesn't have finite 3D coordinates. Therefore, any point that contains NaN data on x, y, or z, will have its FPFH feature property set to NaN.

 
 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p) for examples on parallel implementations of the FPFH (Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.")).
 
Author
Radu B. Rusu 
 Definition at line [78](https://pointclouds.org/documentation/fpfh_8h_source.html#l00078) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |
| --- |
| using [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [82](https://pointclouds.org/documentation/fpfh_8h_source.html#l00082) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |
| --- |
| using [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [92](https://pointclouds.org/documentation/fpfh_8h_source.html#l00092) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |
| --- |
| using [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [81](https://pointclouds.org/documentation/fpfh_8h_source.html#l00081) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  FPFHEstimation()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[FPFHEstimation](classpcl_1_1_f_p_f_h_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [95](https://pointclouds.org/documentation/fpfh_8h_source.html#l00095) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (FPFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains the FPFH feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [238](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00238) of file [fpfh.hpp](https://pointclouds.org/documentation/fpfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePairFeatures()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computePairFeatures  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | int  | *p\_idx*,  |
|  |  | int  | *q\_idx*,  |
|  |  | float &  | *f1*,  |
|  |  | float &  | *f2*,  |
|  |  | float &  | *f3*,  |
|  |  | float &  | *f4* |
|  | ) |  |  |

 
 Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. 

 
Note
For explanations about the features, please see the literature mentioned above (the order of the features might be different). 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the dataset containing the XYZ Cartesian coordinates of the two points  |
| [in] | normals | the dataset containing the surface normals (assuming normalized vectors) at each point in cloud  |
| [in] | p\_idx | the index of the first point (source)  |
| [in] | q\_idx | the index of the second point (target)  |
| [out] | f1 | the first angular feature (angle between the projection of nq\_idx and u)  |
| [out] | f2 | the second angular feature (angle between nq\_idx and v)  |
| [out] | f3 | the third angular feature (angle between np\_idx and |p\_idx - q\_idx|)  |
| [out] | f4 | the distance feature (p\_idx - q\_idx)  |

   Definition at line [52](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00052) of file [fpfh.hpp](https://pointclouds.org/documentation/fpfh_8hpp_source.html).

 References [pcl::computePairFeatures()](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9).

    computePointSPFHSignature()
---------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computePointSPFHSignature  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *p\_idx*,  |
|  |  | int  | *row*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::MatrixXf &  | *hist\_f1*,  |
|  |  | Eigen::MatrixXf &  | *hist\_f2*,  |
|  |  | Eigen::MatrixXf &  | *hist\_f3* |
|  | ) |  |  |

 
 Estimate the SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) individual signatures of the three angular (f1, f2, f3) features for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the dataset containing the XYZ Cartesian coordinates of the two points  |
| [in] | normals | the dataset containing the surface normals at each point in *cloud* |
| [in] | p\_idx | the index of the query point (source)  |
| [in] | row | the index row in feature histogramms  |
| [in] | indices | the k-neighborhood point indices in the dataset  |
| [out] | hist\_f1 | the resultant SPFH histogram for feature f1  |
| [out] | hist\_f2 | the resultant SPFH histogram for feature f2  |
| [out] | hist\_f3 | the resultant SPFH histogram for feature f3  |

   Definition at line [64](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00064) of file [fpfh.hpp](https://pointclouds.org/documentation/fpfh_8hpp_source.html).

 References [pcl::computePairFeatures()](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9), and [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    computeSPFHSignatures()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeSPFHSignatures  | ( | std::vector< int > &  | *spf\_hist\_lookup*,  |
|  |  | Eigen::MatrixXf &  | *hist\_f1*,  |
|  |  | Eigen::MatrixXf &  | *hist\_f2*,  |
|  |  | Eigen::MatrixXf &  | *hist\_f3* |
|  | ) |  |  |

 | protected |

 
 Estimate the set of all SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) signatures for the input cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | spf\_hist\_lookup | a lookup table for all the SPF feature indices  |
| [out] | hist\_f1 | the resultant SPFH histogram for feature f1  |
| [out] | hist\_f2 | the resultant SPFH histogram for feature f2  |
| [out] | hist\_f3 | the resultant SPFH histogram for feature f3  |

   Definition at line [182](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00182) of file [fpfh.hpp](https://pointclouds.org/documentation/fpfh_8hpp_source.html).

    getNrSubdivisions()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::getNrSubdivisions  | ( | int &  | *nr\_bins\_f1*,  |
|  |  | int &  | *nr\_bins\_f2*,  |
|  |  | int &  | *nr\_bins\_f3* |
|  | ) |  |  |

 | inline |

 
 Get the number of subdivisions for each angular feature interval. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | nr\_bins\_f1 | number of subdivisions for the first angular feature  |
| [out] | nr\_bins\_f2 | number of subdivisions for the second angular feature  |
| [out] | nr\_bins\_f3 | number of subdivisions for the third angular feature  |

   Definition at line [172](https://pointclouds.org/documentation/fpfh_8h_source.html#l00172) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 References [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::nr\_bins\_f1\_](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200), [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::nr\_bins\_f2\_](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200), and [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::nr\_bins\_f3\_](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200).

    setNrSubdivisions()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::setNrSubdivisions  | ( | int  | *nr\_bins\_f1*,  |
|  |  | int  | *nr\_bins\_f2*,  |
|  |  | int  | *nr\_bins\_f3* |
|  | ) |  |  |

 | inline |

 
 Set the number of subdivisions for each angular feature interval. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_bins\_f1 | number of subdivisions for the first angular feature  |
| [in] | nr\_bins\_f2 | number of subdivisions for the second angular feature  |
| [in] | nr\_bins\_f3 | number of subdivisions for the third angular feature  |

   Definition at line [159](https://pointclouds.org/documentation/fpfh_8h_source.html#l00159) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 References [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::nr\_bins\_f1\_](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200), [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::nr\_bins\_f2\_](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200), and [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::nr\_bins\_f3\_](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200).

    weightPointSPFHSignature()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::weightPointSPFHSignature  | ( | const Eigen::MatrixXf &  | *hist\_f1*,  |
|  |  | const Eigen::MatrixXf &  | *hist\_f2*,  |
|  |  | const Eigen::MatrixXf &  | *hist\_f3*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *dists*,  |
|  |  | Eigen::VectorXf &  | *fpfh\_histogram* |
|  | ) |  |  |

 
 Weight the SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) individual histograms to create the final FPFH (Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.")) for a given point based on its 3D spatial neighborhood. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | hist\_f1 | the histogram feature vector of *f1* values over the given patch  |
| [in] | hist\_f2 | the histogram feature vector of *f2* values over the given patch  |
| [in] | hist\_f3 | the histogram feature vector of *f3* values over the given patch  |
| [in] | indices | the point indices of p\_idx's k-neighborhood in the point cloud  |
| [in] | dists | the distances from p\_idx to all its k-neighbors  |
| [out] | fpfh\_histogram | the resultant FPFH histogram representing the feature at the query point  |

   Definition at line [110](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00110) of file [fpfh.hpp](https://pointclouds.org/documentation/fpfh_8hpp_source.html).

   Member Data Documentation
-------------------------

  d\_pi\_
-------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::d\_pi\_ |

 | protected |

 
 Float constant = 1.0 / (2.0 \* M\_PI) 

 Definition at line [215](https://pointclouds.org/documentation/fpfh_8h_source.html#l00215) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    fpfh\_histogram\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::VectorXf [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::fpfh\_histogram\_ |

 | protected |

 
 Placeholder for a point's FPFH signature. 

 Definition at line [212](https://pointclouds.org/documentation/fpfh_8h_source.html#l00212) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    hist\_f1\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::MatrixXf [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::hist\_f1\_ |

 | protected |

 
 Placeholder for the f1 histogram. 

 Definition at line [203](https://pointclouds.org/documentation/fpfh_8h_source.html#l00203) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    hist\_f2\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::MatrixXf [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::hist\_f2\_ |

 | protected |

 
 Placeholder for the f2 histogram. 

 Definition at line [206](https://pointclouds.org/documentation/fpfh_8h_source.html#l00206) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    hist\_f3\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::MatrixXf [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::hist\_f3\_ |

 | protected |

 
 Placeholder for the f3 histogram. 

 Definition at line [209](https://pointclouds.org/documentation/fpfh_8h_source.html#l00209) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

    nr\_bins\_f1\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::nr\_bins\_f1\_ |

 | protected |

 
 The number of subdivisions for each angular feature interval. 

 Definition at line [200](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 Referenced by [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::getNrSubdivisions()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00172), and [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::setNrSubdivisions()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00159).

    nr\_bins\_f2\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::nr\_bins\_f2\_ |

 | protected |

 
 Definition at line [200](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 Referenced by [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::getNrSubdivisions()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00172), and [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::setNrSubdivisions()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00159).

    nr\_bins\_f3\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::FPFHSignature33>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::nr\_bins\_f3\_ |

 | protected |

 
 Definition at line [200](https://pointclouds.org/documentation/fpfh_8h_source.html#l00200) of file [fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html).

 Referenced by [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::getNrSubdivisions()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00172), and [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::setNrSubdivisions()](https://pointclouds.org/documentation/fpfh_8h_source.html#l00159).

   

---

The documentation for this class was generated from the following files:* pcl/features/[fpfh.h](https://pointclouds.org/documentation/fpfh_8h_source.html)
* pcl/features/impl/[fpfh.hpp](https://pointclouds.org/documentation/fpfh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_f_p_f_h_estimation.html>

[FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p "FPFHEstimationOMP estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point clou...") estimates the Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. [More...](classpcl_1_1_f_p_f_h_estimation_o_m_p#details)

 `#include <[pcl/features/fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_f_p_f_h_estimation_o_m_p#a9d99dad589e8aff1ecbd7b79ba67db70) = shared\_ptr< [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_f_p_f_h_estimation_o_m_p#a614e21049710e61edd4eaa3d56c4af35) = shared\_ptr< const [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_f_p_f_h_estimation_o_m_p#a8d4953bb1678d2c6c6ffbe92dd47bdaf) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_f_p_f_h_estimation) |
| using  | [Ptr](classpcl_1_1_f_p_f_h_estimation#ad013b2605952866c9ab427478e354480) = shared\_ptr< [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_f_p_f_h_estimation#ae59bcd960ea2e1cfdd7eb2e6bd3b9382) = shared\_ptr< const [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_f_p_f_h_estimation#a472a178e9393bb882252e9cff2e190f6) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p#aded2c9a6b0e9d36a3f4e2e9e6958470a) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_f_p_f_h_estimation_o_m_p#aded2c9a6b0e9d36a3f4e2e9e6958470a) |
|
| void  | [setNumberOfThreads](classpcl_1_1_f_p_f_h_estimation_o_m_p#a71b316b7a44cc31e2217916790be2d0a) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_f_p_f_h_estimation_o_m_p#a71b316b7a44cc31e2217916790be2d0a) |
|
| - Public Member Functions inherited from [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_f_p_f_h_estimation) |
|  | [FPFHEstimation](classpcl_1_1_f_p_f_h_estimation#abf2447f74cdee9ae5d5c316a488c3ce9) () |
|  | Empty constructor. [More...](classpcl_1_1_f_p_f_h_estimation#abf2447f74cdee9ae5d5c316a488c3ce9) |
|
| bool  | [computePairFeatures](classpcl_1_1_f_p_f_h_estimation#ab9e1a82df2cfe1b5ac5bef3060f093a7) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, int p\_idx, int q\_idx, float &f1, float &f2, float &f3, float &f4) |
|  | Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. [More...](classpcl_1_1_f_p_f_h_estimation#ab9e1a82df2cfe1b5ac5bef3060f093a7) |
|
| void  | [computePointSPFHSignature](classpcl_1_1_f_p_f_h_estimation#a57779841adc97676c66118eba0784b05) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) p\_idx, int row, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::MatrixXf &hist\_f1, Eigen::MatrixXf &hist\_f2, Eigen::MatrixXf &hist\_f3) |
|  | Estimate the SPFH (Simple Point Feature Histograms) individual signatures of the three angular (f1, f2, f3) features for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_f_p_f_h_estimation#a57779841adc97676c66118eba0784b05) |
|
| void  | [weightPointSPFHSignature](classpcl_1_1_f_p_f_h_estimation#af62ac39fe0333591ab5b4ae1ccfaa1f8) (const Eigen::MatrixXf &hist\_f1, const Eigen::MatrixXf &hist\_f2, const Eigen::MatrixXf &hist\_f3, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &dists, Eigen::VectorXf &fpfh\_histogram) |
|  | Weight the SPFH (Simple Point Feature Histograms) individual histograms to create the final FPFH (Fast Point Feature Histogram) for a given point based on its 3D spatial neighborhood. [More...](classpcl_1_1_f_p_f_h_estimation#af62ac39fe0333591ab5b4ae1ccfaa1f8) |
|
| void  | [setNrSubdivisions](classpcl_1_1_f_p_f_h_estimation#ae19c8f4c3d2e6c384db71f40dcab0dd4) (int nr\_bins\_f1, int nr\_bins\_f2, int nr\_bins\_f3) |
|  | Set the number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation#ae19c8f4c3d2e6c384db71f40dcab0dd4) |
|
| void  | [getNrSubdivisions](classpcl_1_1_f_p_f_h_estimation#a3f8d75ebe5861dc669094c9100bcd3e8) (int &nr\_bins\_f1, int &nr\_bins\_f2, int &nr\_bins\_f3) |
|  | Get the number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation#a3f8d75ebe5861dc669094c9100bcd3e8) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Public Attributes |
| int  | [nr\_bins\_f1\_](classpcl_1_1_f_p_f_h_estimation_o_m_p#a65b67e65f53cd9390150b1cc267a5f07) |
|  | The number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation_o_m_p#a65b67e65f53cd9390150b1cc267a5f07) |
|
| int  | [nr\_bins\_f2\_](classpcl_1_1_f_p_f_h_estimation_o_m_p#a1089901fa08edad9e3469762b1fe0c01) |
|
| int  | [nr\_bins\_f3\_](classpcl_1_1_f_p_f_h_estimation_o_m_p#a4686f26467fe667aff9eade260d095c0) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_f_p_f_h_estimation) |
| void  | [computeSPFHSignatures](classpcl_1_1_f_p_f_h_estimation#a4817bc94da4f0b23bccbb793b6849469) (std::vector< int > &spf\_hist\_lookup, Eigen::MatrixXf &hist\_f1, Eigen::MatrixXf &hist\_f2, Eigen::MatrixXf &hist\_f3) |
|  | Estimate the set of all SPFH (Simple Point Feature Histograms) signatures for the input cloud. [More...](classpcl_1_1_f_p_f_h_estimation#a4817bc94da4f0b23bccbb793b6849469) |
|
| void  | [computeFeature](classpcl_1_1_f_p_f_h_estimation#a8dfb20141ba085c9d088d996349373a5) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Fast Point Feature Histograms (FPFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_f_p_f_h_estimation#a8dfb20141ba085c9d088d996349373a5) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Attributes inherited from [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >](classpcl_1_1_f_p_f_h_estimation) |
| int  | [nr\_bins\_f1\_](classpcl_1_1_f_p_f_h_estimation#ae3086a63fe60b49fe5c819e56722ce91) |
|  | The number of subdivisions for each angular feature interval. [More...](classpcl_1_1_f_p_f_h_estimation#ae3086a63fe60b49fe5c819e56722ce91) |
|
| int  | [nr\_bins\_f2\_](classpcl_1_1_f_p_f_h_estimation#ab2cbedff11dd1b269a67c7dd7cfaecd0) |
|
| int  | [nr\_bins\_f3\_](classpcl_1_1_f_p_f_h_estimation#a48f5f74204df97c7fac532ee8164c5d6) |
|
| Eigen::MatrixXf  | [hist\_f1\_](classpcl_1_1_f_p_f_h_estimation#a97dc7164a7afc7c6861b173c71e20ece) |
|  | Placeholder for the f1 histogram. [More...](classpcl_1_1_f_p_f_h_estimation#a97dc7164a7afc7c6861b173c71e20ece) |
|
| Eigen::MatrixXf  | [hist\_f2\_](classpcl_1_1_f_p_f_h_estimation#a69a85d6a81b7cd3ff49f93578e3a23d7) |
|  | Placeholder for the f2 histogram. [More...](classpcl_1_1_f_p_f_h_estimation#a69a85d6a81b7cd3ff49f93578e3a23d7) |
|
| Eigen::MatrixXf  | [hist\_f3\_](classpcl_1_1_f_p_f_h_estimation#a52949a65f799b96065cc45b36924d2c4) |
|  | Placeholder for the f3 histogram. [More...](classpcl_1_1_f_p_f_h_estimation#a52949a65f799b96065cc45b36924d2c4) |
|
| Eigen::VectorXf  | [fpfh\_histogram\_](classpcl_1_1_f_p_f_h_estimation#aad2aa2a9a8c6b3c08a1ed45a75ab23f3) |
|  | Placeholder for a point's FPFH signature. [More...](classpcl_1_1_f_p_f_h_estimation#aad2aa2a9a8c6b3c08a1ed45a75ab23f3) |
|
| float  | [d\_pi\_](classpcl_1_1_f_p_f_h_estimation#a44079dfd6916950b62004ee617d84099) |
|  | Float constant = 1.0 / (2.0 \* M\_PI) [More...](classpcl_1_1_f_p_f_h_estimation#a44079dfd6916950b62004ee617d84099) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT> class pcl::FPFHEstimationOMP< PointInT, PointNT, PointOutT >

 [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p "FPFHEstimationOMP estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point clou...") estimates the Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (FPFH) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. 

 
Note
If you use this code in any academic work, please cite:
 * R.B. Rusu, N. Blodow, M. Beetz. Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (FPFH) for 3D [Registration](classpcl_1_1_registration "Registration represents the base registration class for general purpose, ICP-like methods."). In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Kobe, Japan, May 12-17 2009.
* R.B. Rusu, A. Holzbach, N. Blodow, M. Beetz. Fast Geometric Point Labeling using Conditional Random Fields. In Proceedings of the 22nd IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), St. Louis, MO, USA, October 11-15 2009.

 
Attention
The convention for FPFH features is:* if a query point's nearest neighbors cannot be estimated, the FPFH feature will be set to NaN (not a number)
* it is impossible to estimate a FPFH descriptor for a point that doesn't have finite 3D coordinates. Therefore, any point that contains NaN data on x, y, or z, will have its FPFH feature property set to NaN.

 
 
Author
Radu B. Rusu 
 Definition at line [74](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00074) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [78](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00078) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [92](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00092) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [77](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00077) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  FPFHEstimationOMP()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::[FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p) | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [97](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00097) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), and [pcl::FPFHEstimationOMP< PointInT, PointNT, PointOutT >::setNumberOfThreads()](https://pointclouds.org/documentation/fpfh__omp_8hpp_source.html#l00052).

   Member Function Documentation
-----------------------------

  setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [52](https://pointclouds.org/documentation/fpfh__omp_8hpp_source.html#l00052) of file [fpfh\_omp.hpp](https://pointclouds.org/documentation/fpfh__omp_8hpp_source.html).

 Referenced by [pcl::FPFHEstimationOMP< PointInT, PointNT, PointOutT >::FPFHEstimationOMP()](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00097).

   Member Data Documentation
-------------------------

  nr\_bins\_f1\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| int [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::nr\_bins\_f1\_ |

 
 The number of subdivisions for each angular feature interval. 

 Definition at line [121](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00121) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

    nr\_bins\_f2\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| int [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::nr\_bins\_f2\_ |

 
 Definition at line [121](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00121) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

    nr\_bins\_f3\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| int [pcl::FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p)< PointInT, PointNT, PointOutT >::nr\_bins\_f3\_ |

 
 Definition at line [121](https://pointclouds.org/documentation/fpfh__omp_8h_source.html#l00121) of file [fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[fpfh\_omp.h](https://pointclouds.org/documentation/fpfh__omp_8h_source.html)
* pcl/features/impl/[fpfh\_omp.hpp](https://pointclouds.org/documentation/fpfh__omp_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_f_p_f_h_estimation_o_m_p.html>

[GASDEstimation](classpcl_1_1_g_a_s_d_estimation "GASDEstimation estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given poin...") estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given point cloud dataset given XYZ data. [More...](classpcl_1_1_g_a_s_d_estimation#details)

 `#include <[pcl/features/gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_g_a_s_d_estimation#ad37a2032ee1e1089e996b06a1d9b15a5) = shared\_ptr< [GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_g_a_s_d_estimation#ad0405489f674f5d16d6404191136e3e4) = shared\_ptr< const [GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, GASDSignature512 >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [GASDSignature512](structpcl_1_1_g_a_s_d_signature512) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [GASDSignature512](structpcl_1_1_g_a_s_d_signature512) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [GASDSignature512](structpcl_1_1_g_a_s_d_signature512) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [GASDEstimation](classpcl_1_1_g_a_s_d_estimation#a05f32e9bd2f7116edadb3f4c133a7099) (const Eigen::Vector3f &view\_direction=Eigen::Vector3f(0.0f, 0.0f, 1.0f), const std::size\_t shape\_half\_grid\_size=4, const std::size\_t shape\_hists\_size=1, const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) shape\_interp=[INTERP\_TRILINEAR](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9a836169fc1160e312ad956b61217ce6cd)) |
|  | Constructor. [More...](classpcl_1_1_g_a_s_d_estimation#a05f32e9bd2f7116edadb3f4c133a7099) |
|
| void  | [setViewDirection](classpcl_1_1_g_a_s_d_estimation#af97897c760455329b35f02b68f45fa18) (const Eigen::Vector3f &dir) |
|  | Set the view direction. [More...](classpcl_1_1_g_a_s_d_estimation#af97897c760455329b35f02b68f45fa18) |
|
| void  | [setShapeHalfGridSize](classpcl_1_1_g_a_s_d_estimation#ae2b39e32d573456218e79acfdd29a49f) (const std::size\_t shgs) |
|  | Set the shape half grid size. [More...](classpcl_1_1_g_a_s_d_estimation#ae2b39e32d573456218e79acfdd29a49f) |
|
| void  | [setShapeHistsSize](classpcl_1_1_g_a_s_d_estimation#a32f3f9f5f54f0868750c49cf7cac9cae) (const std::size\_t shs) |
|  | Set the shape histograms size. [More...](classpcl_1_1_g_a_s_d_estimation#a32f3f9f5f54f0868750c49cf7cac9cae) |
|
| void  | [setShapeHistsInterpMethod](classpcl_1_1_g_a_s_d_estimation#a3648b467f9e57ce49b336f5d6026c5a5) (const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) interp) |
|  | Set the shape histograms interpolation method. [More...](classpcl_1_1_g_a_s_d_estimation#a3648b467f9e57ce49b336f5d6026c5a5) |
|
| const Eigen::Matrix4f &  | [getTransform](classpcl_1_1_g_a_s_d_estimation#a8a0630cf47c697ed2229760a016bce5f) () const |
|  | Returns the transformation aligning the point cloud to the canonical coordinate system. [More...](classpcl_1_1_g_a_s_d_estimation#a8a0630cf47c697ed2229760a016bce5f) |
|
| void  | [compute](classpcl_1_1_g_a_s_d_estimation#ae4ba289f2ebdf607e9e882bcbc9858f4) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_g_a_s_d_estimation#ae4ba289f2ebdf607e9e882bcbc9858f4) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, GASDSignature512 >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [addSampleToHistograms](classpcl_1_1_g_a_s_d_estimation#af7c536a5990f37dc627b9f245d256ccb) (const Eigen::Vector4f &p, const float max\_coord, const std::size\_t half\_grid\_size, const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) interp, const float hbin, const float hist\_incr, std::vector< Eigen::VectorXf > &hists) |
|  | add a sample to its respective histogram, optionally performing interpolation. [More...](classpcl_1_1_g_a_s_d_estimation#af7c536a5990f37dc627b9f245d256ccb) |
|
| void  | [computeFeature](classpcl_1_1_g_a_s_d_estimation#a1e29c1f1a47384983cfbae74ccfcfd89) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate GASD descriptor. [More...](classpcl_1_1_g_a_s_d_estimation#a1e29c1f1a47384983cfbae74ccfcfd89) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, GASDSignature512 >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) | [shape\_samples\_](classpcl_1_1_g_a_s_d_estimation#a45a126b41c7bd8860abfb0329afcfe43) |
|  | Point cloud aligned to the canonical coordinate system. [More...](classpcl_1_1_g_a_s_d_estimation#a45a126b41c7bd8860abfb0329afcfe43) |
|
| float  | [max\_coord\_](classpcl_1_1_g_a_s_d_estimation#a067a525e604471e1b422cdc01138b5d5) |
|  | Normalization factor with respect to axis-aligned bounding cube centered on the origin. [More...](classpcl_1_1_g_a_s_d_estimation#a067a525e604471e1b422cdc01138b5d5) |
|
| float  | [hist\_incr\_](classpcl_1_1_g_a_s_d_estimation#aa15eb6ebf24969e1e870cb071ee3fdbd) |
|  | Normalized sample contribution with respect to the total number of points in the cloud. [More...](classpcl_1_1_g_a_s_d_estimation#aa15eb6ebf24969e1e870cb071ee3fdbd) |
|
| std::size\_t  | [pos\_](classpcl_1_1_g_a_s_d_estimation#a003c837d5dae6523afe58123659a1ced) |
|  | Current position of output descriptor point cloud. [More...](classpcl_1_1_g_a_s_d_estimation#a003c837d5dae6523afe58123659a1ced) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, GASDSignature512 >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = GASDSignature512> class pcl::GASDEstimation< PointInT, PointOutT >

 [GASDEstimation](classpcl_1_1_g_a_s_d_estimation "GASDEstimation estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given poin...") estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given point cloud dataset given XYZ data. 

 The suggested PointOutT is [pcl::GASDSignature512](structpcl_1_1_g_a_s_d_signature512 "A point structure representing the Globally Aligned Spatial Distribution (GASD) shape descriptor.").

 
Note
If you use this code in any academic work, please cite:
 * J. Lima, V. Teichrieb. An Efficient Global Point Cloud Descriptor for [Object](https://pointclouds.org/documentation/class_object.html) Recognition and Pose Estimation. In Proceedings of the 29th SIBGRAPI - Conference on Graphics, Patterns and Images, Sao Jose dos Campos, Brazil, October 4-7 2016.

 
Author
Joao Paulo Lima
 Voxar Labs, Centro de Informatica, Universidade Federal de Pernambuco, Brazil

 Departamento de Estatistica e Informatica, Universidade Federal Rural de Pernambuco, Brazil 

 Definition at line [74](https://pointclouds.org/documentation/gasd_8h_source.html#l00074) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |
| --- |
| using [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_g_a_s_d_estimation#ad0405489f674f5d16d6404191136e3e4) = shared\_ptr<const [GASDEstimation](classpcl_1_1_g_a_s_d_estimation)<PointInT, PointOutT> > |

 
 Definition at line [80](https://pointclouds.org/documentation/gasd_8h_source.html#l00080) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |
| --- |
| using [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_g_a_s_d_estimation#ad37a2032ee1e1089e996b06a1d9b15a5) = shared\_ptr<[GASDEstimation](classpcl_1_1_g_a_s_d_estimation)<PointInT, PointOutT> > |

 
 Definition at line [79](https://pointclouds.org/documentation/gasd_8h_source.html#l00079) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  GASDEstimation()
----------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::[GASDEstimation](classpcl_1_1_g_a_s_d_estimation) | ( | const Eigen::Vector3f &  | *view\_direction* = `Eigen::Vector3f (0.0f, 0.0f, 1.0f)`,  |
|  |  | const std::size\_t  | *shape\_half\_grid\_size* = `4`,  |
|  |  | const std::size\_t  | *shape\_hists\_size* = `1`,  |
|  |  | const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) | *shape\_interp* = `[INTERP\_TRILINEAR](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9a836169fc1160e312ad956b61217ce6cd)` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | view\_direction | view direction  |
| [in] | shape\_half\_grid\_size | shape half grid size  |
| [in] | shape\_hists\_size | shape histograms size  |
| [in] | shape\_interp | shape histograms interpolation method  |

   Definition at line [88](https://pointclouds.org/documentation/gasd_8h_source.html#l00088) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

 References [pcl::Feature< PointInT, GASDSignature512 >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), [pcl::Feature< PointInT, GASDSignature512 >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240), and [pcl::Feature< PointInT, GASDSignature512 >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

   Member Function Documentation
-----------------------------

  addSampleToHistograms()
-----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::addSampleToHistograms  | ( | const Eigen::Vector4f &  | *p*,  |
|  |  | const float  | *max\_coord*,  |
|  |  | const std::size\_t  | *half\_grid\_size*,  |
|  |  | const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) | *interp*,  |
|  |  | const float  | *hbin*,  |
|  |  | const float  | *hist\_incr*,  |
|  |  | std::vector< Eigen::VectorXf > &  | *hists* |
|  | ) |  |  |

 | protected |

 
 add a sample to its respective histogram, optionally performing interpolation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | p | histogram sample  |
| [in] | max\_coord | normalization factor with respect to axis-aligned bounding cube centered on the origin  |
| [in] | half\_grid\_size | half size of the regular grid used to compute the descriptor  |
| [in] | interp | interpolation method to be used while computing the descriptor  |
| [in] | hbin | histogram bin  |
| [in] | hist\_incr | normalization factor of sample contribution  |
| [in,out] | hists | updated histograms  |

   Definition at line [117](https://pointclouds.org/documentation/gasd_8hpp_source.html#l00117) of file [gasd.hpp](https://pointclouds.org/documentation/gasd_8hpp_source.html).

 References [pcl::INTERP\_NONE](https://pointclouds.org/documentation/gasd_8h_source.html#l00048).

    compute()
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated feature  |

   Definition at line [50](https://pointclouds.org/documentation/gasd_8hpp_source.html#l00050) of file [gasd.hpp](https://pointclouds.org/documentation/gasd_8hpp_source.html).

    computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotected |

 
 Estimate GASD descriptor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the GASD feature  |

   Definition at line [252](https://pointclouds.org/documentation/gasd_8hpp_source.html#l00252) of file [gasd.hpp](https://pointclouds.org/documentation/gasd_8hpp_source.html).

 References [pcl::getMaxDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197), [pcl::getMinMax3D()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00295), and [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221).

    getTransform()
--------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Matrix4f& [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::getTransform  | ( |  | ) |  const |

 | inline |

 
 Returns the transformation aligning the point cloud to the canonical coordinate system. 

 Definition at line [144](https://pointclouds.org/documentation/gasd_8h_source.html#l00144) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    setShapeHalfGridSize()
----------------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::setShapeHalfGridSize  | ( | const std::size\_t  | *shgs* | ) |  |

 | inline |

 
 Set the shape half grid size. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | shgs | shape half grid size  |

   Definition at line [115](https://pointclouds.org/documentation/gasd_8h_source.html#l00115) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    setShapeHistsInterpMethod()
---------------------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::setShapeHistsInterpMethod  | ( | const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) | *interp* | ) |  |

 | inline |

 
 Set the shape histograms interpolation method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | interp | shape histograms interpolation method  |

   Definition at line [135](https://pointclouds.org/documentation/gasd_8h_source.html#l00135) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    setShapeHistsSize()
-------------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::setShapeHistsSize  | ( | const std::size\_t  | *shs* | ) |  |

 | inline |

 
 Set the shape histograms size. 

 If size is 1, then each histogram bin will store the number of points that belong to its correspondent cell in the 3D regular grid. If size > 1, then for each cell it will be computed a histogram of normalized distances between each sample and the cloud centroid 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | shs | shape histograms size  |

   Definition at line [126](https://pointclouds.org/documentation/gasd_8h_source.html#l00126) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    setViewDirection()
------------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::setViewDirection  | ( | const Eigen::Vector3f &  | *dir* | ) |  |

 | inline |

 
 Set the view direction. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | dir | view direction  |

   Definition at line [106](https://pointclouds.org/documentation/gasd_8h_source.html#l00106) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

   Member Data Documentation
-------------------------

  hist\_incr\_
------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::hist\_incr\_ |

 | protected |

 
 Normalized sample contribution with respect to the total number of points in the cloud. 

 Definition at line [170](https://pointclouds.org/documentation/gasd_8h_source.html#l00170) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    max\_coord\_
------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::max\_coord\_ |

 | protected |

 
 Normalization factor with respect to axis-aligned bounding cube centered on the origin. 

 Definition at line [167](https://pointclouds.org/documentation/gasd_8h_source.html#l00167) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    pos\_
-----

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::pos\_ |

 | protected |

 
 Current position of output descriptor point cloud. 

 Definition at line [173](https://pointclouds.org/documentation/gasd_8h_source.html#l00173) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    shape\_samples\_
----------------

    template<typename PointInT , typename PointOutT = GASDSignature512>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) [pcl::GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, PointOutT >::shape\_samples\_ |

 | protected |

 
 Point cloud aligned to the canonical coordinate system. 

 Definition at line [164](https://pointclouds.org/documentation/gasd_8h_source.html#l00164) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html)
* pcl/features/impl/[gasd.hpp](https://pointclouds.org/documentation/gasd_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_g_a_s_d_estimation.html>

[GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation "GASDColorEstimation estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given...") estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given point cloud dataset given XYZ and [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. [More...](classpcl_1_1_g_a_s_d_color_estimation#details)

 `#include <[pcl/features/gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_g_a_s_d_color_estimation#a92cce079d1a76f1c45a345f2546a0c71) = shared\_ptr< [GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_g_a_s_d_color_estimation#a835300178ad6d3ee16a6a849abfd6462) = shared\_ptr< const [GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT > > |
|
| - Public Types inherited from [pcl::GASDEstimation< PointInT, GASDSignature984 >](classpcl_1_1_g_a_s_d_estimation) |
| using  | [Ptr](classpcl_1_1_g_a_s_d_estimation#ad37a2032ee1e1089e996b06a1d9b15a5) = shared\_ptr< [GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, [GASDSignature984](structpcl_1_1_g_a_s_d_signature984) > > |
|
| using  | [ConstPtr](classpcl_1_1_g_a_s_d_estimation#ad0405489f674f5d16d6404191136e3e4) = shared\_ptr< const [GASDEstimation](classpcl_1_1_g_a_s_d_estimation)< PointInT, [GASDSignature984](structpcl_1_1_g_a_s_d_signature984) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation#a778b7229f45264354c957415661ce54d) (const Eigen::Vector3f &view\_direction=Eigen::Vector3f(0.0f, 0.0f, 1.0f), const std::size\_t shape\_half\_grid\_size=3, const std::size\_t shape\_hists\_size=1, const std::size\_t color\_half\_grid\_size=2, const std::size\_t color\_hists\_size=12, const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) shape\_interp=[INTERP\_NONE](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9a2bdcddf8f35b06e8a55bca0993d705f3), const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) color\_interp=[INTERP\_NONE](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9a2bdcddf8f35b06e8a55bca0993d705f3)) |
|  | Constructor. [More...](classpcl_1_1_g_a_s_d_color_estimation#a778b7229f45264354c957415661ce54d) |
|
| void  | [setColorHalfGridSize](classpcl_1_1_g_a_s_d_color_estimation#a77508d10fbd5d089cdea0f04e5a4dd8f) (const std::size\_t chgs) |
|  | Set the color half grid size. [More...](classpcl_1_1_g_a_s_d_color_estimation#a77508d10fbd5d089cdea0f04e5a4dd8f) |
|
| void  | [setColorHistsSize](classpcl_1_1_g_a_s_d_color_estimation#a19c312dbe1b70d4647cec0880ef28b8a) (const std::size\_t chs) |
|  | Set the color histograms size (number of bins in the hue histogram for each cell of the 3D regular grid). [More...](classpcl_1_1_g_a_s_d_color_estimation#a19c312dbe1b70d4647cec0880ef28b8a) |
|
| void  | [setColorHistsInterpMethod](classpcl_1_1_g_a_s_d_color_estimation#a1760abf852e6e28b3995d1d43d4c77f2) (const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) interp) |
|  | Set the color histograms interpolation method. [More...](classpcl_1_1_g_a_s_d_color_estimation#a1760abf852e6e28b3995d1d43d4c77f2) |
|
| - Public Member Functions inherited from [pcl::GASDEstimation< PointInT, GASDSignature984 >](classpcl_1_1_g_a_s_d_estimation) |
|  | [GASDEstimation](classpcl_1_1_g_a_s_d_estimation#a05f32e9bd2f7116edadb3f4c133a7099) (const Eigen::Vector3f &view\_direction=Eigen::Vector3f(0.0f, 0.0f, 1.0f), const std::size\_t shape\_half\_grid\_size=4, const std::size\_t shape\_hists\_size=1, const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) shape\_interp=INTERP\_TRILINEAR) |
|  | Constructor. [More...](classpcl_1_1_g_a_s_d_estimation#a05f32e9bd2f7116edadb3f4c133a7099) |
|
| void  | [setViewDirection](classpcl_1_1_g_a_s_d_estimation#af97897c760455329b35f02b68f45fa18) (const Eigen::Vector3f &dir) |
|  | Set the view direction. [More...](classpcl_1_1_g_a_s_d_estimation#af97897c760455329b35f02b68f45fa18) |
|
| void  | [setShapeHalfGridSize](classpcl_1_1_g_a_s_d_estimation#ae2b39e32d573456218e79acfdd29a49f) (const std::size\_t shgs) |
|  | Set the shape half grid size. [More...](classpcl_1_1_g_a_s_d_estimation#ae2b39e32d573456218e79acfdd29a49f) |
|
| void  | [setShapeHistsSize](classpcl_1_1_g_a_s_d_estimation#a32f3f9f5f54f0868750c49cf7cac9cae) (const std::size\_t shs) |
|  | Set the shape histograms size. [More...](classpcl_1_1_g_a_s_d_estimation#a32f3f9f5f54f0868750c49cf7cac9cae) |
|
| void  | [setShapeHistsInterpMethod](classpcl_1_1_g_a_s_d_estimation#a3648b467f9e57ce49b336f5d6026c5a5) (const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) interp) |
|  | Set the shape histograms interpolation method. [More...](classpcl_1_1_g_a_s_d_estimation#a3648b467f9e57ce49b336f5d6026c5a5) |
|
| const Eigen::Matrix4f &  | [getTransform](classpcl_1_1_g_a_s_d_estimation#a8a0630cf47c697ed2229760a016bce5f) () const |
|  | Returns the transformation aligning the point cloud to the canonical coordinate system. [More...](classpcl_1_1_g_a_s_d_estimation#a8a0630cf47c697ed2229760a016bce5f) |
|
| void  | [compute](classpcl_1_1_g_a_s_d_estimation#ae4ba289f2ebdf607e9e882bcbc9858f4) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_g_a_s_d_estimation#ae4ba289f2ebdf607e9e882bcbc9858f4) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::GASDEstimation< PointInT, GASDSignature984 >](classpcl_1_1_g_a_s_d_estimation) |
| void  | [addSampleToHistograms](classpcl_1_1_g_a_s_d_estimation#af7c536a5990f37dc627b9f245d256ccb) (const Eigen::Vector4f &p, const float max\_coord, const std::size\_t half\_grid\_size, const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) interp, const float hbin, const float hist\_incr, std::vector< Eigen::VectorXf > &hists) |
|  | add a sample to its respective histogram, optionally performing interpolation. [More...](classpcl_1_1_g_a_s_d_estimation#af7c536a5990f37dc627b9f245d256ccb) |
|
| void  | [computeFeature](classpcl_1_1_g_a_s_d_estimation#a1e29c1f1a47384983cfbae74ccfcfd89) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate GASD descriptor. [More...](classpcl_1_1_g_a_s_d_estimation#a1e29c1f1a47384983cfbae74ccfcfd89) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Attributes inherited from [pcl::GASDEstimation< PointInT, GASDSignature984 >](classpcl_1_1_g_a_s_d_estimation) |
| [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) | [shape\_samples\_](classpcl_1_1_g_a_s_d_estimation#a45a126b41c7bd8860abfb0329afcfe43) |
|  | Point cloud aligned to the canonical coordinate system. [More...](classpcl_1_1_g_a_s_d_estimation#a45a126b41c7bd8860abfb0329afcfe43) |
|
| float  | [max\_coord\_](classpcl_1_1_g_a_s_d_estimation#a067a525e604471e1b422cdc01138b5d5) |
|  | Normalization factor with respect to axis-aligned bounding cube centered on the origin. [More...](classpcl_1_1_g_a_s_d_estimation#a067a525e604471e1b422cdc01138b5d5) |
|
| float  | [hist\_incr\_](classpcl_1_1_g_a_s_d_estimation#aa15eb6ebf24969e1e870cb071ee3fdbd) |
|  | Normalized sample contribution with respect to the total number of points in the cloud. [More...](classpcl_1_1_g_a_s_d_estimation#aa15eb6ebf24969e1e870cb071ee3fdbd) |
|
| std::size\_t  | [pos\_](classpcl_1_1_g_a_s_d_estimation#a003c837d5dae6523afe58123659a1ced) |
|  | Current position of output descriptor point cloud. [More...](classpcl_1_1_g_a_s_d_estimation#a003c837d5dae6523afe58123659a1ced) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = GASDSignature984> class pcl::GASDColorEstimation< PointInT, PointOutT >

 [GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation "GASDColorEstimation estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given...") estimates the Globally Aligned Spatial Distribution (GASD) descriptor for a given point cloud dataset given XYZ and [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") data. 

 The suggested PointOutT is [pcl::GASDSignature984](structpcl_1_1_g_a_s_d_signature984 "A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descr...").

 
Note
If you use this code in any academic work, please cite:
 * J. Lima, V. Teichrieb. An Efficient Global Point Cloud Descriptor for [Object](https://pointclouds.org/documentation/class_object.html) Recognition and Pose Estimation. In Proceedings of the 29th SIBGRAPI - Conference on Graphics, Patterns and Images, Sao Jose dos Campos, Brazil, October 4-7 2016.

 
Author
Joao Paulo Lima
 Voxar Labs, Centro de Informatica, Universidade Federal de Pernambuco, Brazil

 Departamento de Estatistica e Informatica, Universidade Federal Rural de Pernambuco, Brazil 

 Definition at line [256](https://pointclouds.org/documentation/gasd_8h_source.html#l00256) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = GASDSignature984>  

|  |
| --- |
| using [pcl::GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)<PointInT, PointOutT> > |

 
 Definition at line [261](https://pointclouds.org/documentation/gasd_8h_source.html#l00261) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = GASDSignature984>  

|  |
| --- |
| using [pcl::GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)<PointInT, PointOutT> > |

 
 Definition at line [260](https://pointclouds.org/documentation/gasd_8h_source.html#l00260) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  GASDColorEstimation()
---------------------

    template<typename PointInT , typename PointOutT = GASDSignature984>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT >::[GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation) | ( | const Eigen::Vector3f &  | *view\_direction* = `Eigen::Vector3f (0.0f, 0.0f, 1.0f)`,  |
|  |  | const std::size\_t  | *shape\_half\_grid\_size* = `3`,  |
|  |  | const std::size\_t  | *shape\_hists\_size* = `1`,  |
|  |  | const std::size\_t  | *color\_half\_grid\_size* = `2`,  |
|  |  | const std::size\_t  | *color\_hists\_size* = `12`,  |
|  |  | const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) | *shape\_interp* = `[INTERP\_NONE](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9a2bdcddf8f35b06e8a55bca0993d705f3)`,  |
|  |  | const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) | *color\_interp* = `[INTERP\_NONE](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9a2bdcddf8f35b06e8a55bca0993d705f3)` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | view\_direction | view direction  |
| [in] | shape\_half\_grid\_size | shape half grid size  |
| [in] | shape\_hists\_size | shape histograms size  |
| [in] | color\_half\_grid\_size | color half grid size  |
| [in] | color\_hists\_size | color histograms size  |
| [in] | shape\_interp | shape histograms interpolation method  |
| [in] | color\_interp | color histograms interpolation method  |

   Definition at line [272](https://pointclouds.org/documentation/gasd_8h_source.html#l00272) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  setColorHalfGridSize()
----------------------

    template<typename PointInT , typename PointOutT = GASDSignature984>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT >::setColorHalfGridSize  | ( | const std::size\_t  | *chgs* | ) |  |

 | inline |

 
 Set the color half grid size. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | chgs | color half grid size  |

   Definition at line [291](https://pointclouds.org/documentation/gasd_8h_source.html#l00291) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    setColorHistsInterpMethod()
---------------------------

    template<typename PointInT , typename PointOutT = GASDSignature984>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT >::setColorHistsInterpMethod  | ( | const [HistogramInterpolationMethod](https://pointclouds.org/documentation/namespacepcl.html#a8641d101f171b274f12109790e901ce9) | *interp* | ) |  |

 | inline |

 
 Set the color histograms interpolation method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | interp | color histograms interpolation method  |

   Definition at line [309](https://pointclouds.org/documentation/gasd_8h_source.html#l00309) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

    setColorHistsSize()
-------------------

    template<typename PointInT , typename PointOutT = GASDSignature984>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GASDColorEstimation](classpcl_1_1_g_a_s_d_color_estimation)< PointInT, PointOutT >::setColorHistsSize  | ( | const std::size\_t  | *chs* | ) |  |

 | inline |

 
 Set the color histograms size (number of bins in the hue histogram for each cell of the 3D regular grid). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | chs | color histograms size  |

   Definition at line [300](https://pointclouds.org/documentation/gasd_8h_source.html#l00300) of file [gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[gasd.h](https://pointclouds.org/documentation/gasd_8h_source.html)
* pcl/features/impl/[gasd.hpp](https://pointclouds.org/documentation/gasd_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_g_a_s_d_color_estimation.html>

A structure representing [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") color information. [More...](structpcl_1_1_r_g_b#details)

 `#include <[pcl/impl/point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Member Functions |
| constexpr  | [RGB](structpcl_1_1_r_g_b#afdd047d68c82aa428bb27cfdbc7de4e3) (const [\_RGB](structpcl_1_1___r_g_b) &p) |
|
| constexpr  | [RGB](structpcl_1_1_r_g_b#ad2fc615a2a2ad66aef2ba01917db0f80) () |
|
| constexpr  | [RGB](structpcl_1_1_r_g_b#aaa6ddaf6717cffd9d6e9e47ca20379e2) (std::uint8\_t \_r, std::uint8\_t \_g, std::uint8\_t \_b, std::uint8\_t \_a=255) |
|




|  |
| --- |
| 
 Friends |
| std::ostream &  | [operator<<](structpcl_1_1_r_g_b#a38c28c322e07a08c9e1a8276fc703fb2) (std::ostream &os, const [RGB](structpcl_1_1_r_g_b) &p) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Attributes inherited from [pcl::\_RGB](structpcl_1_1___r_g_b) |
|  | [PCL\_ADD\_RGB](structpcl_1_1___r_g_b#a1329aba868ab05e46866a4bea1274f02) |
|

 Detailed Description
--------------------

 
A structure representing [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") color information. 

 The RGBA information is available either as separate r, g, b, or as a packed std::uint32\_t rgba value. To pack it, use:

 
```
int rgb = ((int)r) << 16 | ((int)g) << 8 | ((int)b);

```

To unpack it use:

 
```
int rgb = ...;
std::uint8_t r = (rgb >> 16) & 0x0000ff;
std::uint8_t g = (rgb >> 8) & 0x0000ff;
std::uint8_t b = (rgb) & 0x0000ff;

```
 Definition at line [391](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00391) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  RGB() [1/3]
-----------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| constexpr pcl::RGB::RGB  | ( | const [\_RGB](structpcl_1_1___r_g_b) &  | *p* | ) |  |

 | inlineconstexpr |

 
 Definition at line [393](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00393) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    RGB() [2/3]
-----------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| constexpr pcl::RGB::RGB  | ( |  | ) |  |

 | inlineconstexpr |

 
 Definition at line [395](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00395) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    RGB() [3/3]
-----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| constexpr pcl::RGB::RGB  | ( | std::uint8\_t  | *\_r*,  |
|  |  | std::uint8\_t  | *\_g*,  |
|  |  | std::uint8\_t  | *\_b*,  |
|  |  | std::uint8\_t  | *\_a* = `255` |
|  | ) |  |  |

 | inlineconstexpr |

 
 Definition at line [397](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00397) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

   Friends And Related Function Documentation
------------------------------------------

  operator<<
----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::ostream& operator<<  | ( | std::ostream &  | *os*,  |
|  |  | const [RGB](structpcl_1_1_r_g_b) &  | *p* |
|  | ) |  |  |

 | friend |

 
   

---

The documentation for this struct was generated from the following file:* pcl/impl/[point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/structpcl_1_1_r_g_b.html>

**[GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation "GFPFHEstimation estimates the Global Fast Point Feature Histogram (GFPFH) descriptor for a given poin...")** estimates the Global Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (GFPFH) descriptor for a given point cloud dataset containing points and labels. [More...](classpcl_1_1_g_f_p_f_h_estimation#details)

 `#include <[pcl/features/gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_g_f_p_f_h_estimation#aa4651af127b817b4ffa1820178516b40) = shared\_ptr< [GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_g_f_p_f_h_estimation#a8c467300bdcaf557e654cf5475340ea1) = shared\_ptr< const [GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_g_f_p_f_h_estimation#a341a246f452b752f634c01b09efc201e) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_g_f_p_f_h_estimation#a0307f300185640381c2359aa75c753c6) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >](classpcl_1_1_feature_from_labels) |
| using  | [Ptr](classpcl_1_1_feature_from_labels#ad20d2f1a449398368e13f1fb78080ff9) = shared\_ptr< [FeatureFromLabels](classpcl_1_1_feature_from_labels)< PointInT, PointLT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_labels#a2898efa9194b8367d239b5cb95cfab04) = shared\_ptr< const [FeatureFromLabels](classpcl_1_1_feature_from_labels)< PointInT, PointLT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation#ad8022e150a41164f169149145a150923) () |
|  | Empty constructor. [More...](classpcl_1_1_g_f_p_f_h_estimation#ad8022e150a41164f169149145a150923) |
|
| void  | [setOctreeLeafSize](classpcl_1_1_g_f_p_f_h_estimation#af85aca1a1bccc40396bd8f931c1cb05f) (double size) |
|  | Set the size of the octree leaves. [More...](classpcl_1_1_g_f_p_f_h_estimation#af85aca1a1bccc40396bd8f931c1cb05f) |
|
| double  | [getOctreeLeafSize](classpcl_1_1_g_f_p_f_h_estimation#afaf9aeee369296f62260178386cfcc11) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_g_f_p_f_h_estimation#afaf9aeee369296f62260178386cfcc11) |
|
| std::uint32\_t  | [emptyLabel](classpcl_1_1_g_f_p_f_h_estimation#a87ff8dc09856f6eb232d352eb7437b90) () const |
|  | Return the empty label value. [More...](classpcl_1_1_g_f_p_f_h_estimation#a87ff8dc09856f6eb232d352eb7437b90) |
|
| std::uint32\_t  | [getNumberOfClasses](classpcl_1_1_g_f_p_f_h_estimation#a3625f851ff2b4576fad2ed91d58b3384) () const |
|  | Return the number of different classes. [More...](classpcl_1_1_g_f_p_f_h_estimation#a3625f851ff2b4576fad2ed91d58b3384) |
|
| void  | [setNumberOfClasses](classpcl_1_1_g_f_p_f_h_estimation#aa9ac84ceddbd049943d1115784c090bd) (std::uint32\_t n) |
|  | Set the number of different classes. [More...](classpcl_1_1_g_f_p_f_h_estimation#aa9ac84ceddbd049943d1115784c090bd) |
|
| int  | [descriptorSize](classpcl_1_1_g_f_p_f_h_estimation#a1e850641208c2ffec2350814a6977d8e) () const |
|  | Return the size of the descriptor. [More...](classpcl_1_1_g_f_p_f_h_estimation#a1e850641208c2ffec2350814a6977d8e) |
|
| void  | [compute](classpcl_1_1_g_f_p_f_h_estimation#ab0839cd3f7500a485ff388aa139cbfda) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_g_f_p_f_h_estimation#ab0839cd3f7500a485ff388aa139cbfda) |
|
| - Public Member Functions inherited from [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >](classpcl_1_1_feature_from_labels) |
|  | [FeatureFromLabels](classpcl_1_1_feature_from_labels#a5ee9aefcdd32a307781459e11e00b02d) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_labels#a5ee9aefcdd32a307781459e11e00b02d) |
|
| void  | [setInputLabels](classpcl_1_1_feature_from_labels#a1a556c64a4cbd28933771d2a2d955d9e) (const PointCloudLConstPtr &labels) |
|  | Provide a pointer to the input dataset that contains the point labels of the XYZ dataset. [More...](classpcl_1_1_feature_from_labels#a1a556c64a4cbd28933771d2a2d955d9e) |
|
| PointCloudLConstPtr  | [getInputLabels](classpcl_1_1_feature_from_labels#adce3ecb4a84d8b2281476e7128f39561) () const |
|  | Get a pointer to the labels of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_labels#adce3ecb4a84d8b2281476e7128f39561) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_g_f_p_f_h_estimation#af239904d3fd645138f338bb726caf60a) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (PFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_g_f_p_f_h_estimation#af239904d3fd645138f338bb726caf60a) |
|
| std::uint32\_t  | [getDominantLabel](classpcl_1_1_g_f_p_f_h_estimation#a811cd575e1d69271837c7776774ed4d0) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Return the dominant label of a set of points. [More...](classpcl_1_1_g_f_p_f_h_estimation#a811cd575e1d69271837c7776774ed4d0) |
|
| void  | [computeTransitionHistograms](classpcl_1_1_g_f_p_f_h_estimation#a3ed7f3aadf9ff3c6d613b8def34fd70b) (const std::vector< std::vector< int > > &label\_histograms, std::vector< std::vector< int > > &transition\_histograms) |
|  | Compute the fixed-length histograms of transitions. [More...](classpcl_1_1_g_f_p_f_h_estimation#a3ed7f3aadf9ff3c6d613b8def34fd70b) |
|
| void  | [computeDistancesToMean](classpcl_1_1_g_f_p_f_h_estimation#a1fbe1fa19fb6a76f5e55ed16e6a3fb6f) (const std::vector< std::vector< int > > &transition\_histograms, std::vector< float > &distances) |
|  | Compute the distance of each transition histogram to the mean. [More...](classpcl_1_1_g_f_p_f_h_estimation#a1fbe1fa19fb6a76f5e55ed16e6a3fb6f) |
|
| float  | [computeHIKDistance](classpcl_1_1_g_f_p_f_h_estimation#ad41dae97dfa0534c0cbfa1bcec63a71b) (const std::vector< int > &histogram, const std::vector< float > &mean\_histogram) |
|  | Return the Intersection Kernel distance between two histograms. [More...](classpcl_1_1_g_f_p_f_h_estimation#ad41dae97dfa0534c0cbfa1bcec63a71b) |
|
| void  | [computeDistanceHistogram](classpcl_1_1_g_f_p_f_h_estimation#ae08b3ca8f6ef55dedc2b19ac983eeb0c) (const std::vector< float > &distances, std::vector< float > &histogram) |
|  | Compute the binned histogram of distance values. [More...](classpcl_1_1_g_f_p_f_h_estimation#ae08b3ca8f6ef55dedc2b19ac983eeb0c) |
|
| void  | [computeMeanHistogram](classpcl_1_1_g_f_p_f_h_estimation#acae1d3e7ab2972be16b654f112d2ee68) (const std::vector< std::vector< int > > &histograms, std::vector< float > &mean\_histogram) |
|  | Compute the mean histogram of the given set of histograms. [More...](classpcl_1_1_g_f_p_f_h_estimation#acae1d3e7ab2972be16b654f112d2ee68) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >](classpcl_1_1_feature_from_labels) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_labels#a93acfa34d625f616e094f65ddef10ae9) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_labels#a93acfa34d625f616e094f65ddef10ae9) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::FeatureFromLabels< PointInT, PointLT, PointOutT >](classpcl_1_1_feature_from_labels) |
| PointCloudLConstPtr  | [labels\_](classpcl_1_1_feature_from_labels#a810821f686979285987850523148f727) |
|  | A pointer to the input dataset that contains the point labels of the XYZ dataset. [More...](classpcl_1_1_feature_from_labels#a810821f686979285987850523148f727) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointLT, typename PointOutT> class pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >

 **[GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation "GFPFHEstimation estimates the Global Fast Point Feature Histogram (GFPFH) descriptor for a given poin...")** estimates the Global Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (GFPFH) descriptor for a given point cloud dataset containing points and labels. 

 
Note
If you use this code in any academic work, please cite:
 * R.B. Rusu, A. Holzbach, M. Beetz. Detecting and Segmenting Objects for Mobile Manipulation. In the S3DV Workshop of the 12th International Conference on Computer Vision (ICCV), 2009.

 
Author
Radu B. Rusu
 
Template Parameters
 

|  |  |
| --- | --- |
| PointOutT | Suggested type is `[pcl::GFPFHSignature16](structpcl_1_1_g_f_p_f_h_signature16 "A point structure representing the GFPFH descriptor with 16 bins.")` |

   Definition at line [65](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00065) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |
| --- |
| using [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)<PointInT, PointLT, PointOutT> > |

 
 Definition at line [69](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00069) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |
| --- |
| using [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [81](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00081) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |
| --- |
| using [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [80](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00080) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |
| --- |
| using [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)<PointInT, PointLT, PointOutT> > |

 
 Definition at line [68](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00068) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  GFPFHEstimation()
-----------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::[GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [84](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00084) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [53](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    computeDistanceHistogram()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeDistanceHistogram  | ( | const std::vector< float > &  | *distances*,  |
|  |  | std::vector< float > &  | *histogram* |
|  | ) |  |  |

 | protected |

 
 Compute the binned histogram of distance values. 

 Definition at line [196](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00196) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

    computeDistancesToMean()
------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeDistancesToMean  | ( | const std::vector< std::vector< int > > &  | *transition\_histograms*,  |
|  |  | std::vector< float > &  | *distances* |
|  | ) |  |  |

 | protected |

 
 Compute the distance of each transition histogram to the mean. 

 Definition at line [179](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00179) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

    computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (PFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains the PFH feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [80](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00080) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

 References [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud()](https://pointclouds.org/documentation/octree__pointcloud_8hpp_source.html#l00079), [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getApproxIntersectedVoxelCentersBySegment()](https://pointclouds.org/documentation/octree__pointcloud_8hpp_source.html#l00270), [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters()](https://pointclouds.org/documentation/octree__pointcloud_8hpp_source.html#l00253), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud()](https://pointclouds.org/documentation/octree__pointcloud_8h_source.html#l00117), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::octree::OctreePointCloudSearch< PointT, LeafContainerT, BranchContainerT >::voxelSearch()](https://pointclouds.org/documentation/octree__search_8hpp_source.html#l00050), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    computeHIKDistance()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeHIKDistance  | ( | const std::vector< int > &  | *histogram*,  |
|  |  | const std::vector< float > &  | *mean\_histogram* |
|  | ) |  |  |

 | protected |

 
 Return the Intersection Kernel distance between two histograms. 

 Definition at line [239](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00239) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

    computeMeanHistogram()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeMeanHistogram  | ( | const std::vector< std::vector< int > > &  | *histograms*,  |
|  |  | std::vector< float > &  | *mean\_histogram* |
|  | ) |  |  |

 | protected |

 
 Compute the mean histogram of the given set of histograms. 

 Definition at line [223](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00223) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

    computeTransitionHistograms()
-----------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeTransitionHistograms  | ( | const std::vector< std::vector< int > > &  | *label\_histograms*,  |
|  |  | std::vector< std::vector< int > > &  | *transition\_histograms* |
|  | ) |  |  |

 | protected |

 
 Compute the fixed-length histograms of transitions. 

 Definition at line [138](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00138) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

    descriptorSize()
----------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::descriptorSize  | ( |  | ) |  const |

 | inline |

 
 Return the size of the descriptor. 

 Definition at line [117](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00117) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    emptyLabel()
------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::uint32\_t [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::emptyLabel  | ( |  | ) |  const |

 | inline |

 
 Return the empty label value. 

 Definition at line [103](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00103) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    getDominantLabel()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| std::uint32\_t [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointNT, PointOutT >::getDominantLabel  | ( | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* | ) |  |

 | protected |

 
 Return the dominant label of a set of points. 

 Definition at line [254](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00254) of file [gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

    getNumberOfClasses()
--------------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::uint32\_t [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::getNumberOfClasses  | ( |  | ) |  const |

 | inline |

 
 Return the number of different classes. 

 Definition at line [107](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00107) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    getOctreeLeafSize()
-------------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::getOctreeLeafSize  | ( |  | ) |  |

 | inline |

 
 Get the sphere radius used for determining the neighbors. 

 Definition at line [99](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00099) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    setNumberOfClasses()
--------------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::setNumberOfClasses  | ( | std::uint32\_t  | *n* | ) |  |

 | inline |

 
 Set the number of different classes. 

 
Parameters
 

|  |  |
| --- | --- |
| n | number of different classes.  |

   Definition at line [113](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00113) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

    setOctreeLeafSize()
-------------------

    template<typename PointInT , typename PointLT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GFPFHEstimation](classpcl_1_1_g_f_p_f_h_estimation)< PointInT, PointLT, PointOutT >::setOctreeLeafSize  | ( | double  | *size* | ) |  |

 | inline |

 
 Set the size of the octree leaves. 

 Definition at line [95](https://pointclouds.org/documentation/gfpfh_8h_source.html#l00095) of file [gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[gfpfh.h](https://pointclouds.org/documentation/gfpfh_8h_source.html)
* pcl/features/impl/[gfpfh.hpp](https://pointclouds.org/documentation/gfpfh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_g_f_p_f_h_estimation.html>

**[GRSDEstimation](classpcl_1_1_g_r_s_d_estimation "GRSDEstimation estimates the Global Radius-based Surface Descriptor (GRSD) for a given point cloud da...")** estimates the Global Radius-based Surface Descriptor (GRSD) for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_g_r_s_d_estimation#details)

 `#include <[pcl/features/grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudOut](classpcl_1_1_g_r_s_d_estimation#ad2beb5e9c8e29dbaad9bfa7934728fca) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_g_r_s_d_estimation#a45082ac2ae02e039dd8219f514e255a7) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| using  | [PointCloudInPtr](classpcl_1_1_g_r_s_d_estimation#ad6856061a48271ac881500b42a44c361) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [GRSDEstimation](classpcl_1_1_g_r_s_d_estimation#af05308f77034a7d826f2e7c92f2c3bf6) () |
|  | Constructor. [More...](classpcl_1_1_g_r_s_d_estimation#af05308f77034a7d826f2e7c92f2c3bf6) |
|
| void  | [setRadiusSearch](classpcl_1_1_g_r_s_d_estimation#a85d7b3857ce58acd150fbede437e239c) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_g_r_s_d_estimation#a85d7b3857ce58acd150fbede437e239c) |
|
| double  | [getRadiusSearch](classpcl_1_1_g_r_s_d_estimation#ac88b33586a61c5f3ed2e32642137e5eb) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_g_r_s_d_estimation#ac88b33586a61c5f3ed2e32642137e5eb) |
|
| void  | [setNrSubdivisions](classpcl_1_1_g_r_s_d_estimation#acb6f70f87aa0bef7211db876df0fd529) (int nr\_subdiv) |
|  | Set the number of subdivisions for the considered distance interval. [More...](classpcl_1_1_g_r_s_d_estimation#acb6f70f87aa0bef7211db876df0fd529) |
|
| void  | [setPlaneRadius](classpcl_1_1_g_r_s_d_estimation#a84df3db23d38556aeb81c0d5bde67ced) (double plane\_radius) |
|  | Set the maximum radius, above which everything can be considered planar. [More...](classpcl_1_1_g_r_s_d_estimation#a84df3db23d38556aeb81c0d5bde67ced) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Static Public Member Functions |
| static int  | [getSimpleType](classpcl_1_1_g_r_s_d_estimation#a5fca8d8d7c522f6c07be602a04f58868) (float min\_radius, float max\_radius, double min\_radius\_plane=0.100, double max\_radius\_noise=0.015, double min\_radius\_cylinder=0.175, double max\_min\_radius\_diff=0.050) |
|  | Get the type of the local surface based on the min and max radius computed. [More...](classpcl_1_1_g_r_s_d_estimation#a5fca8d8d7c522f6c07be602a04f58868) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_g_r_s_d_estimation#a7ebf74fcb7f037ac5a15037502cb2928) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Global Radius-based Surface Descriptor (GRSD) for a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_g_r_s_d_estimation#a7ebf74fcb7f037ac5a15037502cb2928) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT> class pcl::GRSDEstimation< PointInT, PointNT, PointOutT >

 **[GRSDEstimation](classpcl_1_1_g_r_s_d_estimation "GRSDEstimation estimates the Global Radius-based Surface Descriptor (GRSD) for a given point cloud da...")** estimates the Global Radius-based Surface Descriptor (GRSD) for a given point cloud dataset containing points and normals. 

 
Note
If you use this code in any academic work, please cite (first for the ray-casting and second for the additive version):
 * Z.C. Marton, D. Pangercic, N. Blodow, Michael Beetz. Combined 2D-3D Categorization and Classification for Multimodal Perception Systems. In The International Journal of Robotics Research, Sage Publications pages 1378–1402, Volume 30, Number 11, September 2011.
* A. Kanezaki, Z.C. Marton, D. Pangercic, T. Harada, Y. Kuniyoshi, M. Beetz. Voxelized Shape and Color Histograms for RGB-D In the Workshop on Active Semantic Perception and [Object](https://pointclouds.org/documentation/class_object.html) Search in the Real World, in conjunction with the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) San Francisco, California, September 25-30, 2011.

 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p) for examples on parallel implementations of the FPFH (Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.")). 
 
Author
Zoltan Csaba Marton
 
Template Parameters
 

|  |  |
| --- | --- |
| PointOutT | Suggested type is `[pcl::GRSDSignature21](structpcl_1_1_g_r_s_d_signature21 "A point structure representing the Global Radius-based Surface Descriptor (GRSD).")` |

   Definition at line [72](https://pointclouds.org/documentation/grsd_8h_source.html#l00072) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

 
Member Typedef Documentation
----------------------------

  PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [86](https://pointclouds.org/documentation/grsd_8h_source.html#l00086) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

    PointCloudInPtr
---------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) |

 
 Definition at line [87](https://pointclouds.org/documentation/grsd_8h_source.html#l00087) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [85](https://pointclouds.org/documentation/grsd_8h_source.html#l00085) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  GRSDEstimation()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[GRSDEstimation](classpcl_1_1_g_r_s_d_estimation) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [90](https://pointclouds.org/documentation/grsd_8h_source.html#l00090) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Global Radius-based Surface Descriptor (GRSD) for a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud that contains the GRSD feature  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [65](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065) of file [grsd.hpp](https://pointclouds.org/documentation/grsd_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::Filter< PointT >::filter()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2filter_8h_source.html#l00121), [pcl::VoxelGrid< PointT >::getNeighborCentroidIndices()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00331), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065), [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::setInputNormals()](https://pointclouds.org/documentation/feature_8h_source.html#l00339), [pcl::VoxelGrid< PointT >::setLeafSize()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00221), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::setNrSubdivisions()](https://pointclouds.org/documentation/rsd_8h_source.html#l00160), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::setPlaneRadius()](https://pointclouds.org/documentation/rsd_8h_source.html#l00174), [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198), [pcl::VoxelGrid< PointT >::setSaveLeafLayout()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00278), [pcl::Feature< PointInT, PointOutT >::setSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00146), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    getRadiusSearch()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::getRadiusSearch  | ( |  | ) |  const |

 | inline |

 
 Get the sphere radius used for determining the neighbors. 

 
Returns
the sphere radius used as the maximum distance to consider a point a neighbor 
 Definition at line [107](https://pointclouds.org/documentation/grsd_8h_source.html#l00107) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

    getSimpleType()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::getSimpleType  | ( | float  | *min\_radius*,  |
|  |  | float  | *max\_radius*,  |
|  |  | double  | *min\_radius\_plane* = `0.100`,  |
|  |  | double  | *max\_radius\_noise* = `0.015`,  |
|  |  | double  | *min\_radius\_cylinder* = `0.175`,  |
|  |  | double  | *max\_min\_radius\_diff* = `0.050` |
|  | ) |  |  |

 | inlinestatic |

 
 Get the type of the local surface based on the min and max radius computed. 

 
Returns
the integer that represents the type of the local surface with values as Plane (1), Cylinder (2), Noise or corner (0), Sphere (3) and [Edge](classpcl_1_1_edge) (4) 
 Definition at line [46](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00046) of file [grsd.hpp](https://pointclouds.org/documentation/grsd_8hpp_source.html).

    setNrSubdivisions()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setNrSubdivisions  | ( | int  | *nr\_subdiv* | ) |  |

 | inline |

 
 Set the number of subdivisions for the considered distance interval. 

 This function configures the underlying [RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ..."). For more info, see there. If this function is not called, the default from [RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ...") is used. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_subdiv | the number of subdivisions  |

   Definition at line [115](https://pointclouds.org/documentation/grsd_8h_source.html#l00115) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

    setPlaneRadius()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setPlaneRadius  | ( | double  | *plane\_radius* | ) |  |

 | inline |

 
 Set the maximum radius, above which everything can be considered planar. 

 This function configures the underlying [RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ..."). For more info, see there. If this function is not called, the default from [RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ...") is used. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | plane\_radius | the new plane radius  |

   Definition at line [123](https://pointclouds.org/documentation/grsd_8h_source.html#l00123) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

    setRadiusSearch()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::GRSDEstimation](classpcl_1_1_g_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setRadiusSearch  | ( | double  | *radius* | ) |  |

 | inline |

 
 Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. 

 Same value will be used for the internal voxel grid leaf size. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | the sphere radius used as the maximum distance to consider a point a neighbor  |

   Definition at line [101](https://pointclouds.org/documentation/grsd_8h_source.html#l00101) of file [grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

   

---

The documentation for this class was generated from the following files:* pcl/features/[grsd.h](https://pointclouds.org/documentation/grsd_8h_source.html)
* pcl/features/impl/[grsd.hpp](https://pointclouds.org/documentation/grsd_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_g_r_s_d_estimation.html>

[IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation "IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position...") estimates the intensity gradient for a point cloud that contains position and intensity values. [More...](classpcl_1_1_intensity_gradient_estimation#details)

 `#include <[pcl/features/intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_intensity_gradient_estimation#afe82785eda6cf35c5402463888d01c52) = shared\_ptr< [IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT > > |
|
| using  | [ConstPtr](classpcl_1_1_intensity_gradient_estimation#aad84d618f82727763e6316688ac10253) = shared\_ptr< const [IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT > > |
|
| using  | [PointCloudOut](classpcl_1_1_intensity_gradient_estimation#ac7a84356abeb16bc17f67fb8c6b4ad75) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation#a94afda001b009db9bee236a3e9c93d31) () |
|  | Empty constructor. [More...](classpcl_1_1_intensity_gradient_estimation#a94afda001b009db9bee236a3e9c93d31) |
|
| void  | [setNumberOfThreads](classpcl_1_1_intensity_gradient_estimation#a0400508608c9eb7e1f9459ea662e8930) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_intensity_gradient_estimation#a0400508608c9eb7e1f9459ea662e8930) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_intensity_gradient_estimation#a74c099415ff145ff8973be0c758e22ee) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the intensity gradients for a set of points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod (). [More...](classpcl_1_1_intensity_gradient_estimation#a74c099415ff145ff8973be0c758e22ee) |
|
| void  | [computePointIntensityGradient](classpcl_1_1_intensity_gradient_estimation#a10c0f08e5de91fa3218eb447840ddd4d) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const Eigen::Vector3f &point, float mean\_intensity, const Eigen::Vector3f &normal, Eigen::Vector3f &gradient) |
|  | Estimate the intensity gradient around a given point based on its spatial neighborhood of points. [More...](classpcl_1_1_intensity_gradient_estimation#a10c0f08e5de91fa3218eb447840ddd4d) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| IntensitySelectorT  | [intensity\_](classpcl_1_1_intensity_gradient_estimation#a37336e579e4e959fb7c6c351f01dcc7e) |
|  | intensity field accessor structure [More...](classpcl_1_1_intensity_gradient_estimation#a37336e579e4e959fb7c6c351f01dcc7e) |
|
| unsigned int  | [threads\_](classpcl_1_1_intensity_gradient_estimation#a8176b021c41d87fdcea72ea6ade43790) |
|  | number of threads to be used, default 0 (auto) [More...](classpcl_1_1_intensity_gradient_estimation#a8176b021c41d87fdcea72ea6ade43790) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT, typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>> class pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >

 [IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation "IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position...") estimates the intensity gradient for a point cloud that contains position and intensity values. 

 The intensity gradient at a given point will be a vector orthogonal to the surface normal and pointing in the direction of the greatest increase in local intensity; the vector's magnitude indicates the rate of intensity change. 



Author
Michael Dixon 
 Definition at line [56](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00056) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)<PointInT, PointNT, PointOutT, IntensitySelectorT> > |

 
 Definition at line [60](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00060) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [69](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00069) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)<PointInT, PointNT, PointOutT, IntensitySelectorT> > |

 
 Definition at line [59](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00059) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  IntensityGradientEstimation()
-----------------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::[IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [72](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00072) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the intensity gradients for a set of points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod (). 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud that contains the intensity gradient vectors  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [143](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html#l00143) of file [intensity\_gradient.hpp](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointIntensityGradient()
-------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::computePointIntensityGradient  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const Eigen::Vector3f &  | *point*,  |
|  |  | float  | *mean\_intensity*,  |
|  |  | const Eigen::Vector3f &  | *normal*,  |
|  |  | Eigen::Vector3f &  | *gradient* |
|  | ) |  |  |

 | protected |

 
 Estimate the intensity gradient around a given point based on its spatial neighborhood of points. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | a point cloud dataset containing XYZI coordinates (Cartesian coordinates + intensity)  |
| indices | the indices of the neighboring points in the dataset  |
| point | the 3D Cartesian coordinates of the point at which to estimate the gradient  |
| mean\_intensity |  |
| normal | the 3D surface normal of the given point  |
| gradient | the resultant 3D gradient vector  |

   Definition at line [50](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html#l00050) of file [intensity\_gradient.hpp](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html).

 References [pcl::eigen33()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00296).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [81](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00081) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

 References [pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >::threads\_](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00111).

   Member Data Documentation
-------------------------

  intensity\_
-----------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| IntensitySelectorT [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::intensity\_ |

 | protected |

 
 intensity field accessor structure 

 Definition at line [109](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00109) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

    threads\_
---------

    template<typename PointInT , typename PointNT , typename PointOutT , typename IntensitySelectorT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::IntensityGradientEstimation](classpcl_1_1_intensity_gradient_estimation)< PointInT, PointNT, PointOutT, IntensitySelectorT >::threads\_ |

 | protected |

 
 number of threads to be used, default 0 (auto) 

 Definition at line [111](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00111) of file [intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html).

 Referenced by [pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >::setNumberOfThreads()](https://pointclouds.org/documentation/intensity__gradient_8h_source.html#l00081).

   

---

The documentation for this class was generated from the following files:* pcl/features/[intensity\_gradient.h](https://pointclouds.org/documentation/intensity__gradient_8h_source.html)
* pcl/features/impl/[intensity\_gradient.hpp](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_intensity_gradient_estimation.html>

[IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation "IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud...") estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. [More...](classpcl_1_1_intensity_spin_estimation#details)

 `#include <[pcl/features/intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_intensity_spin_estimation#a9189c5039f913fd2b44d53697007aaef) = shared\_ptr< [IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_intensity_spin_estimation#af74b52b465ffcf64510d2794f05ed2b2) = shared\_ptr< const [IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT > > |
|
| using  | [PointCloudIn](classpcl_1_1_intensity_spin_estimation#a2d60ae2581420ee6b0f5a8ef2dcf0919) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudOut](classpcl_1_1_intensity_spin_estimation#a08801ac5e50364fcbbacb7e6eeef6406) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation#afc5f8461c605637884576be571ee058d) () |
|  | Empty constructor. [More...](classpcl_1_1_intensity_spin_estimation#afc5f8461c605637884576be571ee058d) |
|
| void  | [computeIntensitySpinImage](classpcl_1_1_intensity_spin_estimation#ac5bf0597a25810b2f5c331d78657e4c8) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, float radius, float sigma, int k, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &squared\_distances, Eigen::MatrixXf &intensity\_spin\_image) |
|  | Estimate the intensity-domain spin image descriptor for a given point based on its spatial neighborhood of 3D points and their intensities. [More...](classpcl_1_1_intensity_spin_estimation#ac5bf0597a25810b2f5c331d78657e4c8) |
|
| void  | [setNrDistanceBins](classpcl_1_1_intensity_spin_estimation#aef06d3f702974794fef9907ff1a58d39) (std::size\_t nr\_distance\_bins) |
|  | Set the number of bins to use in the distance dimension of the spin image. [More...](classpcl_1_1_intensity_spin_estimation#aef06d3f702974794fef9907ff1a58d39) |
|
| int  | [getNrDistanceBins](classpcl_1_1_intensity_spin_estimation#a93bb0030e53354c0b2a1803f818c180b) () |
|  | Returns the number of bins in the distance dimension of the spin image. [More...](classpcl_1_1_intensity_spin_estimation#a93bb0030e53354c0b2a1803f818c180b) |
|
| void  | [setNrIntensityBins](classpcl_1_1_intensity_spin_estimation#aedf9086383a350569d514f3bb04280dc) (std::size\_t nr\_intensity\_bins) |
|  | Set the number of bins to use in the intensity dimension of the spin image. [More...](classpcl_1_1_intensity_spin_estimation#aedf9086383a350569d514f3bb04280dc) |
|
| int  | [getNrIntensityBins](classpcl_1_1_intensity_spin_estimation#acc7668cfb25544b79474a79f577e2bff) () |
|  | Returns the number of bins in the intensity dimension of the spin image. [More...](classpcl_1_1_intensity_spin_estimation#acc7668cfb25544b79474a79f577e2bff) |
|
| void  | [setSmoothingBandwith](classpcl_1_1_intensity_spin_estimation#a8fced87bacc8f7de4d9df0882dfa4c5f) (float sigma) |
|  | Set the standard deviation of the Gaussian smoothing kernel to use when constructing the spin images. [More...](classpcl_1_1_intensity_spin_estimation#a8fced87bacc8f7de4d9df0882dfa4c5f) |
|
| float  | [getSmoothingBandwith](classpcl_1_1_intensity_spin_estimation#a0e038dfb9891cf5b30718cbd445990e5) () |
|  | Returns the standard deviation of the Gaussian smoothing kernel used to construct the spin images. [More...](classpcl_1_1_intensity_spin_estimation#a0e038dfb9891cf5b30718cbd445990e5) |
|
| void  | [computeFeature](classpcl_1_1_intensity_spin_estimation#a442dd55acdc615cea4b082dc51037ef1) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the intensity-domain descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface (), and the spatial locator in setSearchMethod (). [More...](classpcl_1_1_intensity_spin_estimation#a442dd55acdc615cea4b082dc51037ef1) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Public Attributes |
| int  | [nr\_distance\_bins\_](classpcl_1_1_intensity_spin_estimation#a63613ac7e93b0df396b7d55ef9849aaf) |
|  | The number of distance bins in the descriptor. [More...](classpcl_1_1_intensity_spin_estimation#a63613ac7e93b0df396b7d55ef9849aaf) |
|
| int  | [nr\_intensity\_bins\_](classpcl_1_1_intensity_spin_estimation#ad5cb91d5c6056efce45243f7bc9760ec) |
|  | The number of intensity bins in the descriptor. [More...](classpcl_1_1_intensity_spin_estimation#ad5cb91d5c6056efce45243f7bc9760ec) |
|
| float  | [sigma\_](classpcl_1_1_intensity_spin_estimation#a7b305749e0fdabb177a75418e064f4c9) |
|  | The standard deviation of the Gaussian smoothing kernel used to construct the spin images. [More...](classpcl_1_1_intensity_spin_estimation#a7b305749e0fdabb177a75418e064f4c9) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT> class pcl::IntensitySpinEstimation< PointInT, PointOutT >

 [IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation "IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud...") estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. 

 For more information about the intensity-domain spin image descriptor, see:

 Svetlana Lazebnik, Cordelia Schmid, and Jean Ponce. A sparse texture representation using local affine regions. In IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 27, pages 1265-1278, August 2005. 



Author
Michael Dixon 
 Definition at line [58](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00058) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)<PointInT, PointOutT> > |

 
 Definition at line [62](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00062) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [73](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00073) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [74](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00074) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)<PointInT, PointOutT> > |

 
 Definition at line [61](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00061) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  IntensitySpinEstimation()
-------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::[IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [77](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00077) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overridevirtual |

 
 Estimate the intensity-domain descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface (), and the spatial locator in setSearchMethod (). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains the intensity-domain spin image features  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [110](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html#l00110) of file [intensity\_spin.hpp](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    computeIntensitySpinImage()
---------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::computeIntensitySpinImage  | ( | const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &  | *cloud*,  |
|  |  | float  | *radius*,  |
|  |  | float  | *sigma*,  |
|  |  | int  | *k*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *squared\_distances*,  |
|  |  | Eigen::MatrixXf &  | *intensity\_spin\_image* |
|  | ) |  |  |

 
 Estimate the intensity-domain spin image descriptor for a given point based on its spatial neighborhood of 3D points and their intensities. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the dataset containing the Cartesian coordinates and intensity values of the points  |
| [in] | radius | the radius of the feature  |
| [in] | sigma | the standard deviation of the Gaussian smoothing kernel to use during the soft histogram update  |
| [in] | k | the number of neighbors to use from *indices* and *squared\_distances* |
| [in] | indices | the indices of the points that comprise the query point's neighborhood  |
| [in] | squared\_distances | the squared distances from the query point to each point in the neighborhood  |
| [out] | intensity\_spin\_image | the resultant intensity-domain spin image descriptor  |

   Definition at line [48](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html#l00048) of file [intensity\_spin.hpp](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html).

    getNrDistanceBins()
-------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::getNrDistanceBins  | ( |  | ) |  |

 | inline |

 
 Returns the number of bins in the distance dimension of the spin image. 

 Definition at line [107](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00107) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::IntensitySpinEstimation< PointInT, PointOutT >::nr\_distance\_bins\_](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00138).

    getNrIntensityBins()
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::getNrIntensityBins  | ( |  | ) |  |

 | inline |

 
 Returns the number of bins in the intensity dimension of the spin image. 

 Definition at line [117](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00117) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::IntensitySpinEstimation< PointInT, PointOutT >::nr\_intensity\_bins\_](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00141).

    getSmoothingBandwith()
----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::getSmoothingBandwith  | ( |  | ) |  |

 | inline |

 
 Returns the standard deviation of the Gaussian smoothing kernel used to construct the spin images. 

   
 

 Definition at line [127](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00127) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::IntensitySpinEstimation< PointInT, PointOutT >::sigma\_](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00144).

    setNrDistanceBins()
-------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::setNrDistanceBins  | ( | std::size\_t  | *nr\_distance\_bins* | ) |  |

 | inline |

 
 Set the number of bins to use in the distance dimension of the spin image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_distance\_bins | the number of bins to use in the distance dimension of the spin image  |

   Definition at line [103](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00103) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::IntensitySpinEstimation< PointInT, PointOutT >::nr\_distance\_bins\_](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00138).

    setNrIntensityBins()
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::setNrIntensityBins  | ( | std::size\_t  | *nr\_intensity\_bins* | ) |  |

 | inline |

 
 Set the number of bins to use in the intensity dimension of the spin image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_intensity\_bins | the number of bins to use in the intensity dimension of the spin image  |

   Definition at line [113](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00113) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::IntensitySpinEstimation< PointInT, PointOutT >::nr\_intensity\_bins\_](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00141).

    setSmoothingBandwith()
----------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::setSmoothingBandwith  | ( | float  | *sigma* | ) |  |

 | inline |

 
 Set the standard deviation of the Gaussian smoothing kernel to use when constructing the spin images. 

   
 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | sigma | the standard deviation of the Gaussian smoothing kernel to use when constructing the spin images  |

   Definition at line [123](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00123) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 References [pcl::IntensitySpinEstimation< PointInT, PointOutT >::sigma\_](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00144).

   Member Data Documentation
-------------------------

  nr\_distance\_bins\_
--------------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| int [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::nr\_distance\_bins\_ |

 
 The number of distance bins in the descriptor. 

 Definition at line [138](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00138) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 Referenced by [pcl::IntensitySpinEstimation< PointInT, PointOutT >::getNrDistanceBins()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00107), and [pcl::IntensitySpinEstimation< PointInT, PointOutT >::setNrDistanceBins()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00103).

    nr\_intensity\_bins\_
---------------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| int [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::nr\_intensity\_bins\_ |

 
 The number of intensity bins in the descriptor. 

 Definition at line [141](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00141) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 Referenced by [pcl::IntensitySpinEstimation< PointInT, PointOutT >::getNrIntensityBins()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00117), and [pcl::IntensitySpinEstimation< PointInT, PointOutT >::setNrIntensityBins()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00113).

    sigma\_
-------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| float [pcl::IntensitySpinEstimation](classpcl_1_1_intensity_spin_estimation)< PointInT, PointOutT >::sigma\_ |

 
 The standard deviation of the Gaussian smoothing kernel used to construct the spin images. 

 Definition at line [144](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00144) of file [intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html).

 Referenced by [pcl::IntensitySpinEstimation< PointInT, PointOutT >::getSmoothingBandwith()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00127), and [pcl::IntensitySpinEstimation< PointInT, PointOutT >::setSmoothingBandwith()](https://pointclouds.org/documentation/intensity__spin_8h_source.html#l00123).

   

---

The documentation for this class was generated from the following files:* pcl/features/[intensity\_spin.h](https://pointclouds.org/documentation/intensity__spin_8h_source.html)
* pcl/features/impl/[intensity\_spin.hpp](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_intensity_spin_estimation.html>

[MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation "MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point.") estimates the 3 moment invariants (j1, j2, j3) at each 3D point. [More...](classpcl_1_1_moment_invariants_estimation#details)

 `#include <[pcl/features/moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_moment_invariants_estimation#a6611b64744f69cea555a904f6e660495) = shared\_ptr< [MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_moment_invariants_estimation#a4e456aa48b867c4205008b59c41d293e) = shared\_ptr< const [MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_moment_invariants_estimation#ab8819fd0ec7ca0398e8deeb6a60493f7) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation#a22e73955cdd4cc7bcc896b4293e1e887) () |
|  | Empty constructor. [More...](classpcl_1_1_moment_invariants_estimation#a22e73955cdd4cc7bcc896b4293e1e887) |
|
| void  | [computePointMomentInvariants](classpcl_1_1_moment_invariants_estimation#ad659fe28d71dc391dfbdd6e89a36a773) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, float &j1, float &j2, float &j3) |
|  | Compute the 3 moment invariants (j1, j2, j3) for a given set of points, using their indices. [More...](classpcl_1_1_moment_invariants_estimation#ad659fe28d71dc391dfbdd6e89a36a773) |
|
| void  | [computePointMomentInvariants](classpcl_1_1_moment_invariants_estimation#a4b7cb260e52e57b3305dc1ea31706531) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, float &j1, float &j2, float &j3) |
|  | Compute the 3 moment invariants (j1, j2, j3) for a given set of points, using their indices. [More...](classpcl_1_1_moment_invariants_estimation#a4b7cb260e52e57b3305dc1ea31706531) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_moment_invariants_estimation#aaee8b74d7dd4dde93e90e8840fbf6ef4) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate moment invariants for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_moment_invariants_estimation#aaee8b74d7dd4dde93e90e8840fbf6ef4) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT> class pcl::MomentInvariantsEstimation< PointInT, PointOutT >

 [MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation "MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point.") estimates the 3 moment invariants (j1, j2, j3) at each 3D point. 

 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p) for an example on how to extend this to parallel implementations. 
 
Author
Radu B. Rusu
 
Template Parameters
 

|  |  |
| --- | --- |
| PointOutT | Suggested type is `[pcl::MomentInvariants](structpcl_1_1_moment_invariants "A point structure representing the three moment invariants.")` |

   Definition at line [56](https://pointclouds.org/documentation/moment__invariants_8h_source.html#l00056) of file [moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)<PointInT, PointOutT> > |

 
 Definition at line [60](https://pointclouds.org/documentation/moment__invariants_8h_source.html#l00060) of file [moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [69](https://pointclouds.org/documentation/moment__invariants_8h_source.html#l00069) of file [moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)<PointInT, PointOutT> > |

 
 Definition at line [59](https://pointclouds.org/documentation/moment__invariants_8h_source.html#l00059) of file [moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  MomentInvariantsEstimation()
----------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::[MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [72](https://pointclouds.org/documentation/moment__invariants_8h_source.html#l00072) of file [moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate moment invariants for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains the moment invariants  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [116](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html#l00116) of file [moment\_invariants.hpp](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointMomentInvariants() [1/2]
------------------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::computePointMomentInvariants  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | float &  | *j1*,  |
|  |  | float &  | *j2*,  |
|  |  | float &  | *j3* |
|  | ) |  |  |

 
 Compute the 3 moment invariants (j1, j2, j3) for a given set of points, using their indices. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [in] | indices | the point cloud indices that need to be used  |
| [out] | j1 | the resultant first moment invariant  |
| [out] | j2 | the resultant second moment invariant  |
| [out] | j3 | the resultant third moment invariant  |

   Definition at line [49](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html#l00049) of file [moment\_invariants.hpp](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html).

 References [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00056).

    computePointMomentInvariants() [2/2]
------------------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::MomentInvariantsEstimation](classpcl_1_1_moment_invariants_estimation)< PointInT, PointOutT >::computePointMomentInvariants  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | float &  | *j1*,  |
|  |  | float &  | *j2*,  |
|  |  | float &  | *j3* |
|  | ) |  |  |

 
 Compute the 3 moment invariants (j1, j2, j3) for a given set of points, using their indices. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the input point cloud  |
| [out] | j1 | the resultant first moment invariant  |
| [out] | j2 | the resultant second moment invariant  |
| [out] | j3 | the resultant third moment invariant  |

   Definition at line [83](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html#l00083) of file [moment\_invariants.hpp](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html).

 References [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00056), and [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395).

   

---

The documentation for this class was generated from the following files:* pcl/features/[moment\_invariants.h](https://pointclouds.org/documentation/moment__invariants_8h_source.html)
* pcl/features/impl/[moment\_invariants.hpp](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_moment_invariants_estimation.html>

NARF ([Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Aligned Radial Features) is a point feature descriptor type for 3D data. [More...](classpcl_1_1_narf#details)

 `#include <[pcl/features/narf.h](https://pointclouds.org/documentation/narf_8h_source.html)>`

 

|  |
| --- |
| 
 Classes |
| struct  | [FeaturePointRepresentation](structpcl_1_1_narf_1_1_feature_point_representation) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [Narf](classpcl_1_1_narf#a3361724a9bbcbafbf1c1da3b521b1127) () |
|  | Constructor. [More...](classpcl_1_1_narf#a3361724a9bbcbafbf1c1da3b521b1127) |
|
|  | [Narf](classpcl_1_1_narf#a41bb4751e236b5b67d90380d3ecb4f50) (const [Narf](classpcl_1_1_narf) &other) |
|  | Copy Constructor. [More...](classpcl_1_1_narf#a41bb4751e236b5b67d90380d3ecb4f50) |
|
|  | [~Narf](classpcl_1_1_narf#aa856b2054103e3dae1553e13bfdbcc58) () |
|  | Destructor. [More...](classpcl_1_1_narf#aa856b2054103e3dae1553e13bfdbcc58) |
|
| const [Narf](classpcl_1_1_narf) &  | [operator=](classpcl_1_1_narf#a447a5e5900e07dd690ba22926f52767b) (const [Narf](classpcl_1_1_narf) &other) |
|  | Assignment operator. [More...](classpcl_1_1_narf#a447a5e5900e07dd690ba22926f52767b) |
|
| bool  | [extractFromRangeImage](classpcl_1_1_narf#a8101cd954ba024b13e3ffee8610c7e2c) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const Eigen::Affine3f &pose, int descriptor\_size, float support\_size, int surface\_patch\_world\_size=NARF\_DEFAULT\_SURFACE\_PATCH\_PIXEL\_SIZE) |
|  | Method to extract a NARF feature from a certain 3D point using a range image. [More...](classpcl_1_1_narf#a8101cd954ba024b13e3ffee8610c7e2c) |
|
| bool  | [extractFromRangeImage](classpcl_1_1_narf#a5dbd5dd3d873ddb21dcec86c0ae9ae96) (const [RangeImage](classpcl_1_1_range_image) &range\_image, float x, float y, int descriptor\_size, float support\_size) |
|  | Same as above, but determines the transformation from the surface in the range image. [More...](classpcl_1_1_narf#a5dbd5dd3d873ddb21dcec86c0ae9ae96) |
|
| bool  | [extractFromRangeImage](classpcl_1_1_narf#a20092247992db18752400cc4fccfed22) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const [InterestPoint](structpcl_1_1_interest_point) &interest\_point, int descriptor\_size, float support\_size) |
|  | Same as above. [More...](classpcl_1_1_narf#a20092247992db18752400cc4fccfed22) |
|
| bool  | [extractFromRangeImage](classpcl_1_1_narf#ad356170cac220a28fbc40ce75d63ff77) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const Eigen::Vector3f &interest\_point, int descriptor\_size, float support\_size) |
|  | Same as above. [More...](classpcl_1_1_narf#ad356170cac220a28fbc40ce75d63ff77) |
|
| bool  | [extractFromRangeImageWithBestRotation](classpcl_1_1_narf#aa62146ff1369f2f3c3b15a8183910269) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const Eigen::Vector3f &interest\_point, int descriptor\_size, float support\_size) |
|  | Same as above, but using the rotational invariant version by choosing the best extracted rotation around the normal. [More...](classpcl_1_1_narf#aa62146ff1369f2f3c3b15a8183910269) |
|
| void  | [getRotations](classpcl_1_1_narf#adabb884e0a4660a42cffff6cfaad0d17) (std::vector< float > &rotations, std::vector< float > &strengths) const |
|
| void  | [getRotatedVersions](classpcl_1_1_narf#a58fed49498441e52267f36f849a3fbb6) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const std::vector< float > &rotations, std::vector< [Narf](classpcl_1_1_narf) \* > &features) const |
|
| float  | [getDescriptorDistance](classpcl_1_1_narf#af0ad039d43c4d15ae1dbc10c1b764dc6) (const [Narf](classpcl_1_1_narf) &other) const |
|  | Calculate descriptor distance, value in [0,1] with 0 meaning identical and 1 every cell above maximum distance. [More...](classpcl_1_1_narf#af0ad039d43c4d15ae1dbc10c1b764dc6) |
|
| int  | [getNoOfBeamPoints](classpcl_1_1_narf#a71de93b130af347bada8af0848d2cebe) () const |
|  | How many points on each beam of the gradient star are used to calculate the descriptor? [More...](classpcl_1_1_narf#a71de93b130af347bada8af0848d2cebe) |
|
| void  | [copyToNarf36](classpcl_1_1_narf#a1badd23a00db9812b4a9af7acf5180be) ([Narf36](structpcl_1_1_narf36) &narf36) const |
|  | Copy the descriptor and pose to the point struct [Narf36](structpcl_1_1_narf36 "A point structure representing the Narf descriptor."). [More...](classpcl_1_1_narf#a1badd23a00db9812b4a9af7acf5180be) |
|
| void  | [saveBinary](classpcl_1_1_narf#a89db16a26f7e0925e718a75efba608a6) (const std::string &filename) const |
|  | Write to file. [More...](classpcl_1_1_narf#a89db16a26f7e0925e718a75efba608a6) |
|
| void  | [saveBinary](classpcl_1_1_narf#a50806a8a86f0ae211fec512fc3690ab1) (std::ostream &file) const |
|  | Write to output stream. [More...](classpcl_1_1_narf#a50806a8a86f0ae211fec512fc3690ab1) |
|
| void  | [loadBinary](classpcl_1_1_narf#a87a7424251b04af12cc614b8a5748df3) (const std::string &filename) |
|  | Read from file. [More...](classpcl_1_1_narf#a87a7424251b04af12cc614b8a5748df3) |
|
| void  | [loadBinary](classpcl_1_1_narf#ac93851648c43f8b8cd638cac800a44fe) (std::istream &file) |
|  | Read from input stream. [More...](classpcl_1_1_narf#ac93851648c43f8b8cd638cac800a44fe) |
|
| bool  | [extractDescriptor](classpcl_1_1_narf#ab3fcc2d8f34c150c6640a554dfa86cb9) (int descriptor\_size) |
|  | Create the descriptor from the already set other members. [More...](classpcl_1_1_narf#ab3fcc2d8f34c150c6640a554dfa86cb9) |
|
| const float \*  | [getDescriptor](classpcl_1_1_narf#a7256133a789ed42b4e2fecb9ef7ee061) () const |
|  | Getter (const) for the descriptor. [More...](classpcl_1_1_narf#a7256133a789ed42b4e2fecb9ef7ee061) |
|
| float \*  | [getDescriptor](classpcl_1_1_narf#a9eefc769a909b7e125a794c380c1b5fb) () |
|  | Getter for the descriptor. [More...](classpcl_1_1_narf#a9eefc769a909b7e125a794c380c1b5fb) |
|
| const int &  | [getDescriptorSize](classpcl_1_1_narf#a247fa8f296b6e23be8018073148ac3b3) () const |
|  | Getter (const) for the descriptor length. [More...](classpcl_1_1_narf#a247fa8f296b6e23be8018073148ac3b3) |
|
| int &  | [getDescriptorSize](classpcl_1_1_narf#a127e876ba90da31343abce7b99c6d305) () |
|  | Getter for the descriptor length. [More...](classpcl_1_1_narf#a127e876ba90da31343abce7b99c6d305) |
|
| const Eigen::Vector3f &  | [getPosition](classpcl_1_1_narf#ac31a69b7a3388b2d38551e16f7c2dd5a) () const |
|  | Getter (const) for the position. [More...](classpcl_1_1_narf#ac31a69b7a3388b2d38551e16f7c2dd5a) |
|
| Eigen::Vector3f &  | [getPosition](classpcl_1_1_narf#ad06fca7936e50819c27ca51221283641) () |
|  | Getter for the position. [More...](classpcl_1_1_narf#ad06fca7936e50819c27ca51221283641) |
|
| const Eigen::Affine3f &  | [getTransformation](classpcl_1_1_narf#a4b5c9962ee22c46722a476a395923557) () const |
|  | Getter (const) for the 6DoF pose. [More...](classpcl_1_1_narf#a4b5c9962ee22c46722a476a395923557) |
|
| Eigen::Affine3f &  | [getTransformation](classpcl_1_1_narf#a646fe283f6b99fb19b7fc7784a32932d) () |
|  | Getter for the 6DoF pose. [More...](classpcl_1_1_narf#a646fe283f6b99fb19b7fc7784a32932d) |
|
| const int &  | [getSurfacePatchPixelSize](classpcl_1_1_narf#a5b6b7604877fe35cb82e16bdf2456237) () const |
|  | Getter (const) for the pixel size of the surface patch (only one dimension) [More...](classpcl_1_1_narf#a5b6b7604877fe35cb82e16bdf2456237) |
|
| int &  | [getSurfacePatchPixelSize](classpcl_1_1_narf#a7c4f635ff08342e9713a8ce92f8bb43d) () |
|  | Getter for the pixel size of the surface patch (only one dimension) [More...](classpcl_1_1_narf#a7c4f635ff08342e9713a8ce92f8bb43d) |
|
| const float &  | [getSurfacePatchWorldSize](classpcl_1_1_narf#a9ee48b664ec95b095dec9f7d5fcd3dab) () const |
|  | Getter (const) for the world size of the surface patch. [More...](classpcl_1_1_narf#a9ee48b664ec95b095dec9f7d5fcd3dab) |
|
| float &  | [getSurfacePatchWorldSize](classpcl_1_1_narf#a64470852459c8b05ab4ed7e0452e7450) () |
|  | Getter for the world size of the surface patch. [More...](classpcl_1_1_narf#a64470852459c8b05ab4ed7e0452e7450) |
|
| const float &  | [getSurfacePatchRotation](classpcl_1_1_narf#a094f2ffdf7ac21701d5858ae68a38dd2) () const |
|  | Getter (const) for the rotation of the surface patch. [More...](classpcl_1_1_narf#a094f2ffdf7ac21701d5858ae68a38dd2) |
|
| float &  | [getSurfacePatchRotation](classpcl_1_1_narf#a110dd08e4a29e511800839305da96ba7) () |
|  | Getter for the rotation of the surface patch. [More...](classpcl_1_1_narf#a110dd08e4a29e511800839305da96ba7) |
|
| const float \*  | [getSurfacePatch](classpcl_1_1_narf#a09f04405209b3d65a6215f9c599f5cee) () const |
|  | Getter (const) for the surface patch. [More...](classpcl_1_1_narf#a09f04405209b3d65a6215f9c599f5cee) |
|
| float \*  | [getSurfacePatch](classpcl_1_1_narf#a6f6f7d54e2d08f6aef84cd717573a49f) () |
|  | Getter for the surface patch. [More...](classpcl_1_1_narf#a6f6f7d54e2d08f6aef84cd717573a49f) |
|
| void  | [freeSurfacePatch](classpcl_1_1_narf#a45cb31bfbb5079c6807226e535a796f4) () |
|  | Method to erase the surface patch and free the memory. [More...](classpcl_1_1_narf#a45cb31bfbb5079c6807226e535a796f4) |
|
| void  | [setDescriptor](classpcl_1_1_narf#af6765896bc6146f1543c96b9a8c198dd) (float \*descriptor) |
|  | Setter for the descriptor. [More...](classpcl_1_1_narf#af6765896bc6146f1543c96b9a8c198dd) |
|
| void  | [setSurfacePatch](classpcl_1_1_narf#a2268e742874fb98b9671a430d1ec6299) (float \*surface\_patch) |
|  | Setter for the surface patch. [More...](classpcl_1_1_narf#a2268e742874fb98b9671a430d1ec6299) |
|




|  |
| --- |
| 
 Static Public Member Functions |
| static void  | [extractFromRangeImageAndAddToList](classpcl_1_1_narf#a2b67a8d6011ee5c20d9427e7cdd1b3d6) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const Eigen::Vector3f &interest\_point, int descriptor\_size, float support\_size, bool rotation\_invariant, std::vector< [Narf](classpcl_1_1_narf) \* > &feature\_list) |
|  | Add features extracted at the given interest point and add them to the list. [More...](classpcl_1_1_narf#a2b67a8d6011ee5c20d9427e7cdd1b3d6) |
|
| static void  | [extractFromRangeImageAndAddToList](classpcl_1_1_narf#aab5c91809cbfbce1ede48f82125fc2fd) (const [RangeImage](classpcl_1_1_range_image) &range\_image, float image\_x, float image\_y, int descriptor\_size, float support\_size, bool rotation\_invariant, std::vector< [Narf](classpcl_1_1_narf) \* > &feature\_list) |
|  | Same as above. [More...](classpcl_1_1_narf#aab5c91809cbfbce1ede48f82125fc2fd) |
|
| static void  | [extractForInterestPoints](classpcl_1_1_narf#ad0d6212bd684e1bd04281b2b495bdd81) (const [RangeImage](classpcl_1_1_range_image) &range\_image, const [PointCloud](classpcl_1_1_point_cloud)< [InterestPoint](structpcl_1_1_interest_point) > &interest\_points, int descriptor\_size, float support\_size, bool rotation\_invariant, std::vector< [Narf](classpcl_1_1_narf) \* > &feature\_list) |
|  | Get a list of features from the given interest points. [More...](classpcl_1_1_narf#ad0d6212bd684e1bd04281b2b495bdd81) |
|
| static void  | [extractForEveryRangeImagePointAndAddToList](classpcl_1_1_narf#abcbc027348cdabae5b754a01faf7dbcf) (const [RangeImage](classpcl_1_1_range_image) &range\_image, int descriptor\_size, float support\_size, bool rotation\_invariant, std::vector< [Narf](classpcl_1_1_narf) \* > &feature\_list) |
|  | Extract an NARF for every point in the range image. [More...](classpcl_1_1_narf#abcbc027348cdabae5b754a01faf7dbcf) |
|




|  |
| --- |
| 
 Static Public Attributes |
| static int  | [max\_no\_of\_threads](classpcl_1_1_narf#a1cc0989284b374c5bded66135a1b67ba) |
|  | The maximum number of openmp threads that can be used in this class. [More...](classpcl_1_1_narf#a1cc0989284b374c5bded66135a1b67ba) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [reset](classpcl_1_1_narf#aa9335fa38746f8e7bfb4c9636331e1fc) () |
|  | Reset al members to default values and free allocated memory. [More...](classpcl_1_1_narf#aa9335fa38746f8e7bfb4c9636331e1fc) |
|
| void  | [deepCopy](classpcl_1_1_narf#adf2b4b5701f7f4870bff70391f533dc8) (const [Narf](classpcl_1_1_narf) &other) |
|  | Create a deep copy of other. [More...](classpcl_1_1_narf#adf2b4b5701f7f4870bff70391f533dc8) |
|
| float \*  | [getBlurredSurfacePatch](classpcl_1_1_narf#a7b5d224adcdd8485e02a05ebe229aaf1) (int new\_pixel\_size, int blur\_radius) const |
|  | Get the surface patch with a blur on it. [More...](classpcl_1_1_narf#a7b5d224adcdd8485e02a05ebe229aaf1) |
|
| void  | [saveHeader](classpcl_1_1_narf#a8125c8d1ca006267b558380b85fdfc2a) (std::ostream &file) const |
|  | Write header to output stream. [More...](classpcl_1_1_narf#a8125c8d1ca006267b558380b85fdfc2a) |
|
| int  | [loadHeader](classpcl_1_1_narf#a4e7e324958d2d3ffa82fd598e70bc57d) (std::istream &file) const |
|  | Read header from input stream. [More...](classpcl_1_1_narf#a4e7e324958d2d3ffa82fd598e70bc57d) |
|




|  |
| --- |
| 
 Static Protected Member Functions |
| static const std::string  | [getHeaderKeyword](classpcl_1_1_narf#a53d8ffebaa6aa3ed5a99728db0503f15) () |
|




|  |
| --- |
| 
 Protected Attributes |
| Eigen::Vector3f  | [position\_](classpcl_1_1_narf#aed0b171f9d1a57fe779dc10c220d1d05) |
|
| Eigen::Affine3f  | [transformation\_](classpcl_1_1_narf#a94f4f5a4ee31e76336c2d63a6bf2a006) |
|
| float \*  | [surface\_patch\_](classpcl_1_1_narf#a09f5a7275b338f53c6db9cde2b50a527) |
|
| int  | [surface\_patch\_pixel\_size\_](classpcl_1_1_narf#afe6fe4cb0e7f24cf762728b81299903f) |
|
| float  | [surface\_patch\_world\_size\_](classpcl_1_1_narf#a8124db0f95a3a1a6cd5e3a43d1553326) |
|
| float  | [surface\_patch\_rotation\_](classpcl_1_1_narf#a64ec59aa5c8901769ecdbd7b5b76423d) |
|
| float \*  | [descriptor\_](classpcl_1_1_narf#a9b9be06308b191df33dc931f31c65a2d) |
|
| int  | [descriptor\_size\_](classpcl_1_1_narf#a0870b52f655a4242357a3cc3eb832d23) |
|




|  |
| --- |
| 
 Static Protected Attributes |
| static const int  | [VERSION](classpcl_1_1_narf#a8e83edbcb664588c69e96727dd0f1acc) = 1 |
|

 Detailed Description
--------------------

 
NARF ([Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Aligned Radial Features) is a point feature descriptor type for 3D data. 

 Please refer to [pcl/features/narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html) if you want the class derived from pcl [Feature](classpcl_1_1_feature "Feature represents the base feature class."). See B. Steder, R. B. Rusu, K. Konolige, and W. Burgard Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Extraction on 3D Range Scans Taking into Account [Object](https://pointclouds.org/documentation/class_object.html) Boundaries In Proc. of the IEEE Int. Conf. on Robotics &Automation (ICRA). 2011. 



Author
Bastian Steder 
 Definition at line [65](https://pointclouds.org/documentation/narf_8h_source.html#l00065) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  Narf() [1/2]
------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::Narf::Narf  | ( |  | ) |  |

 
 Constructor. 

    Narf() [2/2]
------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| pcl::Narf::Narf  | ( | const [Narf](classpcl_1_1_narf) &  | *other* | ) |  |

 
 Copy Constructor. 

    ~Narf()
-------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::Narf::~Narf  | ( |  | ) |  |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  copyToNarf36()
--------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::copyToNarf36  | ( | [Narf36](structpcl_1_1_narf36) &  | *narf36* | ) |  const |

 | inline |

 
 Copy the descriptor and pose to the point struct [Narf36](structpcl_1_1_narf36 "A point structure representing the Narf descriptor."). 

 Definition at line [54](https://pointclouds.org/documentation/narf_8hpp_source.html#l00054) of file [narf.hpp](https://pointclouds.org/documentation/narf_8hpp_source.html).

 References [pcl::Narf36::descriptor](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01566), [descriptor\_](https://pointclouds.org/documentation/narf_8h_source.html#l00284), [descriptor\_size\_](https://pointclouds.org/documentation/narf_8h_source.html#l00285), [pcl::getTranslationAndEulerAngles()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00594), [pcl::Narf36::pitch](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01565), [pcl::Narf36::roll](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01565), [transformation\_](https://pointclouds.org/documentation/narf_8h_source.html#l00279), [pcl::Narf36::x](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01565), [pcl::Narf36::y](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01565), [pcl::Narf36::yaw](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01565), and [pcl::Narf36::z](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01565).

    deepCopy()
----------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::deepCopy  | ( | const [Narf](classpcl_1_1_narf) &  | *other* | ) |  |

 | protected |

 
 Create a deep copy of other. 

    extractDescriptor()
-------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool pcl::Narf::extractDescriptor  | ( | int  | *descriptor\_size* | ) |  |

 
 Create the descriptor from the already set other members. 

    extractForEveryRangeImagePointAndAddToList()
--------------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void pcl::Narf::extractForEveryRangeImagePointAndAddToList  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size*,  |
|  |  | bool  | *rotation\_invariant*,  |
|  |  | std::vector< [Narf](classpcl_1_1_narf) \* > &  | *feature\_list* |
|  | ) |  |  |

 | static |

 
 Extract an NARF for every point in the range image. 

    extractForInterestPoints()
--------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void pcl::Narf::extractForInterestPoints  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const [PointCloud](classpcl_1_1_point_cloud)< [InterestPoint](structpcl_1_1_interest_point) > &  | *interest\_points*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size*,  |
|  |  | bool  | *rotation\_invariant*,  |
|  |  | std::vector< [Narf](classpcl_1_1_narf) \* > &  | *feature\_list* |
|  | ) |  |  |

 | static |

 
 Get a list of features from the given interest points. 

    extractFromRangeImage() [1/4]
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::Narf::extractFromRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const Eigen::Affine3f &  | *pose*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size*,  |
|  |  | int  | *surface\_patch\_world\_size* = `NARF_DEFAULT_SURFACE_PATCH_PIXEL_SIZE` |
|  | ) |  |  |

 
 Method to extract a NARF feature from a certain 3D point using a range image. 

 pose determines the coordinate system of the feature, whereas it transforms a point from the world into the feature system. This means the interest point at which the feature is extracted will be the inverse application of pose onto (0,0,0). descriptor\_size\_ determines the size of the descriptor, support\_size determines the support size of the feature, meaning the size in the world it covers 

    extractFromRangeImage() [2/4]
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::Narf::extractFromRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const Eigen::Vector3f &  | *interest\_point*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size* |
|  | ) |  |  |

 
 Same as above. 

    extractFromRangeImage() [3/4]
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::Narf::extractFromRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const [InterestPoint](structpcl_1_1_interest_point) &  | *interest\_point*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size* |
|  | ) |  |  |

 
 Same as above. 

    extractFromRangeImage() [4/4]
-----------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::Narf::extractFromRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size* |
|  | ) |  |  |

 
 Same as above, but determines the transformation from the surface in the range image. 

    extractFromRangeImageAndAddToList() [1/2]
-----------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void pcl::Narf::extractFromRangeImageAndAddToList  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const Eigen::Vector3f &  | *interest\_point*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size*,  |
|  |  | bool  | *rotation\_invariant*,  |
|  |  | std::vector< [Narf](classpcl_1_1_narf) \* > &  | *feature\_list* |
|  | ) |  |  |

 | static |

 
 Add features extracted at the given interest point and add them to the list. 

    extractFromRangeImageAndAddToList() [2/2]
-----------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static void pcl::Narf::extractFromRangeImageAndAddToList  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | float  | *image\_x*,  |
|  |  | float  | *image\_y*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size*,  |
|  |  | bool  | *rotation\_invariant*,  |
|  |  | std::vector< [Narf](classpcl_1_1_narf) \* > &  | *feature\_list* |
|  | ) |  |  |

 | static |

 
 Same as above. 

    extractFromRangeImageWithBestRotation()
---------------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::Narf::extractFromRangeImageWithBestRotation  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const Eigen::Vector3f &  | *interest\_point*,  |
|  |  | int  | *descriptor\_size*,  |
|  |  | float  | *support\_size* |
|  | ) |  |  |

 
 Same as above, but using the rotational invariant version by choosing the best extracted rotation around the normal. 

 Use extractFromRangeImageAndAddToList if you want to enable the system to return multiple features with different rotations. 

    freeSurfacePatch()
------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::Narf::freeSurfacePatch  | ( |  | ) |  |

 | inline |

 
 Method to erase the surface patch and free the memory. 

 Definition at line [226](https://pointclouds.org/documentation/narf_8h_source.html#l00226) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getBlurredSurfacePatch()
------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float\* pcl::Narf::getBlurredSurfacePatch  | ( | int  | *new\_pixel\_size*,  |
|  |  | int  | *blur\_radius* |
|  | ) |  |  const |

 | protected |

 
 Get the surface patch with a blur on it. 

    getDescriptor() [1/2]
---------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::Narf::getDescriptor  | ( |  | ) |  |

 | inline |

 
 Getter for the descriptor. 

 Definition at line [181](https://pointclouds.org/documentation/narf_8h_source.html#l00181) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getDescriptor() [2/2]
---------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const float\* pcl::Narf::getDescriptor  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the descriptor. 

 Definition at line [178](https://pointclouds.org/documentation/narf_8h_source.html#l00178) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

 Referenced by [pcl::Narf::FeaturePointRepresentation::copyToFloatArray()](https://pointclouds.org/documentation/narf_8h_source.html#l00245).

    getDescriptorDistance()
-----------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::Narf::getDescriptorDistance  | ( | const [Narf](classpcl_1_1_narf) &  | *other* | ) |  const |

 | inline |

 
 Calculate descriptor distance, value in [0,1] with 0 meaning identical and 1 every cell above maximum distance. 

 Definition at line [46](https://pointclouds.org/documentation/narf_8hpp_source.html#l00046) of file [narf.hpp](https://pointclouds.org/documentation/narf_8hpp_source.html).

 References [descriptor\_](https://pointclouds.org/documentation/narf_8h_source.html#l00284), [descriptor\_size\_](https://pointclouds.org/documentation/narf_8h_source.html#l00285), and [pcl::L1\_Norm()](https://pointclouds.org/documentation/norms_8hpp_source.html#l00088).

    getDescriptorSize() [1/2]
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int& pcl::Narf::getDescriptorSize  | ( |  | ) |  |

 | inline |

 
 Getter for the descriptor length. 

 Definition at line [187](https://pointclouds.org/documentation/narf_8h_source.html#l00187) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getDescriptorSize() [2/2]
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const int& pcl::Narf::getDescriptorSize  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the descriptor length. 

 Definition at line [184](https://pointclouds.org/documentation/narf_8h_source.html#l00184) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getHeaderKeyword()
------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| static const std::string pcl::Narf::getHeaderKeyword  | ( |  | ) |  |

 | inlinestaticprotected |

 
 Definition at line [272](https://pointclouds.org/documentation/narf_8h_source.html#l00272) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getNoOfBeamPoints()
-------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int pcl::Narf::getNoOfBeamPoints  | ( |  | ) |  const |

 | inline |

 
 How many points on each beam of the gradient star are used to calculate the descriptor? 

 Definition at line [151](https://pointclouds.org/documentation/narf_8h_source.html#l00151) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

 References [pcl\_lrint](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00253).

    getPosition() [1/2]
-------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::Vector3f& pcl::Narf::getPosition  | ( |  | ) |  |

 | inline |

 
 Getter for the position. 

 Definition at line [193](https://pointclouds.org/documentation/narf_8h_source.html#l00193) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getPosition() [2/2]
-------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Vector3f& pcl::Narf::getPosition  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the position. 

 Definition at line [190](https://pointclouds.org/documentation/narf_8h_source.html#l00190) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getRotatedVersions()
--------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::Narf::getRotatedVersions  | ( | const [RangeImage](classpcl_1_1_range_image) &  | *range\_image*,  |
|  |  | const std::vector< float > &  | *rotations*,  |
|  |  | std::vector< [Narf](classpcl_1_1_narf) \* > &  | *features* |
|  | ) |  |  const |

 
    getRotations()
--------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::Narf::getRotations  | ( | std::vector< float > &  | *rotations*,  |
|  |  | std::vector< float > &  | *strengths* |
|  | ) |  |  const |

 
    getSurfacePatch() [1/2]
-----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::Narf::getSurfacePatch  | ( |  | ) |  |

 | inline |

 
 Getter for the surface patch. 

 Definition at line [223](https://pointclouds.org/documentation/narf_8h_source.html#l00223) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatch() [2/2]
-----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const float\* pcl::Narf::getSurfacePatch  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the surface patch. 

 Definition at line [220](https://pointclouds.org/documentation/narf_8h_source.html#l00220) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatchPixelSize() [1/2]
--------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int& pcl::Narf::getSurfacePatchPixelSize  | ( |  | ) |  |

 | inline |

 
 Getter for the pixel size of the surface patch (only one dimension) 

 Definition at line [205](https://pointclouds.org/documentation/narf_8h_source.html#l00205) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatchPixelSize() [2/2]
--------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const int& pcl::Narf::getSurfacePatchPixelSize  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the pixel size of the surface patch (only one dimension) 

 Definition at line [202](https://pointclouds.org/documentation/narf_8h_source.html#l00202) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatchRotation() [1/2]
-------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float& pcl::Narf::getSurfacePatchRotation  | ( |  | ) |  |

 | inline |

 
 Getter for the rotation of the surface patch. 

 Definition at line [217](https://pointclouds.org/documentation/narf_8h_source.html#l00217) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatchRotation() [2/2]
-------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const float& pcl::Narf::getSurfacePatchRotation  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the rotation of the surface patch. 

 Definition at line [214](https://pointclouds.org/documentation/narf_8h_source.html#l00214) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatchWorldSize() [1/2]
--------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float& pcl::Narf::getSurfacePatchWorldSize  | ( |  | ) |  |

 | inline |

 
 Getter for the world size of the surface patch. 

 Definition at line [211](https://pointclouds.org/documentation/narf_8h_source.html#l00211) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getSurfacePatchWorldSize() [2/2]
--------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const float& pcl::Narf::getSurfacePatchWorldSize  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the world size of the surface patch. 

 Definition at line [208](https://pointclouds.org/documentation/narf_8h_source.html#l00208) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getTransformation() [1/2]
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::Affine3f& pcl::Narf::getTransformation  | ( |  | ) |  |

 | inline |

 
 Getter for the 6DoF pose. 

 Definition at line [199](https://pointclouds.org/documentation/narf_8h_source.html#l00199) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    getTransformation() [2/2]
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Affine3f& pcl::Narf::getTransformation  | ( |  | ) |  const |

 | inline |

 
 Getter (const) for the 6DoF pose. 

 Definition at line [196](https://pointclouds.org/documentation/narf_8h_source.html#l00196) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    loadBinary() [1/2]
------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::loadBinary  | ( | const std::string &  | *filename* | ) |  |

 
 Read from file. 

    loadBinary() [2/2]
------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::loadBinary  | ( | std::istream &  | *file* | ) |  |

 
 Read from input stream. 

    loadHeader()
------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::Narf::loadHeader  | ( | std::istream &  | *file* | ) |  const |

 | protected |

 
 Read header from input stream. 

    operator=()
-----------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| const [Narf](classpcl_1_1_narf)& pcl::Narf::operator=  | ( | const [Narf](classpcl_1_1_narf) &  | *other* | ) |  |

 
 Assignment operator. 

    reset()
-------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::Narf::reset  | ( |  | ) |  |

 | protected |

 
 Reset al members to default values and free allocated memory. 

    saveBinary() [1/2]
------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::saveBinary  | ( | const std::string &  | *filename* | ) |  const |

 
 Write to file. 

    saveBinary() [2/2]
------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::saveBinary  | ( | std::ostream &  | *file* | ) |  const |

 
 Write to output stream. 

    saveHeader()
------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::saveHeader  | ( | std::ostream &  | *file* | ) |  const |

 | protected |

 
 Write header to output stream. 

    setDescriptor()
---------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::setDescriptor  | ( | float \*  | *descriptor* | ) |  |

 | inline |

 
 Setter for the descriptor. 

 Definition at line [231](https://pointclouds.org/documentation/narf_8h_source.html#l00231) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    setSurfacePatch()
-----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::Narf::setSurfacePatch  | ( | float \*  | *surface\_patch* | ) |  |

 | inline |

 
 Setter for the surface patch. 

 Definition at line [234](https://pointclouds.org/documentation/narf_8h_source.html#l00234) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

   Member Data Documentation
-------------------------

  descriptor\_
------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float\* pcl::Narf::descriptor\_ |

 | protected |

 
 Definition at line [284](https://pointclouds.org/documentation/narf_8h_source.html#l00284) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

 Referenced by [copyToNarf36()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00054), and [getDescriptorDistance()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00046).

    descriptor\_size\_
------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::Narf::descriptor\_size\_ |

 | protected |

 
 Definition at line [285](https://pointclouds.org/documentation/narf_8h_source.html#l00285) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

 Referenced by [copyToNarf36()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00054), and [getDescriptorDistance()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00046).

    max\_no\_of\_threads
--------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::Narf::max\_no\_of\_threads |

 | static |

 
 The maximum number of openmp threads that can be used in this class. 

 Definition at line [82](https://pointclouds.org/documentation/narf_8h_source.html#l00082) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    position\_
----------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector3f pcl::Narf::position\_ |

 | protected |

 
 Definition at line [278](https://pointclouds.org/documentation/narf_8h_source.html#l00278) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    surface\_patch\_
----------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float\* pcl::Narf::surface\_patch\_ |

 | protected |

 
 Definition at line [280](https://pointclouds.org/documentation/narf_8h_source.html#l00280) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    surface\_patch\_pixel\_size\_
-----------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::Narf::surface\_patch\_pixel\_size\_ |

 | protected |

 
 Definition at line [281](https://pointclouds.org/documentation/narf_8h_source.html#l00281) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    surface\_patch\_rotation\_
--------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float pcl::Narf::surface\_patch\_rotation\_ |

 | protected |

 
 Definition at line [283](https://pointclouds.org/documentation/narf_8h_source.html#l00283) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    surface\_patch\_world\_size\_
-----------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float pcl::Narf::surface\_patch\_world\_size\_ |

 | protected |

 
 Definition at line [282](https://pointclouds.org/documentation/narf_8h_source.html#l00282) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

    transformation\_
----------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Affine3f pcl::Narf::transformation\_ |

 | protected |

 
 Definition at line [279](https://pointclouds.org/documentation/narf_8h_source.html#l00279) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

 Referenced by [copyToNarf36()](https://pointclouds.org/documentation/narf_8hpp_source.html#l00054).

    VERSION
-------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| const int pcl::Narf::VERSION = 1 |

 | staticprotected |

 
 Definition at line [275](https://pointclouds.org/documentation/narf_8h_source.html#l00275) of file [narf.h](https://pointclouds.org/documentation/narf_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[narf.h](https://pointclouds.org/documentation/narf_8h_source.html)
* pcl/features/impl/[narf.hpp](https://pointclouds.org/documentation/narf_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_narf.html>

A point structure representing normal coordinates and the surface curvature estimate. [More...](structpcl_1_1_normal#details)

 `#include <[pcl/impl/point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Member Functions |
| constexpr  | [Normal](structpcl_1_1_normal#a6fc97ddec9e539cc2e6e41a285e97188) (const [\_Normal](structpcl_1_1___normal) &p) |
|
| constexpr  | [Normal](structpcl_1_1_normal#a987d5e7ceb545a68fbf635257859209a) (float \_curvature=0.f) |
|
| constexpr  | [Normal](structpcl_1_1_normal#aa45cdb75a2f79d4eb67c9fe9791c0aab) (float n\_x, float n\_y, float n\_z, float \_curvature=0.f) |
|




|  |
| --- |
| 
 Friends |
| std::ostream &  | [operator<<](structpcl_1_1_normal#ac1675a60d44d6931b91a9529d63365ca) (std::ostream &os, const [Normal](structpcl_1_1_normal) &p) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Attributes inherited from [pcl::\_Normal](structpcl_1_1___normal) |
|  | [PCL\_ADD\_NORMAL4D](structpcl_1_1___normal#a519ed326cff118138acbef6b8a195b8d) |
|
| union { |
|  struct { |
|  float [curvature](structpcl_1_1___normal#af1ab83269c0bccd2d8e46a0cad08ce12) |
|
|  }  |  |
|
|  float [data\_c](structpcl_1_1___normal#a8eb0b04a233c3fcd4ceaacd47e520a02) [4] |
|
| };  |  |
|

 Detailed Description
--------------------

 
A point structure representing normal coordinates and the surface curvature estimate. 

 (SSE friendly) 

 Definition at line [820](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00820) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  Normal() [1/3]
--------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| constexpr pcl::Normal::Normal  | ( | const [\_Normal](structpcl_1_1___normal) &  | *p* | ) |  |

 | inlineconstexpr |

 
 Definition at line [822](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00822) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    Normal() [2/3]
--------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| constexpr pcl::Normal::Normal  | ( | float  | *\_curvature* = `0.f` | ) |  |

 | inlineconstexpr |

 
 Definition at line [824](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00824) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    Normal() [3/3]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| constexpr pcl::Normal::Normal  | ( | float  | *n\_x*,  |
|  |  | float  | *n\_y*,  |
|  |  | float  | *n\_z*,  |
|  |  | float  | *\_curvature* = `0.f` |
|  | ) |  |  |

 | inlineconstexpr |

 
 Definition at line [826](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00826) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

   Friends And Related Function Documentation
------------------------------------------

  operator<<
----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::ostream& operator<<  | ( | std::ostream &  | *os*,  |
|  |  | const [Normal](structpcl_1_1_normal) &  | *p* |
|  | ) |  |  |

 | friend |

 
   

---

The documentation for this struct was generated from the following file:* pcl/impl/[point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/structpcl_1_1_normal.html>

**Computes** NARF feature descriptors for points in a range image See B. [More...](classpcl_1_1_narf_descriptor#details)

 `#include <[pcl/features/narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Classes |
| struct  | [Parameters](structpcl_1_1_narf_descriptor_1_1_parameters) |
|




|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_narf_descriptor#a02f54cfec72f1542e21777370831be63) = shared\_ptr< [NarfDescriptor](classpcl_1_1_narf_descriptor) > |
|
| using  | [ConstPtr](classpcl_1_1_narf_descriptor#ab12778c9c769b0148288c5cc4fe37252) = shared\_ptr< const [NarfDescriptor](classpcl_1_1_narf_descriptor) > |
|
| using  | [BaseClass](classpcl_1_1_narf_descriptor#ae0de2448a2bdf0028dc3af915a37f22b) = [Feature](classpcl_1_1_feature)< [PointWithRange](structpcl_1_1_point_with_range), [Narf36](structpcl_1_1_narf36) > |
|
| - Public Types inherited from [pcl::Feature< PointWithRange, Narf36 >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< [PointWithRange](structpcl_1_1_point_with_range), [Narf36](structpcl_1_1_narf36) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< [PointWithRange](structpcl_1_1_point_with_range), [Narf36](structpcl_1_1_narf36) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [Narf36](structpcl_1_1_narf36) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [NarfDescriptor](classpcl_1_1_narf_descriptor#a4a7813e1d649ca49be8a793e634799e3) (const [RangeImage](classpcl_1_1_range_image) \*range\_image=nullptr, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) \*indices=nullptr) |
|  | Constructor. [More...](classpcl_1_1_narf_descriptor#a4a7813e1d649ca49be8a793e634799e3) |
|
|  | [~NarfDescriptor](classpcl_1_1_narf_descriptor#aa6949d77634fc348b27a93a4dc00eaa1) () override |
|  | Destructor. [More...](classpcl_1_1_narf_descriptor#aa6949d77634fc348b27a93a4dc00eaa1) |
|
| void  | [setRangeImage](classpcl_1_1_narf_descriptor#a659f9df40d0cab608a689892c150a883) (const [RangeImage](classpcl_1_1_range_image) \*range\_image, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) \*indices=nullptr) |
|  | Set input data. [More...](classpcl_1_1_narf_descriptor#a659f9df40d0cab608a689892c150a883) |
|
| void  | [compute](classpcl_1_1_narf_descriptor#a0ecd473479186000ba6bdadd264a3ad6) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overwrite the compute function of the base class. [More...](classpcl_1_1_narf_descriptor#a0ecd473479186000ba6bdadd264a3ad6) |
|
| [Parameters](structpcl_1_1_narf_descriptor_1_1_parameters) &  | [getParameters](classpcl_1_1_narf_descriptor#ac2f0bef44c6e4f50d75e0536e6b80a71) () |
|  | Get a reference to the parameters struct. [More...](classpcl_1_1_narf_descriptor#ac2f0bef44c6e4f50d75e0536e6b80a71) |
|
| - Public Member Functions inherited from [pcl::Feature< PointWithRange, Narf36 >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_narf_descriptor#a19c0e5baa52c56bcc00cc5721f6eceea) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Implementation of abstract derived function. [More...](classpcl_1_1_narf_descriptor#a19c0e5baa52c56bcc00cc5721f6eceea) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointWithRange, Narf36 >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| const [RangeImage](classpcl_1_1_range_image) \*  | [range\_image\_](classpcl_1_1_narf_descriptor#a722c8952af1dc10ff516454e4d62a6c8) |
|
| [Parameters](structpcl_1_1_narf_descriptor_1_1_parameters) | [parameters\_](classpcl_1_1_narf_descriptor#a954d67e150bb252843602c655eb18149) |
|
| - Protected Attributes inherited from [pcl::Feature< PointWithRange, Narf36 >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
**Computes** NARF feature descriptors for points in a range image See B. 

 Steder, R. B. Rusu, K. Konolige, and W. Burgard Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Extraction on 3D Range Scans Taking into Account [Object](https://pointclouds.org/documentation/class_object.html) Boundaries In Proc. of the IEEE Int. Conf. on Robotics &Automation (ICRA). 2011. 



Author
Bastian Steder 
 Definition at line [55](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00055) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

 
Member Typedef Documentation
----------------------------

  BaseClass
---------

   

|  |
| --- |
| using [pcl::NarfDescriptor::BaseClass](classpcl_1_1_narf_descriptor#ae0de2448a2bdf0028dc3af915a37f22b) = [Feature](classpcl_1_1_feature)<[PointWithRange](structpcl_1_1_point_with_range),[Narf36](structpcl_1_1_narf36)> |

 
 Definition at line [61](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00061) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

    ConstPtr
--------

   

|  |
| --- |
| using [pcl::NarfDescriptor::ConstPtr](classpcl_1_1_narf_descriptor#ab12778c9c769b0148288c5cc4fe37252) = shared\_ptr<const [NarfDescriptor](classpcl_1_1_narf_descriptor)> |

 
 Definition at line [59](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00059) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::NarfDescriptor::Ptr](classpcl_1_1_narf_descriptor#a02f54cfec72f1542e21777370831be63) = shared\_ptr<[NarfDescriptor](classpcl_1_1_narf_descriptor)> |

 
 Definition at line [58](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00058) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  NarfDescriptor()
----------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::NarfDescriptor::NarfDescriptor  | ( | const [RangeImage](classpcl_1_1_range_image) \*  | *range\_image* = `nullptr`,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) \*  | *indices* = `nullptr` |
|  | ) |  |  |

 
 Constructor. 

    ~NarfDescriptor()
-----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::NarfDescriptor::~NarfDescriptor  | ( |  | ) |  |

 | override |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  compute()
---------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::NarfDescriptor::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Overwrite the compute function of the base class. 

    computeFeature()
----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::NarfDescriptor::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Implementation of abstract derived function. 

 Implements [pcl::Feature< PointWithRange, Narf36 >](classpcl_1_1_feature).

    getParameters()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Parameters](structpcl_1_1_narf_descriptor_1_1_parameters)& pcl::NarfDescriptor::getParameters  | ( |  | ) |  |

 | inline |

 
 Get a reference to the parameters struct. 

 Definition at line [89](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00089) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

    setRangeImage()
---------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::NarfDescriptor::setRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) \*  | *range\_image*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) \*  | *indices* = `nullptr` |
|  | ) |  |  |

 
 Set input data. 

   Member Data Documentation
-------------------------

  parameters\_
------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [Parameters](structpcl_1_1_narf_descriptor_1_1_parameters) pcl::NarfDescriptor::parameters\_ |

 | protected |

 
 Definition at line [94](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00094) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

    range\_image\_
--------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| const [RangeImage](classpcl_1_1_range_image)\* pcl::NarfDescriptor::range\_image\_ |

 | protected |

 
 Definition at line [93](https://pointclouds.org/documentation/narf__descriptor_8h_source.html#l00093) of file [narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/features/[narf\_descriptor.h](https://pointclouds.org/documentation/narf__descriptor_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_narf_descriptor.html>

[NormalEstimation](classpcl_1_1_normal_estimation "NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.") estimates local surface properties (surface normals and curvatures)at each 3D point. [More...](classpcl_1_1_normal_estimation#details)

 `#include <[pcl/features/normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_normal_estimation#afb038a7e2dab25d3e8b935adc300f8de) = shared\_ptr< [NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_normal_estimation#a0666a65ca1d9ee95d305dcc10fe66fc5) = shared\_ptr< const [NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_normal_estimation#abd1b419599f695bf80e7fcdb761cc858) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [NormalEstimation](classpcl_1_1_normal_estimation#a03cd56f79d35ea7202c3eda764c6d085) () |
|  | Empty constructor. [More...](classpcl_1_1_normal_estimation#a03cd56f79d35ea7202c3eda764c6d085) |
|
|  | [~NormalEstimation](classpcl_1_1_normal_estimation#a14d4927cce3e7fb28c0b582c937371d6) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_normal_estimation#a14d4927cce3e7fb28c0b582c937371d6) |
|
| bool  | [computePointNormal](classpcl_1_1_normal_estimation#a81b73d67bfdb2d70e09d8b2cd4749f45) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Vector4f &plane\_parameters, float &curvature) |
|  | Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. [More...](classpcl_1_1_normal_estimation#a81b73d67bfdb2d70e09d8b2cd4749f45) |
|
| bool  | [computePointNormal](classpcl_1_1_normal_estimation#ab3a301fbecaa04fd52b1a42824055dfc) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, float &nx, float &ny, float &nz, float &curvature) |
|  | Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. [More...](classpcl_1_1_normal_estimation#ab3a301fbecaa04fd52b1a42824055dfc) |
|
| void  | [setInputCloud](classpcl_1_1_normal_estimation#aff25e25bac3a8f682149025e293a919d) (const [PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) &cloud) override |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_normal_estimation#aff25e25bac3a8f682149025e293a919d) |
|
| void  | [setViewPoint](classpcl_1_1_normal_estimation#a215cb3a84f03a4346556219121fce8e5) (float vpx, float vpy, float vpz) |
|  | Set the viewpoint. [More...](classpcl_1_1_normal_estimation#a215cb3a84f03a4346556219121fce8e5) |
|
| void  | [getViewPoint](classpcl_1_1_normal_estimation#acaa46c32b817cbd5ff6120d9e04326e6) (float &vpx, float &vpy, float &vpz) |
|  | Get the viewpoint. [More...](classpcl_1_1_normal_estimation#acaa46c32b817cbd5ff6120d9e04326e6) |
|
| void  | [useSensorOriginAsViewPoint](classpcl_1_1_normal_estimation#ab9bb23cd42dbb1d7bbbcde41b678fda4) () |
|  | sets whether the sensor origin or a user given viewpoint should be used. [More...](classpcl_1_1_normal_estimation#ab9bb23cd42dbb1d7bbbcde41b678fda4) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_normal_estimation#a61fa0839b23d07a8c4b56190f4992c8f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate normals for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_normal_estimation#a61fa0839b23d07a8c4b56190f4992c8f) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| float  | [vpx\_](classpcl_1_1_normal_estimation#a972e9847b30c5baf8738c5956e321370) |
|  | Values describing the viewpoint ("pinhole" camera model assumed). [More...](classpcl_1_1_normal_estimation#a972e9847b30c5baf8738c5956e321370) |
|
| float  | [vpy\_](classpcl_1_1_normal_estimation#ac54d5fd81ba7ba8c6017a80be58984ce) |
|
| float  | [vpz\_](classpcl_1_1_normal_estimation#a1b4f6247c470a99920ba0bbdf8316b4b) |
|
| EIGEN\_ALIGN16 Eigen::Matrix3f  | [covariance\_matrix\_](classpcl_1_1_normal_estimation#a1a5638a31a9be8d78129e1edffe52c45) |
|  | Placeholder for the 3x3 covariance matrix at each surface patch. [More...](classpcl_1_1_normal_estimation#a1a5638a31a9be8d78129e1edffe52c45) |
|
| Eigen::Vector4f  | [xyz\_centroid\_](classpcl_1_1_normal_estimation#ac061ee015f9f914ae54cf27296e0e9ca) |
|  | 16-bytes aligned placeholder for the XYZ centroid of a surface patch. [More...](classpcl_1_1_normal_estimation#ac061ee015f9f914ae54cf27296e0e9ca) |
|
| bool  | [use\_sensor\_origin\_](classpcl_1_1_normal_estimation#a3d3ebf091502d08f19d5b1d123fa535c) |
|  | whether the sensor origin of the input cloud or a user given viewpoint should be used. [More...](classpcl_1_1_normal_estimation#a3d3ebf091502d08f19d5b1d123fa535c) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT> class pcl::NormalEstimation< PointInT, PointOutT >

 [NormalEstimation](classpcl_1_1_normal_estimation "NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.") estimates local surface properties (surface normals and curvatures)at each 3D point. 

 If PointOutT is specified as [pcl::Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate."), the normal is stored in the first 3 components (0-2), and the curvature is stored in component 3.

 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p) for a parallel implementation. 
 
Author
Radu B. Rusu 
 Definition at line [243](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00243) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [NormalEstimation](classpcl_1_1_normal_estimation)<PointInT, PointOutT> > |

 
 Definition at line [247](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00247) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

    PointCloudConstPtr
------------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::[PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) |

 
 Definition at line [258](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00258) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [257](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00257) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[NormalEstimation](classpcl_1_1_normal_estimation)<PointInT, PointOutT> > |

 
 Definition at line [246](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00246) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  NormalEstimation()
------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::[NormalEstimation](classpcl_1_1_normal_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [261](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00261) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~NormalEstimation()
-------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::~[NormalEstimation](classpcl_1_1_normal_estimation) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate normals for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Note
In situations where not enough neighbors are found, the normal and curvature values are set to NaN. 
 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains surface normals and curvatures  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [48](https://pointclouds.org/documentation/normal__3d_8hpp_source.html#l00048) of file [normal\_3d.hpp](https://pointclouds.org/documentation/normal__3d_8hpp_source.html).

 References [pcl::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00061), [pcl::flipNormalTowardsViewpoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00122), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointNormal() [1/2]
--------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::computePointNormal  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | Eigen::Vector4f &  | *plane\_parameters*,  |
|  |  | float &  | *curvature* |
|  | ) |  |  |

 | inline |

 
 Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| indices | the point cloud indices that need to be used  |
| plane\_parameters | the plane parameters as: a, b, c, d (ax + by + cz + d = 0)  |
| curvature | the estimated surface curvature as a measure of  \[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]  |

   Definition at line [284](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00284) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), [pcl::NormalEstimation< PointInT, PointOutT >::covariance\_matrix\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00409), [pcl::solvePlaneParameters()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00052), and [pcl::NormalEstimation< PointInT, PointOutT >::xyz\_centroid\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00412).

    computePointNormal() [2/2]
--------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::computePointNormal  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | float &  | *nx*,  |
|  |  | float &  | *ny*,  |
|  |  | float &  | *nz*,  |
|  |  | float &  | *curvature* |
|  | ) |  |  |

 | inline |

 
 Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the input point cloud  |
| indices | the point cloud indices that need to be used  |
| nx | the resultant X component of the plane normal  |
| ny | the resultant Y component of the plane normal  |
| nz | the resultant Z component of the plane normal  |
| curvature | the estimated surface curvature as a measure of  \[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]  |

   Definition at line [313](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00313) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), [pcl::NormalEstimation< PointInT, PointOutT >::covariance\_matrix\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00409), [pcl::solvePlaneParameters()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00052), and [pcl::NormalEstimation< PointInT, PointOutT >::xyz\_centroid\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00412).

    getViewPoint()
--------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::getViewPoint  | ( | float &  | *vpx*,  |
|  |  | float &  | *vpy*,  |
|  |  | float &  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Get the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | vpx | x-coordinate of the view point  |
| [out] | vpy | y-coordinate of the view point  |
| [out] | vpz | z-coordinate of the view point  |

   
Note
this method returns the currently used viewpoint for normal flipping. If the viewpoint is set manually using the setViewPoint method, this method will return the set view point coordinates. If an input cloud is set, it will return the sensor origin otherwise it will return the origin (0, 0, 0) 
 Definition at line [366](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00366) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::NormalEstimation< PointInT, PointOutT >::vpx\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), [pcl::NormalEstimation< PointInT, PointOutT >::vpy\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), and [pcl::NormalEstimation< PointInT, PointOutT >::vpz\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406).

    setInputCloud()
---------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::setInputCloud  | ( | const [PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) &  | *cloud* | ) |  |

 | inlineoverride |

 
 Provide a pointer to the input dataset. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |

   Definition at line [332](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::PCLBase< PointInT >::input\_](https://pointclouds.org/documentation/pcl__base_8h_source.html#l00147), [pcl::NormalEstimation< PointInT, PointOutT >::use\_sensor\_origin\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00415), [pcl::NormalEstimation< PointInT, PointOutT >::vpx\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), [pcl::NormalEstimation< PointInT, PointOutT >::vpy\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), and [pcl::NormalEstimation< PointInT, PointOutT >::vpz\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406).

 Referenced by [pcl::UnaryClassifier< PointT >::computeFPFH()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00202), [pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf()](https://pointclouds.org/documentation/hough__3d_8hpp_source.html#l00055), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::gpu::DataSource::estimateNormals()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00107), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00192), [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute()](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00212), and [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00216).

    setViewPoint()
--------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::setViewPoint  | ( | float  | *vpx*,  |
|  |  | float  | *vpy*,  |
|  |  | float  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Set the viewpoint. 

 
Parameters
 

|  |  |
| --- | --- |
| vpx | the X coordinate of the viewpoint  |
| vpy | the Y coordinate of the viewpoint  |
| vpz | the Z coordinate of the viewpoint  |

   Definition at line [349](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00349) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::NormalEstimation< PointInT, PointOutT >::use\_sensor\_origin\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00415), [pcl::NormalEstimation< PointInT, PointOutT >::vpx\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), [pcl::NormalEstimation< PointInT, PointOutT >::vpy\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), and [pcl::NormalEstimation< PointInT, PointOutT >::vpz\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406).

    useSensorOriginAsViewPoint()
----------------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::useSensorOriginAsViewPoint  | ( |  | ) |  |

 | inline |

 
 sets whether the sensor origin or a user given viewpoint should be used. 

 After this method, the normal estimation method uses the sensor origin of the input cloud. to use a user defined view point, use the method setViewPoint 

 Definition at line [378](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00378) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 References [pcl::PCLBase< PointInT >::input\_](https://pointclouds.org/documentation/pcl__base_8h_source.html#l00147), [pcl::NormalEstimation< PointInT, PointOutT >::use\_sensor\_origin\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00415), [pcl::NormalEstimation< PointInT, PointOutT >::vpx\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), [pcl::NormalEstimation< PointInT, PointOutT >::vpy\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406), and [pcl::NormalEstimation< PointInT, PointOutT >::vpz\_](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406).

   Member Data Documentation
-------------------------

  covariance\_matrix\_
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| EIGEN\_ALIGN16 Eigen::Matrix3f [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::covariance\_matrix\_ |

 | protected |

 
 Placeholder for the 3x3 covariance matrix at each surface patch. 

 Definition at line [409](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00409) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00284).

    use\_sensor\_origin\_
---------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::use\_sensor\_origin\_ |

 | protected |

 
 whether the sensor origin of the input cloud or a user given viewpoint should be used. 

 Definition at line [415](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00415) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00349), and [pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00378).

    vpx\_
-----

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::vpx\_ |

 | protected |

 
 Values describing the viewpoint ("pinhole" camera model assumed). 

 For per point viewpoints, inherit from [NormalEstimation](classpcl_1_1_normal_estimation "NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point.") and provide your own computeFeature (). By default, the viewpoint is set to 0,0,0. 

 Definition at line [406](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00366), [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00349), and [pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00378).

    vpy\_
-----

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::vpy\_ |

 | protected |

 
 Definition at line [406](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00366), [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00349), and [pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00378).

    vpz\_
-----

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::vpz\_ |

 | protected |

 
 Definition at line [406](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00406) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00366), [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00349), and [pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00378).

    xyz\_centroid\_
---------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector4f [pcl::NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::xyz\_centroid\_ |

 | protected |

 
 16-bytes aligned placeholder for the XYZ centroid of a surface patch. 

 Definition at line [412](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00412) of file [normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html).

 Referenced by [pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00284).

   

---

The documentation for this class was generated from the following files:* pcl/features/[normal\_3d.h](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html)
* pcl/features/impl/[normal\_3d.hpp](https://pointclouds.org/documentation/normal__3d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_normal_estimation.html>

[NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p "NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and ...") estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. [More...](classpcl_1_1_normal_estimation_o_m_p#details)

 `#include <[pcl/features/normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_normal_estimation_o_m_p#aa72d4a1fbe3b971e66b43f5e34cd270d) = shared\_ptr< [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_normal_estimation_o_m_p#a20e6ad14f620002914a38fe84a74e1ca) = shared\_ptr< const [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_normal_estimation_o_m_p#a112961ab4f42831786be3abdf43825ca) = typename [NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| - Public Types inherited from [pcl::NormalEstimation< PointInT, PointOutT >](classpcl_1_1_normal_estimation) |
| using  | [Ptr](classpcl_1_1_normal_estimation#afb038a7e2dab25d3e8b935adc300f8de) = shared\_ptr< [NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_normal_estimation#a0666a65ca1d9ee95d305dcc10fe66fc5) = shared\_ptr< const [NormalEstimation](classpcl_1_1_normal_estimation)< PointInT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_normal_estimation#abd1b419599f695bf80e7fcdb761cc858) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p#a7892baad768a9d1a621a3cb15ad493e4) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_normal_estimation_o_m_p#a7892baad768a9d1a621a3cb15ad493e4) |
|
| void  | [setNumberOfThreads](classpcl_1_1_normal_estimation_o_m_p#a88d42957ef34d3aeaf51dde07c53688d) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_normal_estimation_o_m_p#a88d42957ef34d3aeaf51dde07c53688d) |
|
| - Public Member Functions inherited from [pcl::NormalEstimation< PointInT, PointOutT >](classpcl_1_1_normal_estimation) |
|  | [NormalEstimation](classpcl_1_1_normal_estimation#a03cd56f79d35ea7202c3eda764c6d085) () |
|  | Empty constructor. [More...](classpcl_1_1_normal_estimation#a03cd56f79d35ea7202c3eda764c6d085) |
|
|  | [~NormalEstimation](classpcl_1_1_normal_estimation#a14d4927cce3e7fb28c0b582c937371d6) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_normal_estimation#a14d4927cce3e7fb28c0b582c937371d6) |
|
| bool  | [computePointNormal](classpcl_1_1_normal_estimation#a81b73d67bfdb2d70e09d8b2cd4749f45) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, Eigen::Vector4f &plane\_parameters, float &curvature) |
|  | Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. [More...](classpcl_1_1_normal_estimation#a81b73d67bfdb2d70e09d8b2cd4749f45) |
|
| bool  | [computePointNormal](classpcl_1_1_normal_estimation#ab3a301fbecaa04fd52b1a42824055dfc) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, float &nx, float &ny, float &nz, float &curvature) |
|  | Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. [More...](classpcl_1_1_normal_estimation#ab3a301fbecaa04fd52b1a42824055dfc) |
|
| void  | [setInputCloud](classpcl_1_1_normal_estimation#aff25e25bac3a8f682149025e293a919d) (const [PointCloudConstPtr](classpcl_1_1_normal_estimation#ad5daeb93bc4bbb0bf208c3def127c3f0) &cloud) override |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_normal_estimation#aff25e25bac3a8f682149025e293a919d) |
|
| void  | [setViewPoint](classpcl_1_1_normal_estimation#a215cb3a84f03a4346556219121fce8e5) (float vpx, float vpy, float vpz) |
|  | Set the viewpoint. [More...](classpcl_1_1_normal_estimation#a215cb3a84f03a4346556219121fce8e5) |
|
| void  | [getViewPoint](classpcl_1_1_normal_estimation#acaa46c32b817cbd5ff6120d9e04326e6) (float &vpx, float &vpy, float &vpz) |
|  | Get the viewpoint. [More...](classpcl_1_1_normal_estimation#acaa46c32b817cbd5ff6120d9e04326e6) |
|
| void  | [useSensorOriginAsViewPoint](classpcl_1_1_normal_estimation#ab9bb23cd42dbb1d7bbbcde41b678fda4) () |
|  | sets whether the sensor origin or a user given viewpoint should be used. [More...](classpcl_1_1_normal_estimation#ab9bb23cd42dbb1d7bbbcde41b678fda4) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Attributes |
| unsigned int  | [threads\_](classpcl_1_1_normal_estimation_o_m_p#a3198d9524994723f9ea3ed7265e6a391) |
|  | The number of threads the scheduler should use. [More...](classpcl_1_1_normal_estimation_o_m_p#a3198d9524994723f9ea3ed7265e6a391) |
|
| - Protected Attributes inherited from [pcl::NormalEstimation< PointInT, PointOutT >](classpcl_1_1_normal_estimation) |
| float  | [vpx\_](classpcl_1_1_normal_estimation#a972e9847b30c5baf8738c5956e321370) |
|  | Values describing the viewpoint ("pinhole" camera model assumed). [More...](classpcl_1_1_normal_estimation#a972e9847b30c5baf8738c5956e321370) |
|
| float  | [vpy\_](classpcl_1_1_normal_estimation#ac54d5fd81ba7ba8c6017a80be58984ce) |
|
| float  | [vpz\_](classpcl_1_1_normal_estimation#a1b4f6247c470a99920ba0bbdf8316b4b) |
|
| EIGEN\_ALIGN16 Eigen::Matrix3f  | [covariance\_matrix\_](classpcl_1_1_normal_estimation#a1a5638a31a9be8d78129e1edffe52c45) |
|  | Placeholder for the 3x3 covariance matrix at each surface patch. [More...](classpcl_1_1_normal_estimation#a1a5638a31a9be8d78129e1edffe52c45) |
|
| Eigen::Vector4f  | [xyz\_centroid\_](classpcl_1_1_normal_estimation#ac061ee015f9f914ae54cf27296e0e9ca) |
|  | 16-bytes aligned placeholder for the XYZ centroid of a surface patch. [More...](classpcl_1_1_normal_estimation#ac061ee015f9f914ae54cf27296e0e9ca) |
|
| bool  | [use\_sensor\_origin\_](classpcl_1_1_normal_estimation#a3d3ebf091502d08f19d5b1d123fa535c) |
|  | whether the sensor origin of the input cloud or a user given viewpoint should be used. [More...](classpcl_1_1_normal_estimation#a3d3ebf091502d08f19d5b1d123fa535c) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT> class pcl::NormalEstimationOMP< PointInT, PointOutT >

 [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p "NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and ...") estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. 

 
Author
Radu Bogdan Rusu 
 Definition at line [53](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00053) of file [normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)<PointInT, PointOutT> > |

 
 Definition at line [57](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00057) of file [normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [NormalEstimation](classpcl_1_1_normal_estimation)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [70](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00070) of file [normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)<PointInT, PointOutT> > |

 
 Definition at line [56](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00056) of file [normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  NormalEstimationOMP()
---------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT >::[NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p) | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [76](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00076) of file [normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), and [pcl::NormalEstimationOMP< PointInT, PointOutT >::setNumberOfThreads()](https://pointclouds.org/documentation/normal__3d__omp_8hpp_source.html#l00048).

   Member Function Documentation
-----------------------------

  setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [48](https://pointclouds.org/documentation/normal__3d__omp_8hpp_source.html#l00048) of file [normal\_3d\_omp.hpp](https://pointclouds.org/documentation/normal__3d__omp_8hpp_source.html).

 Referenced by [pcl::NormalEstimationOMP< PointInT, PointOutT >::NormalEstimationOMP()](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00076).

   Member Data Documentation
-------------------------

  threads\_
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p)< PointInT, PointOutT >::threads\_ |

 | protected |

 
 The number of threads the scheduler should use. 

 Definition at line [91](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html#l00091) of file [normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[normal\_3d\_omp.h](https://pointclouds.org/documentation/normal__3d__omp_8h_source.html)
* pcl/features/impl/[normal\_3d\_omp.hpp](https://pointclouds.org/documentation/normal__3d__omp_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_normal_estimation_o_m_p.html>

[OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation "OURCVFHEstimation estimates the Oriented, Unique and Repetable Clustered Viewpoint Feature Histogram ...") estimates the Oriented, Unique and Repetable Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CVFH) descriptor for a given point cloud dataset given XYZ data and normals, as presented in: [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#details)

 `#include <[pcl/features/our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_o_u_r_c_v_f_h_estimation#a67928087d7fec28bd88e8ec0749df559) = shared\_ptr< [OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#a530a668a28d2704ff9a746ed059640ce) = shared\_ptr< const [OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_o_u_r_c_v_f_h_estimation#a2e5bc8c21bd635b0535bb33e496a5ad0) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [KdTreePtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#a861229f00870e7dadcd7547c2e2e00bd) = typename [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointNormal](structpcl_1_1_point_normal) >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) |
|
| using  | [PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) = typename [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation#a8cf9b4c92f58ba115fb26545d3b58eb2) () |
|  | Empty constructor. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a8cf9b4c92f58ba115fb26545d3b58eb2) |
|
| Eigen::Matrix4f  | [createTransFromAxes](classpcl_1_1_o_u_r_c_v_f_h_estimation#a84af531bba70ea59d35c53630cafb683) (Eigen::Vector3f &evx, Eigen::Vector3f &evy, Eigen::Vector3f &evz, Eigen::Affine3f &transformPC, Eigen::Matrix4f &center\_mat) |
|  | Creates an affine transformation from the RF axes. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a84af531bba70ea59d35c53630cafb683) |
|
| void  | [computeRFAndShapeDistribution](classpcl_1_1_o_u_r_c_v_f_h_estimation#af56442302d5b0f378446895c59358c37) ([PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) &processed, [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output, std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &cluster\_indices) |
|  | Computes SGURF and the shape distribution based on the selected SGURF. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#af56442302d5b0f378446895c59358c37) |
|
| bool  | [sgurf](classpcl_1_1_o_u_r_c_v_f_h_estimation#a25128a5ac4a93f7a7e520f6e70e0abd2) (Eigen::Vector3f &centroid, Eigen::Vector3f &normal\_centroid, [PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) &processed, std::vector< Eigen::Matrix4f, Eigen::aligned\_allocator< Eigen::Matrix4f > > &transformations, [PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) &grid, [pcl::PointIndices](structpcl_1_1_point_indices) &indices) |
|  | Computes SGURF. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a25128a5ac4a93f7a7e520f6e70e0abd2) |
|
| void  | [filterNormalsWithHighCurvature](classpcl_1_1_o_u_r_c_v_f_h_estimation#a446c9721542570290b43a5b481c6ab10) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &cloud, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices\_to\_use, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices\_out, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices\_in, float threshold) |
|  | Removes normals with high curvature caused by real edges or noisy data. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a446c9721542570290b43a5b481c6ab10) |
|
| void  | [setViewPoint](classpcl_1_1_o_u_r_c_v_f_h_estimation#a87ada00c7f1cd319e0b9a822ca1bb556) (float vpx, float vpy, float vpz) |
|  | Set the viewpoint. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a87ada00c7f1cd319e0b9a822ca1bb556) |
|
| void  | [setRadiusNormals](classpcl_1_1_o_u_r_c_v_f_h_estimation#a542ecd0090fdc1c2b0c40b1b24e1e0e7) (float radius\_normals) |
|  | Set the radius used to compute normals. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a542ecd0090fdc1c2b0c40b1b24e1e0e7) |
|
| void  | [getViewPoint](classpcl_1_1_o_u_r_c_v_f_h_estimation#a49f96bb5395bd7cc3b03ea9805d3f36d) (float &vpx, float &vpy, float &vpz) |
|  | Get the viewpoint. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a49f96bb5395bd7cc3b03ea9805d3f36d) |
|
| void  | [getCentroidClusters](classpcl_1_1_o_u_r_c_v_f_h_estimation#a45c4c30da8c5fdcb4d91d7513f893f4e) (std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &centroids) |
|  | Get the centroids used to compute different CVFH descriptors. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a45c4c30da8c5fdcb4d91d7513f893f4e) |
|
| void  | [getCentroidNormalClusters](classpcl_1_1_o_u_r_c_v_f_h_estimation#a5d8f892fefa3435b0916189f4cf83b26) (std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &centroids) |
|  | Get the normal centroids used to compute different CVFH descriptors. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a5d8f892fefa3435b0916189f4cf83b26) |
|
| void  | [setClusterTolerance](classpcl_1_1_o_u_r_c_v_f_h_estimation#a04693601520d483097092d0558cc4768) (float d) |
|  | Sets max. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a04693601520d483097092d0558cc4768) |
|
| void  | [setEPSAngleThreshold](classpcl_1_1_o_u_r_c_v_f_h_estimation#ad837a0a88f097855a21c8a0538b0331a) (float d) |
|  | Sets max. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#ad837a0a88f097855a21c8a0538b0331a) |
|
| void  | [setCurvatureThreshold](classpcl_1_1_o_u_r_c_v_f_h_estimation#abfc00a0b87aebc2dd03169a50f300ca1) (float d) |
|  | Sets curvature threshold for removing normals. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#abfc00a0b87aebc2dd03169a50f300ca1) |
|
| void  | [setMinPoints](classpcl_1_1_o_u_r_c_v_f_h_estimation#ad6edb82844514e6b6406200dd0c12d91) (std::size\_t min) |
|  | Set minimum amount of points for a cluster to be considered. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#ad6edb82844514e6b6406200dd0c12d91) |
|
| void  | [setNormalizeBins](classpcl_1_1_o_u_r_c_v_f_h_estimation#a0c8c3ba81fac4e6bdeac8feb1668db88) (bool normalize) |
|  | Sets whether the signatures should be normalized or not. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a0c8c3ba81fac4e6bdeac8feb1668db88) |
|
| void  | [getClusterIndices](classpcl_1_1_o_u_r_c_v_f_h_estimation#ac757ebe9646a8095dbad0022656cf82b) (std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &indices) |
|  | Gets the indices of the original point cloud used to compute the signatures. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#ac757ebe9646a8095dbad0022656cf82b) |
|
| void  | [getClusterAxes](classpcl_1_1_o_u_r_c_v_f_h_estimation#acee17a589e5dd159c58605df15234efc) (std::vector< short > &cluster\_axes) |
|  | Gets the number of non-disambiguable axes that correspond to each centroid. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#acee17a589e5dd159c58605df15234efc) |
|
| void  | [setRefineClusters](classpcl_1_1_o_u_r_c_v_f_h_estimation#a89f8c0f95e9e4e1e783ef7ebece3a7bd) (float rc) |
|  | Sets the refinement factor for the clusters. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a89f8c0f95e9e4e1e783ef7ebece3a7bd) |
|
| void  | [getTransforms](classpcl_1_1_o_u_r_c_v_f_h_estimation#a589f641535158342769b1e5ef5483dc3) (std::vector< Eigen::Matrix4f, Eigen::aligned\_allocator< Eigen::Matrix4f > > &trans) |
|  | Returns the transformations aligning the point cloud to the corresponding SGURF. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a589f641535158342769b1e5ef5483dc3) |
|
| void  | [getValidTransformsVec](classpcl_1_1_o_u_r_c_v_f_h_estimation#a120c432a2c273f2f9ad6ffed190e601b) (std::vector< bool > &valid) |
|  | Returns a boolean vector indicating of the transformation obtained by [getTransforms()](classpcl_1_1_o_u_r_c_v_f_h_estimation#a589f641535158342769b1e5ef5483dc3 "Returns the transformations aligning the point cloud to the corresponding SGURF.") represents a valid SGURF. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a120c432a2c273f2f9ad6ffed190e601b) |
|
| void  | [setAxisRatio](classpcl_1_1_o_u_r_c_v_f_h_estimation#aacc1aa04fc352f999a12170e8666d1e7) (float f) |
|  | Sets the min axis ratio between the SGURF axes to decide if disambiguition is feasible. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#aacc1aa04fc352f999a12170e8666d1e7) |
|
| void  | [setMinAxisValue](classpcl_1_1_o_u_r_c_v_f_h_estimation#a5e5544d42172edbd0e669c1263fb1cb2) (float f) |
|  | Sets the min disambiguition axis value to generate several SGURFs for the cluster when disambiguition is difficult. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a5e5544d42172edbd0e669c1263fb1cb2) |
|
| void  | [compute](classpcl_1_1_o_u_r_c_v_f_h_estimation#a75bbfd331a8bff6f0af23348afc5fe26) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a75bbfd331a8bff6f0af23348afc5fe26) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > >  | [centroids\_dominant\_orientations\_](classpcl_1_1_o_u_r_c_v_f_h_estimation#aa86f51844e274dc7ae87fde388496347) |
|  | Centroids that were used to compute different OUR-CVFH descriptors. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#aa86f51844e274dc7ae87fde388496347) |
|
| std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > >  | [dominant\_normals\_](classpcl_1_1_o_u_r_c_v_f_h_estimation#a901ce63e8964a418819c748b2bb3cd88) |
|  | [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") centroids that were used to compute different OUR-CVFH descriptors. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a901ce63e8964a418819c748b2bb3cd88) |
|
| std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) >  | [clusters\_](classpcl_1_1_o_u_r_c_v_f_h_estimation#a8f2e7bc609ceefd6fb6c36f53c97cab0) |
|  | Indices to the points representing the stable clusters. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a8f2e7bc609ceefd6fb6c36f53c97cab0) |
|
| std::vector< short >  | [cluster\_axes\_](classpcl_1_1_o_u_r_c_v_f_h_estimation#a9c9fdbf7663d4bbaf714424b828e0dc7) |
|  | Mapping from clusters to OUR-CVFH descriptors. [More...](classpcl_1_1_o_u_r_c_v_f_h_estimation#a9c9fdbf7663d4bbaf714424b828e0dc7) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::VFHSignature308> class pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >

 [OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation "OURCVFHEstimation estimates the Oriented, Unique and Repetable Clustered Viewpoint Feature Histogram ...") estimates the Oriented, Unique and Repetable Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (CVFH) descriptor for a given point cloud dataset given XYZ data and normals, as presented in: 

 * OUR-CVFH – Oriented, Unique and Repeatable Clustered Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") for [Object](https://pointclouds.org/documentation/class_object.html) Recognition and 6DOF Pose Estimation A. Aldoma, F. Tombari, R.B. Rusu and M. Vincze DAGM-OAGM 2012 Graz, Austria The suggested PointOutT is [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308 "A point structure representing the Viewpoint Feature Histogram (VFH).").

 
Author
Aitor Aldoma 
 Definition at line [59](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00059) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [63](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00063) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    KdTreePtr
---------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)<[PointNormal](structpcl_1_1_point_normal)>::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) |

 
 Definition at line [73](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00073) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [72](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00072) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    PointInTPtr
-----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) = typename [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT>::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) |

 
 Definition at line [74](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00074) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [62](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00062) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  OURCVFHEstimation()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [76](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00076) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), [pcl::Feature< PointInT, PointOutT >::k\_](https://pointclouds.org/documentation/feature_8h_source.html#l00240), and [pcl::Feature< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [53](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00053) of file [our\_cvfh.hpp](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    computeRFAndShapeDistribution()
-------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution  | ( | [PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) &  | *processed*,  |
|  |  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output*,  |
|  |  | std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &  | *cluster\_indices* |
|  | ) |  |  |

 
 Computes SGURF and the shape distribution based on the selected SGURF. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | processed | the input cloud  |
| [out] | output | the resulting signature  |
| [in] | cluster\_indices | the indices of the stable cluster  |

   Definition at line [381](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381) of file [our\_cvfh.hpp](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::empty()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446), [pcl::getMaxDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    createTransFromAxes()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Matrix4f [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::createTransFromAxes  | ( | Eigen::Vector3f &  | *evx*,  |
|  |  | Eigen::Vector3f &  | *evy*,  |
|  |  | Eigen::Vector3f &  | *evz*,  |
|  |  | Eigen::Affine3f &  | *transformPC*,  |
|  |  | Eigen::Matrix4f &  | *center\_mat* |
|  | ) |  |  |

 | inline |

 
 Creates an affine transformation from the RF axes. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | evx | the x-axis  |
| [in] | evy | the y-axis  |
| [in] | evz | the z-axis  |
| [out] | transformPC | the resulting transformation  |
| [in] | center\_mat | 4x4 matrix concatenated to the resulting transformation  |

   Definition at line [97](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00097) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    filterNormalsWithHighCurvature()
--------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::filterNormalsWithHighCurvature  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *cloud*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices\_to\_use*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices\_out*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices\_in*,  |
|  |  | float  | *threshold* |
|  | ) |  |  |

 
 Removes normals with high curvature caused by real edges or noisy data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | pointcloud to be filtered  |
| [in] | indices\_to\_use |  |
| [out] | indices\_out | the indices of the points with higher curvature than threshold  |
| [out] | indices\_in | the indices of the remaining points after filtering  |
| [in] | threshold | threshold value for curvature  |

   Definition at line [168](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00168) of file [our\_cvfh.hpp](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    getCentroidClusters()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getCentroidClusters  | ( | std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &  | *centroids* | ) |  |

 | inline |

 
 Get the centroids used to compute different CVFH descriptors. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | centroids | vector to hold the centroids  |

   Definition at line [191](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00191) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 References [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::centroids\_dominant\_orientations\_](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00394).

    getCentroidNormalClusters()
---------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getCentroidNormalClusters  | ( | std::vector< Eigen::Vector3f, Eigen::aligned\_allocator< Eigen::Vector3f > > &  | *centroids* | ) |  |

 | inline |

 
 Get the normal centroids used to compute different CVFH descriptors. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | centroids | vector to hold the normal centroids  |

   Definition at line [201](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00201) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 References [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::dominant\_normals\_](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00396).

    getClusterAxes()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getClusterAxes  | ( | std::vector< short > &  | *cluster\_axes* | ) |  |

 | inline |

 
 Gets the number of non-disambiguable axes that correspond to each centroid. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | cluster\_axes | vector mapping each centroid to the number of signatures  |

   Definition at line [266](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00266) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 References [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::cluster\_axes\_](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00400).

    getClusterIndices()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getClusterIndices  | ( | std::vector< [pcl::PointIndices](structpcl_1_1_point_indices) > &  | *indices* | ) |  |

 | inline |

 
 Gets the indices of the original point cloud used to compute the signatures. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | indices | vector of point indices  |

   Definition at line [257](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00257) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 References [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::clusters\_](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00398).

    getTransforms()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getTransforms  | ( | std::vector< Eigen::Matrix4f, Eigen::aligned\_allocator< Eigen::Matrix4f > > &  | *trans* | ) |  |

 | inline |

 
 Returns the transformations aligning the point cloud to the corresponding SGURF. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | trans | vector of transformations  |

   Definition at line [284](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00284) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    getValidTransformsVec()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getValidTransformsVec  | ( | std::vector< bool > &  | *valid* | ) |  |

 | inline |

 
 Returns a boolean vector indicating of the transformation obtained by [getTransforms()](classpcl_1_1_o_u_r_c_v_f_h_estimation#a589f641535158342769b1e5ef5483dc3 "Returns the transformations aligning the point cloud to the corresponding SGURF.") represents a valid SGURF. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | valid | vector of booleans  |

   Definition at line [294](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00294) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    getViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getViewPoint  | ( | float &  | *vpx*,  |
|  |  | float &  | *vpy*,  |
|  |  | float &  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Get the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | vpx | the X coordinate of the viewpoint  |
| [out] | vpy | the Y coordinate of the viewpoint  |
| [out] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [180](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00180) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setAxisRatio()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setAxisRatio  | ( | float  | *f* | ) |  |

 | inline |

 
 Sets the min axis ratio between the SGURF axes to decide if disambiguition is feasible. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | f | the ratio between axes  |

   Definition at line [303](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00303) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setClusterTolerance()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setClusterTolerance  | ( | float  | *d* | ) |  |

 | inline |

 
 Sets max. 

 Euclidean distance between points to be added to the cluster 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | d | the maximum Euclidean distance  |

   Definition at line [212](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00212) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setCurvatureThreshold()
-----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setCurvatureThreshold  | ( | float  | *d* | ) |  |

 | inline |

 
 Sets curvature threshold for removing normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | d | the curvature threshold  |

   Definition at line [230](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00230) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setEPSAngleThreshold()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setEPSAngleThreshold  | ( | float  | *d* | ) |  |

 | inline |

 
 Sets max. 

 deviation of the normals between two points so they can be clustered together 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | d | the maximum deviation  |

   Definition at line [221](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00221) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setMinAxisValue()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setMinAxisValue  | ( | float  | *f* | ) |  |

 | inline |

 
 Sets the min disambiguition axis value to generate several SGURFs for the cluster when disambiguition is difficult. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | f | the min axis value  |

   Definition at line [312](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00312) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setMinPoints()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setMinPoints  | ( | std::size\_t  | *min* | ) |  |

 | inline |

 
 Set minimum amount of points for a cluster to be considered. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min | the minimum amount of points to be set  |

   Definition at line [239](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00239) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setNormalizeBins()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setNormalizeBins  | ( | bool  | *normalize* | ) |  |

 | inline |

 
 Sets whether the signatures should be normalized or not. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normalize | true if normalization is required, false otherwise  |

   Definition at line [248](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00248) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setRadiusNormals()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setRadiusNormals  | ( | float  | *radius\_normals* | ) |  |

 | inline |

 
 Set the radius used to compute normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius\_normals | the radius  |

   Definition at line [169](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00169) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setRefineClusters()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setRefineClusters  | ( | float  | *rc* | ) |  |

 | inline |

 
 Sets the refinement factor for the clusters. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | rc | the factor used to decide if a point is used to estimate a stable cluster  |

   Definition at line [275](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00275) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    setViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setViewPoint  | ( | float  | *vpx*,  |
|  |  | float  | *vpy*,  |
|  |  | float  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Set the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vpx | the X coordinate of the viewpoint  |
| [in] | vpy | the Y coordinate of the viewpoint  |
| [in] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [158](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00158) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

    sgurf()
-------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::sgurf  | ( | Eigen::Vector3f &  | *centroid*,  |
|  |  | Eigen::Vector3f &  | *normal\_centroid*,  |
|  |  | [PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) &  | *processed*,  |
|  |  | std::vector< Eigen::Matrix4f, Eigen::aligned\_allocator< Eigen::Matrix4f > > &  | *transformations*,  |
|  |  | [PointInTPtr](classpcl_1_1_o_u_r_c_v_f_h_estimation#ab97914d5ccf87748508c88abee5e2d86) &  | *grid*,  |
|  |  | [pcl::PointIndices](structpcl_1_1_point_indices) &  | *indices* |
|  | ) |  |  |

 
 Computes SGURF. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | centroid | the centroid of the cluster  |
| [in] | normal\_centroid | the average of the normals  |
| [in] | processed | the input cloud  |
| [out] | transformations | the transformations aligning the cloud to the SGURF axes  |
| [out] | grid | the cloud transformed internally  |
| [in] | indices | the indices of the stable cluster  |

   Definition at line [198](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00198) of file [our\_cvfh.hpp](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html).

 References [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), [pcl::getMaxDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197), [pcl::PointIndices::indices](https://pointclouds.org/documentation/_point_indices_8h_source.html#l00020), and [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221).

   Member Data Documentation
-------------------------

  centroids\_dominant\_orientations\_
-----------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<Eigen::Vector3f, Eigen::aligned\_allocator<Eigen::Vector3f> > [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::centroids\_dominant\_orientations\_ |

 | protected |

 
 Centroids that were used to compute different OUR-CVFH descriptors. 

 Definition at line [394](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00394) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 Referenced by [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::getCentroidClusters()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00191).

    cluster\_axes\_
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<short> [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::cluster\_axes\_ |

 | protected |

 
 Mapping from clusters to OUR-CVFH descriptors. 

 Definition at line [400](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00400) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 Referenced by [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::getClusterAxes()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00266).

    clusters\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<[pcl::PointIndices](structpcl_1_1_point_indices)> [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::clusters\_ |

 | protected |

 
 Indices to the points representing the stable clusters. 

 Definition at line [398](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00398) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 Referenced by [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::getClusterIndices()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00257).

    dominant\_normals\_
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<Eigen::Vector3f, Eigen::aligned\_allocator<Eigen::Vector3f> > [pcl::OURCVFHEstimation](classpcl_1_1_o_u_r_c_v_f_h_estimation)< PointInT, PointNT, PointOutT >::dominant\_normals\_ |

 | protected |

 
 [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") centroids that were used to compute different OUR-CVFH descriptors. 

 Definition at line [396](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00396) of file [our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html).

 Referenced by [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::getCentroidNormalClusters()](https://pointclouds.org/documentation/our__cvfh_8h_source.html#l00201).

   

---

The documentation for this class was generated from the following files:* pcl/features/[our\_cvfh.h](https://pointclouds.org/documentation/our__cvfh_8h_source.html)
* pcl/features/impl/[our\_cvfh.hpp](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_o_u_r_c_v_f_h_estimation.html>

[PFHEstimation](classpcl_1_1_p_f_h_estimation "PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset ...") estimates the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (PFH) descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_p_f_h_estimation#details)

 `#include <[pcl/features/pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_p_f_h_estimation#a42c254adda69b1e9cdaa4fc0b72dc32a) = shared\_ptr< [PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_p_f_h_estimation#a754b07ad268295d4a3c0536d2a71713f) = shared\_ptr< const [PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_p_f_h_estimation#ad9f7f5a34676a6974369d2032c5f6994) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_p_f_h_estimation#a74b3e3dce6d4f0a48ba0c97a340a1de8) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::PFHSignature125](structpcl_1_1_p_f_h_signature125) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::PFHSignature125](structpcl_1_1_p_f_h_signature125) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [PFHEstimation](classpcl_1_1_p_f_h_estimation#a743367f7ca294736be4531767efd929b) () |
|  | Empty constructor. [More...](classpcl_1_1_p_f_h_estimation#a743367f7ca294736be4531767efd929b) |
|
| void  | [setMaximumCacheSize](classpcl_1_1_p_f_h_estimation#aa8cee8da7de6dfb47f3eea5ba9b96961) (unsigned int cache\_size) |
|  | Set the maximum internal cache size. [More...](classpcl_1_1_p_f_h_estimation#aa8cee8da7de6dfb47f3eea5ba9b96961) |
|
| unsigned int  | [getMaximumCacheSize](classpcl_1_1_p_f_h_estimation#ae4810523c3cc20ea168026746eb10364) () |
|  | Get the maximum internal cache size. [More...](classpcl_1_1_p_f_h_estimation#ae4810523c3cc20ea168026746eb10364) |
|
| void  | [setUseInternalCache](classpcl_1_1_p_f_h_estimation#a7de62d0bc5073bdb5f36ece9ff283887) (bool use\_cache) |
|  | Set whether to use an internal cache mechanism for removing redundant calculations or not. [More...](classpcl_1_1_p_f_h_estimation#a7de62d0bc5073bdb5f36ece9ff283887) |
|
| bool  | [getUseInternalCache](classpcl_1_1_p_f_h_estimation#a82599c35e0ab45dec7aa3074bf7ede68) () |
|  | Get whether the internal cache is used or not for computing the PFH features. [More...](classpcl_1_1_p_f_h_estimation#a82599c35e0ab45dec7aa3074bf7ede68) |
|
| bool  | [computePairFeatures](classpcl_1_1_p_f_h_estimation#a24c4df13bb5e418f65a4d0397f5c059f) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, int p\_idx, int q\_idx, float &f1, float &f2, float &f3, float &f4) |
|  | Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. [More...](classpcl_1_1_p_f_h_estimation#a24c4df13bb5e418f65a4d0397f5c059f) |
|
| void  | [computePointPFHSignature](classpcl_1_1_p_f_h_estimation#a225cd831851772ddc0e460aa38921346) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, int nr\_split, Eigen::VectorXf &pfh\_histogram) |
|  | Estimate the PFH (Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) individual signatures of the three angular (f1, f2, f3) features for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_p_f_h_estimation#a225cd831851772ddc0e460aa38921346) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_p_f_h_estimation#a52c53643dbac89281ef94ce15a7ac0f8) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (PFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_p_f_h_estimation#a52c53643dbac89281ef94ce15a7ac0f8) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| int  | [nr\_subdiv\_](classpcl_1_1_p_f_h_estimation#a787433bde63fd2112749fb761ba634d9) |
|  | The number of subdivisions for each angular feature interval. [More...](classpcl_1_1_p_f_h_estimation#a787433bde63fd2112749fb761ba634d9) |
|
| Eigen::VectorXf  | [pfh\_histogram\_](classpcl_1_1_p_f_h_estimation#a532ee44cb67ace9f8497f16903f4abb5) |
|  | Placeholder for a point's PFH signature. [More...](classpcl_1_1_p_f_h_estimation#a532ee44cb67ace9f8497f16903f4abb5) |
|
| Eigen::Vector4f  | [pfh\_tuple\_](classpcl_1_1_p_f_h_estimation#a5f6807da48f5fbad308389f65f530e9b) |
|  | Placeholder for a PFH 4-tuple. [More...](classpcl_1_1_p_f_h_estimation#a5f6807da48f5fbad308389f65f530e9b) |
|
| int  | [f\_index\_](classpcl_1_1_p_f_h_estimation#a372059419302368d08789a58f76ad364) [3] |
|  | Placeholder for a histogram index. [More...](classpcl_1_1_p_f_h_estimation#a372059419302368d08789a58f76ad364) |
|
| float  | [d\_pi\_](classpcl_1_1_p_f_h_estimation#a2bc44ecb6303a59c8fd42b266983c808) |
|  | Float constant = 1.0 / (2.0 \* M\_PI) [More...](classpcl_1_1_p_f_h_estimation#a2bc44ecb6303a59c8fd42b266983c808) |
|
| std::map< std::pair< int, int >, Eigen::Vector4f, std::less<>, Eigen::aligned\_allocator< std::pair< const std::pair< int, int >, Eigen::Vector4f > > >  | [feature\_map\_](classpcl_1_1_p_f_h_estimation#ad9fed43af308647b5968db72549afc38) |
|  | Internal hashmap, used to optimize efficiency of redundant computations. [More...](classpcl_1_1_p_f_h_estimation#ad9fed43af308647b5968db72549afc38) |
|
| std::queue< std::pair< int, int > >  | [key\_list\_](classpcl_1_1_p_f_h_estimation#abe6f7a84482d4d183030de243259a288) |
|  | Queue of pairs saved, used to constrain memory usage. [More...](classpcl_1_1_p_f_h_estimation#abe6f7a84482d4d183030de243259a288) |
|
| unsigned int  | [max\_cache\_size\_](classpcl_1_1_p_f_h_estimation#aa228e1ef8c0e6ba9c7888110826c1bb2) |
|  | Maximum size of internal cache memory. [More...](classpcl_1_1_p_f_h_estimation#aa228e1ef8c0e6ba9c7888110826c1bb2) |
|
| bool  | [use\_cache\_](classpcl_1_1_p_f_h_estimation#a9a4e8a04a2fffe5188f61659eef3e61c) |
|  | Set to true to use the internal cache for removing redundant computations. [More...](classpcl_1_1_p_f_h_estimation#a9a4e8a04a2fffe5188f61659eef3e61c) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PFHSignature125 >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::PFHSignature125> class pcl::PFHEstimation< PointInT, PointNT, PointOutT >

 [PFHEstimation](classpcl_1_1_p_f_h_estimation "PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset ...") estimates the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (PFH) descriptor for a given point cloud dataset containing points and normals. 

 A commonly used type for PointOutT is [pcl::PFHSignature125](structpcl_1_1_p_f_h_signature125 "A point structure representing the Point Feature Histogram (PFH).").

 
Note
If you use this code in any academic work, please cite:
 * R.B. Rusu, N. Blodow, Z.C. Marton, M. Beetz. Aligning Point Cloud Views using Persistent [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms. In Proceedings of the 21st IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Nice, France, September 22-26 2008.
* R.B. Rusu, Z.C. Marton, N. Blodow, M. Beetz. Learning Informative Point Classes for the Acquisition of [Object](https://pointclouds.org/documentation/class_object.html) Model Maps. In Proceedings of the 10th International Conference on Control, Automation, Robotics and Vision (ICARCV), Hanoi, Vietnam, December 17-20 2008.

 
Attention
The convention for PFH features is:* if a query point's nearest neighbors cannot be estimated, the PFH feature will be set to NaN (not a number)
* it is impossible to estimate a PFH descriptor for a point that doesn't have finite 3D coordinates. Therefore, any point that contains NaN data on x, y, or z, will have its PFH feature property set to NaN.

 
 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p) for examples on parallel implementations of the FPFH (Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.")).
 
Author
Radu B. Rusu 
 Definition at line [81](https://pointclouds.org/documentation/pfh_8h_source.html#l00081) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |
| --- |
| using [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [PFHEstimation](classpcl_1_1_p_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [85](https://pointclouds.org/documentation/pfh_8h_source.html#l00085) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |
| --- |
| using [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [96](https://pointclouds.org/documentation/pfh_8h_source.html#l00096) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |
| --- |
| using [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [95](https://pointclouds.org/documentation/pfh_8h_source.html#l00095) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |
| --- |
| using [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[PFHEstimation](classpcl_1_1_p_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [84](https://pointclouds.org/documentation/pfh_8h_source.html#l00084) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  PFHEstimation()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::[PFHEstimation](classpcl_1_1_p_f_h_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Sets *use\_cache\_* to false, *nr\_subdiv\_* to 5, and the internal maximum cache size to 1GB. 

 Definition at line [101](https://pointclouds.org/documentation/pfh_8h_source.html#l00101) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms (PFH) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains the PFH feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [167](https://pointclouds.org/documentation/pfh_8hpp_source.html#l00167) of file [pfh.hpp](https://pointclouds.org/documentation/pfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePairFeatures()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computePairFeatures  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | int  | *p\_idx*,  |
|  |  | int  | *q\_idx*,  |
|  |  | float &  | *f1*,  |
|  |  | float &  | *f2*,  |
|  |  | float &  | *f3*,  |
|  |  | float &  | *f4* |
|  | ) |  |  |

 
 Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals. 

 
Note
For explanations about the features, please see the literature mentioned above (the order of the features might be different). 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the dataset containing the XYZ Cartesian coordinates of the two points  |
| [in] | normals | the dataset containing the surface normals (assuming normalized vectors) at each point in cloud  |
| [in] | p\_idx | the index of the first point (source)  |
| [in] | q\_idx | the index of the second point (target)  |
| [out] | f1 | the first angular feature (angle between the projection of nq\_idx and u)  |
| [out] | f2 | the second angular feature (angle between nq\_idx and v)  |
| [out] | f3 | the third angular feature (angle between np\_idx and |p\_idx - q\_idx|)  |
| [out] | f4 | the distance feature (p\_idx - q\_idx)  |

   
Note
For efficiency reasons, we assume that the point data passed to the method is finite. 
 Definition at line [49](https://pointclouds.org/documentation/pfh_8hpp_source.html#l00049) of file [pfh.hpp](https://pointclouds.org/documentation/pfh_8hpp_source.html).

 References [pcl::computePairFeatures()](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9).

    computePointPFHSignature()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::computePointPFHSignature  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | int  | *nr\_split*,  |
|  |  | Eigen::VectorXf &  | *pfh\_histogram* |
|  | ) |  |  |

 
 Estimate the PFH (Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) individual signatures of the three angular (f1, f2, f3) features for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the dataset containing the XYZ Cartesian coordinates of the two points  |
| [in] | normals | the dataset containing the surface normals at each point in *cloud* |
| [in] | indices | the k-neighborhood point indices in the dataset  |
| [in] | nr\_split | the number of subdivisions for each angular feature interval  |
| [out] | pfh\_histogram | the resultant (combinatorial) PFH histogram representing the feature at the query point  |

   Definition at line [61](https://pointclouds.org/documentation/pfh_8hpp_source.html#l00061) of file [pfh.hpp](https://pointclouds.org/documentation/pfh_8hpp_source.html).

 References [pcl::computePairFeatures()](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    getMaximumCacheSize()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned int [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::getMaximumCacheSize  | ( |  | ) |  |

 | inline |

 
 Get the maximum internal cache size. 

 Definition at line [123](https://pointclouds.org/documentation/pfh_8h_source.html#l00123) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 References [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max\_cache\_size\_](https://pointclouds.org/documentation/pfh_8h_source.html#l00213).

    getUseInternalCache()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::getUseInternalCache  | ( |  | ) |  |

 | inline |

 
 Get whether the internal cache is used or not for computing the PFH features. 

 Definition at line [147](https://pointclouds.org/documentation/pfh_8h_source.html#l00147) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 References [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use\_cache\_](https://pointclouds.org/documentation/pfh_8h_source.html#l00216).

    setMaximumCacheSize()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::setMaximumCacheSize  | ( | unsigned int  | *cache\_size* | ) |  |

 | inline |

 
 Set the maximum internal cache size. 

 Defaults to 2GB worth of entries. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cache\_size | maximum cache size  |

   Definition at line [116](https://pointclouds.org/documentation/pfh_8h_source.html#l00116) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 References [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::max\_cache\_size\_](https://pointclouds.org/documentation/pfh_8h_source.html#l00213).

    setUseInternalCache()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::setUseInternalCache  | ( | bool  | *use\_cache* | ) |  |

 | inline |

 
 Set whether to use an internal cache mechanism for removing redundant calculations or not. 

 
Note
Depending on how the point cloud is ordered and how the nearest neighbors are estimated, using a cache could have a positive or a negative influence. Please test with and without a cache on your data, and choose whatever works best!
 See [setMaximumCacheSize](classpcl_1_1_p_f_h_estimation#aa8cee8da7de6dfb47f3eea5ba9b96961) for setting the maximum cache size

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | use\_cache | set to true to use the internal cache, false otherwise  |

   Definition at line [140](https://pointclouds.org/documentation/pfh_8h_source.html#l00140) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 References [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::use\_cache\_](https://pointclouds.org/documentation/pfh_8h_source.html#l00216).

   Member Data Documentation
-------------------------

  d\_pi\_
-------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::d\_pi\_ |

 | protected |

 
 Float constant = 1.0 / (2.0 \* M\_PI) 

 Definition at line [204](https://pointclouds.org/documentation/pfh_8h_source.html#l00204) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    f\_index\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::f\_index\_[3] |

 | protected |

 
 Placeholder for a histogram index. 

 Definition at line [201](https://pointclouds.org/documentation/pfh_8h_source.html#l00201) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    feature\_map\_
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::map<std::pair<int, int>, Eigen::Vector4f, std::less<>, Eigen::aligned\_allocator<std::pair<const std::pair<int, int>, Eigen::Vector4f> > > [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::feature\_map\_ |

 | protected |

 
 Internal hashmap, used to optimize efficiency of redundant computations. 

 Definition at line [207](https://pointclouds.org/documentation/pfh_8h_source.html#l00207) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    key\_list\_
-----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::queue<std::pair<int, int> > [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::key\_list\_ |

 | protected |

 
 Queue of pairs saved, used to constrain memory usage. 

 Definition at line [210](https://pointclouds.org/documentation/pfh_8h_source.html#l00210) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    max\_cache\_size\_
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::max\_cache\_size\_ |

 | protected |

 
 Maximum size of internal cache memory. 

 Definition at line [213](https://pointclouds.org/documentation/pfh_8h_source.html#l00213) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 Referenced by [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getMaximumCacheSize()](https://pointclouds.org/documentation/pfh_8h_source.html#l00123), and [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setMaximumCacheSize()](https://pointclouds.org/documentation/pfh_8h_source.html#l00116).

    nr\_subdiv\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::nr\_subdiv\_ |

 | protected |

 
 The number of subdivisions for each angular feature interval. 

 Definition at line [192](https://pointclouds.org/documentation/pfh_8h_source.html#l00192) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    pfh\_histogram\_
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::VectorXf [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::pfh\_histogram\_ |

 | protected |

 
 Placeholder for a point's PFH signature. 

 Definition at line [195](https://pointclouds.org/documentation/pfh_8h_source.html#l00195) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    pfh\_tuple\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector4f [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::pfh\_tuple\_ |

 | protected |

 
 Placeholder for a PFH 4-tuple. 

 Definition at line [198](https://pointclouds.org/documentation/pfh_8h_source.html#l00198) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

    use\_cache\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PFHSignature125>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::PFHEstimation](classpcl_1_1_p_f_h_estimation)< PointInT, PointNT, PointOutT >::use\_cache\_ |

 | protected |

 
 Set to true to use the internal cache for removing redundant computations. 

 Definition at line [216](https://pointclouds.org/documentation/pfh_8h_source.html#l00216) of file [pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html).

 Referenced by [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::getUseInternalCache()](https://pointclouds.org/documentation/pfh_8h_source.html#l00147), and [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::setUseInternalCache()](https://pointclouds.org/documentation/pfh_8h_source.html#l00140).

   

---

The documentation for this class was generated from the following files:* pcl/features/[pfh.h](https://pointclouds.org/documentation/pfh_8h_source.html)
* pcl/features/impl/[pfh.hpp](https://pointclouds.org/documentation/pfh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_p_f_h_estimation.html>

[PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation "PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of...") estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_principal_curvatures_estimation#details)

 `#include <[pcl/features/principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_principal_curvatures_estimation#a79874b2db76e46ad9aa5637c65863b18) = shared\_ptr< [PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_principal_curvatures_estimation#ae69da69bd2e3354025eefc212a5aa0f5) = shared\_ptr< const [PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_principal_curvatures_estimation#af8b789a0e24b010ec8a1b0b5a4366dd8) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_principal_curvatures_estimation#a6b7354d7072768fcd856ed51c683a282) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::PrincipalCurvatures](structpcl_1_1_principal_curvatures) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::PrincipalCurvatures](structpcl_1_1_principal_curvatures) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation#aa6051f3fa8fec96516c6236fd3f3b6bc) () |
|  | Empty constructor. [More...](classpcl_1_1_principal_curvatures_estimation#aa6051f3fa8fec96516c6236fd3f3b6bc) |
|
| void  | [computePointPrincipalCurvatures](classpcl_1_1_principal_curvatures_estimation#a7c07867b43098db1dd010dae13d9ccd8) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, int p\_idx, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, float &pcx, float &pcy, float &pcz, float &pc1, float &pc2) |
|  | Perform Principal Components Analysis ([PCA](classpcl_1_1_p_c_a "Principal Component analysis (PCA) class.")) on the point normals of a surface patch in the tangent plane of the given point normal, and return the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues. [More...](classpcl_1_1_principal_curvatures_estimation#a7c07867b43098db1dd010dae13d9ccd8) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_principal_curvatures_estimation#af1f93521e0bebf592dc886b71e11824a) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_principal_curvatures_estimation#af1f93521e0bebf592dc886b71e11824a) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::PrincipalCurvatures> class pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >

 [PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation "PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of...") estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. 

 The recommended PointOutT is [pcl::PrincipalCurvatures](structpcl_1_1_principal_curvatures "A point structure representing the principal curvatures and their magnitudes.").

 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [NormalEstimationOMP](classpcl_1_1_normal_estimation_o_m_p) for an example on how to extend this to parallel implementations.
 
Author
Radu B. Rusu, Jared Glover 
 Definition at line [59](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00059) of file [principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>  

|  |
| --- |
| using [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [63](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00063) of file [principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>  

|  |
| --- |
| using [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [74](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00074) of file [principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>  

|  |
| --- |
| using [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [73](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00073) of file [principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>  

|  |
| --- |
| using [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [62](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00062) of file [principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  PrincipalCurvaturesEstimation()
-------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::[PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [77](https://pointclouds.org/documentation/principal__curvatures_8h_source.html#l00077) of file [principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains the principal curvature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [115](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html#l00115) of file [principal\_curvatures.hpp](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointPrincipalCurvatures()
---------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PrincipalCurvaturesEstimation](classpcl_1_1_principal_curvatures_estimation)< PointInT, PointNT, PointOutT >::computePointPrincipalCurvatures  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | int  | *p\_idx*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | float &  | *pcx*,  |
|  |  | float &  | *pcy*,  |
|  |  | float &  | *pcz*,  |
|  |  | float &  | *pc1*,  |
|  |  | float &  | *pc2* |
|  | ) |  |  |

 
 Perform Principal Components Analysis ([PCA](classpcl_1_1_p_c_a "Principal Component analysis (PCA) class.")) on the point normals of a surface patch in the tangent plane of the given point normal, and return the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normals | the point cloud normals  |
| [in] | p\_idx | the query point at which the least-squares plane was estimated  |
| [in] | indices | the point cloud indices that need to be used  |
| [out] | pcx | the principal curvature X direction  |
| [out] | pcy | the principal curvature Y direction  |
| [out] | pcz | the principal curvature Z direction  |
| [out] | pc1 | the max eigenvalue of curvature  |
| [out] | pc2 | the min eigenvalue of curvature  |

   Definition at line [50](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html#l00050) of file [principal\_curvatures.hpp](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html).

 References [pcl::computeCorrespondingEigenVector()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00226), and [pcl::eigen33()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00296).

   

---

The documentation for this class was generated from the following files:* pcl/features/[principal\_curvatures.h](https://pointclouds.org/documentation/principal__curvatures_8h_source.html)
* pcl/features/impl/[principal\_curvatures.hpp](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_principal_curvatures_estimation.html>

**Extract** obstacle borders from range images, meaning positions where there is a transition from foreground to background. [More...](classpcl_1_1_range_image_border_extractor#details)

 `#include <[pcl/features/range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Classes |
| struct  | [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) |
|  | Stores some information extracted from the neighborhood of a point. [More...](structpcl_1_1_range_image_border_extractor_1_1_local_surface#details) |
|
| struct  | [Parameters](structpcl_1_1_range_image_border_extractor_1_1_parameters) |
|  | [Parameters](structpcl_1_1_range_image_border_extractor_1_1_parameters "Parameters used in this class.") used in this class. [More...](structpcl_1_1_range_image_border_extractor_1_1_parameters#details) |
|
| struct  | [ShadowBorderIndices](structpcl_1_1_range_image_border_extractor_1_1_shadow_border_indices) |
|  | Stores the indices of the shadow border corresponding to obstacle borders. [More...](structpcl_1_1_range_image_border_extractor_1_1_shadow_border_indices#details) |
|




|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_range_image_border_extractor#af6451111796419f00554faf409c97684) = shared\_ptr< [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) > |
|
| using  | [ConstPtr](classpcl_1_1_range_image_border_extractor#acedbdf442d77ddad79b3f471304e1b9d) = shared\_ptr< const [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) > |
|
| using  | [BaseClass](classpcl_1_1_range_image_border_extractor#a1eff5678f9217ce40811edd6a6871b29) = [Feature](classpcl_1_1_feature)< [PointWithRange](structpcl_1_1_point_with_range), [BorderDescription](structpcl_1_1_border_description) > |
|
| - Public Types inherited from [pcl::Feature< PointWithRange, BorderDescription >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< [PointWithRange](structpcl_1_1_point_with_range), [BorderDescription](structpcl_1_1_border_description) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< [PointWithRange](structpcl_1_1_point_with_range), [BorderDescription](structpcl_1_1_border_description) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointWithRange](structpcl_1_1_point_with_range) > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [BorderDescription](structpcl_1_1_border_description) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor#abc19c8537c3afabd2db12b5b72497d3f) (const [RangeImage](classpcl_1_1_range_image) \*range\_image=nullptr) |
|  | Constructor. [More...](classpcl_1_1_range_image_border_extractor#abc19c8537c3afabd2db12b5b72497d3f) |
|
|  | [~RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor#adba640608fd6a3abcf5f7e5a1b412618) () override |
|  | Destructor. [More...](classpcl_1_1_range_image_border_extractor#adba640608fd6a3abcf5f7e5a1b412618) |
|
| void  | [setRangeImage](classpcl_1_1_range_image_border_extractor#a6f3e8ec8465ce0f81464534c94e0086b) (const [RangeImage](classpcl_1_1_range_image) \*range\_image) |
|  | Provide a pointer to the range image. [More...](classpcl_1_1_range_image_border_extractor#a6f3e8ec8465ce0f81464534c94e0086b) |
|
| void  | [clearData](classpcl_1_1_range_image_border_extractor#aef819151935510c24dc001cd483f62b2) () |
|  | Erase all data calculated for the current range image. [More...](classpcl_1_1_range_image_border_extractor#aef819151935510c24dc001cd483f62b2) |
|
| float \*  | [getAnglesImageForBorderDirections](classpcl_1_1_range_image_border_extractor#a51bd8d8d977e214ec3eefb065e6c1703) () |
|  | Get the 2D directions in the range image from the border directions - probably mainly useful for visualization. [More...](classpcl_1_1_range_image_border_extractor#a51bd8d8d977e214ec3eefb065e6c1703) |
|
| float \*  | [getAnglesImageForSurfaceChangeDirections](classpcl_1_1_range_image_border_extractor#a341bac12800bc68624674167a2f83189) () |
|  | Get the 2D directions in the range image from the surface change directions - probably mainly useful for visualization. [More...](classpcl_1_1_range_image_border_extractor#a341bac12800bc68624674167a2f83189) |
|
| void  | [compute](classpcl_1_1_range_image_border_extractor#a696dbef5ec52bd3af1141fea543b06d8) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overwrite the compute function of the base class. [More...](classpcl_1_1_range_image_border_extractor#a696dbef5ec52bd3af1141fea543b06d8) |
|
| [Parameters](structpcl_1_1_range_image_border_extractor_1_1_parameters) &  | [getParameters](classpcl_1_1_range_image_border_extractor#a34dc6700d43cd67d1a30ea0ef98530e5) () |
|
| bool  | [hasRangeImage](classpcl_1_1_range_image_border_extractor#ab728b29ad6df5cd248bfd0c67f899299) () const |
|
| const [RangeImage](classpcl_1_1_range_image) &  | [getRangeImage](classpcl_1_1_range_image_border_extractor#a6e2a827165fbadb2468fed8cbb06d22b) () const |
|
| float \*  | [getBorderScoresLeft](classpcl_1_1_range_image_border_extractor#a27cb9eaaabf5d189662ac3b0d546c77d) () |
|
| float \*  | [getBorderScoresRight](classpcl_1_1_range_image_border_extractor#abb3f938f77b68033fbd7cb87b0ad2bd5) () |
|
| float \*  | [getBorderScoresTop](classpcl_1_1_range_image_border_extractor#ae6306c7b279495d447bcdc317ba2dd25) () |
|
| float \*  | [getBorderScoresBottom](classpcl_1_1_range_image_border_extractor#ad9fa78d84018add2a05ab634d6aa3217) () |
|
| [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) \*\*  | [getSurfaceStructure](classpcl_1_1_range_image_border_extractor#a4bb9e4004d88c2c7c81639d82bc31e2c) () |
|
| [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | [getBorderDescriptions](classpcl_1_1_range_image_border_extractor#a4cdaa40737e41da7a0986efb454fada2) () |
|
| [ShadowBorderIndices](structpcl_1_1_range_image_border_extractor_1_1_shadow_border_indices) \*\*  | [getShadowBorderInformations](classpcl_1_1_range_image_border_extractor#a982f59b9ac2c931977fc6c278b8ee339) () |
|
| Eigen::Vector3f \*\*  | [getBorderDirections](classpcl_1_1_range_image_border_extractor#a8ef6ba3e3e0ef4d754640d360efe65ee) () |
|
| float \*  | [getSurfaceChangeScores](classpcl_1_1_range_image_border_extractor#a5d62b6c6915d78d2ba8a5832ce235115) () |
|
| Eigen::Vector3f \*  | [getSurfaceChangeDirections](classpcl_1_1_range_image_border_extractor#ae928d6baca016ceece9dcf6a775c0720) () |
|
| - Public Member Functions inherited from [pcl::Feature< PointWithRange, BorderDescription >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Static Public Member Functions |
| static float  | [getObstacleBorderAngle](classpcl_1_1_range_image_border_extractor#ae26fcdf7d1a7ec96290eac407146919b) (const [BorderTraits](group__common#gafb2b6757a09f69abeb6795cc0956acbf) &border\_traits) |
|  | Take the information from BorderTraits to calculate the local direction of the border. [More...](classpcl_1_1_range_image_border_extractor#ae26fcdf7d1a7ec96290eac407146919b) |
|




|  |
| --- |
| 
 Protected Member Functions |
| float  | [getNeighborDistanceChangeScore](classpcl_1_1_range_image_border_extractor#afc527dd5fb69ea2ad4a94ad167fc2e75) (const [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) &local\_surface, int x, int y, int offset\_x, int offset\_y, int pixel\_radius=1) const |
|  | Calculate a border score based on how distant the neighbor is, compared to the closest neighbors /param local\_surface /param x /param y /param offset\_x /param offset\_y /param pixel\_radius (defaults to 1) /return the resulting border score. [More...](classpcl_1_1_range_image_border_extractor#afc527dd5fb69ea2ad4a94ad167fc2e75) |
|
| float  | [getNormalBasedBorderScore](classpcl_1_1_range_image_border_extractor#a1356c4bb64d6949598aea9202d348dc5) (const [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) &local\_surface, int x, int y, int offset\_x, int offset\_y) const |
|  | Calculate a border score based on how much the neighbor is away from the local surface plane. [More...](classpcl_1_1_range_image_border_extractor#a1356c4bb64d6949598aea9202d348dc5) |
|
| bool  | [changeScoreAccordingToShadowBorderValue](classpcl_1_1_range_image_border_extractor#a7790ac3b97468a6414b6f08df679d667) (int x, int y, int offset\_x, int offset\_y, float \*border\_scores, float \*border\_scores\_other\_direction, int &shadow\_border\_idx) const |
|  | Find the best corresponding shadow border and lower score according to the shadow borders value. [More...](classpcl_1_1_range_image_border_extractor#a7790ac3b97468a6414b6f08df679d667) |
|
| float  | [updatedScoreAccordingToNeighborValues](classpcl_1_1_range_image_border_extractor#a2f66eaecf71d2ab0a0940f9508a92d20) (int x, int y, const float \*border\_scores) const |
|  | Returns a new score for the given pixel that is >= the original value, based on the neighbors values. [More...](classpcl_1_1_range_image_border_extractor#a2f66eaecf71d2ab0a0940f9508a92d20) |
|
| float \*  | [updatedScoresAccordingToNeighborValues](classpcl_1_1_range_image_border_extractor#a11c29249e6c9432bd28a269b0a6ea17d) (const float \*border\_scores) const |
|  | For all pixels, returns a new score that is >= the original value, based on the neighbors values. [More...](classpcl_1_1_range_image_border_extractor#a11c29249e6c9432bd28a269b0a6ea17d) |
|
| void  | [updateScoresAccordingToNeighborValues](classpcl_1_1_range_image_border_extractor#a2fcb0ac97395893e2207255c5a6e06ac) () |
|  | Replace all border score values with updates according to *updatedScoreAccordingToNeighborValues*. [More...](classpcl_1_1_range_image_border_extractor#a2fcb0ac97395893e2207255c5a6e06ac) |
|
| bool  | [checkPotentialBorder](classpcl_1_1_range_image_border_extractor#ae3dcb18b255626cf68e3695f7172be51) (int x, int y, int offset\_x, int offset\_y, float \*border\_scores\_left, float \*border\_scores\_right, int &shadow\_border\_idx) const |
|  | Check if a potential border point has a corresponding shadow border. [More...](classpcl_1_1_range_image_border_extractor#ae3dcb18b255626cf68e3695f7172be51) |
|
| bool  | [checkIfMaximum](classpcl_1_1_range_image_border_extractor#a141f7569bbe617dc9c97d031821941bc) (int x, int y, int offset\_x, int offset\_y, float \*border\_scores, int shadow\_border\_idx) const |
|  | Check if a potential border point is a maximum regarding the border score. [More...](classpcl_1_1_range_image_border_extractor#a141f7569bbe617dc9c97d031821941bc) |
|
| void  | [findAndEvaluateShadowBorders](classpcl_1_1_range_image_border_extractor#aeb307e4a35d0d1718f9fd9a48d591874) () |
|  | Find the best corresponding shadow border and lower score according to the shadow borders value. [More...](classpcl_1_1_range_image_border_extractor#aeb307e4a35d0d1718f9fd9a48d591874) |
|
| void  | [extractLocalSurfaceStructure](classpcl_1_1_range_image_border_extractor#a8f8430d1bc1f64b7ae941b76f2474826) () |
|  | Extract local plane information in every point (see getSurfaceStructure ()) [More...](classpcl_1_1_range_image_border_extractor#a8f8430d1bc1f64b7ae941b76f2474826) |
|
| void  | [extractBorderScoreImages](classpcl_1_1_range_image_border_extractor#a29357abd8ebafbfb3d0807592c7c10ce) () |
|  | Get images representing the probability that the corresponding pixels are borders in that direction (see getBorderScores... [More...](classpcl_1_1_range_image_border_extractor#a29357abd8ebafbfb3d0807592c7c10ce) |
|
| void  | [classifyBorders](classpcl_1_1_range_image_border_extractor#ae8c60f2bb5f82e0f581396d5e687fa8a) () |
|  | Classify the pixels in the range image according to the different classes defined below in enum BorderClass. [More...](classpcl_1_1_range_image_border_extractor#ae8c60f2bb5f82e0f581396d5e687fa8a) |
|
| void  | [calculateBorderDirection](classpcl_1_1_range_image_border_extractor#ae6359bbb546f217d5684a9a89499be89) (int x, int y) |
|  | Calculate the 3D direction of the border just using the border traits at this position (facing away from the obstacle) [More...](classpcl_1_1_range_image_border_extractor#ae6359bbb546f217d5684a9a89499be89) |
|
| void  | [calculateBorderDirections](classpcl_1_1_range_image_border_extractor#ae774a32d4e787c5f82a6ff257f4cc6d3) () |
|  | Call *calculateBorderDirection* for every point and average the result over parameters\_.pixel\_radius\_border\_direction. [More...](classpcl_1_1_range_image_border_extractor#ae774a32d4e787c5f82a6ff257f4cc6d3) |
|
| bool  | [get3dDirection](classpcl_1_1_range_image_border_extractor#ad98010802f792650389f2fac46f7a709) (const [BorderDescription](structpcl_1_1_border_description) &border\_description, Eigen::Vector3f &direction, const [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) \*local\_surface=nullptr) |
|  | Calculate a 3d direction from a border point by projecting the direction in the range image - returns false if direction could not be calculated. [More...](classpcl_1_1_range_image_border_extractor#ad98010802f792650389f2fac46f7a709) |
|
| bool  | [calculateMainPrincipalCurvature](classpcl_1_1_range_image_border_extractor#addb181b16f5a41bccbc50896d207e1a9) (int x, int y, int radius, float &magnitude, Eigen::Vector3f &main\_direction) const |
|  | Calculate the main principal curvature (the largest eigenvalue and corresponding eigenvector for the normals in the area) in the given point. [More...](classpcl_1_1_range_image_border_extractor#addb181b16f5a41bccbc50896d207e1a9) |
|
| void  | [calculateSurfaceChanges](classpcl_1_1_range_image_border_extractor#ac62ce40c5cc1de13e4e0a9e7dd3a5470) () |
|  | Uses either the border or principal curvature to define a score how much the surface changes in a point (1 for a border) and what the main direction of that change is. [More...](classpcl_1_1_range_image_border_extractor#ac62ce40c5cc1de13e4e0a9e7dd3a5470) |
|
| void  | [blurSurfaceChanges](classpcl_1_1_range_image_border_extractor#ae1c6afa704fbbf6ab8fb152e92c976e2) () |
|  | Apply a blur to the surface change images. [More...](classpcl_1_1_range_image_border_extractor#ae1c6afa704fbbf6ab8fb152e92c976e2) |
|
| void  | [computeFeature](classpcl_1_1_range_image_border_extractor#abf64f4f9bfdb4e0b589928e0d5287a1f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Implementation of abstract derived function. [More...](classpcl_1_1_range_image_border_extractor#abf64f4f9bfdb4e0b589928e0d5287a1f) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointWithRange, BorderDescription >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| [Parameters](structpcl_1_1_range_image_border_extractor_1_1_parameters) | [parameters\_](classpcl_1_1_range_image_border_extractor#a610dc5f515ae169fd1f44a882b70d075) |
|
| const [RangeImage](classpcl_1_1_range_image) \*  | [range\_image\_](classpcl_1_1_range_image_border_extractor#a3499d229a7a47cc7e12c06f6e6b5fcca) |
|
| int  | [range\_image\_size\_during\_extraction\_](classpcl_1_1_range_image_border_extractor#a42cc9bb9651009e465326c932e148aa5) |
|
| std::vector< float >  | [border\_scores\_left\_](classpcl_1_1_range_image_border_extractor#aa4f9db34ffcf407e57ff2d0a8acb4d7a) |
|
| std::vector< float >  | [border\_scores\_right\_](classpcl_1_1_range_image_border_extractor#a9ccdecc125b7c261920782742af8d990) |
|
| std::vector< float >  | [border\_scores\_top\_](classpcl_1_1_range_image_border_extractor#adfad0c49387154a631ad33336021e07e) |
|
| std::vector< float >  | [border\_scores\_bottom\_](classpcl_1_1_range_image_border_extractor#ab3baff834885666c3edff2aeace94711) |
|
| [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) \*\*  | [surface\_structure\_](classpcl_1_1_range_image_border_extractor#a97ae685a7419b584fdc169c6b22bc5c6) |
|
| [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) \*  | [border\_descriptions\_](classpcl_1_1_range_image_border_extractor#acb926679b8dd012577408a240304510a) |
|
| [ShadowBorderIndices](structpcl_1_1_range_image_border_extractor_1_1_shadow_border_indices) \*\*  | [shadow\_border\_informations\_](classpcl_1_1_range_image_border_extractor#a9f708055a861595edd6da9ee6ab31981) |
|
| Eigen::Vector3f \*\*  | [border\_directions\_](classpcl_1_1_range_image_border_extractor#a6eee0666a0640f0783cd6a2ec5c9cbf9) |
|
| float \*  | [surface\_change\_scores\_](classpcl_1_1_range_image_border_extractor#a14c2994048ba6fe86fa04b54aef0ed9e) |
|
| Eigen::Vector3f \*  | [surface\_change\_directions\_](classpcl_1_1_range_image_border_extractor#a89546e52283225bc037b81d0f57867c0) |
|
| - Protected Attributes inherited from [pcl::Feature< PointWithRange, BorderDescription >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
**Extract** obstacle borders from range images, meaning positions where there is a transition from foreground to background. 

 
Author
Bastian Steder 
 Definition at line [55](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00055) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

 
Member Typedef Documentation
----------------------------

  BaseClass
---------

   

|  |
| --- |
| using [pcl::RangeImageBorderExtractor::BaseClass](classpcl_1_1_range_image_border_extractor#a1eff5678f9217ce40811edd6a6871b29) = [Feature](classpcl_1_1_feature)<[PointWithRange](structpcl_1_1_point_with_range),[BorderDescription](structpcl_1_1_border_description)> |

 
 Definition at line [61](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00061) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    ConstPtr
--------

   

|  |
| --- |
| using [pcl::RangeImageBorderExtractor::ConstPtr](classpcl_1_1_range_image_border_extractor#acedbdf442d77ddad79b3f471304e1b9d) = shared\_ptr<const [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor)> |

 
 Definition at line [59](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00059) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::RangeImageBorderExtractor::Ptr](classpcl_1_1_range_image_border_extractor#af6451111796419f00554faf409c97684) = shared\_ptr<[RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor)> |

 
 Definition at line [58](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00058) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  RangeImageBorderExtractor()
---------------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| pcl::RangeImageBorderExtractor::RangeImageBorderExtractor  | ( | const [RangeImage](classpcl_1_1_range_image) \*  | *range\_image* = `nullptr` | ) |  |

 
 Constructor. 

    ~RangeImageBorderExtractor()
----------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::RangeImageBorderExtractor::~RangeImageBorderExtractor  | ( |  | ) |  |

 | override |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  blurSurfaceChanges()
--------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::blurSurfaceChanges  | ( |  | ) |  |

 | protected |

 
 Apply a blur to the surface change images. 

    calculateBorderDirection()
--------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::calculateBorderDirection  | ( | int  | *x*,  |
|  |  | int  | *y* |
|  | ) |  |  |

 | inlineprotected |

 
 Calculate the 3D direction of the border just using the border traits at this position (facing away from the obstacle) 

 
Parameters
 

|  |  |
| --- | --- |
| x | the x-coordinate of the input position  |
| y | the y-coordinate of the input position  |

   Definition at line [162](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00162) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [border\_directions\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00190), [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00314), [get3dDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00120), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), [surface\_structure\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00187), [pcl::BorderDescription::traits](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01586), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    calculateBorderDirections()
---------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::calculateBorderDirections  | ( |  | ) |  |

 | protected |

 
 Call *calculateBorderDirection* for every point and average the result over parameters\_.pixel\_radius\_border\_direction. 

    calculateMainPrincipalCurvature()
---------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImageBorderExtractor::calculateMainPrincipalCurvature  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *radius*,  |
|  |  | float &  | *magnitude*,  |
|  |  | Eigen::Vector3f &  | *main\_direction* |
|  | ) |  |  const |

 | inlineprotected |

 
 Calculate the main principal curvature (the largest eigenvalue and corresponding eigenvector for the normals in the area) in the given point. 

 
Parameters
 

|  |  |
| --- | --- |
| x | the x-coordinate of the input point  |
| y | the y-coordinate of the input point  |
| radius | the pixel radius that is used to find neighboring points  |
| magnitude | the resulting magnitude  |
| main\_direction | the resulting direction  |

   Definition at line [312](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00312) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::VectorAverage< real, dimension >::add()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00063), [pcl::BORDER\_TRAIT\_\_SHADOW\_BORDER](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00314), [pcl::BORDER\_TRAIT\_\_VEIL\_POINT](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00314), [pcl::VectorAverage< real, dimension >::doPCA()](https://pointclouds.org/documentation/vector__average_8hpp_source.html#l00084), [pcl::VectorAverage< real, dimension >::getNoOfSamples()](https://pointclouds.org/documentation/vector__average_8h_source.html#l00083), [pcl::RangeImage::isValid()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00457), [pcl::RangeImageBorderExtractor::LocalSurface::normal\_no\_jumps](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00073), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), [surface\_structure\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00187), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    calculateSurfaceChanges()
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::calculateSurfaceChanges  | ( |  | ) |  |

 | protected |

 
 Uses either the border or principal curvature to define a score how much the surface changes in a point (1 for a border) and what the main direction of that change is. 

    changeScoreAccordingToShadowBorderValue()
-----------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *offset\_x*,  |
|  |  | int  | *offset\_y*,  |
|  |  | float \*  | *border\_scores*,  |
|  |  | float \*  | *border\_scores\_other\_direction*,  |
|  |  | int &  | *shadow\_border\_idx* |
|  | ) |  |  const |

 | inlineprotected |

 
 Find the best corresponding shadow border and lower score according to the shadow borders value. 

 
Parameters
 

|  |  |
| --- | --- |
| x |  |
| y |  |
| offset\_x |  |
| offset\_y |  |
| border\_scores |  |
| border\_scores\_other\_direction |  |
| shadow\_border\_idx |  |

   
Returns

 Definition at line [180](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00180) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::RangeImage::isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [pcl::RangeImage::isMaxRange()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00478), [pcl::RangeImageBorderExtractor::Parameters::minimum\_border\_probability](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00095), [parameters\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00182), [pcl::RangeImageBorderExtractor::Parameters::pixel\_radius\_borders](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00092), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    checkIfMaximum()
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImageBorderExtractor::checkIfMaximum  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *offset\_x*,  |
|  |  | int  | *offset\_y*,  |
|  |  | float \*  | *border\_scores*,  |
|  |  | int  | *shadow\_border\_idx* |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if a potential border point is a maximum regarding the border score. 

 
Parameters
 

|  |  |
| --- | --- |
| x | the x-coordinate of the input point  |
| y | the y-coordinate of the input point  |
| offset\_x |  |
| offset\_y |  |
| border\_scores |  |
| shadow\_border\_idx |  |

   
Returns
a boolean value indicating whether or not the point is a maximum 
 Definition at line [289](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00289) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::RangeImage::isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [parameters\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00182), [pcl::RangeImageBorderExtractor::Parameters::pixel\_radius\_borders](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00092), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    checkPotentialBorder()
----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImageBorderExtractor::checkPotentialBorder  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *offset\_x*,  |
|  |  | int  | *offset\_y*,  |
|  |  | float \*  | *border\_scores\_left*,  |
|  |  | float \*  | *border\_scores\_right*,  |
|  |  | int &  | *shadow\_border\_idx* |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if a potential border point has a corresponding shadow border. 

 
Parameters
 

|  |  |
| --- | --- |
| x | the x-coordinate of the input point  |
| y | the y-coordinate of the input point  |
| offset\_x |  |
| offset\_y |  |
| border\_scores\_left |  |
| border\_scores\_right |  |
| shadow\_border\_idx |  |

   
Returns
a boolean value indicating whether or not the point has a corresponding shadow border 
 Definition at line [258](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00258) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::RangeImage::isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [pcl::RangeImageBorderExtractor::Parameters::minimum\_border\_probability](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00095), [parameters\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00182), [pcl::RangeImageBorderExtractor::Parameters::pixel\_radius\_borders](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00092), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    classifyBorders()
-----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::classifyBorders  | ( |  | ) |  |

 | protected |

 
 Classify the pixels in the range image according to the different classes defined below in enum BorderClass. 

 minImpactAngle (in radians) defines how flat the angle at which a surface was seen can be. 

    clearData()
-----------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::clearData  | ( |  | ) |  |

 
 Erase all data calculated for the current range image. 

    compute()
---------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Overwrite the compute function of the base class. 

    computeFeature()
----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Implementation of abstract derived function. 

 Implements [pcl::Feature< PointWithRange, BorderDescription >](classpcl_1_1_feature).

    extractBorderScoreImages()
--------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::extractBorderScoreImages  | ( |  | ) |  |

 | protected |

 
 Get images representing the probability that the corresponding pixels are borders in that direction (see getBorderScores... 

 ()) 

    extractLocalSurfaceStructure()
------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::extractLocalSurfaceStructure  | ( |  | ) |  |

 | protected |

 
 Extract local plane information in every point (see getSurfaceStructure ()) 

    findAndEvaluateShadowBorders()
------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::findAndEvaluateShadowBorders  | ( |  | ) |  |

 | protected |

 
 Find the best corresponding shadow border and lower score according to the shadow borders value. 

    get3dDirection()
----------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool pcl::RangeImageBorderExtractor::get3dDirection  | ( | const [BorderDescription](structpcl_1_1_border_description) &  | *border\_description*,  |
|  |  | Eigen::Vector3f &  | *direction*,  |
|  |  | const [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) \*  | *local\_surface* = `nullptr` |
|  | ) |  |  |

 | inlineprotected |

 
 Calculate a 3d direction from a border point by projecting the direction in the range image - returns false if direction could not be calculated. 

 
Parameters
 

|  |  |
| --- | --- |
| border\_description |  |
| direction |  |
| local\_surface |  |

   
Returns
a boolean value indicating whether or not a direction could be calculated 
 Definition at line [120](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00120) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_BOTTOM](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00317), [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_LEFT](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00317), [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_RIGHT](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00316), [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_TOP](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00316), [pcl::RangeImage::calculate3DPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00592), [pcl::RangeImage::getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [pcl::RangeImage::getSensorPos()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00683), [pcl::RangeImageBorderExtractor::LocalSurface::neighborhood\_mean\_no\_jumps](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00074), [pcl::RangeImageBorderExtractor::LocalSurface::normal\_no\_jumps](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00073), [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), [pcl::BorderDescription::traits](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01586), [pcl::BorderDescription::x](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01585), and [pcl::BorderDescription::y](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01585).

 Referenced by [calculateBorderDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00162).

    getAnglesImageForBorderDirections()
-----------------------------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getAnglesImageForBorderDirections  | ( |  | ) |  |

 
 Get the 2D directions in the range image from the border directions - probably mainly useful for visualization. 

    getAnglesImageForSurfaceChangeDirections()
------------------------------------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getAnglesImageForSurfaceChangeDirections  | ( |  | ) |  |

 
 Get the 2D directions in the range image from the surface change directions - probably mainly useful for visualization. 

    getBorderDescriptions()
-----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b)& pcl::RangeImageBorderExtractor::getBorderDescriptions  | ( |  | ) |  |

 | inline |

 
 Definition at line [165](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00165) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getBorderDirections()
---------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::Vector3f\*\* pcl::RangeImageBorderExtractor::getBorderDirections  | ( |  | ) |  |

 | inline |

 
 Definition at line [171](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00171) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getBorderScoresBottom()
-----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getBorderScoresBottom  | ( |  | ) |  |

 | inline |

 
 Definition at line [159](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00159) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getBorderScoresLeft()
---------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getBorderScoresLeft  | ( |  | ) |  |

 | inline |

 
 Definition at line [150](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00150) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getBorderScoresRight()
----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getBorderScoresRight  | ( |  | ) |  |

 | inline |

 
 Definition at line [153](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00153) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getBorderScoresTop()
--------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getBorderScoresTop  | ( |  | ) |  |

 | inline |

 
 Definition at line [156](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00156) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getNeighborDistanceChangeScore()
--------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImageBorderExtractor::getNeighborDistanceChangeScore  | ( | const [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) &  | *local\_surface*,  |
|  |  | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *offset\_x*,  |
|  |  | int  | *offset\_y*,  |
|  |  | int  | *pixel\_radius* = `1` |
|  | ) |  |  const |

 | inlineprotected |

 
 Calculate a border score based on how distant the neighbor is, compared to the closest neighbors /param local\_surface /param x /param y /param offset\_x /param offset\_y /param pixel\_radius (defaults to 1) /return the resulting border score. 

 Definition at line [70](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00070) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::RangeImage::get1dPointAverage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00809), [pcl::RangeImage::getPoint()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00486), [pcl::RangeImageBorderExtractor::LocalSurface::max\_neighbor\_distance\_squared](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00076), [pcl::\_PointWithRange::range](https://pointclouds.org/documentation/point__types_8hpp_source.html#l01073), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), and [pcl::squaredEuclideanDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00182).

    getNormalBasedBorderScore()
---------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImageBorderExtractor::getNormalBasedBorderScore  | ( | const [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface) &  | *local\_surface*,  |
|  |  | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | int  | *offset\_x*,  |
|  |  | int  | *offset\_y* |
|  | ) |  |  const |

 | inlineprotected |

 
 Calculate a border score based on how much the neighbor is away from the local surface plane. 

 
Parameters
 

|  |  |
| --- | --- |
| local\_surface |  |
| x |  |
| y |  |
| offset\_x |  |
| offset\_y |  |

   
Returns
the resulting border score 
    getObstacleBorderAngle()
------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float pcl::RangeImageBorderExtractor::getObstacleBorderAngle  | ( | const [BorderTraits](group__common#gafb2b6757a09f69abeb6795cc0956acbf) &  | *border\_traits* | ) |  |

 | inlinestatic |

 
 Take the information from BorderTraits to calculate the local direction of the border. 

 
Parameters
 

|  |  |
| --- | --- |
| border\_traits | contains the information needed to calculate the border angle  |

   Definition at line [45](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00045) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_BOTTOM](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00317), [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_LEFT](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00317), [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_RIGHT](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00316), and [pcl::BORDER\_TRAIT\_\_OBSTACLE\_BORDER\_TOP](https://pointclouds.org/documentation/common_2include_2pcl_2point__types_8h_source.html#l00316).

    getParameters()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Parameters](structpcl_1_1_range_image_border_extractor_1_1_parameters)& pcl::RangeImageBorderExtractor::getParameters  | ( |  | ) |  |

 | inline |

 
 Definition at line [141](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00141) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getRangeImage()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [RangeImage](classpcl_1_1_range_image)& pcl::RangeImageBorderExtractor::getRangeImage  | ( |  | ) |  const |

 | inline |

 
 Definition at line [147](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00147) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getShadowBorderInformations()
-----------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [ShadowBorderIndices](structpcl_1_1_range_image_border_extractor_1_1_shadow_border_indices)\*\* pcl::RangeImageBorderExtractor::getShadowBorderInformations  | ( |  | ) |  |

 | inline |

 
 Definition at line [168](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00168) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getSurfaceChangeDirections()
----------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::Vector3f\* pcl::RangeImageBorderExtractor::getSurfaceChangeDirections  | ( |  | ) |  |

 | inline |

 
 Definition at line [177](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00177) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getSurfaceChangeScores()
------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::getSurfaceChangeScores  | ( |  | ) |  |

 | inline |

 
 Definition at line [174](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00174) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    getSurfaceStructure()
---------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface)\*\* pcl::RangeImageBorderExtractor::getSurfaceStructure  | ( |  | ) |  |

 | inline |

 
 Definition at line [162](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00162) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    hasRangeImage()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool pcl::RangeImageBorderExtractor::hasRangeImage  | ( |  | ) |  const |

 | inline |

 
 Definition at line [144](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00144) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    setRangeImage()
---------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::setRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) \*  | *range\_image* | ) |  |

 
 Provide a pointer to the range image. 

 
Parameters
 

|  |  |
| --- | --- |
| range\_image | a pointer to the range\_image  |

      updatedScoreAccordingToNeighborValues()
---------------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float pcl::RangeImageBorderExtractor::updatedScoreAccordingToNeighborValues  | ( | int  | *x*,  |
|  |  | int  | *y*,  |
|  |  | const float \*  | *border\_scores* |
|  | ) |  |  const |

 | inlineprotected |

 
 Returns a new score for the given pixel that is >= the original value, based on the neighbors values. 

 
Parameters
 

|  |  |
| --- | --- |
| x | the x-coordinate of the input pixel  |
| y | the y-coordinate of the input pixel  |
| border\_scores | the input border scores  |

   
Returns
the resulting updated border score 
 Definition at line [226](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00226) of file [range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html).

 References [pcl::RangeImage::isInImage()](https://pointclouds.org/documentation/range__image_8hpp_source.html#l00450), [pcl::RangeImageBorderExtractor::Parameters::minimum\_border\_probability](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00095), [parameters\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00182), [range\_image\_](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    updatedScoresAccordingToNeighborValues()
----------------------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| float\* pcl::RangeImageBorderExtractor::updatedScoresAccordingToNeighborValues  | ( | const float \*  | *border\_scores* | ) |  const |

 | protected |

 
 For all pixels, returns a new score that is >= the original value, based on the neighbors values. 

 
Parameters
 

|  |  |
| --- | --- |
| border\_scores | the input border scores  |

   
Returns
a pointer to the resulting array of updated scores 
    updateScoresAccordingToNeighborValues()
---------------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::RangeImageBorderExtractor::updateScoresAccordingToNeighborValues  | ( |  | ) |  |

 | protected |

 
 Replace all border score values with updates according to *updatedScoreAccordingToNeighborValues*. 

   Member Data Documentation
-------------------------

  border\_descriptions\_
----------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b)\* pcl::RangeImageBorderExtractor::border\_descriptions\_ |

 | protected |

 
 Definition at line [188](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00188) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    border\_directions\_
--------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector3f\*\* pcl::RangeImageBorderExtractor::border\_directions\_ |

 | protected |

 
 Definition at line [190](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00190) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

 Referenced by [calculateBorderDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00162).

    border\_scores\_bottom\_
------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImageBorderExtractor::border\_scores\_bottom\_ |

 | protected |

 
 Definition at line [186](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00186) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    border\_scores\_left\_
----------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImageBorderExtractor::border\_scores\_left\_ |

 | protected |

 
 Definition at line [185](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00185) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    border\_scores\_right\_
-----------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImageBorderExtractor::border\_scores\_right\_ |

 | protected |

 
 Definition at line [185](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00185) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    border\_scores\_top\_
---------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> pcl::RangeImageBorderExtractor::border\_scores\_top\_ |

 | protected |

 
 Definition at line [186](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00186) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    parameters\_
------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [Parameters](structpcl_1_1_range_image_border_extractor_1_1_parameters) pcl::RangeImageBorderExtractor::parameters\_ |

 | protected |

 
 Definition at line [182](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00182) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

 Referenced by [changeScoreAccordingToShadowBorderValue()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00180), [checkIfMaximum()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00289), [checkPotentialBorder()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00258), and [updatedScoreAccordingToNeighborValues()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00226).

    range\_image\_
--------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| const [RangeImage](classpcl_1_1_range_image)\* pcl::RangeImageBorderExtractor::range\_image\_ |

 | protected |

 
 Definition at line [183](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00183) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

 Referenced by [calculateBorderDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00162), [calculateMainPrincipalCurvature()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00312), [changeScoreAccordingToShadowBorderValue()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00180), [checkIfMaximum()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00289), [checkPotentialBorder()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00258), [get3dDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00120), [getNeighborDistanceChangeScore()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00070), and [updatedScoreAccordingToNeighborValues()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00226).

    range\_image\_size\_during\_extraction\_
----------------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::RangeImageBorderExtractor::range\_image\_size\_during\_extraction\_ |

 | protected |

 
 Definition at line [184](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00184) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    shadow\_border\_informations\_
------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [ShadowBorderIndices](structpcl_1_1_range_image_border_extractor_1_1_shadow_border_indices)\*\* pcl::RangeImageBorderExtractor::shadow\_border\_informations\_ |

 | protected |

 
 Definition at line [189](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00189) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    surface\_change\_directions\_
-----------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector3f\* pcl::RangeImageBorderExtractor::surface\_change\_directions\_ |

 | protected |

 
 Definition at line [193](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00193) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    surface\_change\_scores\_
-------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float\* pcl::RangeImageBorderExtractor::surface\_change\_scores\_ |

 | protected |

 
 Definition at line [192](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00192) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

    surface\_structure\_
--------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [LocalSurface](structpcl_1_1_range_image_border_extractor_1_1_local_surface)\*\* pcl::RangeImageBorderExtractor::surface\_structure\_ |

 | protected |

 
 Definition at line [187](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html#l00187) of file [range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html).

 Referenced by [calculateBorderDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00162), and [calculateMainPrincipalCurvature()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00312).

   

---

The documentation for this class was generated from the following files:* pcl/features/[range\_image\_border\_extractor.h](https://pointclouds.org/documentation/range__image__border__extractor_8h_source.html)
* pcl/features/impl/[range\_image\_border\_extractor.hpp](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_range_image_border_extractor.html>

[RIFTEstimation](classpcl_1_1_r_i_f_t_estimation "RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud...") estimates the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform descriptors for a given point cloud dataset containing points and intensity. [More...](classpcl_1_1_r_i_f_t_estimation#details)

 `#include <[pcl/features/rift.h](https://pointclouds.org/documentation/rift_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudIn](classpcl_1_1_r_i_f_t_estimation#a0430e28ba6a8457aa40cbb8acd3a2ab5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudOut](classpcl_1_1_r_i_f_t_estimation#ae5fcd50b5c7a3b7a56a371d5f090fb4f) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudGradient](classpcl_1_1_r_i_f_t_estimation#a10202c29006383928af8700aed9c69c7) = [pcl::PointCloud](classpcl_1_1_point_cloud)< GradientT > |
|
| using  | [PointCloudGradientPtr](classpcl_1_1_r_i_f_t_estimation#ad38a07ac2d9cde2b63af5ffb2d141d5e) = typename [PointCloudGradient::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) = typename [PointCloudGradient::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_r_i_f_t_estimation#ad9bf46d71b02e2bd7a77e1afb1e1a5ec) = shared\_ptr< [RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_r_i_f_t_estimation#a0da7c2bfad539aa86fd8574d8f73bb61) = shared\_ptr< const [RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [RIFTEstimation](classpcl_1_1_r_i_f_t_estimation#a0a34f2ecc9ed04ce7b43b3a11a938003) () |
|  | Empty constructor. [More...](classpcl_1_1_r_i_f_t_estimation#a0a34f2ecc9ed04ce7b43b3a11a938003) |
|
| void  | [setInputGradient](classpcl_1_1_r_i_f_t_estimation#a4b3bbab981ff6a9d06ec356a40ef17df) (const [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) &gradient) |
|  | Provide a pointer to the input gradient data. [More...](classpcl_1_1_r_i_f_t_estimation#a4b3bbab981ff6a9d06ec356a40ef17df) |
|
| [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) | [getInputGradient](classpcl_1_1_r_i_f_t_estimation#ad72f22949717fd15be75d3f730206178) () const |
|  | Returns a shared pointer to the input gradient data. [More...](classpcl_1_1_r_i_f_t_estimation#ad72f22949717fd15be75d3f730206178) |
|
| void  | [setNrDistanceBins](classpcl_1_1_r_i_f_t_estimation#a3e5f538801f66792c8cd750346bc2856) (int nr\_distance\_bins) |
|  | Set the number of bins to use in the distance dimension of the RIFT descriptor. [More...](classpcl_1_1_r_i_f_t_estimation#a3e5f538801f66792c8cd750346bc2856) |
|
| int  | [getNrDistanceBins](classpcl_1_1_r_i_f_t_estimation#a435800fcae037f36596d7e9a9e20fb60) () const |
|  | Returns the number of bins in the distance dimension of the RIFT descriptor. [More...](classpcl_1_1_r_i_f_t_estimation#a435800fcae037f36596d7e9a9e20fb60) |
|
| void  | [setNrGradientBins](classpcl_1_1_r_i_f_t_estimation#a04fbdbe90490278fc6a963d5525bc5f4) (int nr\_gradient\_bins) |
|  | Set the number of bins to use in the gradient orientation dimension of the RIFT descriptor. [More...](classpcl_1_1_r_i_f_t_estimation#a04fbdbe90490278fc6a963d5525bc5f4) |
|
| int  | [getNrGradientBins](classpcl_1_1_r_i_f_t_estimation#afdf9c8df2c80f9f768bc023c809bbf33) () const |
|  | Returns the number of bins in the gradient orientation dimension of the RIFT descriptor. [More...](classpcl_1_1_r_i_f_t_estimation#afdf9c8df2c80f9f768bc023c809bbf33) |
|
| void  | [computeRIFT](classpcl_1_1_r_i_f_t_estimation#a70ed913af051c972fdfce5b78fc41833) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, const [PointCloudGradient](classpcl_1_1_r_i_f_t_estimation#a10202c29006383928af8700aed9c69c7) &gradient, int p\_idx, float radius, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &squared\_distances, Eigen::MatrixXf &rift\_descriptor) |
|  | Estimate the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform (RIFT) descriptor for a given point based on its spatial neighborhood of 3D points and the corresponding intensity gradient vector field. [More...](classpcl_1_1_r_i_f_t_estimation#a70ed913af051c972fdfce5b78fc41833) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_r_i_f_t_estimation#a0764b8e27425edfe63821ac7c8eb6b9f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform (RIFT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface (), the gradient in setInputGradient (), and the spatial locator in setSearchMethod () [More...](classpcl_1_1_r_i_f_t_estimation#a0764b8e27425edfe63821ac7c8eb6b9f) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) | [gradient\_](classpcl_1_1_r_i_f_t_estimation#a397d3f78f5eaae31a5f6fa529dfbe4c1) |
|  | The intensity gradient of the input point cloud data. [More...](classpcl_1_1_r_i_f_t_estimation#a397d3f78f5eaae31a5f6fa529dfbe4c1) |
|
| int  | [nr\_distance\_bins\_](classpcl_1_1_r_i_f_t_estimation#a30d91f31d35f82e5e8d8311ec3baa04a) |
|  | The number of distance bins in the descriptor. [More...](classpcl_1_1_r_i_f_t_estimation#a30d91f31d35f82e5e8d8311ec3baa04a) |
|
| int  | [nr\_gradient\_bins\_](classpcl_1_1_r_i_f_t_estimation#a669ddfe9cc8d7c5d011d15e147705cf7) |
|  | The number of gradient orientation bins in the descriptor. [More...](classpcl_1_1_r_i_f_t_estimation#a669ddfe9cc8d7c5d011d15e147705cf7) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename GradientT, typename PointOutT> class pcl::RIFTEstimation< PointInT, GradientT, PointOutT >

 [RIFTEstimation](classpcl_1_1_r_i_f_t_estimation "RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud...") estimates the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform descriptors for a given point cloud dataset containing points and intensity. 

 For more information about the RIFT descriptor, see:

 Svetlana Lazebnik, Cordelia Schmid, and Jean Ponce. A sparse texture representation using local affine regions. In IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 27, pages 1265-1278, August 2005.

 
Author
Michael Dixon 
 Definition at line [59](https://pointclouds.org/documentation/rift_8h_source.html#l00059) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)<PointInT, GradientT, PointOutT> > |

 
 Definition at line [79](https://pointclouds.org/documentation/rift_8h_source.html#l00079) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

    PointCloudGradient
------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[PointCloudGradient](classpcl_1_1_r_i_f_t_estimation#a10202c29006383928af8700aed9c69c7) = [pcl::PointCloud](classpcl_1_1_point_cloud)<GradientT> |

 
 Definition at line [74](https://pointclouds.org/documentation/rift_8h_source.html#l00074) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

    PointCloudGradientConstPtr
--------------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) = typename [PointCloudGradient::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [76](https://pointclouds.org/documentation/rift_8h_source.html#l00076) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

    PointCloudGradientPtr
---------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[PointCloudGradientPtr](classpcl_1_1_r_i_f_t_estimation#ad38a07ac2d9cde2b63af5ffb2d141d5e) = typename [PointCloudGradient::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [75](https://pointclouds.org/documentation/rift_8h_source.html#l00075) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [71](https://pointclouds.org/documentation/rift_8h_source.html#l00071) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [72](https://pointclouds.org/documentation/rift_8h_source.html#l00072) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

    Ptr
---

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |
| --- |
| using [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)<PointInT, GradientT, PointOutT> > |

 
 Definition at line [78](https://pointclouds.org/documentation/rift_8h_source.html#l00078) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  RIFTEstimation()
----------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::[RIFTEstimation](classpcl_1_1_r_i_f_t_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [83](https://pointclouds.org/documentation/rift_8h_source.html#l00083) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform (RIFT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface (), the gradient in setInputGradient (), and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset that contains the RIFT feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [113](https://pointclouds.org/documentation/rift_8hpp_source.html#l00113) of file [rift.hpp](https://pointclouds.org/documentation/rift_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    computeRIFT()
-------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::computeRIFT  | ( | const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &  | *cloud*,  |
|  |  | const [PointCloudGradient](classpcl_1_1_r_i_f_t_estimation#a10202c29006383928af8700aed9c69c7) &  | *gradient*,  |
|  |  | int  | *p\_idx*,  |
|  |  | float  | *radius*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *squared\_distances*,  |
|  |  | Eigen::MatrixXf &  | *rift\_descriptor* |
|  | ) |  |  |

 
 Estimate the Rotation Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform (RIFT) descriptor for a given point based on its spatial neighborhood of 3D points and the corresponding intensity gradient vector field. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the dataset containing the Cartesian coordinates of the points  |
| [in] | gradient | the dataset containing the intensity gradient at each point in *cloud* |
| [in] | p\_idx | the index of the query point in *cloud* (i.e. the center of the neighborhood)  |
| [in] | radius | the radius of the RIFT feature  |
| [in] | indices | the indices of the points that comprise *p\_idx's* neighborhood in *cloud* |
| [in] | squared\_distances | the squared distances from the query point to each point in the neighborhood  |
| [out] | rift\_descriptor | the resultant RIFT descriptor  |

   Definition at line [48](https://pointclouds.org/documentation/rift_8hpp_source.html#l00048) of file [rift.hpp](https://pointclouds.org/documentation/rift_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    getInputGradient()
------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::getInputGradient  | ( |  | ) |  const |

 | inline |

 
 Returns a shared pointer to the input gradient data. 

 Definition at line [96](https://pointclouds.org/documentation/rift_8h_source.html#l00096) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::gradient\_](https://pointclouds.org/documentation/rift_8h_source.html#l00144).

    getNrDistanceBins()
-------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::getNrDistanceBins  | ( |  | ) |  const |

 | inline |

 
 Returns the number of bins in the distance dimension of the RIFT descriptor. 

 Definition at line [106](https://pointclouds.org/documentation/rift_8h_source.html#l00106) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::nr\_distance\_bins\_](https://pointclouds.org/documentation/rift_8h_source.html#l00147).

    getNrGradientBins()
-------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::getNrGradientBins  | ( |  | ) |  const |

 | inline |

 
 Returns the number of bins in the gradient orientation dimension of the RIFT descriptor. 

 Definition at line [116](https://pointclouds.org/documentation/rift_8h_source.html#l00116) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::nr\_gradient\_bins\_](https://pointclouds.org/documentation/rift_8h_source.html#l00150).

    setInputGradient()
------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::setInputGradient  | ( | const [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) &  | *gradient* | ) |  |

 | inline |

 
 Provide a pointer to the input gradient data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | gradient | a pointer to the input gradient data  |

   Definition at line [92](https://pointclouds.org/documentation/rift_8h_source.html#l00092) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::gradient\_](https://pointclouds.org/documentation/rift_8h_source.html#l00144).

    setNrDistanceBins()
-------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::setNrDistanceBins  | ( | int  | *nr\_distance\_bins* | ) |  |

 | inline |

 
 Set the number of bins to use in the distance dimension of the RIFT descriptor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_distance\_bins | the number of bins to use in the distance dimension of the RIFT descriptor  |

   Definition at line [102](https://pointclouds.org/documentation/rift_8h_source.html#l00102) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::nr\_distance\_bins\_](https://pointclouds.org/documentation/rift_8h_source.html#l00147).

    setNrGradientBins()
-------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::setNrGradientBins  | ( | int  | *nr\_gradient\_bins* | ) |  |

 | inline |

 
 Set the number of bins to use in the gradient orientation dimension of the RIFT descriptor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_gradient\_bins | the number of bins to use in the gradient orientation dimension of the RIFT descriptor  |

   Definition at line [112](https://pointclouds.org/documentation/rift_8h_source.html#l00112) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 References [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::nr\_gradient\_bins\_](https://pointclouds.org/documentation/rift_8h_source.html#l00150).

   Member Data Documentation
-------------------------

  gradient\_
----------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudGradientConstPtr](classpcl_1_1_r_i_f_t_estimation#a50926eb3b203676bf460804d696d9cbd) [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::gradient\_ |

 | protected |

 
 The intensity gradient of the input point cloud data. 

 Definition at line [144](https://pointclouds.org/documentation/rift_8h_source.html#l00144) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 Referenced by [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::getInputGradient()](https://pointclouds.org/documentation/rift_8h_source.html#l00096), and [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::setInputGradient()](https://pointclouds.org/documentation/rift_8h_source.html#l00092).

    nr\_distance\_bins\_
--------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::nr\_distance\_bins\_ |

 | protected |

 
 The number of distance bins in the descriptor. 

 Definition at line [147](https://pointclouds.org/documentation/rift_8h_source.html#l00147) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 Referenced by [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::getNrDistanceBins()](https://pointclouds.org/documentation/rift_8h_source.html#l00106), and [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::setNrDistanceBins()](https://pointclouds.org/documentation/rift_8h_source.html#l00102).

    nr\_gradient\_bins\_
--------------------

    template<typename PointInT , typename GradientT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::RIFTEstimation](classpcl_1_1_r_i_f_t_estimation)< PointInT, GradientT, PointOutT >::nr\_gradient\_bins\_ |

 | protected |

 
 The number of gradient orientation bins in the descriptor. 

 Definition at line [150](https://pointclouds.org/documentation/rift_8h_source.html#l00150) of file [rift.h](https://pointclouds.org/documentation/rift_8h_source.html).

 Referenced by [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::getNrGradientBins()](https://pointclouds.org/documentation/rift_8h_source.html#l00116), and [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::setNrGradientBins()](https://pointclouds.org/documentation/rift_8h_source.html#l00112).

   

---

The documentation for this class was generated from the following files:* pcl/features/[rift.h](https://pointclouds.org/documentation/rift_8h_source.html)
* pcl/features/impl/[rift.hpp](https://pointclouds.org/documentation/rift_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_r_i_f_t_estimation.html>

**[RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ...")** estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local surface's curves) for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_r_s_d_estimation#details)

 `#include <[pcl/features/rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudOut](classpcl_1_1_r_s_d_estimation#a789cb40b1e429c59bf966f47aa6e776e) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_r_s_d_estimation#ab3894a8854249279330064f23101dc62) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| using  | [Ptr](classpcl_1_1_r_s_d_estimation#adb58e2699c447c0d9e65b0fa4ed6d47e) = shared\_ptr< [RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_r_s_d_estimation#a385ee872efa96c0154612bdfb43506eb) = shared\_ptr< const [RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [RSDEstimation](classpcl_1_1_r_s_d_estimation#ad1b0ed7e8ba342caf124c1439b2784c1) () |
|  | Empty constructor. [More...](classpcl_1_1_r_s_d_estimation#ad1b0ed7e8ba342caf124c1439b2784c1) |
|
| void  | [setNrSubdivisions](classpcl_1_1_r_s_d_estimation#a1def3991558aed6f3c9e7bdddadcbae9) (int nr\_subdiv) |
|  | Set the number of subdivisions for the considered distance interval. [More...](classpcl_1_1_r_s_d_estimation#a1def3991558aed6f3c9e7bdddadcbae9) |
|
| int  | [getNrSubdivisions](classpcl_1_1_r_s_d_estimation#a8dbe5c6cafe71dd8743a9f6df8b1af06) () const |
|  | Get the number of subdivisions for the considered distance interval. [More...](classpcl_1_1_r_s_d_estimation#a8dbe5c6cafe71dd8743a9f6df8b1af06) |
|
| void  | [setPlaneRadius](classpcl_1_1_r_s_d_estimation#aecde5695830922aa1db68f7c137a28af) (double plane\_radius) |
|  | Set the maximum radius, above which everything can be considered planar. [More...](classpcl_1_1_r_s_d_estimation#aecde5695830922aa1db68f7c137a28af) |
|
| double  | [getPlaneRadius](classpcl_1_1_r_s_d_estimation#ad9d6fde64602975e5517b73f1632e34d) () const |
|  | Get the maximum radius, above which everything can be considered planar. [More...](classpcl_1_1_r_s_d_estimation#ad9d6fde64602975e5517b73f1632e34d) |
|
| void  | [setKSearch](classpcl_1_1_r_s_d_estimation#a49e3c7640cb49fc4fa156c4ed3d5ba6d) (int) |
|  | Disables the setting of the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_r_s_d_estimation#a49e3c7640cb49fc4fa156c4ed3d5ba6d) |
|
| void  | [setSaveHistograms](classpcl_1_1_r_s_d_estimation#ae2179ad69a9cceac6ff52ff7bf0126da) (bool save) |
|  | Set whether the full distance-angle histograms should be saved. [More...](classpcl_1_1_r_s_d_estimation#ae2179ad69a9cceac6ff52ff7bf0126da) |
|
| bool  | [getSaveHistograms](classpcl_1_1_r_s_d_estimation#ad82d625c7fa3b31ab3eba7d85c309a48) () const |
|  | Returns whether the full distance-angle histograms are being saved. [More...](classpcl_1_1_r_s_d_estimation#ad82d625c7fa3b31ab3eba7d85c309a48) |
|
| shared\_ptr< std::vector< Eigen::MatrixXf, Eigen::aligned\_allocator< Eigen::MatrixXf > > >  | [getHistograms](classpcl_1_1_r_s_d_estimation#ade3da6b23df23d1afa8d7c194a861863) () const |
|  | Returns a pointer to the list of full distance-angle histograms for all points. [More...](classpcl_1_1_r_s_d_estimation#ade3da6b23df23d1afa8d7c194a861863) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_r_s_d_estimation#acf14991f3d4b68a4e0a4b987c1a71b41) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the estimates the Radius-based Surface Descriptor (RSD) at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_r_s_d_estimation#acf14991f3d4b68a4e0a4b987c1a71b41) |
|
| - Protected Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| virtual bool  | [initCompute](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| shared\_ptr< std::vector< Eigen::MatrixXf, Eigen::aligned\_allocator< Eigen::MatrixXf > > >  | [histograms\_](classpcl_1_1_r_s_d_estimation#aec664ae2098ab3c57343b42cfc8526d6) |
|  | The list of full distance-angle histograms for all points. [More...](classpcl_1_1_r_s_d_estimation#aec664ae2098ab3c57343b42cfc8526d6) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT> class pcl::RSDEstimation< PointInT, PointNT, PointOutT >

 **[RSDEstimation](classpcl_1_1_r_s_d_estimation "RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local ...")** estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local surface's curves) for a given point cloud dataset containing points and normals. 

 
Note
If you use this code in any academic work, please cite:
 * Z.C. Marton , D. Pangercic , N. Blodow , J. Kleinehellefort, M. Beetz General 3D Modelling of Novel Objects from a Single View In Proceedings of the 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) Taipei, Taiwan, October 18-22, 2010
* Z.C. Marton, D. Pangercic, N. Blodow, Michael Beetz. Combined 2D-3D Categorization and Classification for Multimodal Perception Systems. In The International Journal of Robotics Research, Sage Publications pages 1378–1402, Volume 30, Number 11, September 2011.

 
Note
The code is stateful as we do not expect this class to be multicore parallelized. 
 
Author
Zoltan-Csaba Marton
 
Template Parameters
 

|  |  |
| --- | --- |
| PointOutT | Suggested type is `[pcl::PrincipalRadiiRSD](structpcl_1_1_principal_radii_r_s_d "A point structure representing the minimum and maximum surface radii (in meters) computed using RSD.")` |

   Definition at line [132](https://pointclouds.org/documentation/rsd_8h_source.html#l00132) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [RSDEstimation](classpcl_1_1_r_s_d_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [147](https://pointclouds.org/documentation/rsd_8h_source.html#l00147) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [144](https://pointclouds.org/documentation/rsd_8h_source.html#l00144) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [143](https://pointclouds.org/documentation/rsd_8h_source.html#l00143) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[RSDEstimation](classpcl_1_1_r_s_d_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [146](https://pointclouds.org/documentation/rsd_8h_source.html#l00146) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  RSDEstimation()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::[RSDEstimation](classpcl_1_1_r_s_d_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [151](https://pointclouds.org/documentation/rsd_8h_source.html#l00151) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the estimates the Radius-based Surface Descriptor (RSD) at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains the RSD feature estimates (r\_min and r\_max values)  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [248](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00248) of file [rsd.hpp](https://pointclouds.org/documentation/rsd_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::computeRSD()](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00049), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    getHistograms()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| shared\_ptr<std::vector<Eigen::MatrixXf, Eigen::aligned\_allocator<Eigen::MatrixXf> > > [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::getHistograms  | ( |  | ) |  const |

 | inline |

 
 Returns a pointer to the list of full distance-angle histograms for all points. 

 
Returns
the histogram being saved when computing RSD 
 Definition at line [206](https://pointclouds.org/documentation/rsd_8h_source.html#l00206) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 References [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::histograms\_](https://pointclouds.org/documentation/rsd_8h_source.html#l00219).

    getNrSubdivisions()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::getNrSubdivisions  | ( |  | ) |  const |

 | inline |

 
 Get the number of subdivisions for the considered distance interval. 

 
Returns
the number of subdivisions 
 Definition at line [166](https://pointclouds.org/documentation/rsd_8h_source.html#l00166) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

    getPlaneRadius()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::getPlaneRadius  | ( |  | ) |  const |

 | inline |

 
 Get the maximum radius, above which everything can be considered planar. 

 
Returns
the plane\_radius used 
 Definition at line [180](https://pointclouds.org/documentation/rsd_8h_source.html#l00180) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

    getSaveHistograms()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::getSaveHistograms  | ( |  | ) |  const |

 | inline |

 
 Returns whether the full distance-angle histograms are being saved. 

 
Returns
true if the histograms are being be saved 
 Definition at line [200](https://pointclouds.org/documentation/rsd_8h_source.html#l00200) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

    setKSearch()
------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setKSearch  | ( | int  |  | ) |  |

 | inline |

 
 Disables the setting of the number of k nearest neighbors to use for the feature estimation. 

 Definition at line [184](https://pointclouds.org/documentation/rsd_8h_source.html#l00184) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::getClassName()](https://pointclouds.org/documentation/feature_8h_source.html#l00244).

    setNrSubdivisions()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setNrSubdivisions  | ( | int  | *nr\_subdiv* | ) |  |

 | inline |

 
 Set the number of subdivisions for the considered distance interval. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_subdiv | the number of subdivisions  |

   Definition at line [160](https://pointclouds.org/documentation/rsd_8h_source.html#l00160) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 Referenced by [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065).

    setPlaneRadius()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setPlaneRadius  | ( | double  | *plane\_radius* | ) |  |

 | inline |

 
 Set the maximum radius, above which everything can be considered planar. 

 
Note
the order of magnitude should be around 10-20 times the search radius (0.2 works well for typical datasets).   on accurate 3D data (e.g. openni sensors) a search radius as low as 0.01 still gives good results. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | plane\_radius | the new plane radius  |

   Definition at line [174](https://pointclouds.org/documentation/rsd_8h_source.html#l00174) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 Referenced by [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065).

    setSaveHistograms()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::setSaveHistograms  | ( | bool  | *save* | ) |  |

 | inline |

 
 Set whether the full distance-angle histograms should be saved. 

 
Note
Obtain the list of histograms by getHistograms () 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | save | set to true if histograms should be saved  |

   Definition at line [194](https://pointclouds.org/documentation/rsd_8h_source.html#l00194) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 References [pcl::io::save()](group__io#ga7628b0ac832725c706b0ab1bb23ab1ae).

   Member Data Documentation
-------------------------

  histograms\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| shared\_ptr<std::vector<Eigen::MatrixXf, Eigen::aligned\_allocator<Eigen::MatrixXf> > > [pcl::RSDEstimation](classpcl_1_1_r_s_d_estimation)< PointInT, PointNT, PointOutT >::histograms\_ |

 | protected |

 
 The list of full distance-angle histograms for all points. 

 Definition at line [219](https://pointclouds.org/documentation/rsd_8h_source.html#l00219) of file [rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html).

 Referenced by [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::getHistograms()](https://pointclouds.org/documentation/rsd_8h_source.html#l00206).

   

---

The documentation for this class was generated from the following files:* pcl/features/[rsd.h](https://pointclouds.org/documentation/rsd_8h_source.html)
* pcl/features/impl/[rsd.hpp](https://pointclouds.org/documentation/rsd_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_r_s_d_estimation.html>

[SHOTEstimation](classpcl_1_1_s_h_o_t_estimation "SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_s_h_o_t_estimation_base#details)

 `#include <[pcl/features/shot.h](https://pointclouds.org/documentation/shot_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation_base#addc2622adfcba6a2ff7e371f1d61d79e) = shared\_ptr< [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation_base#a016ca54cba6cae4f13d4b68cb32f5056) = shared\_ptr< const [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation_base#a162b8b0c437bea17fc24c6d08f609559) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Public Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [~SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) |
|
| virtual void  | [computePointSHOT](classpcl_1_1_s_h_o_t_estimation_base#ab3ea8c011e6b2c89ca9287245fff9d37) (const int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, Eigen::VectorXf &shot)=0 |
|  | Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_s_h_o_t_estimation_base#ab3ea8c011e6b2c89ca9287245fff9d37) |
|
| virtual void  | [setLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) (float radius) |
|  | Set the radius used for local reference frame estimation if the frames are not set by the user. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) |
|
| virtual float  | [getLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) () const |
|  | Get the radius used for local reference frame estimation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|
| - Public Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Protected Member Functions |
|  | [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) (int nr\_shape\_bins=10) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) |
|
| void  | [interpolateSingleChannel](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistance, const int nr\_bins, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. [More...](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) |
|
| void  | [normalizeHistogram](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) (Eigen::VectorXf &shot, int desc\_length) |
|  | Normalize the SHOT histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) |
|
| void  | [createBinDistanceShape](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) (int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< double > &bin\_distance\_shape) |
|  | Create a binned distance shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Protected Attributes |
| int  | [nr\_shape\_bins\_](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|  | The number of bins in each shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|
| float  | [lrf\_radius\_](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|  | The radius used for the LRF computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|
| double  | [sqradius\_](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|  | The squared search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|
| double  | [radius3\_4\_](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|  | 3/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|
| double  | [radius1\_4\_](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|  | 1/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|
| double  | [radius1\_2\_](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|  | 1/2 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|
| const int  | [nr\_grid\_sector\_](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|  | Number of azimuthal sectors. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|
| const int  | [maxAngularSectors\_](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|  | ... [More...](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|
| int  | [descLength\_](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|  | One SHOT length. [More...](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|
| - Protected Attributes inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::ReferenceFrame](structpcl_1_1_reference_frame) >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT, typename PointRFT = pcl::ReferenceFrame> class pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >

 [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation "SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. 

 The suggested PointOutT is [pcl::SHOT352](structpcl_1_1_s_h_o_t352 "A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape onl...").

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti, Federico Tombari 
 Definition at line [69](https://pointclouds.org/documentation/shot_8h_source.html#l00069) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [74](https://pointclouds.org/documentation/shot_8h_source.html#l00074) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [87](https://pointclouds.org/documentation/shot_8h_source.html#l00087) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [73](https://pointclouds.org/documentation/shot_8h_source.html#l00073) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTEstimationBase()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::[SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base) | ( | int  | *nr\_shape\_bins* = `10` | ) |  |

 | inlineprotected |

 
 Empty constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_shape\_bins | the number of bins in the shape histogram  |

   Definition at line [93](https://pointclouds.org/documentation/shot_8h_source.html#l00093) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~SHOTEstimationBase()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::~[SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computePointSHOT()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual void [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::computePointSHOT  | ( | const int  | *index*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *sqr\_dists*,  |
|  |  | Eigen::VectorXf &  | *shot* |
|  | ) |  |  |

 | pure virtual |

 
 Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point in indices\_  |
| [in] | indices | the k-neighborhood point indices in surface\_  |
| [in] | sqr\_dists | the k-neighborhood point distances in surface\_  |
| [out] | shot | the resultant SHOT descriptor representing the feature at the query point  |

   Implemented in [pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_color_estimation#ad14b792113983c5884c2bba69d380d42), [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation#ad14b792113983c5884c2bba69d380d42), [pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >](classpcl_1_1_s_h_o_t_estimation#ae145c1aeab3c61ae34fb35eed1ddceed), and [pcl::SHOTEstimation< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation#ae145c1aeab3c61ae34fb35eed1ddceed).

    createBinDistanceShape()
------------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::createBinDistanceShape  | ( | int  | *index*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | std::vector< double > &  | *bin\_distance\_shape* |
|  | ) |  |  |

 | protected |

 
 Create a binned distance shape histogram. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point in indices\_  |
| [in] | indices | the k-neighborhood point indices in surface\_  |
| [out] | bin\_distance\_shape | the resultant histogram  |

   Definition at line [176](https://pointclouds.org/documentation/shot_8hpp_source.html#l00176) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

    getLRFRadius()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual float [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius  | ( |  | ) |  const |

 | inlinevirtual |

 
 Get the radius used for local reference frame estimation. 

 Definition at line [127](https://pointclouds.org/documentation/shot_8h_source.html#l00127) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 References [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::lrf\_radius\_](https://pointclouds.org/documentation/shot_8h_source.html#l00173).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::initCompute |

 | overrideprotectedvirtual |

 
 This method should get called before starting the actual computation. 

 Reimplemented from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [140](https://pointclouds.org/documentation/shot_8hpp_source.html#l00140) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

    interpolateSingleChannel()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::interpolateSingleChannel  | ( | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *sqr\_dists*,  |
|  |  | const int  | *index*,  |
|  |  | std::vector< double > &  | *binDistance*,  |
|  |  | const int  | *nr\_bins*,  |
|  |  | Eigen::VectorXf &  | *shot* |
|  | ) |  |  |

 | protected |

 
 Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | indices | the neighborhood point indices  |
| [in] | sqr\_dists | the neighborhood point distances  |
| [in] | index | the index of the point in indices\_  |
| [out] | binDistance | the resultant distance shape histogram  |
| [in] | nr\_bins | the number of bins in the shape histogram  |
| [out] | shot | the resultant SHOT histogram  |

   Definition at line [237](https://pointclouds.org/documentation/shot_8hpp_source.html#l00237) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

    normalizeHistogram()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::normalizeHistogram  | ( | Eigen::VectorXf &  | *shot*,  |
|  |  | int  | *desc\_length* |
|  | ) |  |  |

 | protected |

 
 Normalize the SHOT histogram. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in,out] | shot | the SHOT histogram  |
| [in] | desc\_length | the length of the histogram  |

   Definition at line [220](https://pointclouds.org/documentation/shot_8hpp_source.html#l00220) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

    setLRFRadius()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual void [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::setLRFRadius  | ( | float  | *radius* | ) |  |

 | inlinevirtual |

 
 Set the radius used for local reference frame estimation if the frames are not set by the user. 

 Definition at line [123](https://pointclouds.org/documentation/shot_8h_source.html#l00123) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 References [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::lrf\_radius\_](https://pointclouds.org/documentation/shot_8h_source.html#l00173).

   Member Data Documentation
-------------------------

  descLength\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::descLength\_ |

 | protected |

 
 One SHOT length. 

 Definition at line [194](https://pointclouds.org/documentation/shot_8h_source.html#l00194) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    lrf\_radius\_
-------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::lrf\_radius\_ |

 | protected |

 
 The radius used for the LRF computation. 

 Definition at line [173](https://pointclouds.org/documentation/shot_8h_source.html#l00173) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 Referenced by [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius()](https://pointclouds.org/documentation/shot_8h_source.html#l00127), and [pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::setLRFRadius()](https://pointclouds.org/documentation/shot_8h_source.html#l00123).

    maxAngularSectors\_
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| const int [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::maxAngularSectors\_ |

 | protected |

 
 ... 

 Definition at line [191](https://pointclouds.org/documentation/shot_8h_source.html#l00191) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    nr\_grid\_sector\_
------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| const int [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::nr\_grid\_sector\_ |

 | protected |

 
 Number of azimuthal sectors. 

 Definition at line [188](https://pointclouds.org/documentation/shot_8h_source.html#l00188) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    nr\_shape\_bins\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::nr\_shape\_bins\_ |

 | protected |

 
 The number of bins in each shape histogram. 

 Definition at line [170](https://pointclouds.org/documentation/shot_8h_source.html#l00170) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    radius1\_2\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::radius1\_2\_ |

 | protected |

 
 1/2 of the search radius. 

 Definition at line [185](https://pointclouds.org/documentation/shot_8h_source.html#l00185) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    radius1\_4\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::radius1\_4\_ |

 | protected |

 
 1/4 of the search radius. 

 Definition at line [182](https://pointclouds.org/documentation/shot_8h_source.html#l00182) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    radius3\_4\_
------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::radius3\_4\_ |

 | protected |

 
 3/4 of the search radius. 

 Definition at line [179](https://pointclouds.org/documentation/shot_8h_source.html#l00179) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    sqradius\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, PointOutT, PointRFT >::sqradius\_ |

 | protected |

 
 The squared search radius. 

 Definition at line [176](https://pointclouds.org/documentation/shot_8h_source.html#l00176) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot.h](https://pointclouds.org/documentation/shot_8h_source.html)
* pcl/features/impl/[shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_estimation_base.html>

[SHOTEstimation](classpcl_1_1_s_h_o_t_estimation "SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_s_h_o_t_estimation#details)

 `#include <[pcl/features/shot.h](https://pointclouds.org/documentation/shot_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation#a637c3ebe54e9b1ac8ac715b9e3534512) = shared\_ptr< [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation#ace1dedbf65f618eddaa4c7cf07198c6d) = shared\_ptr< const [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation#acebc3d8203e5a913e2d82a344c4e495e) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation_base#addc2622adfcba6a2ff7e371f1d61d79e) = shared\_ptr< [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation_base#a016ca54cba6cae4f13d4b68cb32f5056) = shared\_ptr< const [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation_base#a162b8b0c437bea17fc24c6d08f609559) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Public Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation#aaffdc155e538e0e76e75fd02b7f53293) () |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation#aaffdc155e538e0e76e75fd02b7f53293) |
|
|  | [~SHOTEstimation](classpcl_1_1_s_h_o_t_estimation#a2abd667eb73d3fe48585611d2f75ba4c) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation#a2abd667eb73d3fe48585611d2f75ba4c) |
|
| void  | [computePointSHOT](classpcl_1_1_s_h_o_t_estimation#ae145c1aeab3c61ae34fb35eed1ddceed) (const int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, Eigen::VectorXf &shot) override |
|  | Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_s_h_o_t_estimation#ae145c1aeab3c61ae34fb35eed1ddceed) |
|
| - Public Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [~SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) |
|
| virtual void  | [setLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) (float radius) |
|  | Set the radius used for local reference frame estimation if the frames are not set by the user. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) |
|
| virtual float  | [getLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) () const |
|  | Get the radius used for local reference frame estimation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|
| - Public Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_estimation#ad14fb6d3d855c455d769a87c77c8b85b) ([pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &output) override |
|  | Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_s_h_o_t_estimation#ad14fb6d3d855c455d769a87c77c8b85b) |
|
| - Protected Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) (int nr\_shape\_bins=10) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) |
|
| void  | [interpolateSingleChannel](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistance, const int nr\_bins, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. [More...](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) |
|
| void  | [normalizeHistogram](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) (Eigen::VectorXf &shot, int desc\_length) |
|  | Normalize the SHOT histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) |
|
| void  | [createBinDistanceShape](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) (int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< double > &bin\_distance\_shape) |
|  | Create a binned distance shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::ReferenceFrame](structpcl_1_1_reference_frame) >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|
| - Protected Attributes inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| int  | [nr\_shape\_bins\_](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|  | The number of bins in each shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|
| float  | [lrf\_radius\_](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|  | The radius used for the LRF computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|
| double  | [sqradius\_](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|  | The squared search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|
| double  | [radius3\_4\_](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|  | 3/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|
| double  | [radius1\_4\_](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|  | 1/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|
| double  | [radius1\_2\_](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|  | 1/2 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|
| const int  | [nr\_grid\_sector\_](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|  | Number of azimuthal sectors. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|
| const int  | [maxAngularSectors\_](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|  | ... [More...](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|
| int  | [descLength\_](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|  | One SHOT length. [More...](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|
| - Protected Attributes inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame> class pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >

 [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation "SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. 

 The suggested PointOutT is [pcl::SHOT352](structpcl_1_1_s_h_o_t352 "A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape onl...")

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti, Federico Tombari 
 Definition at line [217](https://pointclouds.org/documentation/shot_8h_source.html#l00217) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [221](https://pointclouds.org/documentation/shot_8h_source.html#l00221) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [242](https://pointclouds.org/documentation/shot_8h_source.html#l00242) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [220](https://pointclouds.org/documentation/shot_8h_source.html#l00220) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTEstimation()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[SHOTEstimation](classpcl_1_1_s_h_o_t_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [245](https://pointclouds.org/documentation/shot_8h_source.html#l00245) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~SHOTEstimation()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::~[SHOTEstimation](classpcl_1_1_s_h_o_t_estimation) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::computeFeature  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains the SHOT feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [743](https://pointclouds.org/documentation/shot_8hpp_source.html#l00743) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointSHOT()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, PointOutT, PointRFT >::computePointSHOT  | ( | const int  | *index*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *sqr\_dists*,  |
|  |  | Eigen::VectorXf &  | *shot* |
|  | ) |  |  |

 | overridevirtual |

 
 Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point in indices\_  |
| [in] | indices | the k-neighborhood point indices in surface\_  |
| [in] | sqr\_dists | the k-neighborhood point distances in surface\_  |
| [out] | shot | the resultant SHOT descriptor representing the feature at the query point  |

   Implements [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base#ab3ea8c011e6b2c89ca9287245fff9d37).

 Definition at line [713](https://pointclouds.org/documentation/shot_8hpp_source.html#l00713) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot.h](https://pointclouds.org/documentation/shot_8h_source.html)
* pcl/features/impl/[shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_estimation.html>

[SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation "SHOTColorEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a giv...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors. [More...](classpcl_1_1_s_h_o_t_color_estimation#details)

 `#include <[pcl/features/shot.h](https://pointclouds.org/documentation/shot_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_color_estimation#adb657040347ca5201bf51a191c654189) = shared\_ptr< [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_color_estimation#a3ed8a88bee0671f6a6af3771c11900e1) = shared\_ptr< const [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_color_estimation#a3d97fb7011fa576bb1c01547854bdce8) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation_base#addc2622adfcba6a2ff7e371f1d61d79e) = shared\_ptr< [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation_base#a016ca54cba6cae4f13d4b68cb32f5056) = shared\_ptr< const [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation_base#a162b8b0c437bea17fc24c6d08f609559) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Public Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation#a4d9cbcfa00574096931896ee7a53c891) (bool describe\_shape=true, bool describe\_color=true) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_color_estimation#a4d9cbcfa00574096931896ee7a53c891) |
|
|  | [~SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation#acda60240a789a5fd8b1e051ec53c4406) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_color_estimation#acda60240a789a5fd8b1e051ec53c4406) |
|
| void  | [computePointSHOT](classpcl_1_1_s_h_o_t_color_estimation#ad14b792113983c5884c2bba69d380d42) (const int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, Eigen::VectorXf &shot) override |
|  | Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_s_h_o_t_color_estimation#ad14b792113983c5884c2bba69d380d42) |
|
| - Public Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [~SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) |
|
| virtual void  | [setLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) (float radius) |
|  | Set the radius used for local reference frame estimation if the frames are not set by the user. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) |
|
| virtual float  | [getLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) () const |
|  | Get the radius used for local reference frame estimation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|
| - Public Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Static Public Member Functions |
| static void  | [RGB2CIELAB](classpcl_1_1_s_h_o_t_color_estimation#aaab0f015a6f8f926ef2695ba272b4f18) (unsigned char R, unsigned char G, unsigned char [B](group__common#gga9d37f00989a9de11b48deb263649463caaf61907b932e6f69308db08e3fa4fe47), float &L, float &A, float &B2) |
|  | Converts [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") triplets to CIELab space. [More...](classpcl_1_1_s_h_o_t_color_estimation#aaab0f015a6f8f926ef2695ba272b4f18) |
|




|  |
| --- |
| 
 Static Public Attributes |
| static std::array< float, 256 >  | [sRGB\_LUT](classpcl_1_1_s_h_o_t_color_estimation#a8f8c8c001a656a82d62e84197bb05c81) = [pcl::RGB2sRGB\_LUT](https://pointclouds.org/documentation/namespacepcl.html#a3048604749d956edc1bb72722d677abb)<float, 8>() |
|
| static std::array< float, 4000 >  | [sXYZ\_LUT](classpcl_1_1_s_h_o_t_color_estimation#a149f892cf701455b388465df49b8081e) = [pcl::XYZ2LAB\_LUT](https://pointclouds.org/documentation/namespacepcl.html#ac80c01bb93d8dce4e76cb7f2efc85136)<float, 4000>() |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_color_estimation#a615b69489d859260ba6ffd89dfef3a4e) ([pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &output) override |
|  | Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_s_h_o_t_color_estimation#a615b69489d859260ba6ffd89dfef3a4e) |
|
| void  | [interpolateDoubleChannel](classpcl_1_1_s_h_o_t_color_estimation#a43c67b3918e62ff9030aa74b1ffbaf37) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistanceShape, std::vector< double > &binDistanceColor, const int nr\_bins\_shape, const int nr\_bins\_color, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation; used when color and shape descriptions are both activated. [More...](classpcl_1_1_s_h_o_t_color_estimation#a43c67b3918e62ff9030aa74b1ffbaf37) |
|
| - Protected Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) (int nr\_shape\_bins=10) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) |
|
| void  | [interpolateSingleChannel](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistance, const int nr\_bins, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. [More...](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) |
|
| void  | [normalizeHistogram](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) (Eigen::VectorXf &shot, int desc\_length) |
|  | Normalize the SHOT histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) |
|
| void  | [createBinDistanceShape](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) (int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< double > &bin\_distance\_shape) |
|  | Create a binned distance shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Protected Attributes |
| bool  | [b\_describe\_shape\_](classpcl_1_1_s_h_o_t_color_estimation#a64507482849a76b6eab9e516bb3cbf06) |
|  | Compute shape descriptor. [More...](classpcl_1_1_s_h_o_t_color_estimation#a64507482849a76b6eab9e516bb3cbf06) |
|
| bool  | [b\_describe\_color\_](classpcl_1_1_s_h_o_t_color_estimation#a330ec389d580854e8364a2d0f73f7d5f) |
|  | Compute color descriptor. [More...](classpcl_1_1_s_h_o_t_color_estimation#a330ec389d580854e8364a2d0f73f7d5f) |
|
| int  | [nr\_color\_bins\_](classpcl_1_1_s_h_o_t_color_estimation#a6fa8a4def7173ae71a69a332b52202eb) |
|  | The number of bins in each color histogram. [More...](classpcl_1_1_s_h_o_t_color_estimation#a6fa8a4def7173ae71a69a332b52202eb) |
|
| - Protected Attributes inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| int  | [nr\_shape\_bins\_](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|  | The number of bins in each shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|
| float  | [lrf\_radius\_](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|  | The radius used for the LRF computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|
| double  | [sqradius\_](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|  | The squared search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|
| double  | [radius3\_4\_](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|  | 3/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|
| double  | [radius1\_4\_](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|  | 1/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|
| double  | [radius1\_2\_](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|  | 1/2 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|
| const int  | [nr\_grid\_sector\_](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|  | Number of azimuthal sectors. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|
| const int  | [maxAngularSectors\_](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|  | ... [More...](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|
| int  | [descLength\_](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|  | One SHOT length. [More...](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|
| - Protected Attributes inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::ReferenceFrame](structpcl_1_1_reference_frame) >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame> class pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >

 [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation "SHOTColorEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a giv...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors. 

 The suggested PointOutT is [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344 "A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+col...")

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti, Federico Tombari 
 Definition at line [294](https://pointclouds.org/documentation/shot_8h_source.html#l00294) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [298](https://pointclouds.org/documentation/shot_8h_source.html#l00298) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [319](https://pointclouds.org/documentation/shot_8h_source.html#l00319) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [297](https://pointclouds.org/documentation/shot_8h_source.html#l00297) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTColorEstimation()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::[SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation) | ( | bool  | *describe\_shape* = `true`,  |
|  |  | bool  | *describe\_color* = `true` |
|  | ) |  |  |

 | inline |

 
 Empty constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | describe\_shape |  |
| [in] | describe\_color |  |

   Definition at line [325](https://pointclouds.org/documentation/shot_8h_source.html#l00325) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~SHOTColorEstimation()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::~[SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::computeFeature  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains the SHOT feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [810](https://pointclouds.org/documentation/shot_8hpp_source.html#l00810) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointSHOT()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::computePointSHOT  | ( | const int  | *index*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *sqr\_dists*,  |
|  |  | Eigen::VectorXf &  | *shot* |
|  | ) |  |  |

 | overridevirtual |

 
 Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the point in indices\_  |
| [in] | indices | the k-neighborhood point indices in surface\_  |
| [in] | sqr\_dists | the k-neighborhood point distances in surface\_  |
| [out] | shot | the resultant SHOT descriptor representing the feature at the query point  |

   Implements [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base#ab3ea8c011e6b2c89ca9287245fff9d37).

 Definition at line [628](https://pointclouds.org/documentation/shot_8hpp_source.html#l00628) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

    interpolateDoubleChannel()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::interpolateDoubleChannel  | ( | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | const std::vector< float > &  | *sqr\_dists*,  |
|  |  | const int  | *index*,  |
|  |  | std::vector< double > &  | *binDistanceShape*,  |
|  |  | std::vector< double > &  | *binDistanceColor*,  |
|  |  | const int  | *nr\_bins\_shape*,  |
|  |  | const int  | *nr\_bins\_color*,  |
|  |  | Eigen::VectorXf &  | *shot* |
|  | ) |  |  |

 | protected |

 
 Quadrilinear interpolation; used when color and shape descriptions are both activated. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | indices | the neighborhood point indices  |
| [in] | sqr\_dists | the neighborhood point distances  |
| [in] | index | the index of the point in indices\_  |
| [out] | binDistanceShape | the resultant distance shape histogram  |
| [out] | binDistanceColor | the resultant color shape histogram  |
| [in] | nr\_bins\_shape | the number of bins in the shape histogram  |
| [in] | nr\_bins\_color | the number of bins in the color histogram  |
| [out] | shot | the resultant SHOT histogram  |

   Definition at line [412](https://pointclouds.org/documentation/shot_8hpp_source.html#l00412) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

    RGB2CIELAB()
------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::RGB2CIELAB  | ( | unsigned char  | *R*,  |
|  |  | unsigned char  | *G*,  |
|  |  | unsigned char  | *B*,  |
|  |  | float &  | *L*,  |
|  |  | float &  | *A*,  |
|  |  | float &  | *B2* |
|  | ) |  |  |

 | static |

 
 Converts [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") triplets to CIELab space. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | R | the red channel  |
| [in] | G | the green channel  |
| [in] | B | the blue channel  |
| [out] | L | the lightness  |
| [out] | A | the first color-opponent dimension  |
| [out] | B2 | the second color-opponent dimension  |

   Definition at line [100](https://pointclouds.org/documentation/shot_8hpp_source.html#l00100) of file [shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html).

 References [pcl::B](https://pointclouds.org/documentation/norms_8h_source.html#l00054).

   Member Data Documentation
-------------------------

  b\_describe\_color\_
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::b\_describe\_color\_ |

 | protected |

 
 Compute color descriptor. 

 Definition at line [382](https://pointclouds.org/documentation/shot_8h_source.html#l00382) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    b\_describe\_shape\_
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::b\_describe\_shape\_ |

 | protected |

 
 Compute shape descriptor. 

 Definition at line [379](https://pointclouds.org/documentation/shot_8h_source.html#l00379) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    nr\_color\_bins\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::nr\_color\_bins\_ |

 | protected |

 
 The number of bins in each color histogram. 

 Definition at line [385](https://pointclouds.org/documentation/shot_8h_source.html#l00385) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    sRGB\_LUT
---------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::array< float, 256 > [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::sRGB\_LUT = [pcl::RGB2sRGB\_LUT](https://pointclouds.org/documentation/namespacepcl.html#a3048604749d956edc1bb72722d677abb)<float, 8>() |

 | static |

 
 Definition at line [399](https://pointclouds.org/documentation/shot_8h_source.html#l00399) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

    sXYZ\_LUT
---------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::array< float, 4000 > [pcl::SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, PointOutT, PointRFT >::sXYZ\_LUT = [pcl::XYZ2LAB\_LUT](https://pointclouds.org/documentation/namespacepcl.html#ac80c01bb93d8dce4e76cb7f2efc85136)<float, 4000>() |

 | static |

 
 Definition at line [400](https://pointclouds.org/documentation/shot_8h_source.html#l00400) of file [shot.h](https://pointclouds.org/documentation/shot_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot.h](https://pointclouds.org/documentation/shot_8h_source.html)
* pcl/features/impl/[shot.hpp](https://pointclouds.org/documentation/shot_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_color_estimation.html>

[SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation "SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the ...") estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#details)

 `#include <[pcl/features/shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a741038e7410d3d3e55e1bc19c68f8620) = shared\_ptr< [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#aa761482491e2f7ac68c9161fc5649739) = shared\_ptr< const [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a6eab3af678d198b395d58aafd0731eeb) () |
|  | Constructor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a6eab3af678d198b395d58aafd0731eeb) |
|
|  | [~SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a8a86fe357440dcb34f7ad31c394a4110) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a8a86fe357440dcb34f7ad31c394a4110) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Types |
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a5b5a2da6c8fcf5cbe4d71dfd3785b027) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a5b5a2da6c8fcf5cbe4d71dfd3785b027) |
|
| using  | [PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) |
|




|  |
| --- |
| 
 Protected Member Functions |
| float  | [getLocalRF](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a9c5a9f02f4a1a8fe847a4e1656aef5ce) (const int &index, Eigen::Matrix3f &rf) |
|  | Computes disambiguated local RF for a point index. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a9c5a9f02f4a1a8fe847a4e1656aef5ce) |
|
| void  | [computeFeature](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a15115d06014fc1f12a0c17f4eac0a177) ([PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) &output) override |
|  | [Feature](classpcl_1_1_feature "Feature represents the base feature class.") estimation method. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a15115d06014fc1f12a0c17f4eac0a177) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = ReferenceFrame> class pcl::SHOTLocalReferenceFrameEstimation< PointInT, PointOutT >

 [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation "SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the ...") estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. 

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti, Federico Tombari 
 Definition at line [65](https://pointclouds.org/documentation/shot__lrf_8h_source.html#l00065) of file [shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#aa761482491e2f7ac68c9161fc5649739) = shared\_ptr<const [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)<PointInT, PointOutT> > |

 
 Definition at line [69](https://pointclouds.org/documentation/shot__lrf_8h_source.html#l00069) of file [shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a5b5a2da6c8fcf5cbe4d71dfd3785b027) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a5b5a2da6c8fcf5cbe4d71dfd3785b027) |

 | protected |

 
 Definition at line [89](https://pointclouds.org/documentation/shot__lrf_8h_source.html#l00089) of file [shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) |

 | protected |

 
 Definition at line [90](https://pointclouds.org/documentation/shot__lrf_8h_source.html#l00090) of file [shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::[Ptr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a741038e7410d3d3e55e1bc19c68f8620) = shared\_ptr<[SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)<PointInT, PointOutT> > |

 
 Definition at line [68](https://pointclouds.org/documentation/shot__lrf_8h_source.html#l00068) of file [shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTLocalReferenceFrameEstimation()
-----------------------------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::[SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [71](https://pointclouds.org/documentation/shot__lrf_8h_source.html#l00071) of file [shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html).

 References [pcl::Feature< PointInT, ReferenceFrame >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~SHOTLocalReferenceFrameEstimation()
------------------------------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::~[SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) &  | *output* | ) |  |

 | overrideprotected |

 
 [Feature](classpcl_1_1_feature "Feature represents the base feature class.") estimation method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant features  |

   Definition at line [170](https://pointclouds.org/documentation/shot__lrf_8hpp_source.html#l00170) of file [shot\_lrf.hpp](https://pointclouds.org/documentation/shot__lrf_8hpp_source.html).

    getLocalRF()
------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| float [pcl::SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, PointOutT >::getLocalRF  | ( | const int &  | *index*,  |
|  |  | Eigen::Matrix3f &  | *rf* |
|  | ) |  |  |

 | protected |

 
 Computes disambiguated local RF for a point index. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index  |
| [out] | rf | reference frame to compute  |

   Definition at line [50](https://pointclouds.org/documentation/shot__lrf_8hpp_source.html#l00050) of file [shot\_lrf.hpp](https://pointclouds.org/documentation/shot__lrf_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot\_lrf.h](https://pointclouds.org/documentation/shot__lrf_8h_source.html)
* pcl/features/impl/[shot\_lrf.hpp](https://pointclouds.org/documentation/shot__lrf_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_local_reference_frame_estimation.html>

[SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation "SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the ...") estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#details)

 `#include <[pcl/features/shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a5f9cf8b9b64ff4ece46a3f8f428a11ba) = shared\_ptr< [SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a3e3f7b3f951fad5528efbfa0c3aa3e3e) = shared\_ptr< const [SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT > > |
|
| - Public Types inherited from [pcl::SHOTLocalReferenceFrameEstimation< PointInT, ReferenceFrame >](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a741038e7410d3d3e55e1bc19c68f8620) = shared\_ptr< [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#aa761482491e2f7ac68c9161fc5649739) = shared\_ptr< const [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a3dcb5f9f149fe769f8c0c36fcf4bae09) () |
|  | Constructor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a3dcb5f9f149fe769f8c0c36fcf4bae09) |
|
|  | [~SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a4c0a9ad24e9baaeeb5b869b511b43b21) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a4c0a9ad24e9baaeeb5b869b511b43b21) |
|
| void  | [setNumberOfThreads](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a8587a7e43c16cc0d9d4b90ae310af375) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a8587a7e43c16cc0d9d4b90ae310af375) |
|
| - Public Member Functions inherited from [pcl::SHOTLocalReferenceFrameEstimation< PointInT, ReferenceFrame >](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) |
|  | [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a6eab3af678d198b395d58aafd0731eeb) () |
|  | Constructor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a6eab3af678d198b395d58aafd0731eeb) |
|
|  | [~SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a8a86fe357440dcb34f7ad31c394a4110) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a8a86fe357440dcb34f7ad31c394a4110) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Types |
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#ad2585bd1b16c64246debcf90a1347b98) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#ad2585bd1b16c64246debcf90a1347b98) |
|
| using  | [PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#aba72c88e864c25b581d13754d8b6109a) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#aba72c88e864c25b581d13754d8b6109a) |
|
| - Protected Types inherited from [pcl::SHOTLocalReferenceFrameEstimation< PointInT, ReferenceFrame >](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) |
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a5b5a2da6c8fcf5cbe4d71dfd3785b027) = typename [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| using  | [PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#afdfefe2834cf66f6c49240af4b6415a6) = typename [Feature](classpcl_1_1_feature)< PointInT, [ReferenceFrame](structpcl_1_1_reference_frame) >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a83507dee15dccfa0f7972f05278dca30) ([PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#aba72c88e864c25b581d13754d8b6109a) &output) override |
|  | [Feature](classpcl_1_1_feature "Feature represents the base feature class.") estimation method. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a83507dee15dccfa0f7972f05278dca30) |
|
| - Protected Member Functions inherited from [pcl::SHOTLocalReferenceFrameEstimation< PointInT, ReferenceFrame >](classpcl_1_1_s_h_o_t_local_reference_frame_estimation) |
| float  | [getLocalRF](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a9c5a9f02f4a1a8fe847a4e1656aef5ce) (const int &index, Eigen::Matrix3f &rf) |
|  | Computes disambiguated local RF for a point index. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a9c5a9f02f4a1a8fe847a4e1656aef5ce) |
|
| void  | [computeFeature](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a15115d06014fc1f12a0c17f4eac0a177) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Feature estimation method. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation#a15115d06014fc1f12a0c17f4eac0a177) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [initCompute](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| unsigned int  | [threads\_](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a1839559c3420294cc3d1d4c23677a138) |
|  | The number of threads the scheduler should use. [More...](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a1839559c3420294cc3d1d4c23677a138) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, ReferenceFrame >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = ReferenceFrame> class pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >

 [SHOTLocalReferenceFrameEstimation](classpcl_1_1_s_h_o_t_local_reference_frame_estimation "SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the ...") estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. 

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti, Federico Tombari 
 Definition at line [66](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00066) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a3e3f7b3f951fad5528efbfa0c3aa3e3e) = shared\_ptr<const [SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)<PointInT, PointOutT> > |

 
 Definition at line [70](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00070) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#ad2585bd1b16c64246debcf90a1347b98) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#ad2585bd1b16c64246debcf90a1347b98) |

 | protected |

 
 Definition at line [98](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00098) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#aba72c88e864c25b581d13754d8b6109a) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#aba72c88e864c25b581d13754d8b6109a) |

 | protected |

 
 Definition at line [99](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00099) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::[Ptr](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#a5f9cf8b9b64ff4ece46a3f8f428a11ba) = shared\_ptr<[SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)<PointInT, PointOutT> > |

 
 Definition at line [69](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00069) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTLocalReferenceFrameEstimationOMP()
--------------------------------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::[SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [72](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00072) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

 References [pcl::Feature< PointInT, ReferenceFrame >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), and [pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >::setNumberOfThreads()](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html#l00048).

    ~SHOTLocalReferenceFrameEstimationOMP()
---------------------------------------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::~[SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p#aba72c88e864c25b581d13754d8b6109a) &  | *output* | ) |  |

 | overrideprotected |

 
 [Feature](classpcl_1_1_feature "Feature represents the base feature class.") estimation method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant features  |

   Definition at line [62](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html#l00062) of file [shot\_lrf\_omp.hpp](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [48](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html#l00048) of file [shot\_lrf\_omp.hpp](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html).

 Referenced by [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00050), [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::initCompute()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00088), and [pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >::SHOTLocalReferenceFrameEstimationOMP()](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00072).

   Member Data Documentation
-------------------------

  threads\_
---------

    template<typename PointInT , typename PointOutT = ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::SHOTLocalReferenceFrameEstimationOMP](classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p)< PointInT, PointOutT >::threads\_ |

 | protected |

 
 The number of threads the scheduler should use. 

 Definition at line [108](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html#l00108) of file [shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot\_lrf\_omp.h](https://pointclouds.org/documentation/shot__lrf__omp_8h_source.html)
* pcl/features/impl/[shot\_lrf\_omp.hpp](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_local_reference_frame_estimation_o_m_p.html>

[SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p "SHOTEstimationOMP estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#details)

 `#include <[pcl/features/shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation_o_m_p#aa01871dcabbd0b92861870f458b356a9) = shared\_ptr< [SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation_o_m_p#aec2e07e495bc450be880ccdc3c4aab7a) = shared\_ptr< const [SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [PointCloudOut](classpcl_1_1_s_h_o_t_estimation_o_m_p#aee39a97d8da26309b6b17804bdbe5e5a) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation_o_m_p#aa591ebb5df1220919f9c396b397ca99f) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::SHOTEstimation< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation#a637c3ebe54e9b1ac8ac715b9e3534512) = shared\_ptr< [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation#ace1dedbf65f618eddaa4c7cf07198c6d) = shared\_ptr< const [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation)< PointInT, PointNT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation#acebc3d8203e5a913e2d82a344c4e495e) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation_base#addc2622adfcba6a2ff7e371f1d61d79e) = shared\_ptr< [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation_base#a016ca54cba6cae4f13d4b68cb32f5056) = shared\_ptr< const [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation_base#a162b8b0c437bea17fc24c6d08f609559) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::SHOT352](structpcl_1_1_s_h_o_t352) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Public Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p#a636b62feed8529d669db67c96d50ffa4) (unsigned int nr\_threads=0) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#a636b62feed8529d669db67c96d50ffa4) |
|
| void  | [setNumberOfThreads](classpcl_1_1_s_h_o_t_estimation_o_m_p#a2d5462f1cfad275e19fe64e1f0af6f73) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#a2d5462f1cfad275e19fe64e1f0af6f73) |
|
| - Public Member Functions inherited from [pcl::SHOTEstimation< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation) |
|  | [SHOTEstimation](classpcl_1_1_s_h_o_t_estimation#aaffdc155e538e0e76e75fd02b7f53293) () |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation#aaffdc155e538e0e76e75fd02b7f53293) |
|
|  | [~SHOTEstimation](classpcl_1_1_s_h_o_t_estimation#a2abd667eb73d3fe48585611d2f75ba4c) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation#a2abd667eb73d3fe48585611d2f75ba4c) |
|
| void  | [computePointSHOT](classpcl_1_1_s_h_o_t_estimation#ae145c1aeab3c61ae34fb35eed1ddceed) (const int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, Eigen::VectorXf &shot) override |
|  | Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_s_h_o_t_estimation#ae145c1aeab3c61ae34fb35eed1ddceed) |
|
| - Public Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [~SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) |
|
| virtual void  | [setLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) (float radius) |
|  | Set the radius used for local reference frame estimation if the frames are not set by the user. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) |
|
| virtual float  | [getLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) () const |
|  | Get the radius used for local reference frame estimation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|
| - Public Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_estimation_o_m_p#a465db5fec4867f31793444ffdf662073) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#a465db5fec4867f31793444ffdf662073) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_estimation_o_m_p#a41b1760fe4b41e4c273baf35b9e43e2b) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#a41b1760fe4b41e4c273baf35b9e43e2b) |
|
| - Protected Member Functions inherited from [pcl::SHOTEstimation< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation) |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_estimation#ad14fb6d3d855c455d769a87c77c8b85b) ([pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::SHOT352](structpcl_1_1_s_h_o_t352) > &output) override |
|  | Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_s_h_o_t_estimation#ad14fb6d3d855c455d769a87c77c8b85b) |
|
| - Protected Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) (int nr\_shape\_bins=10) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) |
|
| void  | [interpolateSingleChannel](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistance, const int nr\_bins, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. [More...](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) |
|
| void  | [normalizeHistogram](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) (Eigen::VectorXf &shot, int desc\_length) |
|  | Normalize the SHOT histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) |
|
| void  | [createBinDistanceShape](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) (int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< double > &bin\_distance\_shape) |
|  | Create a binned distance shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Protected Attributes |
| unsigned int  | [threads\_](classpcl_1_1_s_h_o_t_estimation_o_m_p#a10392431ffb1cbf447c59141fa00d22c) |
|  | The number of threads the scheduler should use. [More...](classpcl_1_1_s_h_o_t_estimation_o_m_p#a10392431ffb1cbf447c59141fa00d22c) |
|
| - Protected Attributes inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT352, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| int  | [nr\_shape\_bins\_](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|  | The number of bins in each shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|
| float  | [lrf\_radius\_](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|  | The radius used for the LRF computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|
| double  | [sqradius\_](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|  | The squared search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|
| double  | [radius3\_4\_](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|  | 3/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|
| double  | [radius1\_4\_](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|  | 1/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|
| double  | [radius1\_2\_](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|  | 1/2 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|
| const int  | [nr\_grid\_sector\_](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|  | Number of azimuthal sectors. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|
| const int  | [maxAngularSectors\_](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|  | ... [More...](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|
| int  | [descLength\_](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|  | One SHOT length. [More...](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|
| - Protected Attributes inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::ReferenceFrame](structpcl_1_1_reference_frame) >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame> class pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >

 [SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p "SHOTEstimationOMP estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. 

 The suggested PointOutT is [pcl::SHOT352](structpcl_1_1_s_h_o_t352 "A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape onl...").

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti 
 Definition at line [69](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00069) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [73](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00073) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [95](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00095) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [94](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00094) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [72](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00072) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTEstimationOMP()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p) | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [98](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00098) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

 References [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::setNumberOfThreads()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00126).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains the SHOT feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [140](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00140) of file [shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::initCompute |

 | overrideprotectedvirtual |

 
 This method should get called before starting the actual computation. 

 Reimplemented from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [50](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00050) of file [shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html).

 References [pcl::PCLBase< PointT >::setIndices()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00072), [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065), [pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >::setNumberOfThreads()](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html#l00048), [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198), and [pcl::Feature< PointInT, PointOutT >::setSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00146).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [126](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00126) of file [shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html).

 Referenced by [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::SHOTEstimationOMP()](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00098).

   Member Data Documentation
-------------------------

  threads\_
---------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT352, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::SHOTEstimationOMP](classpcl_1_1_s_h_o_t_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::threads\_ |

 | protected |

 
 The number of threads the scheduler should use. 

 Definition at line [124](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00124) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html)
* pcl/features/impl/[shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_estimation_o_m_p.html>

[SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p "SHOTColorEstimationOMP estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a ...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors, in parallel, using the OpenMP standard. [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#details)

 `#include <[pcl/features/shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a837e6b47d02b2e956e78dcd07a825fd8) = shared\_ptr< [SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#ae08fb3b03419a17c454559896b97befd) = shared\_ptr< const [SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT > > |
|
| using  | [PointCloudOut](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a4f8e377b995c6d4d0501fae34df22c66) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a7f1cab2da8984b3542b9ebf55c50353f) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_color_estimation#adb657040347ca5201bf51a191c654189) = shared\_ptr< [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_color_estimation#a3ed8a88bee0671f6a6af3771c11900e1) = shared\_ptr< const [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation)< PointInT, PointNT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_color_estimation#a3d97fb7011fa576bb1c01547854bdce8) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| using  | [Ptr](classpcl_1_1_s_h_o_t_estimation_base#addc2622adfcba6a2ff7e371f1d61d79e) = shared\_ptr< [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [ConstPtr](classpcl_1_1_s_h_o_t_estimation_base#a016ca54cba6cae4f13d4b68cb32f5056) = shared\_ptr< const [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base)< PointInT, PointNT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344), [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_h_o_t_estimation_base#a162b8b0c437bea17fc24c6d08f609559) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344) >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Public Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a689b4235c5b9932257432ceb529d819d) (bool describe\_shape=true, bool describe\_color=true, unsigned int nr\_threads=0) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a689b4235c5b9932257432ceb529d819d) |
|
| void  | [setNumberOfThreads](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a293d3f3e071360c23af0e528edb926ab) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a293d3f3e071360c23af0e528edb926ab) |
|
| - Public Member Functions inherited from [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation) |
|  | [SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation#a4d9cbcfa00574096931896ee7a53c891) (bool describe\_shape=true, bool describe\_color=true) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_color_estimation#a4d9cbcfa00574096931896ee7a53c891) |
|
|  | [~SHOTColorEstimation](classpcl_1_1_s_h_o_t_color_estimation#acda60240a789a5fd8b1e051ec53c4406) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_color_estimation#acda60240a789a5fd8b1e051ec53c4406) |
|
| void  | [computePointSHOT](classpcl_1_1_s_h_o_t_color_estimation#ad14b792113983c5884c2bba69d380d42) (const int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, Eigen::VectorXf &shot) override |
|  | Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. [More...](classpcl_1_1_s_h_o_t_color_estimation#ad14b792113983c5884c2bba69d380d42) |
|
| - Public Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [~SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#a82e467e20da66c17225ffea10781fc46) |
|
| virtual void  | [setLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) (float radius) |
|  | Set the radius used for local reference frame estimation if the frames are not set by the user. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad88acfb7d17db95cd1c6b4c5fae5a892) |
|
| virtual float  | [getLRFRadius](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) () const |
|  | Get the radius used for local reference frame estimation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a439ff5903283237ccf92b1a09c349c9e) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|
| - Public Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#ae0c76684a9c5cf6114bddbd6f2a6ca36) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#ae0c76684a9c5cf6114bddbd6f2a6ca36) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#afa6224ab473b6e62726861dd3071ea8d) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#afa6224ab473b6e62726861dd3071ea8d) |
|
| - Protected Member Functions inherited from [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation) |
| void  | [computeFeature](classpcl_1_1_s_h_o_t_color_estimation#a615b69489d859260ba6ffd89dfef3a4e) ([pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344) > &output) override |
|  | Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_s_h_o_t_color_estimation#a615b69489d859260ba6ffd89dfef3a4e) |
|
| void  | [interpolateDoubleChannel](classpcl_1_1_s_h_o_t_color_estimation#a43c67b3918e62ff9030aa74b1ffbaf37) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistanceShape, std::vector< double > &binDistanceColor, const int nr\_bins\_shape, const int nr\_bins\_color, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation; used when color and shape descriptions are both activated. [More...](classpcl_1_1_s_h_o_t_color_estimation#a43c67b3918e62ff9030aa74b1ffbaf37) |
|
| - Protected Member Functions inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
|  | [SHOTEstimationBase](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) (int nr\_shape\_bins=10) |
|  | Empty constructor. [More...](classpcl_1_1_s_h_o_t_estimation_base#ae193a4c914c53f54a94a64d247704e82) |
|
| bool  | [initCompute](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5e0cd1d75ae40e4089cead3e92b74c0f) |
|
| void  | [interpolateSingleChannel](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, const std::vector< float > &sqr\_dists, const int index, std::vector< double > &binDistance, const int nr\_bins, Eigen::VectorXf &shot) |
|  | Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. [More...](classpcl_1_1_s_h_o_t_estimation_base#ab23224f44e4b87f55295af5fc2a8b10a) |
|
| void  | [normalizeHistogram](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) (Eigen::VectorXf &shot, int desc\_length) |
|  | Normalize the SHOT histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#a61daefe73f28310f3c97a561b905c2ef) |
|
| void  | [createBinDistanceShape](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) (int index, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< double > &bin\_distance\_shape) |
|  | Create a binned distance shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad510653f068257fd81ade9910a71f3e5) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Protected Attributes |
| unsigned int  | [threads\_](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a655f7563fc686caee1b97c8c76a674bf) |
|  | The number of threads the scheduler should use. [More...](classpcl_1_1_s_h_o_t_color_estimation_o_m_p#a655f7563fc686caee1b97c8c76a674bf) |
|
| - Protected Attributes inherited from [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation) |
| bool  | [b\_describe\_shape\_](classpcl_1_1_s_h_o_t_color_estimation#a64507482849a76b6eab9e516bb3cbf06) |
|  | Compute shape descriptor. [More...](classpcl_1_1_s_h_o_t_color_estimation#a64507482849a76b6eab9e516bb3cbf06) |
|
| bool  | [b\_describe\_color\_](classpcl_1_1_s_h_o_t_color_estimation#a330ec389d580854e8364a2d0f73f7d5f) |
|  | Compute color descriptor. [More...](classpcl_1_1_s_h_o_t_color_estimation#a330ec389d580854e8364a2d0f73f7d5f) |
|
| int  | [nr\_color\_bins\_](classpcl_1_1_s_h_o_t_color_estimation#a6fa8a4def7173ae71a69a332b52202eb) |
|  | The number of bins in each color histogram. [More...](classpcl_1_1_s_h_o_t_color_estimation#a6fa8a4def7173ae71a69a332b52202eb) |
|
| - Protected Attributes inherited from [pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_estimation_base) |
| int  | [nr\_shape\_bins\_](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|  | The number of bins in each shape histogram. [More...](classpcl_1_1_s_h_o_t_estimation_base#add2fcf4e1897778b6565480a0c6369c4) |
|
| float  | [lrf\_radius\_](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|  | The radius used for the LRF computation. [More...](classpcl_1_1_s_h_o_t_estimation_base#ad017d623cbfe2678d051013c4a0b58c7) |
|
| double  | [sqradius\_](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|  | The squared search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#ac56b2ba94b26c225aeac4cf80f80b199) |
|
| double  | [radius3\_4\_](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|  | 3/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a7e43bc6b1b4e96d81ed88ae34a356789) |
|
| double  | [radius1\_4\_](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|  | 1/4 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#af46786da92530bf30442f9dcd96632f6) |
|
| double  | [radius1\_2\_](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|  | 1/2 of the search radius. [More...](classpcl_1_1_s_h_o_t_estimation_base#a0faccdb3a164977cefcacb7b358b9de8) |
|
| const int  | [nr\_grid\_sector\_](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|  | Number of azimuthal sectors. [More...](classpcl_1_1_s_h_o_t_estimation_base#a5ecd06eb23392b7a052c44d578aa3606) |
|
| const int  | [maxAngularSectors\_](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|  | ... [More...](classpcl_1_1_s_h_o_t_estimation_base#a52ea7faba790ff87e344cd02a0fedd7b) |
|
| int  | [descLength\_](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|  | One SHOT length. [More...](classpcl_1_1_s_h_o_t_estimation_base#aac536ffb743acbb79e600a2b589a0696) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|
| - Protected Attributes inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Static Public Member Functions inherited from [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation) |
| static void  | [RGB2CIELAB](classpcl_1_1_s_h_o_t_color_estimation#aaab0f015a6f8f926ef2695ba272b4f18) (unsigned char R, unsigned char G, unsigned char B, float &L, float &A, float &B2) |
|  | Converts RGB triplets to CIELab space. [More...](classpcl_1_1_s_h_o_t_color_estimation#aaab0f015a6f8f926ef2695ba272b4f18) |
|
| - Static Public Attributes inherited from [pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >](classpcl_1_1_s_h_o_t_color_estimation) |
| static std::array< float, 256 >  | [sRGB\_LUT](classpcl_1_1_s_h_o_t_color_estimation#a8f8c8c001a656a82d62e84197bb05c81) |
|
| static std::array< float, 4000 >  | [sXYZ\_LUT](classpcl_1_1_s_h_o_t_color_estimation#a149f892cf701455b388465df49b8081e) |
|
| - Protected Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::ReferenceFrame](structpcl_1_1_reference_frame) >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame> class pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >

 [SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p "SHOTColorEstimationOMP estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a ...") estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors, in parallel, using the OpenMP standard. 

 The suggested PointOutT is [pcl::SHOT1344](structpcl_1_1_s_h_o_t1344 "A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+col...").

 
Note
If you use this code in any academic work, please cite:
 * F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
* F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

 
Author
Samuele Salti 
 Definition at line [148](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00148) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [152](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00152) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) |

 
 Definition at line [177](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00177) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [176](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00176) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)<PointInT, PointNT, PointOutT, PointRFT> > |

 
 Definition at line [151](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00151) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SHOTColorEstimationOMP()
------------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::[SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p) | ( | bool  | *describe\_shape* = `true`,  |
|  |  | bool  | *describe\_color* = `true`,  |
|  |  | unsigned int  | *nr\_threads* = `0` |
|  | ) |  |  |

 | inline |

 
 Empty constructor. 

 Definition at line [180](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00180) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

 References [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::setNumberOfThreads()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00209).

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset that contains the SHOT feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [223](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00223) of file [shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::initCompute |

 | overrideprotectedvirtual |

 
 This method should get called before starting the actual computation. 

 Reimplemented from [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [88](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00088) of file [shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html).

 References [pcl::PCLBase< PointT >::setIndices()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00072), [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065), [pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >::setNumberOfThreads()](https://pointclouds.org/documentation/shot__lrf__omp_8hpp_source.html#l00048), [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198), and [pcl::Feature< PointInT, PointOutT >::setSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00146).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [209](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00209) of file [shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html).

 Referenced by [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::SHOTColorEstimationOMP()](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00180).

   Member Data Documentation
-------------------------

  threads\_
---------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::SHOT1344, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::SHOTColorEstimationOMP](classpcl_1_1_s_h_o_t_color_estimation_o_m_p)< PointInT, PointNT, PointOutT, PointRFT >::threads\_ |

 | protected |

 
 The number of threads the scheduler should use. 

 Definition at line [209](https://pointclouds.org/documentation/shot__omp_8h_source.html#l00209) of file [shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[shot\_omp.h](https://pointclouds.org/documentation/shot__omp_8h_source.html)
* pcl/features/impl/[shot\_omp.hpp](https://pointclouds.org/documentation/shot__omp_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_h_o_t_color_estimation_o_m_p.html>

Estimates spin-image descriptors in the given input points. [More...](classpcl_1_1_spin_image_estimation#details)

 `#include <[pcl/features/spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_spin_image_estimation#ad4525235e0f56e3e68d15a51dc10de58) = shared\_ptr< [SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_spin_image_estimation#a6570a1f7da4de95fa182ac708be20eef) = shared\_ptr< const [SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [PointCloudOut](classpcl_1_1_spin_image_estimation#a171b6a43751030dfedad04c19bd373cf) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [PointCloudN](classpcl_1_1_spin_image_estimation#ac29df6c84c3a9c05752cbdd37e6b49b9) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_spin_image_estimation#a91e8a29b63457c02707698f7044f0c24) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_spin_image_estimation#ab0967a4c5bbe737cdfddf0fd04650cb6) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudIn](classpcl_1_1_spin_image_estimation#a6b14e148ff2368ba23584f147f36e5e7) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_spin_image_estimation#a4d22405fda68d228f06e0b9992e416d0) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_spin_image_estimation#a9a99edc2899216fb68ada28f7a458b9f) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SpinImageEstimation](classpcl_1_1_spin_image_estimation#ab66e696b17513a417f97e39aa399f73e) (unsigned int image\_width=8, double support\_angle\_cos=0.0, unsigned int min\_pts\_neighb=0) |
|  | Constructs empty spin image estimator. [More...](classpcl_1_1_spin_image_estimation#ab66e696b17513a417f97e39aa399f73e) |
|
|  | [~SpinImageEstimation](classpcl_1_1_spin_image_estimation#a84e08d0792f5057681cade129ec9cfc6) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_spin_image_estimation#a84e08d0792f5057681cade129ec9cfc6) |
|
| void  | [setImageWidth](classpcl_1_1_spin_image_estimation#a93f3f5586e8f01b01a2ea95f77b5d7d6) (unsigned int bin\_count) |
|  | Sets spin-image resolution. [More...](classpcl_1_1_spin_image_estimation#a93f3f5586e8f01b01a2ea95f77b5d7d6) |
|
| void  | [setSupportAngle](classpcl_1_1_spin_image_estimation#aec8636459345b81d562ba9bab97dadfd) (double support\_angle\_cos) |
|  | Sets the maximum angle for the point normal to get to support region. [More...](classpcl_1_1_spin_image_estimation#aec8636459345b81d562ba9bab97dadfd) |
|
| void  | [setMinPointCountInNeighbourhood](classpcl_1_1_spin_image_estimation#a99c85206d6eabdbaf3aa4dd989d930a7) (unsigned int min\_pts\_neighb) |
|  | Sets minimal points count for spin image computation. [More...](classpcl_1_1_spin_image_estimation#a99c85206d6eabdbaf3aa4dd989d930a7) |
|
| void  | [setInputNormals](classpcl_1_1_spin_image_estimation#aa847219e3000ed6a1dd73509bcc318e4) (const [PointCloudNConstPtr](classpcl_1_1_spin_image_estimation#ab0967a4c5bbe737cdfddf0fd04650cb6) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the input XYZ dataset given by [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea). [More...](classpcl_1_1_spin_image_estimation#aa847219e3000ed6a1dd73509bcc318e4) |
|
| void  | [setRotationAxis](classpcl_1_1_spin_image_estimation#a12e76226cf145a57973c0b37bb80c3f1) (const PointNT &axis) |
|  | Sets single vector a rotation axis for all input points. [More...](classpcl_1_1_spin_image_estimation#a12e76226cf145a57973c0b37bb80c3f1) |
|
| void  | [setInputRotationAxes](classpcl_1_1_spin_image_estimation#af5a269fd1b1606d4fb90329f7efd5e2a) (const [PointCloudNConstPtr](classpcl_1_1_spin_image_estimation#ab0967a4c5bbe737cdfddf0fd04650cb6) &axes) |
|  | Sets array of vectors as rotation axes for input points. [More...](classpcl_1_1_spin_image_estimation#af5a269fd1b1606d4fb90329f7efd5e2a) |
|
| void  | [useNormalsAsRotationAxis](classpcl_1_1_spin_image_estimation#a50add0c928dada110031d1f95d9d8290) () |
|  | Sets input normals as rotation axes (default setting). [More...](classpcl_1_1_spin_image_estimation#a50add0c928dada110031d1f95d9d8290) |
|
| void  | [setAngularDomain](classpcl_1_1_spin_image_estimation#a77bac69302ebb759336dfa711dfe24c9) (bool is\_angular=true) |
|  | Sets/unsets flag for angular spin-image domain. [More...](classpcl_1_1_spin_image_estimation#a77bac69302ebb759336dfa711dfe24c9) |
|
| void  | [setRadialStructure](classpcl_1_1_spin_image_estimation#a5e371335fa14ddf04196bf76d720645b) (bool is\_radial=true) |
|  | Sets/unsets flag for radial spin-image structure. [More...](classpcl_1_1_spin_image_estimation#a5e371335fa14ddf04196bf76d720645b) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computeFeature](classpcl_1_1_spin_image_estimation#af41dc5ebc79a977c5321c52a691d11a8) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) override |
|  | Estimate the Spin Image descriptors at a set of points given by setInputWithNormals() using the surface in setSearchSurfaceWithNormals() and the spatial locator. [More...](classpcl_1_1_spin_image_estimation#af41dc5ebc79a977c5321c52a691d11a8) |
|
| bool  | [initCompute](classpcl_1_1_spin_image_estimation#ab81b861f4dfafe17792838bd73c1277a) () override |
|  | initializes computations specific to spin-image. [More...](classpcl_1_1_spin_image_estimation#ab81b861f4dfafe17792838bd73c1277a) |
|
| Eigen::ArrayXXd  | [computeSiForPoint](classpcl_1_1_spin_image_estimation#a3144eb10e31eb625d1e0faaeee278e26) (int index) const |
|  | Computes a spin-image for the point of the scan. [More...](classpcl_1_1_spin_image_estimation#a3144eb10e31eb625d1e0faaeee278e26) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT> class pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >

 Estimates spin-image descriptors in the given input points. 

 This class represents spin image descriptor. Spin image is a histogram of point locations summed along the bins of the image. A 2D accumulator indexed by *a* and *b* is created. Next, the coordinates (*a*, *b*) are computed for a vertex in the surface mesh that is within the support of the spin image (explained below). The bin indexed by (*a*, *b*) in the accumulator is then incremented; bilinear interpolation is used to smooth the contribution of the vertex. This procedure is repeated for all vertices within the support of the spin image. The resulting accumulator can be thought of as an image; dark areas in the image correspond to bins that contain many projected points. As long as the size of the bins in the accumulator is greater than the median distance between vertices in the mesh (the definition of mesh resolution), the position of individual vertices will be averaged out during spin image generation.

 
Attention
The input normals given by [setInputNormals](classpcl_1_1_spin_image_estimation#aa847219e3000ed6a1dd73509bcc318e4) have to match the input point cloud given by [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea). This behavior is different than feature estimation methods that extend [FeatureFromNormals](classpcl_1_1_feature_from_normals), which match the normals with the search surface.
 With the default parameters, pcl::Histogram<153> is a good choice for PointOutT. Of course the dimension of this descriptor must change to match the number of bins set by the parameters.

 For further information please see:

 * Johnson, A. E., & Hebert, M. (1998). Surface Matching for [Object](https://pointclouds.org/documentation/class_object.html) Recognition in Complex 3D Scenes. Image and Vision Computing, 16, 635-651.

 The class also implements radial spin images and spin-images in angular domain (or both).

 
Author
Roman Shapovalov, Alexander Velizhev 
 Definition at line [87](https://pointclouds.org/documentation/spin__image_8h_source.html#l00087) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [SpinImageEstimation](classpcl_1_1_spin_image_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [91](https://pointclouds.org/documentation/spin__image_8h_source.html#l00091) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [107](https://pointclouds.org/documentation/spin__image_8h_source.html#l00107) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [109](https://pointclouds.org/documentation/spin__image_8h_source.html#l00109) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudInPtr
---------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [108](https://pointclouds.org/documentation/spin__image_8h_source.html#l00108) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudN
-----------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudN](classpcl_1_1_spin_image_estimation#ac29df6c84c3a9c05752cbdd37e6b49b9) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointNT> |

 
 Definition at line [103](https://pointclouds.org/documentation/spin__image_8h_source.html#l00103) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudNConstPtr
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudNConstPtr](classpcl_1_1_spin_image_estimation#ab0967a4c5bbe737cdfddf0fd04650cb6) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [105](https://pointclouds.org/documentation/spin__image_8h_source.html#l00105) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudNPtr
--------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudNPtr](classpcl_1_1_spin_image_estimation#a91e8a29b63457c02707698f7044f0c24) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [104](https://pointclouds.org/documentation/spin__image_8h_source.html#l00104) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [101](https://pointclouds.org/documentation/spin__image_8h_source.html#l00101) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |
| --- |
| using [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[SpinImageEstimation](classpcl_1_1_spin_image_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [90](https://pointclouds.org/documentation/spin__image_8h_source.html#l00090) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SpinImageEstimation()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::[SpinImageEstimation](classpcl_1_1_spin_image_estimation) | ( | unsigned int  | *image\_width* = `8`,  |
|  |  | double  | *support\_angle\_cos* = `0.0`,  |
|  |  | unsigned int  | *min\_pts\_neighb* = `0` |
|  | ) |  |  |

 
 Constructs empty spin image estimator. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | image\_width | spin-image resolution, number of bins along one dimension  |
| [in] | support\_angle\_cos | minimal allowed cosine of the angle between the normals of input point and search surface point for the point to be retained in the support  |
| [in] | min\_pts\_neighb | min number of points in the support to correctly estimate spin-image. If at some point the support contains less points, exception is thrown  |

   Definition at line [52](https://pointclouds.org/documentation/spin__image_8hpp_source.html#l00052) of file [spin\_image.hpp](https://pointclouds.org/documentation/spin__image_8hpp_source.html).

 References [pcl::Feature< PointInT, PointOutT >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220).

    ~SpinImageEstimation()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::~[SpinImageEstimation](classpcl_1_1_spin_image_estimation) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 | overrideprotectedvirtual |

 
 Estimate the Spin Image descriptors at a set of points given by setInputWithNormals() using the surface in setSearchSurfaceWithNormals() and the spatial locator. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud that contains the Spin Image feature estimates  |

   Implements [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature).

 Definition at line [322](https://pointclouds.org/documentation/spin__image_8hpp_source.html#l00322) of file [spin\_image.hpp](https://pointclouds.org/documentation/spin__image_8hpp_source.html).

    computeSiForPoint()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Eigen::ArrayXXd [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::computeSiForPoint  | ( | int  | *index* | ) |  const |

 | protected |

 
 Computes a spin-image for the point of the scan. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | the index of the reference point in the input cloud  |

   
Returns
estimated spin-image (or its variant) as a matrix 
 Definition at line [67](https://pointclouds.org/documentation/spin__image_8hpp_source.html#l00067) of file [spin\_image.hpp](https://pointclouds.org/documentation/spin__image_8hpp_source.html).

 References [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::initCompute |

 | overrideprotectedvirtual |

 
 initializes computations specific to spin-image. 

 
Returns
true iff input data and initialization are correct 
 Reimplemented from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5).

 Definition at line [237](https://pointclouds.org/documentation/spin__image_8hpp_source.html#l00237) of file [spin\_image.hpp](https://pointclouds.org/documentation/spin__image_8hpp_source.html).

 References [pcl::Feature< PointInT, PointOutT >::deinitCompute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00181).

    setAngularDomain()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setAngularDomain  | ( | bool  | *is\_angular* = `true` | ) |  |

 | inline |

 
 Sets/unsets flag for angular spin-image domain. 

 Angular spin-image differs from the vanilla one in the way that not the points are collected in the bins but the angles between their normals and the normal to the reference point. For further information please see Endres, F., Plagemann, C., Stachniss, C., & Burgard, W. (2009). Unsupervised Discovery of [Object](https://pointclouds.org/documentation/class_object.html) Classes from Range Data using Latent Dirichlet Allocation. In Robotics: Science and Systems. Seattle, USA. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | is\_angular | true for angular domain, false for point domain  |

   Definition at line [230](https://pointclouds.org/documentation/spin__image_8h_source.html#l00230) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setImageWidth()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setImageWidth  | ( | unsigned int  | *bin\_count* | ) |  |

 | inline |

 
 Sets spin-image resolution. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | bin\_count | spin-image resolution, number of bins along one dimension  |

   Definition at line [132](https://pointclouds.org/documentation/spin__image_8h_source.html#l00132) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setInputNormals()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setInputNormals  | ( | const [PointCloudNConstPtr](classpcl_1_1_spin_image_estimation#ab0967a4c5bbe737cdfddf0fd04650cb6) &  | *normals* | ) |  |

 | inline |

 
 Provide a pointer to the input dataset that contains the point normals of the input XYZ dataset given by [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea). 

 
Attention
The input normals given by [setInputNormals](classpcl_1_1_spin_image_estimation#aa847219e3000ed6a1dd73509bcc318e4) have to match the input point cloud given by [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea). This behavior is different than feature estimation methods that extend [FeatureFromNormals](classpcl_1_1_feature_from_normals), which match the normals with the search surface. 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normals | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") of normals. By convention, L2 norm of each normal should be 1.  |

   Definition at line [177](https://pointclouds.org/documentation/spin__image_8h_source.html#l00177) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setInputRotationAxes()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setInputRotationAxes  | ( | const [PointCloudNConstPtr](classpcl_1_1_spin_image_estimation#ab0967a4c5bbe737cdfddf0fd04650cb6) &  | *axes* | ) |  |

 | inline |

 
 Sets array of vectors as rotation axes for input points. 

 Useful e.g. when one wants to use tangents instead of normals as rotation axes 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | axes | unit-length vectors that serves as rotation axes for the corresponding input points' reference frames  |

   Definition at line [202](https://pointclouds.org/documentation/spin__image_8h_source.html#l00202) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setMinPointCountInNeighbourhood()
---------------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setMinPointCountInNeighbourhood  | ( | unsigned int  | *min\_pts\_neighb* | ) |  |

 | inline |

 
 Sets minimal points count for spin image computation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min\_pts\_neighb | min number of points in the support to correctly estimate spin-image. If at some point the support contains less points, exception is thrown  |

   Definition at line [161](https://pointclouds.org/documentation/spin__image_8h_source.html#l00161) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setRadialStructure()
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setRadialStructure  | ( | bool  | *is\_radial* = `true` | ) |  |

 | inline |

 
 Sets/unsets flag for radial spin-image structure. 

 Instead of rectangular coordinate system for reference frame polar coordinates are used. Binning is done depending on the distance and inclination angle from the reference point 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | is\_radial | true for radial spin-image structure, false for rectangular  |

   Definition at line [240](https://pointclouds.org/documentation/spin__image_8h_source.html#l00240) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setRotationAxis()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setRotationAxis  | ( | const PointNT &  | *axis* | ) |  |

 | inline |

 
 Sets single vector a rotation axis for all input points. 

 It could be useful e.g. when the vertical axis is known. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | axis | unit-length vector that serves as rotation axis for reference frame  |

   Definition at line [188](https://pointclouds.org/documentation/spin__image_8h_source.html#l00188) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    setSupportAngle()
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::setSupportAngle  | ( | double  | *support\_angle\_cos* | ) |  |

 | inline |

 
 Sets the maximum angle for the point normal to get to support region. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | support\_angle\_cos | minimal allowed cosine of the angle between the normals of input point and search surface point for the point to be retained in the support  |

   Definition at line [144](https://pointclouds.org/documentation/spin__image_8h_source.html#l00144) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

    useNormalsAsRotationAxis()
--------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::SpinImageEstimation](classpcl_1_1_spin_image_estimation)< PointInT, PointNT, PointOutT >::useNormalsAsRotationAxis  | ( |  | ) |  |

 | inline |

 
 Sets input normals as rotation axes (default setting). 

 Definition at line [212](https://pointclouds.org/documentation/spin__image_8h_source.html#l00212) of file [spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[spin\_image.h](https://pointclouds.org/documentation/spin__image_8h_source.html)
* pcl/features/impl/[spin\_image.hpp](https://pointclouds.org/documentation/spin__image_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_spin_image_estimation.html>

[UniqueShapeContext](classpcl_1_1_unique_shape_context "UniqueShapeContext implements the Unique Shape Context Descriptor described here:") implements the Unique Shape Context Descriptor described here: [More...](classpcl_1_1_unique_shape_context#details)

 `#include <[pcl/features/usc.h](https://pointclouds.org/documentation/usc_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudOut](classpcl_1_1_unique_shape_context#abdec2db976d7e2da14722b2abf95f74b) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_unique_shape_context#abdec2db976d7e2da14722b2abf95f74b) |
|
| using  | [PointCloudIn](classpcl_1_1_unique_shape_context#aadd670af781cce8288598ceda3cb641d) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_unique_shape_context#aadd670af781cce8288598ceda3cb641d) |
|
| using  | [Ptr](classpcl_1_1_unique_shape_context#a635c7e90c412b261593a19e0c8426f56) = shared\_ptr< [UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT > > |
|
| using  | [ConstPtr](classpcl_1_1_unique_shape_context#a0eacd2ae9fc97640203fcff9a5348857) = shared\_ptr< const [UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, [pcl::UniqueShapeContext1960](structpcl_1_1_unique_shape_context1960) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, [pcl::UniqueShapeContext1960](structpcl_1_1_unique_shape_context1960) > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::UniqueShapeContext1960](structpcl_1_1_unique_shape_context1960) > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Public Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [PointCloudLRF](classpcl_1_1_feature_with_local_reference_frames#a68a70d5b28dbda6abfe5a88ae4fbb5aa) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::ReferenceFrame](structpcl_1_1_reference_frame) > |
|
| using  | [PointCloudLRFPtr](classpcl_1_1_feature_with_local_reference_frames#a16ec8d70b890f37d54402680dfd57119) = typename [PointCloudLRF::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) = typename [PointCloudLRF::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [UniqueShapeContext](classpcl_1_1_unique_shape_context#a053dea4f2b851991fcd236fa41a7d05e) () |
|  | Constructor. [More...](classpcl_1_1_unique_shape_context#a053dea4f2b851991fcd236fa41a7d05e) |
|
|  | [~UniqueShapeContext](classpcl_1_1_unique_shape_context#afce5a3658a1dde802e3c4634cfbaf2d9) () override=default |
|
| std::size\_t  | [getAzimuthBins](classpcl_1_1_unique_shape_context#a0dea15be8c23c3f1a99a8b6c56385e8a) () const |
|
| std::size\_t  | [getElevationBins](classpcl_1_1_unique_shape_context#acba5d3381f77a2bf52efae79d422b736) () const |
|
| std::size\_t  | [getRadiusBins](classpcl_1_1_unique_shape_context#a12af71cd0238ebade81c182fe30b6432) () const |
|
| void  | [setMinimalRadius](classpcl_1_1_unique_shape_context#a58751aa29c8a4e9c2fdcdc4a549bfff3) (double radius) |
|  | The minimal radius value for the search sphere (rmin) in the original paper. [More...](classpcl_1_1_unique_shape_context#a58751aa29c8a4e9c2fdcdc4a549bfff3) |
|
| double  | [getMinimalRadius](classpcl_1_1_unique_shape_context#a97c03bf161e0d6372f582e4173e82d11) () const |
|
| void  | [setPointDensityRadius](classpcl_1_1_unique_shape_context#a002fbd41827bc051df96da0be6095222) (double radius) |
|  | This radius is used to compute local point density density = number of points within this radius. [More...](classpcl_1_1_unique_shape_context#a002fbd41827bc051df96da0be6095222) |
|
| double  | [getPointDensityRadius](classpcl_1_1_unique_shape_context#a5015de35d9a5bbd650458741c7be71a0) () const |
|
| void  | [setLocalRadius](classpcl_1_1_unique_shape_context#afd3c6f85c7b52f9438d240a9f4697dc3) (double radius) |
|  | Set the local RF radius value. [More...](classpcl_1_1_unique_shape_context#afd3c6f85c7b52f9438d240a9f4697dc3) |
|
| double  | [getLocalRadius](classpcl_1_1_unique_shape_context#a9b15940755038f7cc0beb405f15342fb) () const |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|
| - Public Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
|  | [FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_with_local_reference_frames#aae1b8e90edb0dbb4a290f59a1c282908) |
|
| virtual  | [~FeatureWithLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) ()=default |
|  | Default virtual destructor. [More...](classpcl_1_1_feature_with_local_reference_frames#a7df059f1f881fdf1bceab371d07b214d) |
|
| void  | [setInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) (const [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) &frames) |
|  | Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. [More...](classpcl_1_1_feature_with_local_reference_frames#a88e05490c1db062dda72504d2e64fd63) |
|
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [getInputReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) () const |
|  | Get a pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a2b8721b333f2845bdfe8d7ee51aab2fc) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [computePointDescriptor](classpcl_1_1_unique_shape_context#ab46335daa18aea67bd3412c29b8aaf02) (std::size\_t index, std::vector< float > &desc) |
|  | Compute 3D shape context feature descriptor. [More...](classpcl_1_1_unique_shape_context#ab46335daa18aea67bd3412c29b8aaf02) |
|
| bool  | [initCompute](classpcl_1_1_unique_shape_context#ab00140ee7d9f123f83a188b3ad84adcd) () override |
|  | Initialize computation by allocating all the intervals and the volume lookup table. [More...](classpcl_1_1_unique_shape_context#ab00140ee7d9f123f83a188b3ad84adcd) |
|
| void  | [computeFeature](classpcl_1_1_unique_shape_context#a7c0a1acc18bb76023b67e1e3fe86626f) ([PointCloudOut](classpcl_1_1_unique_shape_context#abdec2db976d7e2da14722b2abf95f74b) &output) override |
|  | The actual feature computation. [More...](classpcl_1_1_unique_shape_context#a7c0a1acc18bb76023b67e1e3fe86626f) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|
| - Protected Member Functions inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| virtual bool  | [initLocalReferenceFrames](classpcl_1_1_feature_with_local_reference_frames#a50322a5400400a555c864a179ebec205) (const std::size\_t &indices\_size, const [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) &lrf\_estimation=[LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58)()) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::vector< float >  | [radii\_interval\_](classpcl_1_1_unique_shape_context#ac6e8d07456d37e2ff4e88aaf3c1f2141) |
|  | values of the radii interval. [More...](classpcl_1_1_unique_shape_context#ac6e8d07456d37e2ff4e88aaf3c1f2141) |
|
| std::vector< float >  | [theta\_divisions\_](classpcl_1_1_unique_shape_context#a720dbf467c1c8be85f9ac707b1d5889a) |
|  | Theta divisions interval. [More...](classpcl_1_1_unique_shape_context#a720dbf467c1c8be85f9ac707b1d5889a) |
|
| std::vector< float >  | [phi\_divisions\_](classpcl_1_1_unique_shape_context#a8d3cc090c10f7a75171a77a06e6a5fef) |
|  | Phi divisions interval. [More...](classpcl_1_1_unique_shape_context#a8d3cc090c10f7a75171a77a06e6a5fef) |
|
| std::vector< float >  | [volume\_lut\_](classpcl_1_1_unique_shape_context#ac5a52559aa762fc0cde42d2989c5d4b7) |
|  | Volumes look up table. [More...](classpcl_1_1_unique_shape_context#ac5a52559aa762fc0cde42d2989c5d4b7) |
|
| std::size\_t  | [azimuth\_bins\_](classpcl_1_1_unique_shape_context#a308e5ae0add1b1ec88bdeaaba3c4323d) |
|  | Bins along the azimuth dimension. [More...](classpcl_1_1_unique_shape_context#a308e5ae0add1b1ec88bdeaaba3c4323d) |
|
| std::size\_t  | [elevation\_bins\_](classpcl_1_1_unique_shape_context#a3b8fc3f53a170a637b217813d86d5347) |
|  | Bins along the elevation dimension. [More...](classpcl_1_1_unique_shape_context#a3b8fc3f53a170a637b217813d86d5347) |
|
| std::size\_t  | [radius\_bins\_](classpcl_1_1_unique_shape_context#af5d74a68b59c14ca717dc32363959ce9) |
|  | Bins along the radius dimension. [More...](classpcl_1_1_unique_shape_context#af5d74a68b59c14ca717dc32363959ce9) |
|
| double  | [min\_radius\_](classpcl_1_1_unique_shape_context#ad5ea3fbe4977141d98452f458b0e0e95) |
|  | Minimal radius value. [More...](classpcl_1_1_unique_shape_context#ad5ea3fbe4977141d98452f458b0e0e95) |
|
| double  | [point\_density\_radius\_](classpcl_1_1_unique_shape_context#a6628a0656f01338c94f7ba0e6617666f) |
|  | Point density radius. [More...](classpcl_1_1_unique_shape_context#a6628a0656f01338c94f7ba0e6617666f) |
|
| std::size\_t  | [descriptor\_length\_](classpcl_1_1_unique_shape_context#a1c8c78329ae89c7418a6a00a21861f7b) |
|  | Descriptor length. [More...](classpcl_1_1_unique_shape_context#a1c8c78329ae89c7418a6a00a21861f7b) |
|
| double  | [local\_radius\_](classpcl_1_1_unique_shape_context#aa940a6d7645e6b03531859f2a5d28059) |
|  | Radius to compute local RF. [More...](classpcl_1_1_unique_shape_context#aa940a6d7645e6b03531859f2a5d28059) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input PointCloud as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|
| - Protected Attributes inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| [PointCloudLRFConstPtr](classpcl_1_1_feature_with_local_reference_frames#aa0a52f0ff9b8c776205564ce115e67e3) | [frames\_](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|  | A boost shared pointer to the local reference frames. [More...](classpcl_1_1_feature_with_local_reference_frames#a0c278f5c08c3311267776b670bd0bb80) |
|
| bool  | [frames\_never\_defined\_](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|  | The user has never set the frames. [More...](classpcl_1_1_feature_with_local_reference_frames#ae98fabb9e51dba477a0968961f16645d) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Types inherited from [pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >](classpcl_1_1_feature_with_local_reference_frames) |
| using  | [LRFEstimationPtr](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) = typename [Feature](classpcl_1_1_feature)< PointInT, [pcl::ReferenceFrame](structpcl_1_1_reference_frame) >::Ptr |
|  | Check if frames\_ has been correctly initialized and compute it if needed. [More...](classpcl_1_1_feature_with_local_reference_frames#a37f4f084638bb1baf38bb9c8d3272b58) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame> class pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >

 [UniqueShapeContext](classpcl_1_1_unique_shape_context "UniqueShapeContext implements the Unique Shape Context Descriptor described here:") implements the Unique Shape Context Descriptor described here: 

 * F. Tombari, S. Salti, L. Di Stefano, "Unique Shape Context for 3D data description", International Workshop on 3D [Object](https://pointclouds.org/documentation/class_object.html) Retrieval (3DOR 10) - in conjunction with ACM Multimedia 2010

 The suggested PointOutT is [pcl::UniqueShapeContext1960](structpcl_1_1_unique_shape_context1960 "A point structure representing a Unique Shape Context.")

 
Author
Alessandro Franchi, Federico Tombari, Samuele Salti (original code)   Nizar Sallem (port to PCL) 
 Definition at line [63](https://pointclouds.org/documentation/usc_8h_source.html#l00063) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::[ConstPtr](classpcl_1_1_unique_shape_context#a0eacd2ae9fc97640203fcff9a5348857) = shared\_ptr<const [UniqueShapeContext](classpcl_1_1_unique_shape_context)<PointInT, PointOutT, PointRFT> > |

 
 Definition at line [81](https://pointclouds.org/documentation/usc_8h_source.html#l00081) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::[PointCloudIn](classpcl_1_1_unique_shape_context#aadd670af781cce8288598ceda3cb641d) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_unique_shape_context#aadd670af781cce8288598ceda3cb641d) |

 
 Definition at line [79](https://pointclouds.org/documentation/usc_8h_source.html#l00079) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::[PointCloudOut](classpcl_1_1_unique_shape_context#abdec2db976d7e2da14722b2abf95f74b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_unique_shape_context#abdec2db976d7e2da14722b2abf95f74b) |

 
 Definition at line [78](https://pointclouds.org/documentation/usc_8h_source.html#l00078) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |
| --- |
| using [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::[Ptr](classpcl_1_1_unique_shape_context#a635c7e90c412b261593a19e0c8426f56) = shared\_ptr<[UniqueShapeContext](classpcl_1_1_unique_shape_context)<PointInT, PointOutT, PointRFT> > |

 
 Definition at line [80](https://pointclouds.org/documentation/usc_8h_source.html#l00080) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  UniqueShapeContext()
--------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::[UniqueShapeContext](classpcl_1_1_unique_shape_context) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [85](https://pointclouds.org/documentation/usc_8h_source.html#l00085) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >::feature\_name\_](https://pointclouds.org/documentation/feature_8h_source.html#l00220), and [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >::search\_radius\_](https://pointclouds.org/documentation/feature_8h_source.html#l00237).

    ~UniqueShapeContext()
---------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::~[UniqueShapeContext](classpcl_1_1_unique_shape_context) | ( |  | ) |  |

 | overridedefault |

 
   Member Function Documentation
-----------------------------

  computeFeature()
----------------

    template<typename PointInT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::computeFeature  | ( | [PointCloudOut](classpcl_1_1_unique_shape_context#abdec2db976d7e2da14722b2abf95f74b) &  | *output* | ) |  |

 | overrideprotected |

 
 The actual feature computation. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant features  |

   Definition at line [226](https://pointclouds.org/documentation/usc_8hpp_source.html#l00226) of file [usc.hpp](https://pointclouds.org/documentation/usc_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    computePointDescriptor()
------------------------

    template<typename PointInT , typename PointOutT , typename PointRFT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::computePointDescriptor  | ( | std::size\_t  | *index*,  |
|  |  | std::vector< float > &  | *desc* |
|  | ) |  |  |

 | protected |

 
 Compute 3D shape context feature descriptor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | point index in input\_  |
| [out] | desc | descriptor to compute  |

   Compute the angle between the neighbour and the z axis (normal) in the interval [0, 180]

 Compute the Bin(j, k, l) coordinates of current neighbour

 Bin (j, k, l)

 Local point density = number of points in a sphere of radius "point\_density\_radius\_" around the current neighbour

 point\_density is always bigger than 0 because FindPointsWithinRadius returns at least the point itself

 Accumulate w into correspondent Bin(j,k,l)

 Definition at line [146](https://pointclouds.org/documentation/usc_8hpp_source.html#l00146) of file [usc.hpp](https://pointclouds.org/documentation/usc_8hpp_source.html).

 References [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), [pcl::utils::equal()](https://pointclouds.org/documentation/utils_8h_source.html#l00055), [pcl::geometry::project()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00081), and [pcl::rad2deg()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00061).

    getAzimuthBins()
----------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::getAzimuthBins  | ( |  | ) |  const |

 | inline |

 
 
Returns
The number of bins along the azimuth. 
 Definition at line [98](https://pointclouds.org/documentation/usc_8h_source.html#l00098) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::azimuth\_bins\_](https://pointclouds.org/documentation/usc_8h_source.html#l00170).

    getElevationBins()
------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::getElevationBins  | ( |  | ) |  const |

 | inline |

 
 
Returns
The number of bins along the elevation 
 Definition at line [102](https://pointclouds.org/documentation/usc_8h_source.html#l00102) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::elevation\_bins\_](https://pointclouds.org/documentation/usc_8h_source.html#l00173).

    getLocalRadius()
----------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::getLocalRadius  | ( |  | ) |  const |

 | inline |

 
 
Returns
The local RF radius. 
 Definition at line [137](https://pointclouds.org/documentation/usc_8h_source.html#l00137) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::local\_radius\_](https://pointclouds.org/documentation/usc_8h_source.html#l00188).

    getMinimalRadius()
------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::getMinimalRadius  | ( |  | ) |  const |

 | inline |

 
 
Returns
The minimal sphere radius. 
 Definition at line [116](https://pointclouds.org/documentation/usc_8h_source.html#l00116) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::min\_radius\_](https://pointclouds.org/documentation/usc_8h_source.html#l00179).

    getPointDensityRadius()
-----------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::getPointDensityRadius  | ( |  | ) |  const |

 | inline |

 
 
Returns
The point density search radius. 
 Definition at line [127](https://pointclouds.org/documentation/usc_8h_source.html#l00127) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::point\_density\_radius\_](https://pointclouds.org/documentation/usc_8h_source.html#l00182).

    getRadiusBins()
---------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::getRadiusBins  | ( |  | ) |  const |

 | inline |

 
 
Returns
The number of bins along the radii direction. 
 Definition at line [106](https://pointclouds.org/documentation/usc_8h_source.html#l00106) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::radius\_bins\_](https://pointclouds.org/documentation/usc_8h_source.html#l00176).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT , typename PointRFT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::initCompute |

 | overrideprotectedvirtual |

 
 Initialize computation by allocating all the intervals and the volume lookup table. 

 Reimplemented from [pcl::Feature< PointInT, pcl::UniqueShapeContext1960 >](classpcl_1_1_feature#a2cd0857bae8a4ac67a961d98d9eacde5).

 Definition at line [54](https://pointclouds.org/documentation/usc_8hpp_source.html#l00054) of file [usc.hpp](https://pointclouds.org/documentation/usc_8hpp_source.html).

 References [pcl::deg2rad()](https://pointclouds.org/documentation/angles_8hpp_source.html#l00067), [pcl::PCLBase< PointT >::setIndices()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00072), [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065), [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198), and [pcl::Feature< PointInT, PointOutT >::setSearchSurface()](https://pointclouds.org/documentation/feature_8h_source.html#l00146).

    setLocalRadius()
----------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::setLocalRadius  | ( | double  | *radius* | ) |  |

 | inline |

 
 Set the local RF radius value. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | the desired local RF radius  |

   Definition at line [133](https://pointclouds.org/documentation/usc_8h_source.html#l00133) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::local\_radius\_](https://pointclouds.org/documentation/usc_8h_source.html#l00188).

    setMinimalRadius()
------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::setMinimalRadius  | ( | double  | *radius* | ) |  |

 | inline |

 
 The minimal radius value for the search sphere (rmin) in the original paper. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | the desired minimal radius  |

   Definition at line [112](https://pointclouds.org/documentation/usc_8h_source.html#l00112) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::min\_radius\_](https://pointclouds.org/documentation/usc_8h_source.html#l00179).

    setPointDensityRadius()
-----------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::setPointDensityRadius  | ( | double  | *radius* | ) |  |

 | inline |

 
 This radius is used to compute local point density density = number of points within this radius. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius | Value of the point density search radius  |

   Definition at line [123](https://pointclouds.org/documentation/usc_8h_source.html#l00123) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 References [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::point\_density\_radius\_](https://pointclouds.org/documentation/usc_8h_source.html#l00182).

   Member Data Documentation
-------------------------

  azimuth\_bins\_
---------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::azimuth\_bins\_ |

 | protected |

 
 Bins along the azimuth dimension. 

 Definition at line [170](https://pointclouds.org/documentation/usc_8h_source.html#l00170) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 Referenced by [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getAzimuthBins()](https://pointclouds.org/documentation/usc_8h_source.html#l00098).

    descriptor\_length\_
--------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::descriptor\_length\_ |

 | protected |

 
 Descriptor length. 

 Definition at line [185](https://pointclouds.org/documentation/usc_8h_source.html#l00185) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    elevation\_bins\_
-----------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::elevation\_bins\_ |

 | protected |

 
 Bins along the elevation dimension. 

 Definition at line [173](https://pointclouds.org/documentation/usc_8h_source.html#l00173) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 Referenced by [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getElevationBins()](https://pointclouds.org/documentation/usc_8h_source.html#l00102).

    local\_radius\_
---------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::local\_radius\_ |

 | protected |

 
 Radius to compute local RF. 

 Definition at line [188](https://pointclouds.org/documentation/usc_8h_source.html#l00188) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 Referenced by [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getLocalRadius()](https://pointclouds.org/documentation/usc_8h_source.html#l00137), and [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::setLocalRadius()](https://pointclouds.org/documentation/usc_8h_source.html#l00133).

    min\_radius\_
-------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::min\_radius\_ |

 | protected |

 
 Minimal radius value. 

 Definition at line [179](https://pointclouds.org/documentation/usc_8h_source.html#l00179) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 Referenced by [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getMinimalRadius()](https://pointclouds.org/documentation/usc_8h_source.html#l00116), and [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::setMinimalRadius()](https://pointclouds.org/documentation/usc_8h_source.html#l00112).

    phi\_divisions\_
----------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::phi\_divisions\_ |

 | protected |

 
 Phi divisions interval. 

 Definition at line [164](https://pointclouds.org/documentation/usc_8h_source.html#l00164) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    point\_density\_radius\_
------------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::point\_density\_radius\_ |

 | protected |

 
 Point density radius. 

 Definition at line [182](https://pointclouds.org/documentation/usc_8h_source.html#l00182) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 Referenced by [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getPointDensityRadius()](https://pointclouds.org/documentation/usc_8h_source.html#l00127), and [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::setPointDensityRadius()](https://pointclouds.org/documentation/usc_8h_source.html#l00123).

    radii\_interval\_
-----------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::radii\_interval\_ |

 | protected |

 
 values of the radii interval. 

 Definition at line [158](https://pointclouds.org/documentation/usc_8h_source.html#l00158) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    radius\_bins\_
--------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::radius\_bins\_ |

 | protected |

 
 Bins along the radius dimension. 

 Definition at line [176](https://pointclouds.org/documentation/usc_8h_source.html#l00176) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

 Referenced by [pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getRadiusBins()](https://pointclouds.org/documentation/usc_8h_source.html#l00106).

    theta\_divisions\_
------------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::theta\_divisions\_ |

 | protected |

 
 Theta divisions interval. 

 Definition at line [161](https://pointclouds.org/documentation/usc_8h_source.html#l00161) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

    volume\_lut\_
-------------

    template<typename PointInT , typename PointOutT = pcl::UniqueShapeContext1960, typename PointRFT = pcl::ReferenceFrame>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float> [pcl::UniqueShapeContext](classpcl_1_1_unique_shape_context)< PointInT, PointOutT, PointRFT >::volume\_lut\_ |

 | protected |

 
 Volumes look up table. 

 Definition at line [167](https://pointclouds.org/documentation/usc_8h_source.html#l00167) of file [usc.h](https://pointclouds.org/documentation/usc_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/features/[usc.h](https://pointclouds.org/documentation/usc_8h_source.html)
* pcl/features/impl/[usc.hpp](https://pointclouds.org/documentation/usc_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_unique_shape_context.html>

[VFHEstimation](classpcl_1_1_v_f_h_estimation "VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...") estimates the **Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (VFH)** descriptor for a given point cloud dataset containing points and normals. [More...](classpcl_1_1_v_f_h_estimation#details)

 `#include <[pcl/features/vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudOut](classpcl_1_1_v_f_h_estimation#a2652ffc04c30de1fc9bcabf7b6c79b29) = typename [Feature](classpcl_1_1_feature)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |
|
| using  | [Ptr](classpcl_1_1_v_f_h_estimation#abeaa273a45ba58b9ef296faca396cb4d) = shared\_ptr< [VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_v_f_h_estimation#ab5bf11bac8d114f93035d9b97653a974) = shared\_ptr< const [VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT > > |
|
| - Public Types inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| using  | [PointCloudN](classpcl_1_1_feature_from_normals#adf76b0958e64ac418d4f9335d40c947b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > |
|
| using  | [PointCloudNPtr](classpcl_1_1_feature_from_normals#aa6e29502c7881a3ccf9b9faae6f62b2a) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [Ptr](classpcl_1_1_feature_from_normals#a72ad00651a0dd846b6699c31e3ce78b2) = shared\_ptr< [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > > |
|
| using  | [ConstPtr](classpcl_1_1_feature_from_normals#ad22bff7ca85b3aa4cd1d7094784a42d7) = shared\_ptr< const [FeatureFromNormals](classpcl_1_1_feature_from_normals)< PointInT, PointNT, [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308) > > |
|
| - Public Types inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| using  | [BaseClass](classpcl_1_1_feature#a42d7a873bf5e4ad0cac43b76a21df1ef) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr< [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr< const [Feature](classpcl_1_1_feature)< PointInT, PointOutT > > |
|
| using  | [KdTree](classpcl_1_1_feature#ac141988f18b7f67a411634145eda4793) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_feature#a0601bd0748874d3026967070092839ad) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_feature#a2eb7fb6afc2e34edf85875f8b526369b) = std::function< int(std::size\_t, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) = std::function< int(const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [VFHEstimation](classpcl_1_1_v_f_h_estimation#a30c2e3f9b4cd4e7c17f1f694bcee87a3) () |
|  | Empty constructor. [More...](classpcl_1_1_v_f_h_estimation#a30c2e3f9b4cd4e7c17f1f694bcee87a3) |
|
| void  | [computePointSPFHSignature](classpcl_1_1_v_f_h_estimation#ab6c25bb92401463f96d83f20d5c96fc0) (const Eigen::Vector4f &centroid\_p, const Eigen::Vector4f &centroid\_n, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &cloud, const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &normals, const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Estimate the SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) signatures of the angular (f1, f2, f3) and distance (f4) features for a given point from its neighborhood. [More...](classpcl_1_1_v_f_h_estimation#ab6c25bb92401463f96d83f20d5c96fc0) |
|
| void  | [setViewPoint](classpcl_1_1_v_f_h_estimation#a330f228ab39b3ac096f20ea73b8612ab) (float vpx, float vpy, float vpz) |
|  | Set the viewpoint. [More...](classpcl_1_1_v_f_h_estimation#a330f228ab39b3ac096f20ea73b8612ab) |
|
| void  | [getViewPoint](classpcl_1_1_v_f_h_estimation#af01a21e24b3e3324ec711d5bfd5c26e0) (float &vpx, float &vpy, float &vpz) |
|  | Get the viewpoint. [More...](classpcl_1_1_v_f_h_estimation#af01a21e24b3e3324ec711d5bfd5c26e0) |
|
| void  | [setUseGivenNormal](classpcl_1_1_v_f_h_estimation#a65c5f646bfbe38de7ea99e86f118a1c1) (bool use) |
|  | Set use\_given\_normal\_. [More...](classpcl_1_1_v_f_h_estimation#a65c5f646bfbe38de7ea99e86f118a1c1) |
|
| void  | [setNormalToUse](classpcl_1_1_v_f_h_estimation#a8bb453b6e0fbae76da240b9205123e1b) (const Eigen::Vector3f &normal) |
|  | Set the normal to use. [More...](classpcl_1_1_v_f_h_estimation#a8bb453b6e0fbae76da240b9205123e1b) |
|
| void  | [setUseGivenCentroid](classpcl_1_1_v_f_h_estimation#afe8d57987178f9ac5b9a220dbca2e02f) (bool use) |
|  | Set use\_given\_centroid\_. [More...](classpcl_1_1_v_f_h_estimation#afe8d57987178f9ac5b9a220dbca2e02f) |
|
| void  | [setCentroidToUse](classpcl_1_1_v_f_h_estimation#a7fceb91de436785e2f00ef1184416956) (const Eigen::Vector3f &centroid) |
|  | Set centroid\_to\_use\_. [More...](classpcl_1_1_v_f_h_estimation#a7fceb91de436785e2f00ef1184416956) |
|
| void  | [setNormalizeBins](classpcl_1_1_v_f_h_estimation#ac2b2d9368996748a9ea3b5250976ad01) (bool normalize) |
|  | set normalize\_bins\_ [More...](classpcl_1_1_v_f_h_estimation#ac2b2d9368996748a9ea3b5250976ad01) |
|
| void  | [setNormalizeDistance](classpcl_1_1_v_f_h_estimation#a507f4095fcf5b7bb1e153f79632e35d7) (bool normalize) |
|  | set normalize\_distances\_ [More...](classpcl_1_1_v_f_h_estimation#a507f4095fcf5b7bb1e153f79632e35d7) |
|
| void  | [setFillSizeComponent](classpcl_1_1_v_f_h_estimation#a1569fb923259faeabcc41243b2266b30) (bool fill\_size) |
|  | set size\_component\_ [More...](classpcl_1_1_v_f_h_estimation#a1569fb923259faeabcc41243b2266b30) |
|
| void  | [compute](classpcl_1_1_v_f_h_estimation#a8ad7f79ee618d1a6f9bca5d579c36130) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). [More...](classpcl_1_1_v_f_h_estimation#a8ad7f79ee618d1a6f9bca5d579c36130) |
|
| - Public Member Functions inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
|  | [FeatureFromNormals](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) () |
|  | Empty constructor. [More...](classpcl_1_1_feature_from_normals#a158bd4a3ec52800cc8a883ceaefa51c6) |
|
| void  | [setInputNormals](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) (const [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) &normals) |
|  | Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#a349685ac9deb723502de9f399d0286dc) |
|
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [getInputNormals](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) () const |
|  | Get a pointer to the normals of the input XYZ point cloud dataset. [More...](classpcl_1_1_feature_from_normals#a2eb5090f6a3413a436d5900b386bf8e0) |
|
| - Public Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
|  | [Feature](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) () |
|  | Empty constructor. [More...](classpcl_1_1_feature#a96497e27e1087c0b1e07c8ae84aea152) |
|
| void  | [setSearchSurface](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) (const [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) &cloud) |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_feature#a14fbb05e0e8f1d1ec766a50353f3c224) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [getSearchSurface](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) () const |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_feature#a09320ff2025be07c1e4a378d88588e8d) |
|
| void  | [setSearchMethod](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) (const [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_feature#ace1caca622f06eee8ad1911228324792) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [getSearchMethod](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) () const |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_feature#acc850056d252306c48c481e4bbee1821) |
|
| double  | [getSearchParameter](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) () const |
|  | Get the internal search parameter. [More...](classpcl_1_1_feature#a86004b18e77cc0c38a1a33fbd43fb760) |
|
| void  | [setKSearch](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_feature#a50129bc51cb240eca42df9963f7ac0c0) |
|
| int  | [getKSearch](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) () const |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a94cce071beee358359b14db2edcc62ae) |
|
| void  | [setRadiusSearch](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. [More...](classpcl_1_1_feature#a44829319486a2dc415a4e068dc55c577) |
|
| double  | [getRadiusSearch](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) () const |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_feature#ac62f459672f3ca0e986e495a9220b268) |
|
| void  | [compute](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) ([PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &output) |
|  | Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_feature#ad5b1fa9612da40e738b1d99252c5ff2f) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_v_f_h_estimation#a8aee67cc11b324fccb4214668b0a4da7) () override |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_v_f_h_estimation#a8aee67cc11b324fccb4214668b0a4da7) |
|
| - Protected Member Functions inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| const std::string &  | [getClassName](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_feature#ae6b4d5717999b6267a670dc704146fdc) |
|
| virtual bool  | [deinitCompute](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) () |
|  | This method should get called after ending the actual computation. [More...](classpcl_1_1_feature#ab235b6b76033922b19aae91714d7e413) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) (std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#a13ad44afa45c694b438e2e72e8772ed4) |
|
| int  | [searchForNeighbors](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) (const [PointCloudIn](classpcl_1_1_feature#ad8564266cbc6e467e6f8b41256c7642e) &cloud, std::size\_t index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_feature#ab1af533a19f7ecc520ad738d8020edd5) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::array< Eigen::VectorXf, 4 >  | [hist\_f\_](classpcl_1_1_v_f_h_estimation#acd92e2a7079be50efcca4d9915cd17f2) |
|  | Placeholder for the f1 histogram. [More...](classpcl_1_1_v_f_h_estimation#acd92e2a7079be50efcca4d9915cd17f2) |
|
| Eigen::VectorXf  | [hist\_vp\_](classpcl_1_1_v_f_h_estimation#a45e234540b7450e3c07d6aa5f554e811) |
|  | Placeholder for the vp histogram. [More...](classpcl_1_1_v_f_h_estimation#a45e234540b7450e3c07d6aa5f554e811) |
|
| Eigen::Vector4f  | [normal\_to\_use\_](classpcl_1_1_v_f_h_estimation#a1a4c10f9fcb0eeacaf7b24dea90625d3) |
|  | [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") to be used to computed VFH. [More...](classpcl_1_1_v_f_h_estimation#a1a4c10f9fcb0eeacaf7b24dea90625d3) |
|
| Eigen::Vector4f  | [centroid\_to\_use\_](classpcl_1_1_v_f_h_estimation#ab23687ae4eedb3ab8af90660edb775d9) |
|  | Centroid to be used to computed VFH. [More...](classpcl_1_1_v_f_h_estimation#ab23687ae4eedb3ab8af90660edb775d9) |
|
| bool  | [use\_given\_normal\_](classpcl_1_1_v_f_h_estimation#a3077be2fcbda5003984a90bf9af0f62f) |
|  | Use the normal\_to\_use\_. [More...](classpcl_1_1_v_f_h_estimation#a3077be2fcbda5003984a90bf9af0f62f) |
|
| bool  | [use\_given\_centroid\_](classpcl_1_1_v_f_h_estimation#ac4fb0a2f20ad84b39cc384bef0d08ce6) |
|  | Use the centroid\_to\_use\_. [More...](classpcl_1_1_v_f_h_estimation#ac4fb0a2f20ad84b39cc384bef0d08ce6) |
|
| bool  | [normalize\_bins\_](classpcl_1_1_v_f_h_estimation#a0c5aabcc2efad42a1d610b076adb490d) |
|  | Normalize bins by the number the total number of points. [More...](classpcl_1_1_v_f_h_estimation#a0c5aabcc2efad42a1d610b076adb490d) |
|
| bool  | [normalize\_distances\_](classpcl_1_1_v_f_h_estimation#aa3e71b8d43b8d83a0dfc46f2c223d93a) |
|  | Normalize the shape distribution component of VFH. [More...](classpcl_1_1_v_f_h_estimation#aa3e71b8d43b8d83a0dfc46f2c223d93a) |
|
| bool  | [size\_component\_](classpcl_1_1_v_f_h_estimation#a516c9d884466893254007c893aaf147a) |
|  | Activate or deactivate the size component of VFH. [More...](classpcl_1_1_v_f_h_estimation#a516c9d884466893254007c893aaf147a) |
|
| - Protected Attributes inherited from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals) |
| [PointCloudNConstPtr](classpcl_1_1_feature_from_normals#aaad6deac911489c56c8c7ed1ccfb741b) | [normals\_](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|  | A pointer to the input dataset that contains the point normals of the XYZ dataset. [More...](classpcl_1_1_feature_from_normals#aabc97906d7c9620d70c5a16de5a48c31) |
|
| - Protected Attributes inherited from [pcl::Feature< PointInT, PointOutT >](classpcl_1_1_feature) |
| std::string  | [feature\_name\_](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|  | The feature name. [More...](classpcl_1_1_feature#a54032b79551164878ff59ed93b5c1dc5) |
|
| [SearchMethodSurface](classpcl_1_1_feature#a94f4449c9ad6054e934904d3076e229e) | [search\_method\_surface\_](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|  | The search method template for points. [More...](classpcl_1_1_feature#af2d27cdd139bd79335008303cf68ba82) |
|
| [PointCloudInConstPtr](classpcl_1_1_feature#a9fd0bb565f9d1dabfaf6842c74a0c8ba) | [surface\_](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_feature#a98f8c497ac78cf49d9274c3ab5fe52df) |
|
| [KdTreePtr](classpcl_1_1_feature#a837d1b5b4e1c75979c03d098d18d344e) | [tree\_](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_feature#a7ce882e12198b2b2373cc31ba27b0ef1) |
|
| double  | [search\_parameter\_](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|  | The actual search parameter (from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_feature#a0d21af8f0a11aa224026f6bb8e3060e7) |
|
| double  | [search\_radius\_](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_feature#a2c52e9b0412b8ce790837b24cd99f0af) |
|
| int  | [k\_](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_feature#a3f68793061ef0973bdacfea56cf5ae21) |
|
| bool  | [fake\_surface\_](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|  | If no surface is given, we use the input [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") as the surface. [More...](classpcl_1_1_feature#aa08fc132189062dabfa291701fa46440) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointNT, typename PointOutT = pcl::VFHSignature308> class pcl::VFHEstimation< PointInT, PointNT, PointOutT >

 [VFHEstimation](classpcl_1_1_v_f_h_estimation "VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud data...") estimates the **Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.") (VFH)** descriptor for a given point cloud dataset containing points and normals. 

 The default VFH implementation uses 45 binning subdivisions for each of the three extended FPFH values, plus another 45 binning subdivisions for the distances between each point and the centroid and 128 binning subdivisions for the viewpoint component, which results in a 308-byte array of float values. These are stored in a [pcl::VFHSignature308](structpcl_1_1_v_f_h_signature308 "A point structure representing the Viewpoint Feature Histogram (VFH).") point type. A major difference between the PFH/FPFH descriptors and VFH, is that for a given point cloud dataset, only a single VFH descriptor will be estimated (vfhs->size() should be 1), while the resultant PFH/FPFH data will have the same number of entries as the number of points in the cloud.

 
Note
If you use this code in any academic work, please cite:
 * R.B. Rusu, G. Bradski, R. Thibaux, J. Hsu. Fast 3D Recognition and Pose Using the Viewpoint [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram."). In Proceedings of International Conference on Intelligent Robots and Systems (IROS) Taipei, Taiwan, October 18-22 2010.

 
Note
The code is stateful as we do not expect this class to be multicore parallelized. Please look at [FPFHEstimationOMP](classpcl_1_1_f_p_f_h_estimation_o_m_p) for an example of a parallel implementation of the FPFH (Fast Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") [Histogram](structpcl_1_1_histogram "A point structure representing an N-D histogram.")). 
 
Author
Radu B. Rusu 
 Definition at line [72](https://pointclouds.org/documentation/vfh_8h_source.html#l00072) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[ConstPtr](classpcl_1_1_feature#a6425d91342ae6b8c968c96dd0a12d1f3) = shared\_ptr<const [VFHEstimation](classpcl_1_1_v_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [86](https://pointclouds.org/documentation/vfh_8h_source.html#l00086) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) = typename [Feature](classpcl_1_1_feature)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) |

 
 Definition at line [84](https://pointclouds.org/documentation/vfh_8h_source.html#l00084) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |
| --- |
| using [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[Ptr](classpcl_1_1_feature#a4fb5f49c25d2e3b312b13ddea9cdc17f) = shared\_ptr<[VFHEstimation](classpcl_1_1_v_f_h_estimation)<PointInT, PointNT, PointOutT> > |

 
 Definition at line [85](https://pointclouds.org/documentation/vfh_8h_source.html#l00085) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  VFHEstimation()
---------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::[VFHEstimation](classpcl_1_1_v_f_h_estimation) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [90](https://pointclouds.org/documentation/vfh_8h_source.html#l00090) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_feature#a1ecdcec3b14e094e6076d20963ba723b) &  | *output* | ) |  |

 
 Overloaded computed method from [pcl::Feature](classpcl_1_1_feature "Feature represents the base feature class."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [65](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065) of file [vfh.hpp](https://pointclouds.org/documentation/vfh_8hpp_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

    computePointSPFHSignature()
---------------------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::computePointSPFHSignature  | ( | const Eigen::Vector4f &  | *centroid\_p*,  |
|  |  | const Eigen::Vector4f &  | *centroid\_n*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > &  | *cloud*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< PointNT > &  | *normals*,  |
|  |  | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* |
|  | ) |  |  |

 
 Estimate the SPFH (Simple Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Histograms) signatures of the angular (f1, f2, f3) and distance (f4) features for a given point from its neighborhood. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | centroid\_p | the centroid point  |
| [in] | centroid\_n | the centroid normal  |
| [in] | cloud | the dataset containing the XYZ Cartesian coordinates of the two points  |
| [in] | normals | the dataset containing the surface normals at each point in *cloud* |
| [in] | indices | the k-neighborhood point indices in the dataset  |

   Definition at line [92](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00092) of file [vfh.hpp](https://pointclouds.org/documentation/vfh_8hpp_source.html).

 References [pcl::computePairFeatures()](group__features#gaacfebe0c36e7d879e48bd3f163aec3c9), [pcl::getMaxDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197), [M\_PI](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00201), and [pcl\_round()](https://pointclouds.org/documentation/pcl__macros_8h_source.html#l00239).

    getViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::getViewPoint  | ( | float &  | *vpx*,  |
|  |  | float &  | *vpy*,  |
|  |  | float &  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Get the viewpoint. 

 Definition at line [134](https://pointclouds.org/documentation/vfh_8h_source.html#l00134) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

    initCompute()
-------------

    template<typename PointInT , typename PointNT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::initCompute |

 | overrideprotectedvirtual |

 
 This method should get called before starting the actual computation. 

 Reimplemented from [pcl::FeatureFromNormals< PointInT, PointNT, pcl::VFHSignature308 >](classpcl_1_1_feature_from_normals#a2720af3323c9bb15c073156fe568ced3).

 Definition at line [51](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00051) of file [vfh.hpp](https://pointclouds.org/documentation/vfh_8hpp_source.html).

    setCentroidToUse()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setCentroidToUse  | ( | const Eigen::Vector3f &  | *centroid* | ) |  |

 | inline |

 
 Set centroid\_to\_use\_. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | centroid | Centroid to be used in the VFH computation. It is used to compute the distances from all points to this centroid.  |

   Definition at line [174](https://pointclouds.org/documentation/vfh_8h_source.html#l00174) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::centroid\_to\_use\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00246).

    setFillSizeComponent()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setFillSizeComponent  | ( | bool  | *fill\_size* | ) |  |

 | inline |

 
 set size\_component\_ 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | fill\_size | True if the 4th component of VFH (shape distribution component) needs to be filled. Otherwise, it is set to zero.  |

   Definition at line [203](https://pointclouds.org/documentation/vfh_8h_source.html#l00203) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::size\_component\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00259).

    setNormalizeBins()
------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setNormalizeBins  | ( | bool  | *normalize* | ) |  |

 | inline |

 
 set normalize\_bins\_ 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normalize | If true, the VFH bins are normalized using the total number of points  |

   Definition at line [183](https://pointclouds.org/documentation/vfh_8h_source.html#l00183) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::normalize\_bins\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00255).

    setNormalizeDistance()
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setNormalizeDistance  | ( | bool  | *normalize* | ) |  |

 | inline |

 
 set normalize\_distances\_ 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normalize | If true, the 4th component of VFH (shape distribution component) get normalized by the maximum size between the centroid and the point cloud  |

   Definition at line [193](https://pointclouds.org/documentation/vfh_8h_source.html#l00193) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::normalize\_distances\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00257).

    setNormalToUse()
----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setNormalToUse  | ( | const Eigen::Vector3f &  | *normal* | ) |  |

 | inline |

 
 Set the normal to use. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normal | Sets the normal to be used in the VFH computation. It is is used to build the Darboux Coordinate system.  |

   Definition at line [155](https://pointclouds.org/documentation/vfh_8h_source.html#l00155) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::normal\_to\_use\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00244).

    setUseGivenCentroid()
---------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setUseGivenCentroid  | ( | bool  | *use* | ) |  |

 | inline |

 
 Set use\_given\_centroid\_. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | use | Set to true if you want to use the centroid passed through setCentroidToUse(centroid)  |

   Definition at line [164](https://pointclouds.org/documentation/vfh_8h_source.html#l00164) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::use\_given\_centroid\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00253).

    setUseGivenNormal()
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setUseGivenNormal  | ( | bool  | *use* | ) |  |

 | inline |

 
 Set use\_given\_normal\_. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | use | Set to true if you want to use the normal passed to setNormalUse(normal)  |

   Definition at line [145](https://pointclouds.org/documentation/vfh_8h_source.html#l00145) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 References [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::use\_given\_normal\_](https://pointclouds.org/documentation/vfh_8h_source.html#l00251).

    setViewPoint()
--------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::setViewPoint  | ( | float  | *vpx*,  |
|  |  | float  | *vpy*,  |
|  |  | float  | *vpz* |
|  | ) |  |  |

 | inline |

 
 Set the viewpoint. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vpx | the X coordinate of the viewpoint  |
| [in] | vpy | the Y coordinate of the viewpoint  |
| [in] | vpz | the Z coordinate of the viewpoint  |

   Definition at line [125](https://pointclouds.org/documentation/vfh_8h_source.html#l00125) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

   Member Data Documentation
-------------------------

  centroid\_to\_use\_
-------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector4f [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::centroid\_to\_use\_ |

 | protected |

 
 Centroid to be used to computed VFH. 

 Default, the centroid of the whole point cloud 

 Definition at line [246](https://pointclouds.org/documentation/vfh_8h_source.html#l00246) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setCentroidToUse()](https://pointclouds.org/documentation/vfh_8h_source.html#l00174).

    hist\_f\_
---------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::array<Eigen::VectorXf, 4> [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::hist\_f\_ |

 | protected |

 
 Placeholder for the f1 histogram. 

 Definition at line [239](https://pointclouds.org/documentation/vfh_8h_source.html#l00239) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

    hist\_vp\_
----------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::VectorXf [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::hist\_vp\_ |

 | protected |

 
 Placeholder for the vp histogram. 

 Definition at line [241](https://pointclouds.org/documentation/vfh_8h_source.html#l00241) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

    normal\_to\_use\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| Eigen::Vector4f [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::normal\_to\_use\_ |

 | protected |

 
 [Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") to be used to computed VFH. 

 Default, the average normal of the whole point cloud 

 Definition at line [244](https://pointclouds.org/documentation/vfh_8h_source.html#l00244) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setNormalToUse()](https://pointclouds.org/documentation/vfh_8h_source.html#l00155).

    normalize\_bins\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::normalize\_bins\_ |

 | protected |

 
 Normalize bins by the number the total number of points. 

 Definition at line [255](https://pointclouds.org/documentation/vfh_8h_source.html#l00255) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setNormalizeBins()](https://pointclouds.org/documentation/vfh_8h_source.html#l00183).

    normalize\_distances\_
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::normalize\_distances\_ |

 | protected |

 
 Normalize the shape distribution component of VFH. 

 Definition at line [257](https://pointclouds.org/documentation/vfh_8h_source.html#l00257) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setNormalizeDistance()](https://pointclouds.org/documentation/vfh_8h_source.html#l00193).

    size\_component\_
-----------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::size\_component\_ |

 | protected |

 
 Activate or deactivate the size component of VFH. 

 Definition at line [259](https://pointclouds.org/documentation/vfh_8h_source.html#l00259) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setFillSizeComponent()](https://pointclouds.org/documentation/vfh_8h_source.html#l00203).

    use\_given\_centroid\_
----------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::use\_given\_centroid\_ |

 | protected |

 
 Use the centroid\_to\_use\_. 

 Definition at line [253](https://pointclouds.org/documentation/vfh_8h_source.html#l00253) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setUseGivenCentroid()](https://pointclouds.org/documentation/vfh_8h_source.html#l00164).

    use\_given\_normal\_
--------------------

    template<typename PointInT , typename PointNT , typename PointOutT = pcl::VFHSignature308>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::VFHEstimation](classpcl_1_1_v_f_h_estimation)< PointInT, PointNT, PointOutT >::use\_given\_normal\_ |

 | protected |

 
 Use the normal\_to\_use\_. 

 Definition at line [251](https://pointclouds.org/documentation/vfh_8h_source.html#l00251) of file [vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html).

 Referenced by [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::setUseGivenNormal()](https://pointclouds.org/documentation/vfh_8h_source.html#l00145).

   

---

The documentation for this class was generated from the following files:* pcl/features/[vfh.h](https://pointclouds.org/documentation/vfh_8h_source.html)
* pcl/features/impl/[vfh.hpp](https://pointclouds.org/documentation/vfh_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_v_f_h_estimation.html>

[PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") represents the base class in PCL for storing collections of 3D points. [More...](classpcl_1_1_point_cloud#details)

 `#include <[pcl/point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html)>`

    ![Inheritance graph](https://pointclouds.org/documentation/classpcl_1_1_point_cloud__inherit__graph.png)                                              [[legend](graph_legend)]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointType](classpcl_1_1_point_cloud#a113035c40ca7dd7e0a627d06679fe448) = [PointT](structpcl_1_1_point_x_y_z_r_g_b) |
|
| using  | [VectorType](classpcl_1_1_point_cloud#ab45b75e3c8487979f6f77e7df55ada43) = std::vector< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Eigen::aligned\_allocator< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|
| using  | [CloudVectorType](classpcl_1_1_point_cloud#a8735a9dd13685e75bb3eeacc8e10195f) = std::vector< [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >, Eigen::aligned\_allocator< [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > > |
|
| using  | [Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) = shared\_ptr< [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|
| using  | [ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) = shared\_ptr< const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|
| using  | [value\_type](classpcl_1_1_point_cloud#a3c062c8598136181bf309724786c9688) = [PointT](structpcl_1_1_point_x_y_z_r_g_b) |
|
| using  | [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) = [PointT](structpcl_1_1_point_x_y_z_r_g_b) & |
|
| using  | [const\_reference](classpcl_1_1_point_cloud#aa12d2232fd5722806001ddbabad6cd24) = const [PointT](structpcl_1_1_point_x_y_z_r_g_b) & |
|
| using  | [difference\_type](classpcl_1_1_point_cloud#abc9664f2985a6013bef9878309548c7d) = typename VectorType::difference\_type |
|
| using  | [size\_type](classpcl_1_1_point_cloud#a0271fb189501a836a1119d7ee2653f03) = typename VectorType::size\_type |
|
| using  | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) = typename VectorType::iterator |
|
| using  | [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) = typename VectorType::const\_iterator |
|
| using  | [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) = typename VectorType::reverse\_iterator |
|
| using  | [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) = typename VectorType::const\_reverse\_iterator |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [PointCloud](classpcl_1_1_point_cloud#a827dc5d5c287df03ce7ae106fece588c) ()=default |
|  | Default constructor. [More...](classpcl_1_1_point_cloud#a827dc5d5c287df03ce7ae106fece588c) |
|
|  | [PointCloud](classpcl_1_1_point_cloud#a810a6a220de5bce04c22a8d6632fa490) (const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &pc, const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices) |
|  | Copy constructor from point cloud subset. [More...](classpcl_1_1_point_cloud#a810a6a220de5bce04c22a8d6632fa490) |
|
|  | [PointCloud](classpcl_1_1_point_cloud#a34f9808c10574cf7ff8d1b5bdcb0f4a2) (std::uint32\_t width\_, std::uint32\_t height\_, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &value\_=[PointT](structpcl_1_1_point_x_y_z_r_g_b)()) |
|  | Allocate constructor from point cloud subset. [More...](classpcl_1_1_point_cloud#a34f9808c10574cf7ff8d1b5bdcb0f4a2) |
|
| [PointCloud](classpcl_1_1_point_cloud) &  | [operator+=](classpcl_1_1_point_cloud#a335a1cf1c305cc563f9ebeb2a61f994b) (const [PointCloud](classpcl_1_1_point_cloud) &rhs) |
|  | Add a point cloud to the current cloud. [More...](classpcl_1_1_point_cloud#a335a1cf1c305cc563f9ebeb2a61f994b) |
|
| [PointCloud](classpcl_1_1_point_cloud) | [operator+](classpcl_1_1_point_cloud#a430e4cb8d38c4a7f581199e03a88a779) (const [PointCloud](classpcl_1_1_point_cloud) &rhs) |
|  | Add a point cloud to another cloud. [More...](classpcl_1_1_point_cloud#a430e4cb8d38c4a7f581199e03a88a779) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [at](classpcl_1_1_point_cloud#a1155fe4ba5cdc7e83cb72159a4ea02dc) (int column, int row) const |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#a1155fe4ba5cdc7e83cb72159a4ea02dc) |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [at](classpcl_1_1_point_cloud#a930c2d1f3d8682ca228873ce1c5cc7c4) (int column, int row) |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#a930c2d1f3d8682ca228873ce1c5cc7c4) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [operator()](classpcl_1_1_point_cloud#ab4061110abf7f3761e6702c3d26397da) (std::size\_t column, std::size\_t row) const |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#ab4061110abf7f3761e6702c3d26397da) |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [operator()](classpcl_1_1_point_cloud#a6a0466c2a757298f353339f75c367d79) (std::size\_t column, std::size\_t row) |
|  | Obtain the point given by the (column, row) coordinates. [More...](classpcl_1_1_point_cloud#a6a0466c2a757298f353339f75c367d79) |
|
| bool  | [isOrganized](classpcl_1_1_point_cloud#a914dbcef25abdb46f32991ac112002e7) () const |
|  | Return whether a dataset is organized (e.g., arranged in a structured grid). [More...](classpcl_1_1_point_cloud#a914dbcef25abdb46f32991ac112002e7) |
|
| Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#ab9486898ac363e8206829da7c01ea62d) (int dim, int stride, int offset) |
|  | Return an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf (assumes float values) mapped to the specified dimensions of the [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](classpcl_1_1_point_cloud#ab9486898ac363e8206829da7c01ea62d) |
|
| const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#a0fb96c26772eca605280d622efe35995) (int dim, int stride, int offset) const |
|  | Return an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf (assumes float values) mapped to the specified dimensions of the [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). [More...](classpcl_1_1_point_cloud#a0fb96c26772eca605280d622efe35995) |
|
| Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#a33dc0edddaa502394241e777cf6721f2) () |
|
| const Eigen::Map< const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> >  | [getMatrixXfMap](classpcl_1_1_point_cloud#ad5f6eac70c5fa9b370834f64377c546d) () const |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [begin](classpcl_1_1_point_cloud#ad03bb625caff9989dda162c1a4200baf) () noexcept |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [end](classpcl_1_1_point_cloud#a907a15bd2319bec9c1c93a7009c8cfd1) () noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [begin](classpcl_1_1_point_cloud#a1aad777b644c1cdcbf50296d7e9b5ca8) () const noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [end](classpcl_1_1_point_cloud#ac6a36f40543b5ed4fc7e1f3fedd323d6) () const noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [cbegin](classpcl_1_1_point_cloud#a09d55a476ea1f914dd05358f05ffb94d) () const noexcept |
|
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) | [cend](classpcl_1_1_point_cloud#a1e3830550c0a4b37087dd70c4c265488) () const noexcept |
|
| [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) | [rbegin](classpcl_1_1_point_cloud#a18743b0063f36acb5b30dd914846fbb7) () noexcept |
|
| [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) | [rend](classpcl_1_1_point_cloud#af2e170fb43f21d0906261ea193fb738b) () noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [rbegin](classpcl_1_1_point_cloud#adccc094edd51016399ffac2a68dc6e17) () const noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [rend](classpcl_1_1_point_cloud#a07a833ed28b82e19e789955da4faa91a) () const noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [crbegin](classpcl_1_1_point_cloud#a3bc2461bcf057365249e0271ca87836b) () const noexcept |
|
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) | [crend](classpcl_1_1_point_cloud#a2a602bcc677728560fec7671aad9fbdc) () const noexcept |
|
| std::size\_t  | [size](classpcl_1_1_point_cloud#aa3fc6f30bae069ca325b80f60757276e) () const |
|
| [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | [max\_size](classpcl_1_1_point_cloud#ac23c437751d8449ccd9fda9b0a473c4e) () const noexcept |
|
| void  | [reserve](classpcl_1_1_point_cloud#ab2d68c32d71772ac16943d65e87deb98) (std::size\_t n) |
|
| bool  | [empty](classpcl_1_1_point_cloud#a1626420d44e28b5ab22bdc2f1fc6c7ff) () const |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) \*  | [data](classpcl_1_1_point_cloud#a02ea96f88e94451f4fd7522d5237474e) () noexcept |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) \*  | [data](classpcl_1_1_point_cloud#afd841515594abf38b743c76b088e6734) () const noexcept |
|
| void  | [resize](classpcl_1_1_point_cloud#a552575b03243c7f5d95bb03c59842238) (std::size\_t count) |
|  | Resizes the container to contain `count` elements. [More...](classpcl_1_1_point_cloud#a552575b03243c7f5d95bb03c59842238) |
|
| void  | [resize](classpcl_1_1_point_cloud#a09a0de19c29af92d1ba70b509a256e5a) ([uindex\_t](https://pointclouds.org/documentation/namespacepcl.html#a1b98b7f9535916d9dffec6d425d2eed9) new\_width, [uindex\_t](https://pointclouds.org/documentation/namespacepcl.html#a1b98b7f9535916d9dffec6d425d2eed9) new\_height) |
|  | Resizes the container to contain `new_width * new_height` elements. [More...](classpcl_1_1_point_cloud#a09a0de19c29af92d1ba70b509a256e5a) |
|
| void  | [resize](classpcl_1_1_point_cloud#a35d32bd327ffede23a9ef04fc853f29d) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) count, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &value) |
|  | Resizes the container to contain count elements. [More...](classpcl_1_1_point_cloud#a35d32bd327ffede23a9ef04fc853f29d) |
|
| void  | [resize](classpcl_1_1_point_cloud#a978165fe6667ba14ed0995366d05052c) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_height, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &value) |
|  | Resizes the container to contain count elements. [More...](classpcl_1_1_point_cloud#a978165fe6667ba14ed0995366d05052c) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [operator[]](classpcl_1_1_point_cloud#a2630bae5a9bf001bcadfa69c2831ab0a) (std::size\_t n) const |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [operator[]](classpcl_1_1_point_cloud#a0cbbb3749be776301025d308b07436f9) (std::size\_t n) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [at](classpcl_1_1_point_cloud#a47a5ee1f334013d9413e11457e695e41) (std::size\_t n) const |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [at](classpcl_1_1_point_cloud#a3a6e0eeeced9f72e3d65196b56945ffe) (std::size\_t n) |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [front](classpcl_1_1_point_cloud#a4eb4170da773993d46db2e760d74736d) () const |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [front](classpcl_1_1_point_cloud#a157e45c8c8bb7b028b315e3a1548cc85) () |
|
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [back](classpcl_1_1_point_cloud#a6381d79fcde03c65cdddb8abf610ae46) () const |
|
| [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | [back](classpcl_1_1_point_cloud#a21a3d18a47ea5ef7ea379fac42f7575a) () |
|
| void  | [assign](classpcl_1_1_point_cloud#ad1392d4d379c4ad616d32f2ddabe2669) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) count, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &value) |
|  | Replaces the points with `count` copies of `value` [More...](classpcl_1_1_point_cloud#ad1392d4d379c4ad616d32f2ddabe2669) |
|
| void  | [assign](classpcl_1_1_point_cloud#ae7cc1fb81be813d45dcda878c9a43d44) ([index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_height, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &value) |
|  | Replaces the points with `new_width * new_height` copies of `value` [More...](classpcl_1_1_point_cloud#ae7cc1fb81be813d45dcda878c9a43d44) |
|
| template<class InputIterator >  |
| void  | [assign](classpcl_1_1_point_cloud#a8ea087ba09ba530dcdc695603fec0481) (InputIterator first, InputIterator last) |
|  | Replaces the points with copies of those in the range `[first, last)` [More...](classpcl_1_1_point_cloud#a8ea087ba09ba530dcdc695603fec0481) |
|
| template<class InputIterator >  |
| void  | [assign](classpcl_1_1_point_cloud#a568f6def0da4101cdf002450e97bbfed) (InputIterator first, InputIterator last, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width) |
|  | Replaces the points with copies of those in the range `[first, last)` [More...](classpcl_1_1_point_cloud#a568f6def0da4101cdf002450e97bbfed) |
|
| void  | [assign](classpcl_1_1_point_cloud#a72c2ea8956c5d274df8dc6f7cfe22785) (std::initializer\_list< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > ilist) |
|  | Replaces the points with the elements from the initializer list `ilist` [More...](classpcl_1_1_point_cloud#a72c2ea8956c5d274df8dc6f7cfe22785) |
|
| void  | [assign](classpcl_1_1_point_cloud#aab40a980803206183436c7535f2f59af) (std::initializer\_list< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > ilist, [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) new\_width) |
|  | Replaces the points with the elements from the initializer list `ilist` [More...](classpcl_1_1_point_cloud#aab40a980803206183436c7535f2f59af) |
|
| void  | [push\_back](classpcl_1_1_point_cloud#a0b4d7abee110e47d90635eb042488bb4) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pt) |
|  | Insert a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a0b4d7abee110e47d90635eb042488bb4) |
|
| void  | [transient\_push\_back](classpcl_1_1_point_cloud#a6270ef2fbbaa127f0af8645dfa2be586) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pt) |
|  | Insert a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a6270ef2fbbaa127f0af8645dfa2be586) |
|
| template<class... Args>  |
| [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) | [emplace\_back](classpcl_1_1_point_cloud#a73c6b2deef3b70d309fbf4513000e85d) (Args &&...args) |
|  | Emplace a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a73c6b2deef3b70d309fbf4513000e85d) |
|
| template<class... Args>  |
| [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) | [transient\_emplace\_back](classpcl_1_1_point_cloud#a0b591c143dd6d869eaa179bdac23826c) (Args &&...args) |
|  | Emplace a new point in the cloud, at the end of the container. [More...](classpcl_1_1_point_cloud#a0b591c143dd6d869eaa179bdac23826c) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [insert](classpcl_1_1_point_cloud#a75387c07a2d24ee943eb71ab1c00e4a7) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pt) |
|  | Insert a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#a75387c07a2d24ee943eb71ab1c00e4a7) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_insert](classpcl_1_1_point_cloud#aea1b4ade6ac50d278a0e952f42bfd8c3) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pt) |
|  | Insert a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#aea1b4ade6ac50d278a0e952f42bfd8c3) |
|
| void  | [insert](classpcl_1_1_point_cloud#a26c2892860c2c0caf349ada9f4f0690a) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, std::size\_t n, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pt) |
|  | Insert a new point in the cloud N times, given an iterator. [More...](classpcl_1_1_point_cloud#a26c2892860c2c0caf349ada9f4f0690a) |
|
| void  | [transient\_insert](classpcl_1_1_point_cloud#a26d57b306764b0b59eca9cc0466c365a) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, std::size\_t n, const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &pt) |
|  | Insert a new point in the cloud N times, given an iterator. [More...](classpcl_1_1_point_cloud#a26d57b306764b0b59eca9cc0466c365a) |
|
| template<class InputIterator >  |
| void  | [insert](classpcl_1_1_point_cloud#a3cccb494b2875101b528a8919c738f9b) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, InputIterator first, InputIterator last) |
|  | Insert a new range of points in the cloud, at a certain position. [More...](classpcl_1_1_point_cloud#a3cccb494b2875101b528a8919c738f9b) |
|
| template<class InputIterator >  |
| void  | [transient\_insert](classpcl_1_1_point_cloud#a9a98e42fd659610b6bd8624f73382aff) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, InputIterator first, InputIterator last) |
|  | Insert a new range of points in the cloud, at a certain position. [More...](classpcl_1_1_point_cloud#a9a98e42fd659610b6bd8624f73382aff) |
|
| template<class... Args>  |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [emplace](classpcl_1_1_point_cloud#a8ce40296ecfd6900af3afe6758ace0cd) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, Args &&...args) |
|  | Emplace a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#a8ce40296ecfd6900af3afe6758ace0cd) |
|
| template<class... Args>  |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_emplace](classpcl_1_1_point_cloud#aedee4c14db3d5a9bb5a218020f6e34c1) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position, Args &&...args) |
|  | Emplace a new point in the cloud, given an iterator. [More...](classpcl_1_1_point_cloud#aedee4c14db3d5a9bb5a218020f6e34c1) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [erase](classpcl_1_1_point_cloud#a06463926e7cbe52ed3c024c7bc7565d3) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position) |
|  | Erase a point in the cloud. [More...](classpcl_1_1_point_cloud#a06463926e7cbe52ed3c024c7bc7565d3) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_erase](classpcl_1_1_point_cloud#a51393e25f013a4c2ca8a99a91fc7309c) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) position) |
|  | Erase a point in the cloud. [More...](classpcl_1_1_point_cloud#a51393e25f013a4c2ca8a99a91fc7309c) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [erase](classpcl_1_1_point_cloud#a2901a922dac074254160e1e11912d2c5) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) first, [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) last) |
|  | Erase a set of points given by a (first, last) iterator pair. [More...](classpcl_1_1_point_cloud#a2901a922dac074254160e1e11912d2c5) |
|
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | [transient\_erase](classpcl_1_1_point_cloud#a41808523a136b52f1b2ef2b7301faa3b) ([iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) first, [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) last) |
|  | Erase a set of points given by a (first, last) iterator pair. [More...](classpcl_1_1_point_cloud#a41808523a136b52f1b2ef2b7301faa3b) |
|
| void  | [swap](classpcl_1_1_point_cloud#ab4a0b63e9c8442286b08336f8385a9ea) ([PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &rhs) |
|  | Swap a point cloud with another cloud. [More...](classpcl_1_1_point_cloud#ab4a0b63e9c8442286b08336f8385a9ea) |
|
| void  | [clear](classpcl_1_1_point_cloud#a963c0da7320055c79e5af0df4f6ad224) () |
|  | Removes all points in a cloud and sets the width and height to 0. [More...](classpcl_1_1_point_cloud#a963c0da7320055c79e5af0df4f6ad224) |
|
| [Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) | [makeShared](classpcl_1_1_point_cloud#afebbbb9c522a94cf245dd3968b50ed5e) () const |
|  | Copy the cloud to the heap and return a smart pointer Note that deep copy is performed, so avoid using this function on non-empty clouds. [More...](classpcl_1_1_point_cloud#afebbbb9c522a94cf245dd3968b50ed5e) |
|




|  |
| --- |
| 
 Static Public Member Functions |
| static bool  | [concatenate](classpcl_1_1_point_cloud#af029c33f2907e4b9bd4d7bc719afce2a) ([pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud1, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud2) |
|
| static bool  | [concatenate](classpcl_1_1_point_cloud#a8dd03c68e99f7857d1f7f9ce991e9fd4) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud1, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud2, [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &cloud\_out) |
|




|  |
| --- |
| 
 Public Attributes |
| [pcl::PCLHeader](structpcl_1_1_p_c_l_header) | [header](classpcl_1_1_point_cloud#a82e0be055a617e5e74102ed62712b352) |
|  | The point cloud header. [More...](classpcl_1_1_point_cloud#a82e0be055a617e5e74102ed62712b352) |
|
| std::vector< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Eigen::aligned\_allocator< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > >  | [points](classpcl_1_1_point_cloud#af16a62638198313b9c093127c492c884) |
|  | The point data. [More...](classpcl_1_1_point_cloud#af16a62638198313b9c093127c492c884) |
|
| std::uint32\_t  | [width](classpcl_1_1_point_cloud#a644dc7161c2e3f23bc4d36d36c58e7b4) = 0 |
|  | The point cloud width (if organized as an image-structure). [More...](classpcl_1_1_point_cloud#a644dc7161c2e3f23bc4d36d36c58e7b4) |
|
| std::uint32\_t  | [height](classpcl_1_1_point_cloud#a917b6eb0ef204836c56a2334ddd703fe) = 0 |
|  | The point cloud height (if organized as an image-structure). [More...](classpcl_1_1_point_cloud#a917b6eb0ef204836c56a2334ddd703fe) |
|
| bool  | [is\_dense](classpcl_1_1_point_cloud#a3ca88d8ebf6f4f35acbc31cdfb38aa94) = true |
|  | True if no points are invalid (e.g., have NaN or Inf values in any of their floating point fields). [More...](classpcl_1_1_point_cloud#a3ca88d8ebf6f4f35acbc31cdfb38aa94) |
|
| Eigen::Vector4f  | [sensor\_origin\_](classpcl_1_1_point_cloud#aad7c2cd4b0d1c7f0fbc096276b5e2230) = Eigen::Vector4f::Zero () |
|  | Sensor acquisition pose (origin/translation). [More...](classpcl_1_1_point_cloud#aad7c2cd4b0d1c7f0fbc096276b5e2230) |
|
| Eigen::Quaternionf  | [sensor\_orientation\_](classpcl_1_1_point_cloud#a5de17e88bdf15e1c4fd1bcc6b85b1941) = Eigen::Quaternionf::Identity () |
|  | Sensor acquisition pose (rotation). [More...](classpcl_1_1_point_cloud#a5de17e88bdf15e1c4fd1bcc6b85b1941) |
|

 Detailed Description
--------------------

 
### template<typename PointT> class pcl::PointCloud< PointT >

 [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") represents the base class in PCL for storing collections of 3D points. 

 The class is templated, which means you need to specify the type of data that it should contain. For example, to create a point cloud that holds 4 random XYZ data points, use:

 
```
pcl::PointCloud<pcl::PointXYZ> cloud;
cloud.push_back (pcl::PointXYZ (rand (), rand (), rand ()));
cloud.push_back (pcl::PointXYZ (rand (), rand (), rand ()));
cloud.push_back (pcl::PointXYZ (rand (), rand (), rand ()));
cloud.push_back (pcl::PointXYZ (rand (), rand (), rand ()));
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud::push_backvoid push_back(const PointT &pt)Insert a new point in the cloud, at the end of the container.Definition: point_cloud.h:663
pcl::PointCloud::push_back
void push_back(const PointT &pt)
Insert a new point in the cloud, at the end of the container.
Definition: point_cloud.h:663
pcl::PointXYZA point structure representing Euclidean xyz coordinates.Definition: point_types.hpp:351
pcl::PointXYZ
A point structure representing Euclidean xyz coordinates.
Definition: point_types.hpp:351

```

The [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") class contains the following elements:


* **width** - specifies the width of the point cloud dataset in the number of points. WIDTH has two meanings:
	+ it can specify the total number of points in the cloud (equal with POINTS see below) for unorganized datasets;
	+ it can specify the width (total number of points in a row) of an organized point cloud dataset. *Mandatory*.
* **height** - specifies the height of the point cloud dataset in the number of points. HEIGHT has two meanings:
	+ it can specify the height (total number of rows) of an organized point cloud dataset;
	+ it is set to 1 for unorganized datasets (thus used to check whether a dataset is organized or not). *Mandatory*.
* **points** - the data array where all points of type **PointT** are stored. *Mandatory*.
* **is\_dense** - specifies if all the data in **points** is finite (true), or whether it might contain Inf/NaN values (false). *Mandatory*.
* **sensor\_origin\_** - specifies the sensor acquisition pose (origin/translation). *Optional*.
* **sensor\_orientation\_** - specifies the sensor acquisition pose (rotation). *Optional*.

 
Author
Patrick Mihelich, Radu B. Rusu 
 Definition at line [172](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00172) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 
Member Typedef Documentation
----------------------------

  CloudVectorType
---------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[CloudVectorType](classpcl_1_1_point_cloud#a8735a9dd13685e75bb3eeacc8e10195f) = std::vector<[PointCloud](classpcl_1_1_point_cloud)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)>, Eigen::aligned\_allocator<[PointCloud](classpcl_1_1_point_cloud)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > > |

 
 Definition at line [412](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00412) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    const\_iterator
---------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) = typename VectorType::const\_iterator |

 
 Definition at line [426](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00426) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    const\_reference
----------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[const\_reference](classpcl_1_1_point_cloud#aa12d2232fd5722806001ddbabad6cd24) = const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& |

 
 Definition at line [420](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00420) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    const\_reverse\_iterator
------------------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) = typename VectorType::const\_reverse\_iterator |

 
 Definition at line [428](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00428) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    ConstPtr
--------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) = shared\_ptr<const [PointCloud](classpcl_1_1_point_cloud)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > |

 
 Definition at line [414](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00414) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    difference\_type
----------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[difference\_type](classpcl_1_1_point_cloud#abc9664f2985a6013bef9878309548c7d) = typename VectorType::difference\_type |

 
 Definition at line [421](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00421) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    iterator
--------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) = typename VectorType::iterator |

 
 Definition at line [425](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00425) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    PointType
---------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointType](classpcl_1_1_point_cloud#a113035c40ca7dd7e0a627d06679fe448) = [PointT](structpcl_1_1_point_x_y_z_r_g_b) |

 
 Definition at line [410](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00410) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    Ptr
---

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) = shared\_ptr<[PointCloud](classpcl_1_1_point_cloud)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > |

 
 Definition at line [413](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00413) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    reference
---------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) = [PointT](structpcl_1_1_point_x_y_z_r_g_b)& |

 
 Definition at line [419](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00419) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    reverse\_iterator
-----------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) = typename VectorType::reverse\_iterator |

 
 Definition at line [427](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00427) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    size\_type
----------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[size\_type](classpcl_1_1_point_cloud#a0271fb189501a836a1119d7ee2653f03) = typename VectorType::size\_type |

 
 Definition at line [422](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00422) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    value\_type
-----------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[value\_type](classpcl_1_1_point_cloud#a3c062c8598136181bf309724786c9688) = [PointT](structpcl_1_1_point_x_y_z_r_g_b) |

 
 Definition at line [418](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00418) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    VectorType
----------

    template<typename PointT >  

|  |
| --- |
| using [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[VectorType](classpcl_1_1_point_cloud#ab45b75e3c8487979f6f77e7df55ada43) = std::vector<[PointT](structpcl_1_1_point_x_y_z_r_g_b), Eigen::aligned\_allocator<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > |

 
 Definition at line [411](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00411) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  PointCloud() [1/3]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloud](classpcl_1_1_point_cloud) | ( |  | ) |  |

 | default |

 
 Default constructor. 

 Sets [is\_dense](classpcl_1_1_point_cloud#a3ca88d8ebf6f4f35acbc31cdfb38aa94) to true, [width](classpcl_1_1_point_cloud#a644dc7161c2e3f23bc4d36d36c58e7b4) and [height](classpcl_1_1_point_cloud#a917b6eb0ef204836c56a2334ddd703fe) to 0, and the [sensor\_origin\_](classpcl_1_1_point_cloud#aad7c2cd4b0d1c7f0fbc096276b5e2230) and [sensor\_orientation\_](classpcl_1_1_point_cloud#a5de17e88bdf15e1c4fd1bcc6b85b1941) to identity. 

    PointCloud() [2/3]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloud](classpcl_1_1_point_cloud) | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *pc*,  |
|  |  | const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices* |
|  | ) |  |  |

 | inline |

 
 Copy constructor from point cloud subset. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | pc | the cloud to copy into this  |
| [in] | indices | the subset to copy  |

   Definition at line [185](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00185) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    PointCloud() [3/3]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloud](classpcl_1_1_point_cloud) | ( | std::uint32\_t  | *width\_*,  |
|  |  | std::uint32\_t  | *height\_*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *value\_* = `[PointT](structpcl_1_1_point_x_y_z_r_g_b) ()` |
|  | ) |  |  |

 | inline |

 
 Allocate constructor from point cloud subset. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | width\_ | the cloud width  |
| [in] | height\_ | the cloud height  |
| [in] | value\_ | default value  |

   Definition at line [201](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00201) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

   Member Function Documentation
-----------------------------

  assign() [1/6]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::assign  | ( | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *count*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *value* |
|  | ) |  |  |

 | inline |

 
 Replaces the points with `count` copies of `value` 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | count | new size of the point cloud  |
| [in] | value | value each point of the cloud should have  |

   Definition at line [548](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00548) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), and [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349).

    assign() [2/6]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::assign  | ( | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *new\_width*,  |
|  |  | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *new\_height*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *value* |
|  | ) |  |  |

 | inline |

 
 Replaces the points with `new_width * new_height` copies of `value` 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | new\_width | new width of the point cloud  |
| [in] | new\_height | new height of the point cloud  |
| [in] | value | value each point of the cloud should have  |

   Definition at line [562](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00562) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    assign() [3/6]
--------------

    template<typename PointT >   template<class InputIterator >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::assign  | ( | InputIterator  | *first*,  |
|  |  | InputIterator  | *last* |
|  | ) |  |  |

 | inline |

 
 Replaces the points with copies of those in the range `[first, last)` 

 The behavior is undefined if either argument is an iterator into `*this` 



Note
This breaks the organized structure of the cloud by setting the height to 1! 
 Definition at line [578](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00578) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    assign() [4/6]
--------------

    template<typename PointT >   template<class InputIterator >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::assign  | ( | InputIterator  | *first*,  |
|  |  | InputIterator  | *last*,  |
|  |  | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *new\_width* |
|  | ) |  |  |

 | inline |

 
 Replaces the points with copies of those in the range `[first, last)` 

 The behavior is undefined if either argument is an iterator into `*this` 



Note
This calculates the height based on size and width provided. This means the assignment happens even if the size is not perfectly divisible by width 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | first,last | the range from which the points are copied  |
| [in] | new\_width | new width of the point cloud  |

   Definition at line [596](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00596) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    assign() [5/6]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::assign  | ( | std::initializer\_list< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >  | *ilist* | ) |  |

 | inline |

 
 Replaces the points with the elements from the initializer list `ilist` 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 Definition at line [623](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00623) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    assign() [6/6]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::assign  | ( | std::initializer\_list< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >  | *ilist*,  |
|  |  | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *new\_width* |
|  | ) |  |  |

 | inline |

 
 Replaces the points with the elements from the initializer list `ilist` 

 
Note
This calculates the height based on size and width provided. This means the assignment happens even if the size is not perfectly divisible by width 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | ilist | initializer list from which the points are copied  |
| [in] | new\_width | new width of the point cloud  |

   Definition at line [638](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00638) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    at() [1/4]
----------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::at  | ( | int  | *column*,  |
|  |  | int  | *row* |
|  | ) |  |  |

 | inline |

 
 Obtain the point given by the (column, row) coordinates. 

 Only works on organized datasets (those that have height != 1). 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | column | the column coordinate  |
| [in] | row | the row coordinate  |

   Definition at line [276](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00276) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    at() [2/4]
----------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::at  | ( | int  | *column*,  |
|  |  | int  | *row* |
|  | ) |  |  const |

 | inline |

 
 Obtain the point given by the (column, row) coordinates. 

 Only works on organized datasets (those that have height != 1). 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | column | the column coordinate  |
| [in] | row | the row coordinate  |

   Definition at line [262](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00262) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::FastBilateralFilterOMP< PointT >::applyFilter()](https://pointclouds.org/documentation/fast__bilateral__omp_8hpp_source.html#l00062), [pcl::filters::Pyramid< PointT >::compute()](https://pointclouds.org/documentation/pyramid_8hpp_source.html#l00100), [pcl::occlusion\_reasoning::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00072), [pcl::occlusion\_reasoning::getOccludedCloud()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00163), and [pcl::PointCloudDepthAndRGBtoXYZRGBA()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00429).

    at() [3/4]
----------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::at  | ( | std::size\_t  | *n* | ) |  |

 | inline |

 
 Definition at line [534](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00534) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    at() [4/4]
----------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::at  | ( | std::size\_t  | *n* | ) |  const |

 | inline |

 
 Definition at line [533](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00533) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    back() [1/2]
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::back  | ( |  | ) |  |

 | inline |

 
 Definition at line [538](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00538) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    back() [2/2]
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::back  | ( |  | ) |  const |

 | inline |

 
 Definition at line [537](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00537) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01109), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01121), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01096), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01084).

    begin() [1/2]
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::begin  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [431](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00431) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    begin() [2/2]
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::begin  | ( |  | ) |  |

 | inlinenoexcept |

 
 Definition at line [429](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::cleanUp()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00296), [pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeCovariances()](https://pointclouds.org/documentation/gicp_8hpp_source.html#l00051), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::common::deleteCols()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00239), [pcl::common::deleteRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00222), [pcl::common::duplicateColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00105), [pcl::common::duplicateRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00138), [pcl::common::expandColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00052), [pcl::common::expandRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00084), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::extractDescriptors()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00847), [pcl::getFeaturePointCloud()](https://pointclouds.org/documentation/rsd_8h_source.html#l00057), [pcl::SupervoxelClustering< PointT >::getLabeledCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00579), [pcl::SupervoxelClustering< PointT >::getLabeledVoxelCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00557), [pcl::SupervoxelClustering< PointT >::makeSupervoxelNormalCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00606), [pcl::common::mirrorColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00163), [pcl::common::mirrorRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00195), [pcl::MovingLeastSquares< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00284), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), and [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349).

    cbegin()
--------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::cbegin  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [433](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00433) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::readRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00238), [pcl::MinCutSegmentation< PointT >::setBackgroundPoints()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00207), and [pcl::MinCutSegmentation< PointT >::setForegroundPoints()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00189).

    cend()
------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::cend  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [434](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00434) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::readRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00238), [pcl::MinCutSegmentation< PointT >::setBackgroundPoints()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00207), and [pcl::MinCutSegmentation< PointT >::setForegroundPoints()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00189).

    clear()
-------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::clear  | ( |  | ) |  |

 | inline |

 
 Removes all points in a cloud and sets the width and height to 0. 

 Definition at line [885](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::GridMinimum< PointT >::applyFilter()](https://pointclouds.org/documentation/grid__minimum_8hpp_source.html#l00061), [pcl::LocalMaximum< PointT >::applyFilter()](https://pointclouds.org/documentation/local__maximum_8hpp_source.html#l00054), [pcl::ProjectInliers< PointT >::applyFilter()](https://pointclouds.org/documentation/project__inliers_8hpp_source.html#l00057), [pcl::UniformSampling< PointT >::applyFilter()](https://pointclouds.org/documentation/uniform__sampling_8hpp_source.html#l00046), [pcl::VoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00226), [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::approximatePolygon2D()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00080), [pcl::DisparityMapConverter< PointT >::compute()](https://pointclouds.org/documentation/disparity__map__converter_8hpp_source.html#l00246), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::compute()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00053), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00080), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::IntensitySpinEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html#l00110), [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rift_8hpp_source.html#l00113), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00248), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00137), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00356), [pcl::TSDFVolume< VoxelT, WeightT >::convertToTsdfCloud()](https://pointclouds.org/documentation/tsdf__volume_8hpp_source.html#l00158), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00160), [pcl::gpu::extractEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__clusters_8hpp_source.html#l00057), [pcl::VoxelGridCovariance< PointT >::getDisplayCloud()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00445), [pcl::MarchingCubes< PointNT >::performReconstruction()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00218), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::CloudSurfaceProcessing< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/processing_8hpp_source.html#l00047), [pcl::BilateralUpsampling< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00050), [pcl::MovingLeastSquares< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00061), [pcl::SurfaceReconstruction< PointInT >::reconstruct()](https://pointclouds.org/documentation/reconstruction_8hpp_source.html#l00092), [pcl::ConcaveHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00059), [pcl::ConvexHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00440), [pcl::SegmentDifferences< PointT >::segment()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00091), and [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::setSearchSurface()](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00118).

    concatenate() [1/2]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static bool [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::concatenate  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud1*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud2*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud\_out* |
|  | ) |  |  |

 | inlinestatic |

 
 Definition at line [248](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00248) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 References [pcl::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00273).

    concatenate() [2/2]
-------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| static bool [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::concatenate  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud1*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *cloud2* |
|  | ) |  |  |

 | inlinestatic |

 
 Definition at line [231](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 References [pcl::PointCloud< PointT >::begin()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429), [pcl::PointCloud< PointT >::end()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00430), [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::insert()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00713), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443), [pcl::PCLHeader::stamp](https://pointclouds.org/documentation/_p_c_l_header_8h_source.html#l00018), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00273).

    crbegin()
---------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::crbegin  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [439](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00439) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    crend()
-------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::crend  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [440](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00440) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    data() [1/2]
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)\* [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::data  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [448](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00448) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    data() [2/2]
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)\* [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::data  | ( |  | ) |  |

 | inlinenoexcept |

 
 Definition at line [447](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00447) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221).

    emplace()
---------

    template<typename PointT >   template<class... Args>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::emplace  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | Args &&...  | *args* |
|  | ) |  |  |

 | inline |

 
 Emplace a new point in the cloud, given an iterator. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | iterator before which the point will be emplaced  |
| [in] | args | the parameters to forward to the point to construct  |

   
Returns
returns the new position iterator 
 Definition at line [793](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00793) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    emplace\_back()
---------------

    template<typename PointT >   template<class... Args>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::emplace\_back  | ( | Args &&...  | *args* | ) |  |

 | inline |

 
 Emplace a new point in the cloud, at the end of the container. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | args | the parameters to forward to the point to construct  |

   
Returns
reference to the emplaced point 
 Definition at line [686](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00686) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures()](https://pointclouds.org/documentation/multiscale__feature__persistence_8hpp_source.html#l00210).

    empty()
-------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::empty  | ( |  | ) |  const |

 | inline |

 
 Definition at line [446](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00446) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::applyMorphologicalOperator()](https://pointclouds.org/documentation/morphological__filter_8hpp_source.html#l00057), [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00088), [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191), [pcl::computeNDCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00841), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::common::CloudGenerator< pcl::PointXY, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00262), [pcl::common::CloudGenerator< PointT, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00151), [pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segmentAndRefine()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00277), [pcl::SupervoxelClustering< PointT >::setInputCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00067), [pcl::PCDWriter::writeASCII()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00447), [pcl::PCDWriter::writeBinary()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00111), and [pcl::PCDWriter::writeBinaryCompressed()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00243).

    end() [1/2]
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_iterator](classpcl_1_1_point_cloud#a8f665129bf87d862bcfbd61e3fe91ecf) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::end  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [432](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00432) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    end() [2/2]
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::end  | ( |  | ) |  |

 | inlinenoexcept |

 
 Definition at line [430](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00430) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeCovariances()](https://pointclouds.org/documentation/gicp_8hpp_source.html#l00051), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::common::deleteRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00222), [pcl::common::duplicateRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00138), [pcl::common::expandRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00084), [pcl::SupervoxelClustering< PointT >::getLabeledCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00579), [pcl::SupervoxelClustering< PointT >::getLabeledVoxelCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00557), [pcl::common::mirrorRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00195), [pcl::MovingLeastSquares< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00284), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), and [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349).

    erase() [1/2]
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::erase  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *first*,  |
|  |  | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *last* |
|  | ) |  |  |

 | inline |

 
 Erase a set of points given by a (first, last) iterator pair. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | first | where to start erasing points from  |
| [in] | last | where to stop erasing points from  |

   
Returns
returns the new position iterator 
 Definition at line [847](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00847) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    erase() [2/2]
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::erase  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position* | ) |  |

 | inline |

 
 Erase a point in the cloud. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | what data point to erase  |

   
Returns
returns the new position iterator 
 Definition at line [820](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00820) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::common::deleteCols()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00239), [pcl::common::deleteRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00222), and [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119).

    front() [1/2]
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::front  | ( |  | ) |  |

 | inline |

 
 Definition at line [536](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00536) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    front() [2/2]
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::front  | ( |  | ) |  const |

 | inline |

 
 Definition at line [535](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00535) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01109), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01121), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01096), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01084).

    getMatrixXfMap() [1/4]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getMatrixXfMap  | ( |  | ) |  |

 | inline |

 
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

 
Note
This method is for advanced users only! Use with care! 
 
Attention
PointT types are most of the time aligned, so the offsets are not continuous! 
 Definition at line [374](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00374) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    getMatrixXfMap() [2/4]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const Eigen::Map< Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getMatrixXfMap  | ( |  | ) |  const |

 | inline |

 
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

 
Note
This method is for advanced users only! Use with care! 
 
Attention
PointT types are most of the time aligned, so the offsets are not continuous! 
 Definition at line [386](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00386) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    getMatrixXfMap() [3/4]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| Eigen::Map<Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getMatrixXfMap  | ( | int  | *dim*,  |
|  |  | int  | *stride*,  |
|  |  | int  | *offset* |
|  | ) |  |  |

 | inline |

 
 Return an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf (assumes float values) mapped to the specified dimensions of the [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). 

 
Note
This method is for advanced users only! Use with care!
 
Attention
Compile time flags used for [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) might affect the dimension of the Eigen::Map returned. If [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) is using row major storage, the matrix shape would be (number of Points X elements in a Point) else the matrix shape would be (elements in a Point X number of Points). Essentially,* Major direction: number of points in cloud
* Minor direction: number of point dimensions By default, as of [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) 3.3, [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) uses Column major storage

 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | dim | the number of dimensions to consider for each point  |
| [in] | stride | the number of values in each point (will be the number of values that separate two of the columns)  |
| [in] | offset | the number of dimensions to skip from the beginning of each point (stride = offset + dim + x, where x is the number of dimensions to skip from the end of each point)  |

   
Note
for getting only XYZ coordinates out of [PointXYZ](structpcl_1_1_point_x_y_z "A point structure representing Euclidean xyz coordinates.") use dim=3, stride=4 and offset=0 due to the alignment. 
 
Attention
PointT types are most of the time aligned, so the offsets are not continuous! 
 Definition at line [333](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00333) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    getMatrixXfMap() [4/4]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const Eigen::Map<const Eigen::MatrixXf, Eigen::Aligned, Eigen::OuterStride<> > [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getMatrixXfMap  | ( | int  | *dim*,  |
|  |  | int  | *stride*,  |
|  |  | int  | *offset* |
|  | ) |  |  const |

 | inline |

 
 Return an [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) MatrixXf (assumes float values) mapped to the specified dimensions of the [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points."). 

 
Note
This method is for advanced users only! Use with care!
 
Attention
Compile time flags used for [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) might affect the dimension of the Eigen::Map returned. If [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) is using row major storage, the matrix shape would be (number of Points X elements in a Point) else the matrix shape would be (elements in a Point X number of Points). Essentially,* Major direction: number of points in cloud
* Minor direction: number of point dimensions By default, as of [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) 3.3, [Eigen](https://pointclouds.org/documentation/namespace_eigen.html) uses Column major storage

 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | dim | the number of dimensions to consider for each point  |
| [in] | stride | the number of values in each point (will be the number of values that separate two of the columns)  |
| [in] | offset | the number of dimensions to skip from the beginning of each point (stride = offset + dim + x, where x is the number of dimensions to skip from the end of each point)  |

   
Note
for getting only XYZ coordinates out of [PointXYZ](structpcl_1_1_point_x_y_z "A point structure representing Euclidean xyz coordinates.") use dim=3, stride=4 and offset=0 due to the alignment. 
 
Attention
PointT types are most of the time aligned, so the offsets are not continuous! 
 Definition at line [359](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00359) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    insert() [1/3]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::insert  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pt* |
|  | ) |  |  |

 | inline |

 
 Insert a new point in the cloud, given an iterator. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | where to insert the point  |
| [in] | pt | the point to insert  |

   
Returns
returns the new position iterator 
 Definition at line [713](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00713) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::common::duplicateColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00105), [pcl::common::duplicateRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00138), [pcl::common::expandColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00052), [pcl::common::expandRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00084), [pcl::common::mirrorColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00163), [pcl::common::mirrorRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00195), and [pcl::MovingLeastSquares< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00284).

    insert() [2/3]
--------------

    template<typename PointT >   template<class InputIterator >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::insert  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | InputIterator  | *first*,  |
|  |  | InputIterator  | *last* |
|  | ) |  |  |

 | inline |

 
 Insert a new range of points in the cloud, at a certain position. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | where to insert the data  |
| [in] | first | where to start inserting the points from  |
| [in] | last | where to stop inserting the points from  |

   Definition at line [767](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00767) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    insert() [3/3]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::insert  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | std::size\_t  | *n*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pt* |
|  | ) |  |  |

 | inline |

 
 Insert a new point in the cloud N times, given an iterator. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | where to insert the point  |
| [in] | n | the number of times to insert the point  |
| [in] | pt | the point to insert  |

   Definition at line [741](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00741) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    isOrganized()
-------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::isOrganized  | ( |  | ) |  const |

 | inline |

 
 Return whether a dataset is organized (e.g., arranged in a structured grid). 

 
Note
The height value must be different than 1 for a dataset to be organized. 
 Definition at line [310](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00310) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::ImageViewer::addMask()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00097), [pcl::HypothesisVerification< ModelT, SceneT >::addModels()](https://pointclouds.org/documentation/hypotheses__verification_8h_source.html#l00218), [pcl::visualization::ImageViewer::addPlanarPolygon()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00151), [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::visualization::ImageViewer::addRectangle()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00209), [pcl::common::deleteCols()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00239), [pcl::common::duplicateColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00105), [pcl::common::expandColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00052), [pcl::io::PointCloudImageExtractor< PointT >::extract()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00051), [pcl::common::mirrorColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00163), and [pcl::PCDGrabber< PointT >::publish()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00228).

    makeShared()
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::makeShared  | ( |  | ) |  const |

 | inline |

 
 Copy the cloud to the heap and return a smart pointer Note that deep copy is performed, so avoid using this function on non-empty clouds. 

 The changes of the returned cloud are not mirrored back to this one. 



Returns
shared pointer to the copy of the cloud 
 Definition at line [898](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00898) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::Edge< PointInT, PointOutT >::canny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00376), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::estimateFeatures()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l01231), and [pcl::Edge< PointInT, PointOutT >::sobelMagnitudeDirection()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00085).

    max\_size()
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::max\_size  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [444](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00444) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    operator()() [1/2]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::operator()  | ( | std::size\_t  | *column*,  |
|  |  | std::size\_t  | *row* |
|  | ) |  |  |

 | inline |

 
 Obtain the point given by the (column, row) coordinates. 

 Only works on organized datasets (those that have height != 1). 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | column | the column coordinate  |
| [in] | row | the row coordinate  |

   Definition at line [301](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00301) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    operator()() [2/2]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::operator()  | ( | std::size\_t  | *column*,  |
|  |  | std::size\_t  | *row* |
|  | ) |  |  const |

 | inline |

 
 Obtain the point given by the (column, row) coordinates. 

 Only works on organized datasets (those that have height != 1). 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | column | the column coordinate  |
| [in] | row | the row coordinate  |

   Definition at line [290](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00290) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    operator+()
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PointCloud](classpcl_1_1_point_cloud) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::operator+  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *rhs* | ) |  |

 | inline |

 
 Add a point cloud to another cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | rhs | the cloud to add to the current cloud  |

   
Returns
the new cloud as a concatenation of the current cloud and the new given cloud 
 Definition at line [225](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00225) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    operator+=()
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PointCloud](classpcl_1_1_point_cloud)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::operator+=  | ( | const [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *rhs* | ) |  |

 | inline |

 
 Add a point cloud to the current cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | rhs | the cloud to add to the current cloud  |

   
Returns
the new cloud as a concatenation of the current cloud and the new given cloud 
 Definition at line [214](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00214) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 References [pcl::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2io_8h_source.html#l00273).

    operator[]() [1/2]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::operator[]  | ( | std::size\_t  | *n* | ) |  |

 | inline |

 
 Definition at line [532](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00532) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    operator[]() [2/2]
------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| const [PointT](structpcl_1_1_point_x_y_z_r_g_b)& [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::operator[]  | ( | std::size\_t  | *n* | ) |  const |

 | inline |

 
 Definition at line [531](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00531) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    push\_back()
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::push\_back  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pt* | ) |  |

 | inline |

 
 Insert a new point in the cloud, at the end of the container. 

 
Note
This breaks the organized structure of the cloud by setting the height to 1! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | pt | the point to insert  |

   Definition at line [663](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01546), [pcl::MovingLeastSquares< PointInT, PointOutT >::addProjectedPointNormal()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00252), [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::approximatePolygon2D()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00080), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00273), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00093), [pcl::TSDFVolume< VoxelT, WeightT >::convertToTsdfCloud()](https://pointclouds.org/documentation/tsdf__volume_8hpp_source.html#l00158), [pcl::MarchingCubes< PointNT >::createSurface()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00081), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00304), [pcl::SmoothedSurfacesKeypoint< PointT, PointNT >::detectKeypoints()](https://pointclouds.org/documentation/smoothed__surfaces__keypoint_8hpp_source.html#l00071), [pcl::extractEuclideanClusters()](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00103), [pcl::gpu::extractEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__clusters_8hpp_source.html#l00057), [pcl::gpu::extractLabeledEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__labeled__clusters_8hpp_source.html#l00045), [pcl::UnaryClassifier< PointT >::getCloudWithLabel()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00167), [pcl::VoxelGridCovariance< PointT >::getDisplayCloud()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00445), [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::insertRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00465), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::PointCloudDepthAndRGBtoXYZRGBA()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00429), [pcl::PointCloudRGBtoI()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00301), [pcl::PointCloudXYZHSVtoXYZRGB()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00373), [pcl::PointCloudXYZRGBAtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00391), [pcl::PointCloudXYZRGBtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00355), [pcl::PointCloudXYZRGBtoXYZI()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00409), [pcl::OrganizedConnectedComponentSegmentation< PointT, PointLT >::segment()](https://pointclouds.org/documentation/organized__connected__component__segmentation_8hpp_source.html#l00118), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::setPointsToTrack()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00059), and [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::track()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00548).

    rbegin() [1/2]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::rbegin  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [437](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00437) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    rbegin() [2/2]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::rbegin  | ( |  | ) |  |

 | inlinenoexcept |

 
 Definition at line [435](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00435) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    rend() [1/2]
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [const\_reverse\_iterator](classpcl_1_1_point_cloud#a9bf24dc7a2f62f1db9fb55623e243bf1) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::rend  | ( |  | ) |  const |

 | inlinenoexcept |

 
 Definition at line [438](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00438) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    rend() [2/2]
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [reverse\_iterator](classpcl_1_1_point_cloud#a451c7f5b161dae231170c8408f431e79) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::rend  | ( |  | ) |  |

 | inlinenoexcept |

 
 Definition at line [436](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00436) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    reserve()
---------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::reserve  | ( | std::size\_t  | *n* | ) |  |

 | inline |

 
 Definition at line [445](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00445) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::approximatePolygon2D()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00080), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::computeTracking()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00713), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00137), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00356), [pcl::TSDFVolume< VoxelT, WeightT >::convertToTsdfCloud()](https://pointclouds.org/documentation/tsdf__volume_8hpp_source.html#l00158), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00160), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00304), [pcl::common::duplicateColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00105), [pcl::common::duplicateRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00138), [pcl::common::expandColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00052), [pcl::common::expandRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00084), [pcl::VoxelGridCovariance< PointT >::getDisplayCloud()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00445), [pcl::common::mirrorColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00163), [pcl::common::mirrorRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00195), [pcl::MarchingCubes< PointNT >::performReconstruction()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00218), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::setPointsToTrack()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00059), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), and [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349).

    resize() [1/4]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::resize  | ( | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *count*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *value* |
|  | ) |  |  |

 | inline |

 
 Resizes the container to contain count elements. 

 * If the current size is greater than `count`, the pointcloud is reduced to its first `count` elements
* If the current size is less than `count`, additional copies of `value` are appended 
Note
This potentially breaks the organized structure of the cloud by setting the height to 1 IFF `width * height != count`! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | count | new size of the point cloud  |
| [in] | value | the value to initialize the new points with  |

 Definition at line [502](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00502) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    resize() [2/4]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::resize  | ( | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *new\_width*,  |
|  |  | [index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *new\_height*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *value* |
|  | ) |  |  |

 | inline |

 
 Resizes the container to contain count elements. 

 * If the current size is greater then the requested size, the pointcloud is reduced to its first requested elements
* If the current size is less then the requested size, additional default-inserted points are appended 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | new\_width | new width of the point cloud  |
| [in] | new\_height | new height of the point cloud  |
| [in] | value | the value to initialize the new points with  |

 Definition at line [523](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00523) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    resize() [3/4]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::resize  | ( | std::size\_t  | *count* | ) |  |

 | inline |

 
 Resizes the container to contain `count` elements. 

 * If the current size is greater than `count`, the pointcloud is reduced to its first `count` elements
* If the current size is less than `count`, additional default-inserted points are appended 
Note
This potentially breaks the organized structure of the cloud by setting the height to 1 IFF `width * height != count`! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | count | new size of the point cloud  |

 Definition at line [462](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::Registration< PointSource, PointTarget, Scalar >::align()](https://pointclouds.org/documentation/registration_8hpp_source.html#l00173), [pcl::ApproximateVoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/approximate__voxel__grid_8hpp_source.html#l00065), [pcl::ConditionalRemoval< PointT >::applyFilter()](https://pointclouds.org/documentation/conditional__removal_8hpp_source.html#l00625), [pcl::ShadowPoints< PointT, NormalT >::applyFilter()](https://pointclouds.org/documentation/shadowpoints_8hpp_source.html#l00047), [pcl::UniformSampling< PointT >::applyFilter()](https://pointclouds.org/documentation/uniform__sampling_8hpp_source.html#l00046), [pcl::VoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00226), [pcl::approximatePolygon()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00044), [pcl::Edge< PointInT, PointOutT >::canny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00376), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::cleanUp()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00296), [pcl::OrganizedEdgeBase< PointT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00052), [pcl::OrganizedEdgeFromRGB< PointT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00226), [pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00274), [pcl::OrganizedEdgeFromRGBNormals< PointT, PointNT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00332), [pcl::DisparityMapConverter< PointT >::compute()](https://pointclouds.org/documentation/disparity__map__converter_8hpp_source.html#l00246), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::compute()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00053), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065), [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00446), [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::NormalBasedSignatureEstimation< PointT, PointNT, PointFeature >::computeFeature()](https://pointclouds.org/documentation/normal__based__signature_8hpp_source.html#l00046), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00080), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::LineRGBD< PointXYZT, PointRGBT >::computeTransformedTemplatePoints()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00600), [pcl::concatenateFields()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303), [pcl::filters::Convolution3D< PointIn, PointOut, KernelT >::convolve()](https://pointclouds.org/documentation/convolution__3d_8hpp_source.html#l00232), [pcl::GaussianKernel::convolveCols()](https://pointclouds.org/documentation/gaussian_8hpp_source.html#l00081), [pcl::GaussianKernel::convolveRows()](https://pointclouds.org/documentation/gaussian_8hpp_source.html#l00048), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), [pcl::Edge< PointInT, PointOutT >::detectEdgeCanny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00312), [pcl::Edge< PointInT, PointOutT >::detectEdgePrewitt()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00126), [pcl::Edge< PointInT, PointOutT >::detectEdgeSobel()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00048), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::Morphology< PointT >::dilationBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00098), [pcl::Morphology< PointT >::dilationGray()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00206), [pcl::Morphology< PointT >::erosionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00047), [pcl::Morphology< PointT >::erosionGray()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00164), [pcl::OrganizedEdgeFromRGB< PointT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00242), [pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00290), [pcl::common::CloudGenerator< pcl::PointXY, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00262), [pcl::common::CloudGenerator< PointT, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00151), [pcl::fromPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00167), [pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >::getFitness()](https://pointclouds.org/documentation/sample__consensus__prerejective_8hpp_source.html#l00307), [pcl::filters::Convolution< PointIn, PointOut >::initCompute()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2impl_2convolution_8hpp_source.html#l00064), [pcl::Morphology< PointT >::intersectionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00309), [pcl::isPointIn2DPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00048), [pcl::SupervoxelClustering< PointT >::makeSupervoxelNormalCloud()](https://pointclouds.org/documentation/supervoxel__clustering_8hpp_source.html#l00606), [pcl::search::Search< PointT >::nearestKSearchT()](https://pointclouds.org/documentation/search_8h_source.html#l00229), [pcl::BilateralUpsampling< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00088), [pcl::GridProjection< PointNT >::performReconstruction()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00717), [pcl::Poisson< PointNT >::performReconstruction()](https://pointclouds.org/documentation/poisson_8hpp_source.html#l00164), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::ConvexHull< PointInT >::performReconstruction3D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00292), [pcl::ColorGradientModality< PointInT >::processInputData()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00340), [pcl::SampleConsensusModelCircle2D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle_8hpp_source.html#l00355), [pcl::SampleConsensusModelCircle3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle3d_8hpp_source.html#l00312), [pcl::SampleConsensusModelCone< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00366), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00321), [pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__ellipse3d_8hpp_source.html#l00486), [pcl::SampleConsensusModelLine< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00249), [pcl::SampleConsensusModelPlane< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00396), [pcl::SampleConsensusModelSphere< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__sphere_8hpp_source.html#l00369), [pcl::SampleConsensusModelStick< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00295), [pcl::search::Search< PointT >::radiusSearchT()](https://pointclouds.org/documentation/search_8h_source.html#l00368), [pcl::io::LZFDepth16ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00061), [pcl::io::LZFRGB24ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00207), [pcl::io::LZFYUV422ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00312), [pcl::io::LZFBayer8ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00436), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::io::LZFRGB24ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00256), [pcl::io::LZFYUV422ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00370), [pcl::io::LZFBayer8ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00486), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::OrganizedConnectedComponentSegmentation< PointT, PointLT >::segment()](https://pointclouds.org/documentation/organized__connected__component__segmentation_8hpp_source.html#l00118), [pcl::ExtractPolygonalPrismData< PointT >::segment()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00149), [pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segment()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00196), [pcl::OrganizedMultiPlaneSegmentation< pcl::PointXYZRGBA, pcl::Normal, pcl::Label >::segmentAndRefine()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00233), [pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segmentAndRefine()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00277), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::setPointsToTrack()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00059), [pcl::Edge< PointInT, PointOutT >::sobelMagnitudeDirection()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00085), [pcl::Morphology< PointT >::subtractionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00269), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::Morphology< PointT >::unionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00289), [pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::validateTransformation()](https://pointclouds.org/documentation/transformation__validation__euclidean_8hpp_source.html#l00051), [pcl::io::vtkPolyDataToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00071), and [pcl::io::vtkStructuredGridToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00160).

    resize() [4/4]
--------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::resize  | ( | [uindex\_t](https://pointclouds.org/documentation/namespacepcl.html#a1b98b7f9535916d9dffec6d425d2eed9) | *new\_width*,  |
|  |  | [uindex\_t](https://pointclouds.org/documentation/namespacepcl.html#a1b98b7f9535916d9dffec6d425d2eed9) | *new\_height* |
|  | ) |  |  |

 | inline |

 
 Resizes the container to contain `new_width * new_height` elements. 

 * If the current size is greater than the requested size, the pointcloud is reduced to its first requested elements
* If the current size is less then the requested size, additional default-inserted points are appended 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | new\_width | new width of the point cloud  |
| [in] | new\_height | new height of the point cloud  |

 Definition at line [482](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00482) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    size()
------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::size  | ( |  | ) |  const |

 | inline |

 
 Definition at line [443](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLHistogramVisualizer::addFeatureHistogram()](https://pointclouds.org/documentation/histogram__visualizer_8hpp_source.html#l00086), [pcl::visualization::PCLPlotter::addFeatureHistogram()](https://pointclouds.org/documentation/pcl__plotter_8hpp_source.html#l00069), [pcl::visualization::ImageViewer::addMask()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00097), [pcl::visualization::PCLVisualizer::addPointCloudIntensityGradients()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01097), [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::visualization::PCLVisualizer::addPointCloudPrincipalCurvatures()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00993), [pcl::visualization::PCLVisualizer::addPolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01624), [pcl::visualization::ImageViewer::addRectangle()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00290), [pcl::LineRGBD< PointXYZT, PointRGBT >::addTemplate()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00318), [pcl::recognition::TrimmedICP< PointT, Scalar >::align()](https://pointclouds.org/documentation/ransac__based_2trimmed__icp_8h_source.html#l00098), [pcl::ApproximateVoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/approximate__voxel__grid_8hpp_source.html#l00065), [pcl::FastBilateralFilterOMP< PointT >::applyFilter()](https://pointclouds.org/documentation/fast__bilateral__omp_8hpp_source.html#l00062), [pcl::SamplingSurfaceNormal< PointT >::applyFilter()](https://pointclouds.org/documentation/sampling__surface__normal_8hpp_source.html#l00049), [pcl::ShadowPoints< PointT, NormalT >::applyFilter()](https://pointclouds.org/documentation/shadowpoints_8hpp_source.html#l00047), [pcl::UniformSampling< PointT >::applyFilter()](https://pointclouds.org/documentation/uniform__sampling_8hpp_source.html#l00046), [pcl::VoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00226), [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::applyMorphologicalOperator()](https://pointclouds.org/documentation/morphological__filter_8hpp_source.html#l00057), [pcl::approximatePolygon()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00044), [pcl::approximatePolygon2D()](https://pointclouds.org/documentation/polygon__operations_8hpp_source.html#l00080), [pcl::UnaryClassifier< PointT >::assignLabels()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00327), [pcl::calculatePolygonArea()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00414), [pcl::PlaneClipper3D< PointT >::clipPointCloud3D()](https://pointclouds.org/documentation/plane__clipper3_d_8hpp_source.html#l00175), [pcl::BoxClipper3D< PointT >::clipPointCloud3D()](https://pointclouds.org/documentation/box__clipper3_d_8hpp_source.html#l00198), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00446), [pcl::features::computeApproximateCovariances()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00063), [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191), [pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::computeCovariances()](https://pointclouds.org/documentation/gicp_8hpp_source.html#l00051), [pcl::ESFEstimation< PointInT, PointOutT >::computeESF()](https://pointclouds.org/documentation/esf_8hpp_source.html#l00052), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00080), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00248), [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), [pcl::computeNDCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00841), [pcl::computePointNormal()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00061), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::LineRGBD< PointXYZT, PointRGBT >::computeTransformedTemplatePoints()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00600), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::concatenateFields()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00273), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00093), [pcl::UnaryClassifier< PointT >::convertCloud()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00086), [pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::convertTsdfVectors()](https://pointclouds.org/documentation/standalone__marching__cubes_8hpp_source.html#l00189), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::detail::copyPointCloudMemcpy()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00122), [pcl::LineRGBD< PointXYZT, PointRGBT >::createAndAddTemplate()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00223), [pcl::visualization::createPolygon()](https://pointclouds.org/documentation/shapes_8hpp_source.html#l00054), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::derivatives()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00171), [pcl::Edge< PointInT, PointOutT >::detectEdgePrewitt()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00126), [pcl::Edge< PointInT, PointOutT >::detectEdgeSobel()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00048), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00238), [pcl::SIFTKeypoint< PointInT, PointOutT >::detectKeypoints()](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html#l00098), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00304), [pcl::SmoothedSurfacesKeypoint< PointT, PointNT >::detectKeypoints()](https://pointclouds.org/documentation/smoothed__surfaces__keypoint_8hpp_source.html#l00071), [pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures()](https://pointclouds.org/documentation/multiscale__feature__persistence_8hpp_source.html#l00210), [pcl::registration::TransformationEstimationLM< PointSource, PointTarget, float >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__lm_8hpp_source.html#l00124), [pcl::registration::TransformationEstimation2D< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__2_d_8hpp_source.html#l00048), [pcl::registration::TransformationEstimationDQ< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__dq_8hpp_source.html#l00056), [pcl::registration::TransformationEstimationPointToPlaneLLSWeighted< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__point__to__plane__lls__weighted_8hpp_source.html#l00052), [pcl::registration::TransformationEstimationPointToPlaneWeighted< PointSource, PointTarget, MatScalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__point__to__plane__weighted_8hpp_source.html#l00066), [pcl::registration::TransformationEstimation3Point< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__3point_8hpp_source.html#l00047), [pcl::registration::TransformationEstimationDualQuaternion< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__dual__quaternion_8hpp_source.html#l00054), [pcl::registration::TransformationEstimationLM< PointSource, PointTarget, MatScalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__lm_8hpp_source.html#l00061), [pcl::registration::TransformationEstimationPointToPlaneLLS< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__point__to__plane__lls_8hpp_source.html#l00053), [pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__svd_8hpp_source.html#l00053), [pcl::registration::TransformationEstimationSVD< PointSource, PointTarget, float >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__svd_8hpp_source.html#l00053), [pcl::registration::TransformationEstimationSymmetricPointToPlaneLLS< PointSource, PointTarget, Scalar >::estimateRigidTransformation()](https://pointclouds.org/documentation/transformation__estimation__symmetric__point__to__plane__lls_8hpp_source.html#l00049), [pcl::io::PointCloudImageExtractor< PointT >::extract()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00051), [pcl::extractEuclideanClusters()](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00103), [pcl::gpu::extractEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__clusters_8hpp_source.html#l00057), [pcl::io::PointCloudImageExtractorWithScaling< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00245), [pcl::io::PointCloudImageExtractorFromNormalField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00072), [pcl::io::PointCloudImageExtractorFromRGBField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00108), [pcl::io::PointCloudImageExtractorFromLabelField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00140), [pcl::extractLabeledEuclideanClusters()](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html#l00064), [pcl::gpu::extractLabeledEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__labeled__clusters_8hpp_source.html#l00045), [pcl::occlusion\_reasoning::ZBuffering< ModelT, SceneT >::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8hpp_source.html#l00077), [pcl::occlusion\_reasoning::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00072), [pcl::CVFHEstimation< PointInT, PointNT, PointOutT >::filterNormalsWithHighCurvature()](https://pointclouds.org/documentation/cvfh_8hpp_source.html#l00160), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::filterNormalsWithHighCurvature()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00168), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::findObjects()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00752), [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057), [pcl::getApproximateIndices()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html#l00047), [pcl::UnaryClassifier< PointT >::getCloudWithLabel()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00167), [pcl::features::ISMVoteList< PointT >::getColoredCloud()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00088), [pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >::getFitness()](https://pointclouds.org/documentation/sample__consensus__prerejective_8hpp_source.html#l00307), [pcl::getMaxDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197), [pcl::getMaxSegment()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html#l00106), [pcl::getMeanPointDensity()](https://pointclouds.org/documentation/ia__fpcs_8hpp_source.html#l00053), [pcl::occlusion\_reasoning::getOccludedCloud()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00163), [pcl::getPointCloudDifference()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00050), [pcl::getPointsInBox()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00154), [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::insertRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00465), [pcl::Morphology< PointT >::intersectionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00309), [pcl::isPointIn2DPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00048), [pcl::isXYPointIn2DXYPolygon()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00108), [pcl::UnaryClassifier< PointT >::kmeansClustering()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00231), [pcl::LineRGBD< PointXYZT, PointRGBT >::loadTemplates()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00077), [pcl::VoxelGridCovariance< PointT >::nearestKSearch()](https://pointclouds.org/documentation/voxel__grid__covariance_8h_source.html#l00494), [pcl::KdTree< PointT >::nearestKSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00155), [pcl::search::Search< PointT >::nearestKSearchT()](https://pointclouds.org/documentation/search_8h_source.html#l00229), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::MovingLeastSquares< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00284), [pcl::MarchingCubes< PointNT >::performReconstruction()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00218), [pcl::GridProjection< PointNT >::performReconstruction()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00717), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::ConvexHull< PointInT >::performReconstruction3D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00292), [pcl::PointCloud< PointT >::PointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00185), [pcl::io::pointCloudTovtkPolyData()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00286), [pcl::MovingLeastSquares< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00061), [pcl::SampleConsensusModelCircle2D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle_8hpp_source.html#l00355), [pcl::SampleConsensusModelCircle3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle3d_8hpp_source.html#l00312), [pcl::SampleConsensusModelCone< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00366), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00321), [pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__ellipse3d_8hpp_source.html#l00486), [pcl::SampleConsensusModelLine< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00249), [pcl::SampleConsensusModelStick< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00295), [pcl::UnaryClassifier< PointT >::queryFeatureDistances()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00270), [pcl::search::Search< PointT >::radiusSearch()](https://pointclouds.org/documentation/search_8hpp_source.html#l00136), [pcl::KdTree< PointT >::radiusSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00243), [pcl::VoxelGridCovariance< PointT >::radiusSearch()](https://pointclouds.org/documentation/voxel__grid__covariance_8h_source.html#l00554), [pcl::search::Search< PointT >::radiusSearchT()](https://pointclouds.org/documentation/search_8h_source.html#l00368), [pcl::io::LZFRGB24ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00207), [pcl::io::LZFBayer8ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00436), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::io::LZFRGB24ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00256), [pcl::io::LZFBayer8ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00486), [pcl::ConcaveHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00059), [pcl::ConvexHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00440), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::search::Search< PointInT >::Search()](https://pointclouds.org/documentation/search_8hpp_source.html#l00045), [pcl::seededHueSegmentation()](https://pointclouds.org/documentation/seeded__hue__segmentation_8hpp_source.html#l00049), [pcl::ExtractPolygonalPrismData< PointT >::segment()](https://pointclouds.org/documentation/extract__polygonal__prism__data_8hpp_source.html#l00149), [pcl::SampleConsensusPrerejective< PointSource, PointTarget, FeatureT >::selectSamples()](https://pointclouds.org/documentation/sample__consensus__prerejective_8hpp_source.html#l00077), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setEdgeDataCloud()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01033), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFaceDataCloud()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01067), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdgeDataCloud()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00999), [pcl::search::Search< PointInT >::setInputCloud()](https://pointclouds.org/documentation/search_8hpp_source.html#l00075), [pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::setInputSource()](https://pointclouds.org/documentation/gicp_8h_source.html#l00145), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::setPointsToTrack()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00059), [pcl::poisson::Octree< Degree >::setTree()](https://pointclouds.org/documentation/multi__grid__octree__data_8hpp_source.html#l00763), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setVertexDataCloud()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00964), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::simplifyCloud()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l01115), [pcl::Edge< PointInT, PointOutT >::sobelMagnitudeDirection()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00085), [pcl::Morphology< PointT >::subtractionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00269), [pcl::toPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00240), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::track()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00548), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::Morphology< PointT >::unionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00289), [pcl::visualization::PCLHistogramVisualizer::updateFeatureHistogram()](https://pointclouds.org/documentation/histogram__visualizer_8hpp_source.html#l00170), [pcl::visualization::PCLVisualizer::updatePolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01773), [pcl::registration::KFPCSInitialAlignment< PointSource, PointTarget, NormalT, Scalar >::validateTransformation()](https://pointclouds.org/documentation/ia__kfpcs_8hpp_source.html#l00146), [pcl::io::vtkPolyDataToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00071), [pcl::PCDWriter::writeASCII()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00447), [pcl::PCDWriter::writeBinary()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00111), and [pcl::PCDWriter::writeBinaryCompressed()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00243).

    swap()
------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::swap  | ( | [PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > &  | *rhs* | ) |  |

 | inline |

 
 Swap a point cloud with another cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in,out] | rhs | point cloud to swap this with  |

   Definition at line [872](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 References [pcl::PointCloud< PointT >::header](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392), [pcl::PointCloud< PointT >::height](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [pcl::PointCloud< PointT >::sensor\_orientation\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408), [pcl::PointCloud< PointT >::sensor\_origin\_](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406), and [pcl::PointCloud< PointT >::width](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398).

 Referenced by [pcl::applyMorphologicalOperator()](https://pointclouds.org/documentation/morphological__filter_8hpp_source.html#l00057), and [pcl::MarchingCubes< PointNT >::performReconstruction()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00218).

    transient\_emplace()
--------------------

    template<typename PointT >   template<class... Args>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_emplace  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | Args &&...  | *args* |
|  | ) |  |  |

 | inline |

 
 Emplace a new point in the cloud, given an iterator. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | iterator before which the point will be emplaced  |
| [in] | args | the parameters to forward to the point to construct  |

   
Returns
returns the new position iterator 
 Definition at line [808](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00808) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_emplace\_back()
--------------------------

    template<typename PointT >   template<class... Args>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [reference](classpcl_1_1_point_cloud#a659b0790149998f837284c41172c2aa7) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_emplace\_back  | ( | Args &&...  | *args* | ) |  |

 | inline |

 
 Emplace a new point in the cloud, at the end of the container. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | args | the parameters to forward to the point to construct  |

   
Returns
reference to the emplaced point 
 Definition at line [700](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00700) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_erase() [1/2]
------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_erase  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *first*,  |
|  |  | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *last* |
|  | ) |  |  |

 | inline |

 
 Erase a set of points given by a (first, last) iterator pair. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | first | where to start erasing points from  |
| [in] | last | where to stop erasing points from  |

   
Returns
returns the new position iterator 
 Definition at line [862](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00862) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_erase() [2/2]
------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_erase  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position* | ) |  |

 | inline |

 
 Erase a point in the cloud. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | what data point to erase  |

   
Returns
returns the new position iterator 
 Definition at line [834](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00834) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_insert() [1/3]
-------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_insert  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pt* |
|  | ) |  |  |

 | inline |

 
 Insert a new point in the cloud, given an iterator. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | where to insert the point  |
| [in] | pt | the point to insert  |

   
Returns
returns the new position iterator 
 Definition at line [728](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00728) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_insert() [2/3]
-------------------------

    template<typename PointT >   template<class InputIterator >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_insert  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | InputIterator  | *first*,  |
|  |  | InputIterator  | *last* |
|  | ) |  |  |

 | inline |

 
 Insert a new range of points in the cloud, at a certain position. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | where to insert the data  |
| [in] | first | where to start inserting the points from  |
| [in] | last | where to stop inserting the points from  |

   Definition at line [781](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00781) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_insert() [3/3]
-------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_insert  | ( | [iterator](classpcl_1_1_point_cloud#a5a263d415a6c9cecd3339a747784859b) | *position*,  |
|  |  | std::size\_t  | *n*,  |
|  |  | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pt* |
|  | ) |  |  |

 | inline |

 
 Insert a new point in the cloud N times, given an iterator. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | position | where to insert the point  |
| [in] | n | the number of times to insert the point  |
| [in] | pt | the point to insert  |

   Definition at line [755](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00755) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

    transient\_push\_back()
-----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::transient\_push\_back  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *pt* | ) |  |

 | inline |

 
 Insert a new point in the cloud, at the end of the container. 

 
Note
This assumes the user would correct the width and height later on! 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | pt | the point to insert  |

   Definition at line [675](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00675) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00160).

   Member Data Documentation
-------------------------

  header
------

    template<typename PointT >  

|  |
| --- |
| [pcl::PCLHeader](structpcl_1_1_p_c_l_header) [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::header |

 
 The point cloud header. 

 It contains information about the acquisition time. 

 Definition at line [392](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00392) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::Registration< PointSource, PointTarget, Scalar >::align()](https://pointclouds.org/documentation/registration_8hpp_source.html#l00173), [pcl::ConditionalRemoval< PointT >::applyFilter()](https://pointclouds.org/documentation/conditional__removal_8hpp_source.html#l00625), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::compute()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065), [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::concatenateFields()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00713), [pcl::SmoothedSurfacesKeypoint< PointT, PointNT >::detectKeypoints()](https://pointclouds.org/documentation/smoothed__surfaces__keypoint_8hpp_source.html#l00071), [pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures()](https://pointclouds.org/documentation/multiscale__feature__persistence_8hpp_source.html#l00210), [pcl::extractEuclideanClusters()](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00103), [pcl::gpu::extractEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__clusters_8hpp_source.html#l00057), [pcl::extractLabeledEuclideanClusters()](https://pointclouds.org/documentation/extract__labeled__clusters_8hpp_source.html#l00064), [pcl::gpu::extractLabeledEuclideanClusters()](https://pointclouds.org/documentation/gpu__extract__labeled__clusters_8hpp_source.html#l00045), [pcl::Filter< PointT >::filter()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2filter_8h_source.html#l00121), [pcl::fromPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00167), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::BilateralUpsampling< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00088), [pcl::GridProjection< PointNT >::performReconstruction()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00743), [pcl::CloudSurfaceProcessing< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/processing_8hpp_source.html#l00047), [pcl::BilateralUpsampling< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00050), [pcl::MovingLeastSquares< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00061), [pcl::SampleConsensusModelCircle2D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle_8hpp_source.html#l00355), [pcl::SampleConsensusModelCircle3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle3d_8hpp_source.html#l00312), [pcl::SampleConsensusModelCone< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00366), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00321), [pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__ellipse3d_8hpp_source.html#l00486), [pcl::SampleConsensusModelLine< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00249), [pcl::SampleConsensusModelPlane< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00396), [pcl::SampleConsensusModelSphere< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__sphere_8hpp_source.html#l00369), [pcl::SampleConsensusModelStick< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00295), [pcl::SurfaceReconstruction< PointInT >::reconstruct()](https://pointclouds.org/documentation/reconstruction_8hpp_source.html#l00092), [pcl::ConcaveHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00059), [pcl::ConvexHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00440), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::SegmentDifferences< PointT >::segment()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00091), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::toPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00240), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), and [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349).

    height
------

    template<typename PointT >  

|  |
| --- |
| std::uint32\_t [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::height = 0 |

 
 The point cloud height (if organized as an image-structure). 

 Definition at line [400](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00400) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::ImageViewer::addMask()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00097), [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::visualization::ImageViewer::addRectangle()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00209), [pcl::visualization::ImageViewer::addRGBImage()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00070), [pcl::Registration< PointSource, PointTarget, Scalar >::align()](https://pointclouds.org/documentation/registration_8hpp_source.html#l00173), [pcl::ApproximateVoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/approximate__voxel__grid_8hpp_source.html#l00065), [pcl::ConditionalRemoval< PointT >::applyFilter()](https://pointclouds.org/documentation/conditional__removal_8hpp_source.html#l00625), [pcl::GridMinimum< PointT >::applyFilter()](https://pointclouds.org/documentation/grid__minimum_8hpp_source.html#l00061), [pcl::LocalMaximum< PointT >::applyFilter()](https://pointclouds.org/documentation/local__maximum_8hpp_source.html#l00054), [pcl::MedianFilter< PointT >::applyFilter()](https://pointclouds.org/documentation/median__filter_8hpp_source.html#l00046), [pcl::ProjectInliers< PointT >::applyFilter()](https://pointclouds.org/documentation/project__inliers_8hpp_source.html#l00057), [pcl::SamplingSurfaceNormal< PointT >::applyFilter()](https://pointclouds.org/documentation/sampling__surface__normal_8hpp_source.html#l00049), [pcl::ShadowPoints< PointT, NormalT >::applyFilter()](https://pointclouds.org/documentation/shadowpoints_8hpp_source.html#l00047), [pcl::UniformSampling< PointT >::applyFilter()](https://pointclouds.org/documentation/uniform__sampling_8hpp_source.html#l00046), [pcl::VoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00226), [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::LineRGBD< PointXYZT, PointRGBT >::applyProjectiveDepthICPOnDetections()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00727), [pcl::Edge< PointInT, PointOutT >::canny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00376), [pcl::OrganizedEdgeBase< PointT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00052), [pcl::OrganizedEdgeFromRGB< PointT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00226), [pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00274), [pcl::OrganizedEdgeFromRGBNormals< PointT, PointNT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00332), [pcl::DisparityMapConverter< PointT >::compute()](https://pointclouds.org/documentation/disparity__map__converter_8hpp_source.html#l00246), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::compute()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00053), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065), [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00446), [pcl::filters::Pyramid< PointT >::compute()](https://pointclouds.org/documentation/pyramid_8hpp_source.html#l00100), [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00080), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::IntensitySpinEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html#l00110), [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rift_8hpp_source.html#l00113), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00248), [pcl::ColorGradientModality< PointInT >::computeMaxColorGradients()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00746), [pcl::ColorGradientModality< PointInT >::computeMaxColorGradientsSobel()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00833), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::LineRGBD< PointXYZT, PointRGBT >::computeTransformedTemplatePoints()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00600), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::concatenateFields()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00137), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00356), [pcl::UnaryClassifier< PointT >::convertCloud()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00086), [pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::convertTrianglesToMesh()](https://pointclouds.org/documentation/standalone__marching__cubes_8hpp_source.html#l00218), [pcl::GaussianKernel::convolve()](https://pointclouds.org/documentation/gaussian_8h_source.html#l00149), [pcl::filters::Convolution3D< PointIn, PointOut, KernelT >::convolve()](https://pointclouds.org/documentation/convolution__3d_8hpp_source.html#l00232), [pcl::GaussianKernel::convolveCols()](https://pointclouds.org/documentation/gaussian_8hpp_source.html#l00081), [pcl::GaussianKernel::convolveRows()](https://pointclouds.org/documentation/gaussian_8hpp_source.html#l00048), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::common::deleteCols()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00239), [pcl::common::deleteRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00222), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::derivatives()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00171), [pcl::Edge< ImageType, ImageType >::detectEdgeCanny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00312), [pcl::Edge< PointInT, PointOutT >::detectEdgeCanny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00312), [pcl::Edge< PointInT, PointOutT >::detectEdgePrewitt()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00126), [pcl::Edge< ImageType, ImageType >::detectEdgeRoberts()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00164), [pcl::Edge< PointInT, PointOutT >::detectEdgeSobel()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00048), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00304), [pcl::SmoothedSurfacesKeypoint< PointT, PointNT >::detectKeypoints()](https://pointclouds.org/documentation/smoothed__surfaces__keypoint_8hpp_source.html#l00071), [pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures()](https://pointclouds.org/documentation/multiscale__feature__persistence_8hpp_source.html#l00210), [pcl::Morphology< PointT >::dilationBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00098), [pcl::Morphology< PointT >::dilationGray()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00206), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::downsample()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00235), [pcl::common::duplicateColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00105), [pcl::common::duplicateRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00138), [pcl::Morphology< PointT >::erosionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00047), [pcl::Morphology< PointT >::erosionGray()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00164), [pcl::estimateProjectionMatrix()](https://pointclouds.org/documentation/projection__matrix_8hpp_source.html#l00083), [pcl::common::expandColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00052), [pcl::common::expandRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00084), [pcl::io::PointCloudImageExtractor< PointT >::extract()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00051), [pcl::OrganizedEdgeFromRGB< PointT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00242), [pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00290), [pcl::io::PointCloudImageExtractorWithScaling< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00245), [pcl::io::PointCloudImageExtractorFromNormalField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00072), [pcl::io::PointCloudImageExtractorFromRGBField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00108), [pcl::io::PointCloudImageExtractorFromLabelField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00140), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::extractRGBFromPointCloud()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00222), [pcl::common::CloudGenerator< pcl::PointXY, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00255), [pcl::common::CloudGenerator< PointT, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00144), [pcl::occlusion\_reasoning::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00072), [pcl::fromPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00167), [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057), [pcl::UnaryClassifier< PointT >::getCloudWithLabel()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00167), [pcl::MinCutSegmentation< PointT >::getColoredCloud()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00561), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloud()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00631), [pcl::features::ISMVoteList< PointT >::getColoredCloud()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00088), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloudRGBA()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00681), [pcl::occlusion\_reasoning::getOccludedCloud()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00163), [pcl::RFFaceDetectorTrainer::getVotes()](https://pointclouds.org/documentation/rf__face__detector__trainer_8h_source.html#l00154), [pcl::RFFaceDetectorTrainer::getVotes2()](https://pointclouds.org/documentation/rf__face__detector__trainer_8h_source.html#l00185), [pcl::filters::Convolution< PointIn, PointOut >::initCompute()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2impl_2convolution_8hpp_source.html#l00064), [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::insertRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00465), [pcl::Morphology< PointT >::intersectionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00309), [pcl::UnaryClassifier< PointT >::kmeansClustering()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00231), [pcl::common::mirrorColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00163), [pcl::common::mirrorRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00195), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::BilateralUpsampling< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00088), [pcl::GridProjection< PointNT >::performReconstruction()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00717), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::ConvexHull< PointInT >::performReconstruction3D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00292), [pcl::PointCloudDepthAndRGBtoXYZRGBA()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00429), [pcl::PointCloudRGBtoI()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00301), [pcl::io::pointCloudTovtkStructuredGrid()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00394), [pcl::PointCloudXYZHSVtoXYZRGB()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00373), [pcl::PointCloudXYZRGBAtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00391), [pcl::PointCloudXYZRGBtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00355), [pcl::PointCloudXYZRGBtoXYZI()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00409), [pcl::CloudSurfaceProcessing< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/processing_8hpp_source.html#l00047), [pcl::BilateralUpsampling< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00050), [pcl::MovingLeastSquares< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00061), [pcl::ColorGradientModality< PointInT >::processInputData()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00340), [pcl::SampleConsensusModelCircle2D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle_8hpp_source.html#l00355), [pcl::SampleConsensusModelCircle3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle3d_8hpp_source.html#l00312), [pcl::SampleConsensusModelCone< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00366), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00321), [pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__ellipse3d_8hpp_source.html#l00486), [pcl::SampleConsensusModelLine< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00249), [pcl::SampleConsensusModelPlane< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00396), [pcl::SampleConsensusModelSphere< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__sphere_8hpp_source.html#l00369), [pcl::SampleConsensusModelStick< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00295), [pcl::PCDGrabber< PointT >::publish()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00228), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l01370), [pcl::io::LZFDepth16ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00061), [pcl::io::LZFRGB24ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00207), [pcl::io::LZFYUV422ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00312), [pcl::io::LZFBayer8ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00436), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::io::LZFRGB24ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00256), [pcl::io::LZFYUV422ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00370), [pcl::io::LZFBayer8ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00486), [pcl::SurfaceReconstruction< PointInT >::reconstruct()](https://pointclouds.org/documentation/reconstruction_8hpp_source.html#l00092), [pcl::ConcaveHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00059), [pcl::ConvexHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00440), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::OrganizedConnectedComponentSegmentation< PointT, PointLT >::segment()](https://pointclouds.org/documentation/organized__connected__component__segmentation_8hpp_source.html#l00118), [pcl::SegmentDifferences< PointT >::segment()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00091), [pcl::visualization::ImageViewer::showCorrespondences()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00352), [pcl::Edge< PointInT, PointOutT >::sobelMagnitudeDirection()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00085), [pcl::Morphology< PointT >::subtractionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00269), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::swapDimensions()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00243), [pcl::toPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00240), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::track()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00548), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::Morphology< PointT >::unionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00289), [pcl::io::vtkPolyDataToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00071), [pcl::io::vtkStructuredGridToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00160), and [pcl::PCDWriter::writeASCII()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00447).

    is\_dense
---------

    template<typename PointT >  

|  |
| --- |
| bool [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::is\_dense = true |

 
 True if no points are invalid (e.g., have NaN or Inf values in any of their floating point fields). 

 Definition at line [403](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLVisualizer::addPolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01624), [pcl::Registration< PointSource, PointTarget, Scalar >::align()](https://pointclouds.org/documentation/registration_8hpp_source.html#l00173), [pcl::ApproximateVoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/approximate__voxel__grid_8hpp_source.html#l00065), [pcl::ConditionalRemoval< PointT >::applyFilter()](https://pointclouds.org/documentation/conditional__removal_8hpp_source.html#l00625), [pcl::ExtractIndices< PointT >::applyFilter()](https://pointclouds.org/documentation/extract__indices_8hpp_source.html#l00079), [pcl::FilterIndices< PointT >::applyFilter()](https://pointclouds.org/documentation/filter__indices_8hpp_source.html#l00077), [pcl::GridMinimum< PointT >::applyFilter()](https://pointclouds.org/documentation/grid__minimum_8hpp_source.html#l00061), [pcl::LocalMaximum< PointT >::applyFilter()](https://pointclouds.org/documentation/local__maximum_8hpp_source.html#l00054), [pcl::UniformSampling< PointT >::applyFilter()](https://pointclouds.org/documentation/uniform__sampling_8hpp_source.html#l00046), [pcl::VoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00226), [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::compute()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065), [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00446), [pcl::compute3DCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00088), [pcl::computeCentroid()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00917), [pcl::computeCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00191), [pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >::computeFeature()](https://pointclouds.org/documentation/shot_8hpp_source.html#l00743), [pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::computeFeature()](https://pointclouds.org/documentation/shot_8hpp_source.html#l00810), [pcl::FPFHEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/fpfh_8hpp_source.html#l00238), [pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >::computeFeature()](https://pointclouds.org/documentation/intensity__gradient_8hpp_source.html#l00143), [pcl::IntensitySpinEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html#l00110), [pcl::MomentInvariantsEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html#l00116), [pcl::NormalEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/normal__3d_8hpp_source.html#l00048), [pcl::PFHEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/pfh_8hpp_source.html#l00167), [pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/principal__curvatures_8hpp_source.html#l00115), [pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::computeFeature()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00140), [pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >::computeFeature()](https://pointclouds.org/documentation/shot__omp_8hpp_source.html#l00223), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeatureFull()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00836), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeaturePart()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l01023), [pcl::computeMeanAndCovarianceMatrix()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00508), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::concatenateFields()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00137), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00356), [pcl::UnaryClassifier< PointT >::convertCloud()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00086), [pcl::filters::Convolution3D< PointIn, PointOut, KernelT >::convolve()](https://pointclouds.org/documentation/convolution__3d_8hpp_source.html#l00232), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00713), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00238), [pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures()](https://pointclouds.org/documentation/multiscale__feature__persistence_8hpp_source.html#l00210), [pcl::common::CloudGenerator< pcl::PointXY, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00262), [pcl::common::CloudGenerator< PointT, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00151), [pcl::fromPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00167), [pcl::UnaryClassifier< PointT >::getCloudWithLabel()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00167), [pcl::MinCutSegmentation< PointT >::getColoredCloud()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00561), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloud()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00631), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloudRGBA()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00681), [pcl::getMaxDistance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00197), [pcl::getMinMax3D()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00305), [pcl::getPointCloudDifference()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00050), [pcl::getPointsInBox()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00154), [pcl::filters::Convolution< PointIn, PointOut >::initCompute()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2impl_2convolution_8hpp_source.html#l00064), [pcl::UnaryClassifier< PointT >::kmeansClustering()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00231), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::GridProjection< PointNT >::performReconstruction()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00717), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::ConvexHull< PointInT >::performReconstruction3D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00292), [pcl::io::pointCloudTovtkPolyData()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00286), [pcl::ColorGradientModality< PointInT >::processInputData()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00340), [pcl::SampleConsensusModelCircle2D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle_8hpp_source.html#l00355), [pcl::SampleConsensusModelCircle3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle3d_8hpp_source.html#l00312), [pcl::SampleConsensusModelCone< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00366), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00321), [pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__ellipse3d_8hpp_source.html#l00486), [pcl::SampleConsensusModelLine< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00249), [pcl::SampleConsensusModelPlane< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00396), [pcl::SampleConsensusModelSphere< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__sphere_8hpp_source.html#l00369), [pcl::SampleConsensusModelStick< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00295), [pcl::io::LZFDepth16ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00061), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::ConcaveHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00059), [pcl::ConvexHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00440), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::toPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00240), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::visualization::PCLVisualizer::updatePolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01773), [pcl::io::vtkPolyDataToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00071), and [pcl::io::vtkStructuredGridToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00160).

    points
------

    template<typename PointT >  

|  |
| --- |
| std::vector<[PointT](structpcl_1_1_point_x_y_z_r_g_b), Eigen::aligned\_allocator<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::points |

 
 The point data. 

 Definition at line [395](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLVisualizer::addPolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01624), [pcl::features::computeApproximateCovariances()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00063), [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::MomentInvariantsEstimation< PointInT, PointOutT >::computePointMomentInvariants()](https://pointclouds.org/documentation/moment__invariants_8hpp_source.html#l00083), [pcl::UnaryClassifier< PointT >::convertCloud()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00086), [pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::convertTrianglesToMesh()](https://pointclouds.org/documentation/standalone__marching__cubes_8hpp_source.html#l00218), [pcl::visualization::createPolygon()](https://pointclouds.org/documentation/shapes_8hpp_source.html#l00054), [pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142), [pcl::BriskKeypoint2D< PointInT, PointOutT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html#l00069), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::detectKeypoints()](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00238), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00304), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::extractDescriptors()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00847), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::extractRGBFromPointCloud()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00222), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::findObjects()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00752), [pcl::MinCutSegmentation< PointT >::getColoredCloud()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00561), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloud()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00631), [pcl::features::ISMVoteList< PointT >::getColoredCloud()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00088), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloudRGBA()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00681), [pcl::getMinMax3D()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2common_8hpp_source.html#l00305), [pcl::RFFaceDetectorTrainer::getVotes()](https://pointclouds.org/documentation/rf__face__detector__trainer_8h_source.html#l00154), [pcl::RFFaceDetectorTrainer::getVotes2()](https://pointclouds.org/documentation/rf__face__detector__trainer_8h_source.html#l00185), [pcl::UnaryClassifier< PointT >::kmeansClustering()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00231), [pcl::MarchingCubes< PointNT >::performReconstruction()](https://pointclouds.org/documentation/marching__cubes_8hpp_source.html#l00218), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::SampleConsensusModelSphere< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__sphere_8hpp_source.html#l00369), [pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segmentAndRefine()](https://pointclouds.org/documentation/organized__multi__plane__segmentation_8hpp_source.html#l00277), [pcl::PlanarPolygon< PointT >::setContour()](https://pointclouds.org/documentation/planar__polygon_8h_source.html#l00076), [pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::shiftCloud()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l01179), [pcl::TextureMapping< PointInT >::showOcclusions()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00616), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::swapDimensions()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00243), [pcl::TextureMapping< PointInT >::textureMeshwithMultipleCameras()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00702), and [pcl::PCDWriter::writeASCII()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00749).

    sensor\_orientation\_
---------------------

    template<typename PointT >  

|  |
| --- |
| Eigen::Quaternionf [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::sensor\_orientation\_ = Eigen::Quaternionf::Identity () |

 
 Sensor acquisition pose (rotation). 

 Definition at line [408](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00408) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLVisualizer::addCorrespondences()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01192), [pcl::visualization::PCLVisualizer::addPointCloud()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00088), [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::visualization::PCLVisualizer::addPolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01624), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00729), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::Filter< PointT >::filter()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2filter_8h_source.html#l00121), [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::ImageGrabber< PointT >::operator[]()](https://pointclouds.org/documentation/image__grabber_8h_source.html#l00272), [pcl::PCDGrabber< PointT >::operator[]()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00206), [pcl::ImageGrabber< PointT >::publish()](https://pointclouds.org/documentation/image__grabber_8h_source.html#l00294), [pcl::StereoGrabber< PointT >::publish()](https://pointclouds.org/documentation/stereo__grabber_8h_source.html#l00171), [pcl::PCDGrabber< PointT >::publish()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00228), [pcl::IFSReader::read()](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00123), [pcl::FileReader::read()](https://pointclouds.org/documentation/io_2include_2pcl_2io_2file__io_8h_source.html#l00142), [pcl::OBJReader::read()](https://pointclouds.org/documentation/obj__io_8h_source.html#l00232), [pcl::PCDReader::read()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00277), [pcl::PLYReader::read()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00202), [pcl::io::LZFDepth16ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00061), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00697), and [pcl::FileWriter::write()](https://pointclouds.org/documentation/io_2include_2pcl_2io_2file__io_8h_source.html#l00209).

    sensor\_origin\_
----------------

    template<typename PointT >  

|  |
| --- |
| Eigen::Vector4f [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::sensor\_origin\_ = Eigen::Vector4f::Zero () |

 
 Sensor acquisition pose (origin/translation). 

 Definition at line [406](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00406) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLVisualizer::addCorrespondences()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01192), [pcl::visualization::PCLVisualizer::addPointCloud()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00088), [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::visualization::PCLVisualizer::addPolygonMesh()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l01624), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00729), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::Filter< PointT >::filter()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2filter_8h_source.html#l00121), [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::ImageGrabber< PointT >::operator[]()](https://pointclouds.org/documentation/image__grabber_8h_source.html#l00272), [pcl::PCDGrabber< PointT >::operator[]()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00206), [pcl::ImageGrabber< PointT >::publish()](https://pointclouds.org/documentation/image__grabber_8h_source.html#l00294), [pcl::StereoGrabber< PointT >::publish()](https://pointclouds.org/documentation/stereo__grabber_8h_source.html#l00171), [pcl::PCDGrabber< PointT >::publish()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00228), [pcl::IFSReader::read()](https://pointclouds.org/documentation/ifs__io_8h_source.html#l00123), [pcl::FileReader::read()](https://pointclouds.org/documentation/io_2include_2pcl_2io_2file__io_8h_source.html#l00142), [pcl::OBJReader::read()](https://pointclouds.org/documentation/obj__io_8h_source.html#l00232), [pcl::PCDReader::read()](https://pointclouds.org/documentation/pcd__io_8h_source.html#l00277), [pcl::PLYReader::read()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00202), [pcl::io::LZFDepth16ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00061), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::PLYWriter::write()](https://pointclouds.org/documentation/ply__io_8h_source.html#l00697), and [pcl::FileWriter::write()](https://pointclouds.org/documentation/io_2include_2pcl_2io_2file__io_8h_source.html#l00209).

    width
-----

    template<typename PointT >  

|  |
| --- |
| std::uint32\_t [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::width = 0 |

 
 The point cloud width (if organized as an image-structure). 

 Definition at line [398](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00398) of file [point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html).

 Referenced by [pcl::visualization::PCLVisualizer::addPointCloudNormals()](https://pointclouds.org/documentation/pcl__visualizer_8hpp_source.html#l00861), [pcl::visualization::ImageViewer::addRGBImage()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00070), [pcl::Registration< PointSource, PointTarget, Scalar >::align()](https://pointclouds.org/documentation/registration_8hpp_source.html#l00173), [pcl::ApproximateVoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/approximate__voxel__grid_8hpp_source.html#l00065), [pcl::ConditionalRemoval< PointT >::applyFilter()](https://pointclouds.org/documentation/conditional__removal_8hpp_source.html#l00625), [pcl::GridMinimum< PointT >::applyFilter()](https://pointclouds.org/documentation/grid__minimum_8hpp_source.html#l00061), [pcl::LocalMaximum< PointT >::applyFilter()](https://pointclouds.org/documentation/local__maximum_8hpp_source.html#l00054), [pcl::MedianFilter< PointT >::applyFilter()](https://pointclouds.org/documentation/median__filter_8hpp_source.html#l00046), [pcl::ProjectInliers< PointT >::applyFilter()](https://pointclouds.org/documentation/project__inliers_8hpp_source.html#l00057), [pcl::SamplingSurfaceNormal< PointT >::applyFilter()](https://pointclouds.org/documentation/sampling__surface__normal_8hpp_source.html#l00049), [pcl::ShadowPoints< PointT, NormalT >::applyFilter()](https://pointclouds.org/documentation/shadowpoints_8hpp_source.html#l00047), [pcl::UniformSampling< PointT >::applyFilter()](https://pointclouds.org/documentation/uniform__sampling_8hpp_source.html#l00046), [pcl::VoxelGrid< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid_8hpp_source.html#l00226), [pcl::VoxelGridCovariance< PointT >::applyFilter()](https://pointclouds.org/documentation/voxel__grid__covariance_8hpp_source.html#l00053), [pcl::LineRGBD< PointXYZT, PointRGBT >::applyProjectiveDepthICPOnDetections()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00727), [pcl::RangeImageBorderExtractor::calculateBorderDirection()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00162), [pcl::RangeImageBorderExtractor::calculateMainPrincipalCurvature()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00312), [pcl::Edge< PointInT, PointOutT >::canny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00376), [pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00180), [pcl::RangeImageBorderExtractor::checkIfMaximum()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00289), [pcl::RangeImageBorderExtractor::checkPotentialBorder()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00258), [pcl::OrganizedEdgeBase< PointT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00052), [pcl::OrganizedEdgeFromRGB< PointT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00226), [pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00274), [pcl::OrganizedEdgeFromRGBNormals< PointT, PointNT, PointLT >::compute()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00332), [pcl::DisparityMapConverter< PointT >::compute()](https://pointclouds.org/documentation/disparity__map__converter_8hpp_source.html#l00246), [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::compute()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00053), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00053), [pcl::VFHEstimation< PointInT, PointNT, PointOutT >::compute()](https://pointclouds.org/documentation/vfh_8hpp_source.html#l00065), [pcl::BRISK2DEstimation< PointInT, PointOutT, KeypointT, IntensityT >::compute()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2impl_2brisk__2d_8hpp_source.html#l00446), [pcl::filters::Pyramid< PointT >::compute()](https://pointclouds.org/documentation/pyramid_8hpp_source.html#l00100), [pcl::features::computeApproximateNormals()](https://pointclouds.org/documentation/from__meshes_8h_source.html#l00017), [pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/gfpfh_8hpp_source.html#l00080), [pcl::GRSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/grsd_8hpp_source.html#l00065), [pcl::IntensitySpinEstimation< PointInT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/intensity__spin_8hpp_source.html#l00110), [pcl::RIFTEstimation< PointInT, GradientT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rift_8hpp_source.html#l00113), [pcl::RSDEstimation< PointInT, PointNT, PointOutT >::computeFeature()](https://pointclouds.org/documentation/rsd_8hpp_source.html#l00248), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeatureFull()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l00836), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computeFeaturePart()](https://pointclouds.org/documentation/integral__image__normal_8hpp_source.html#l01023), [pcl::ColorGradientModality< PointInT >::computeMaxColorGradients()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00746), [pcl::ColorGradientModality< PointInT >::computeMaxColorGradientsSobel()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00833), [pcl::OURCVFHEstimation< PointInT, PointNT, PointOutT >::computeRFAndShapeDistribution()](https://pointclouds.org/documentation/our__cvfh_8hpp_source.html#l00381), [pcl::LineRGBD< PointXYZT, PointRGBT >::computeTransformedTemplatePoints()](https://pointclouds.org/documentation/linemod_2line__rgbd_8hpp_source.html#l00600), [pcl::PointCloud< PointT >::concatenate()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00231), [pcl::concatenateFields()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00303), [pcl::io::OrganizedConversion< PointT, false >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00137), [pcl::io::OrganizedConversion< PointT, true >::convert()](https://pointclouds.org/documentation/organized__pointcloud__conversion_8h_source.html#l00356), [pcl::UnaryClassifier< PointT >::convertCloud()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00086), [pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::convertTrianglesToMesh()](https://pointclouds.org/documentation/standalone__marching__cubes_8hpp_source.html#l00218), [pcl::GaussianKernel::convolve()](https://pointclouds.org/documentation/gaussian_8h_source.html#l00149), [pcl::filters::Convolution3D< PointIn, PointOut, KernelT >::convolve()](https://pointclouds.org/documentation/convolution__3d_8hpp_source.html#l00232), [pcl::GaussianKernel::convolveCols()](https://pointclouds.org/documentation/gaussian_8hpp_source.html#l00081), [pcl::GaussianKernel::convolveRows()](https://pointclouds.org/documentation/gaussian_8hpp_source.html#l00048), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::common::deleteCols()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00239), [pcl::common::deleteRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00222), [pcl::demeanPointCloud()](https://pointclouds.org/documentation/centroid_8hpp_source.html#l00663), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::derivatives()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00171), [pcl::Edge< ImageType, ImageType >::detectEdgeCanny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00312), [pcl::Edge< PointInT, PointOutT >::detectEdgeCanny()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00312), [pcl::Edge< PointInT, PointOutT >::detectEdgePrewitt()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00126), [pcl::Edge< ImageType, ImageType >::detectEdgeRoberts()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00164), [pcl::Edge< PointInT, PointOutT >::detectEdgeSobel()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00048), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::detectKeypoints()](https://pointclouds.org/documentation/susan_8hpp_source.html#l00304), [pcl::SmoothedSurfacesKeypoint< PointT, PointNT >::detectKeypoints()](https://pointclouds.org/documentation/smoothed__surfaces__keypoint_8hpp_source.html#l00071), [pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures()](https://pointclouds.org/documentation/multiscale__feature__persistence_8hpp_source.html#l00210), [pcl::Morphology< PointT >::dilationBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00098), [pcl::Morphology< PointT >::dilationGray()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00206), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::downsample()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00235), [pcl::common::duplicateColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00105), [pcl::common::duplicateRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00138), [pcl::Morphology< PointT >::erosionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00047), [pcl::Morphology< PointT >::erosionGray()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00164), [pcl::estimateProjectionMatrix()](https://pointclouds.org/documentation/projection__matrix_8hpp_source.html#l00083), [pcl::common::expandColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00052), [pcl::common::expandRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00084), [pcl::io::PointCloudImageExtractor< PointT >::extract()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00051), [pcl::OrganizedEdgeBase< PointT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00086), [pcl::OrganizedEdgeFromRGB< PointT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00242), [pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::extractEdges()](https://pointclouds.org/documentation/organized__edge__detection_8hpp_source.html#l00290), [pcl::io::PointCloudImageExtractorWithScaling< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00245), [pcl::io::PointCloudImageExtractorFromNormalField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00072), [pcl::io::PointCloudImageExtractorFromRGBField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00108), [pcl::io::PointCloudImageExtractorFromLabelField< PointT >::extractImpl()](https://pointclouds.org/documentation/point__cloud__image__extractors_8hpp_source.html#l00140), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::extractRGBFromPointCloud()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00222), [pcl::common::CloudGenerator< pcl::PointXY, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00255), [pcl::common::CloudGenerator< PointT, GeneratorT >::fill()](https://pointclouds.org/documentation/generate_8hpp_source.html#l00144), [pcl::occlusion\_reasoning::filter()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00072), [pcl::fromPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00167), [pcl::PCDWriter::generateHeader()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00057), [pcl::UnaryClassifier< PointT >::getCloudWithLabel()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00167), [pcl::MinCutSegmentation< PointT >::getColoredCloud()](https://pointclouds.org/documentation/min__cut__segmentation_8hpp_source.html#l00561), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloud()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00631), [pcl::features::ISMVoteList< PointT >::getColoredCloud()](https://pointclouds.org/documentation/implicit__shape__model_8hpp_source.html#l00088), [pcl::RegionGrowing< PointT, NormalT >::getColoredCloudRGBA()](https://pointclouds.org/documentation/region__growing_8hpp_source.html#l00681), [pcl::occlusion\_reasoning::getOccludedCloud()](https://pointclouds.org/documentation/occlusion__reasoning_8h_source.html#l00163), [pcl::RFFaceDetectorTrainer::getVotes()](https://pointclouds.org/documentation/rf__face__detector__trainer_8h_source.html#l00154), [pcl::RFFaceDetectorTrainer::getVotes2()](https://pointclouds.org/documentation/rf__face__detector__trainer_8h_source.html#l00185), [pcl::filters::Convolution< PointIn, PointOut >::initCompute()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2impl_2convolution_8hpp_source.html#l00064), [pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::insertRange()](https://pointclouds.org/documentation/octree__disk__container_8hpp_source.html#l00465), [pcl::Morphology< PointT >::intersectionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00309), [pcl::UnaryClassifier< PointT >::kmeansClustering()](https://pointclouds.org/documentation/unary__classifier_8hpp_source.html#l00231), [pcl::common::mirrorColumns()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00163), [pcl::common::mirrorRows()](https://pointclouds.org/documentation/spring_8hpp_source.html#l00195), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::mismatchVector()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00518), [pcl::operator<<()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00905), [pcl::BilateralUpsampling< PointInT, PointOutT >::performProcessing()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00088), [pcl::GridProjection< PointNT >::performReconstruction()](https://pointclouds.org/documentation/grid__projection_8hpp_source.html#l00717), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), [pcl::ConvexHull< PointInT >::performReconstruction2D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00076), [pcl::ConvexHull< PointInT >::performReconstruction3D()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00292), [pcl::PointCloudDepthAndRGBtoXYZRGBA()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00429), [pcl::PointCloudRGBtoI()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00301), [pcl::io::pointCloudTovtkStructuredGrid()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00394), [pcl::PointCloudXYZHSVtoXYZRGB()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00373), [pcl::PointCloudXYZRGBAtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00391), [pcl::PointCloudXYZRGBtoXYZHSV()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00355), [pcl::PointCloudXYZRGBtoXYZI()](https://pointclouds.org/documentation/point__types__conversion_8h_source.html#l00409), [pcl::CloudSurfaceProcessing< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/processing_8hpp_source.html#l00047), [pcl::BilateralUpsampling< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/bilateral__upsampling_8hpp_source.html#l00050), [pcl::MovingLeastSquares< PointInT, PointOutT >::process()](https://pointclouds.org/documentation/mls_8hpp_source.html#l00061), [pcl::ColorGradientModality< PointInT >::processInputData()](https://pointclouds.org/documentation/color__gradient__modality_8h_source.html#l00340), [pcl::SampleConsensusModelCircle2D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle_8hpp_source.html#l00355), [pcl::SampleConsensusModelCircle3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__circle3d_8hpp_source.html#l00312), [pcl::SampleConsensusModelCone< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cone_8hpp_source.html#l00366), [pcl::SampleConsensusModelCylinder< PointT, PointNT >::projectPoints()](https://pointclouds.org/documentation/sac__model__cylinder_8hpp_source.html#l00321), [pcl::SampleConsensusModelEllipse3D< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__ellipse3d_8hpp_source.html#l00486), [pcl::SampleConsensusModelLine< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__line_8hpp_source.html#l00249), [pcl::SampleConsensusModelPlane< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__plane_8hpp_source.html#l00396), [pcl::SampleConsensusModelSphere< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__sphere_8hpp_source.html#l00369), [pcl::SampleConsensusModelStick< PointT >::projectPoints()](https://pointclouds.org/documentation/sac__model__stick_8hpp_source.html#l00295), [pcl::PCDGrabber< PointT >::publish()](https://pointclouds.org/documentation/pcd__grabber_8h_source.html#l00228), [pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes()](https://pointclouds.org/documentation/octree__base__node_8hpp_source.html#l01370), [pcl::io::LZFDepth16ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00061), [pcl::io::LZFRGB24ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00207), [pcl::io::LZFYUV422ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00312), [pcl::io::LZFBayer8ImageReader::read()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00436), [pcl::io::LZFDepth16ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00126), [pcl::io::LZFRGB24ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00256), [pcl::io::LZFYUV422ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00370), [pcl::io::LZFBayer8ImageReader::readOMP()](https://pointclouds.org/documentation/lzf__image__io_8hpp_source.html#l00486), [pcl::SurfaceReconstruction< PointInT >::reconstruct()](https://pointclouds.org/documentation/reconstruction_8hpp_source.html#l00092), [pcl::ConcaveHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00059), [pcl::ConvexHull< PointInT >::reconstruct()](https://pointclouds.org/documentation/convex__hull_8hpp_source.html#l00440), [pcl::removeNaNFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00046), [pcl::removeNaNNormalsFromPointCloud()](https://pointclouds.org/documentation/filter_8hpp_source.html#l00099), [pcl::OrganizedConnectedComponentSegmentation< PointT, PointLT >::segment()](https://pointclouds.org/documentation/organized__connected__component__segmentation_8hpp_source.html#l00118), [pcl::SegmentDifferences< PointT >::segment()](https://pointclouds.org/documentation/segment__differences_8hpp_source.html#l00091), [pcl::visualization::ImageViewer::showCorrespondences()](https://pointclouds.org/documentation/image__viewer_8hpp_source.html#l00352), [pcl::Edge< PointInT, PointOutT >::sobelMagnitudeDirection()](https://pointclouds.org/documentation/edge_8hpp_source.html#l00085), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::spatialGradient()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00474), [pcl::Morphology< PointT >::subtractionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00269), [pcl::PointCloud< PointT >::swap()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00872), [pcl::people::GroundBasedPeopleDetectionApp< PointT >::swapDimensions()](https://pointclouds.org/documentation/ground__based__people__detection__app_8hpp_source.html#l00243), [pcl::toPCLPointCloud2()](https://pointclouds.org/documentation/conversions_8h_source.html#l00240), [pcl::tracking::PyramidalKLTTracker< PointInT, IntensityT >::track()](https://pointclouds.org/documentation/pyramidal__klt_8hpp_source.html#l00548), [pcl::transformPointCloud()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00221), [pcl::transformPointCloudWithNormals()](https://pointclouds.org/documentation/transforms_8hpp_source.html#l00349), [pcl::Morphology< PointT >::unionBinary()](https://pointclouds.org/documentation/morphology_8hpp_source.html#l00289), [pcl::RangeImageBorderExtractor::updatedScoreAccordingToNeighborValues()](https://pointclouds.org/documentation/range__image__border__extractor_8hpp_source.html#l00226), [pcl::io::vtkPolyDataToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00071), [pcl::io::vtkStructuredGridToPointCloud()](https://pointclouds.org/documentation/vtk__lib__io_8hpp_source.html#l00160), and [pcl::PCDWriter::writeASCII()](https://pointclouds.org/documentation/pcd__io_8hpp_source.html#l00447).

   

---

The documentation for this class was generated from the following files:* pcl/common/[distances.h](https://pointclouds.org/documentation/common_2include_2pcl_2common_2distances_8h_source.html)
* pcl/[point\_cloud.h](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_point_cloud.html>

A point structure representing Euclidean xyz coordinates, and the [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") color. [More...](structpcl_1_1_point_x_y_z_r_g_b#details)

 `#include <[pcl/impl/point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Member Functions |
| constexpr  | [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b#a6f2ed8aab91ca358a9c223adcc3618ae) (const [\_PointXYZRGB](structpcl_1_1___point_x_y_z_r_g_b) &p) |
|
| constexpr  | [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b#a4724f1d6ccf08bb8897a2ad8c4b7da35) () |
|
| constexpr  | [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b#ac6bd33f1e4746a0f133d5299ec9652a5) (std::uint8\_t \_r, std::uint8\_t \_g, std::uint8\_t \_b) |
|
| constexpr  | [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b#a20c252db61d9e244b5f7c99bb28750c3) (float \_x, float \_y, float \_z) |
|
| constexpr  | [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b#a78e3c32bc6ae7589aab77909fc16536c) (float \_x, float \_y, float \_z, std::uint8\_t \_r, std::uint8\_t \_g, std::uint8\_t \_b) |
|




|  |
| --- |
| 
 Friends |
| std::ostream &  | [operator<<](structpcl_1_1_point_x_y_z_r_g_b#add586a92f38ccd11fe69dfeff9b27eb3) (std::ostream &os, const [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) &p) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Attributes inherited from [pcl::\_PointXYZRGB](structpcl_1_1___point_x_y_z_r_g_b) |
|  | [PCL\_ADD\_POINT4D](structpcl_1_1___point_x_y_z_r_g_b#a82215d30914a560f8e50518fcae5aa28) |
|
|  | [PCL\_ADD\_RGB](structpcl_1_1___point_x_y_z_r_g_b#a14c3aa49bc0ced8ef51dc2a89b616af1) |
|

 Detailed Description
--------------------

 
A point structure representing Euclidean xyz coordinates, and the [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") color. 

 Due to historical reasons (PCL was first developed as a ROS package), the [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") information is packed into an integer and casted to a float. This is something we wish to remove in the near future, but in the meantime, the following code snippet should help you pack and unpack [RGB](structpcl_1_1_r_g_b "A structure representing RGB color information.") colors in your [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b "A point structure representing Euclidean xyz coordinates, and the RGB color.") structure:

 
```
// pack r/g/b into rgb
std::uint8_t r = 255, g = 0, b = 0; // Example: Red color
std::uint32_t rgb = ((std::uint32_t)r << 16 | (std::uint32_t)g << 8 | (std::uint32_t)b);
p.rgb = *reinterpret_cast<float*>(&rgb);

```

To unpack the data into separate values, use:

 
```
PointXYZRGB p;
// unpack rgb into r/g/b
std::uint32_t rgb = *reinterpret_cast<int*>(&p.rgb);
std::uint8_t r = (rgb >> 16) & 0x0000ff;
std::uint8_t g = (rgb >> 8) & 0x0000ff;
std::uint8_t b = (rgb) & 0x0000ff;
pcl::PointXYZRGB::PointXYZRGBconstexpr PointXYZRGB()Definition: point_types.hpp:626
pcl::PointXYZRGB::PointXYZRGB
constexpr PointXYZRGB()
Definition: point_types.hpp:626

```

Alternatively, from 1.1.0 onwards, you can use p.r, p.g, and p.b directly. 

 Definition at line [622](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00622) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  PointXYZRGB() [1/5]
-------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| constexpr pcl::PointXYZRGB::PointXYZRGB  | ( | const [\_PointXYZRGB](structpcl_1_1___point_x_y_z_r_g_b) &  | *p* | ) |  |

 | inlineconstexpr |

 
 Definition at line [624](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00624) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    PointXYZRGB() [2/5]
-------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| constexpr pcl::PointXYZRGB::PointXYZRGB  | ( |  | ) |  |

 | inlineconstexpr |

 
 Definition at line [626](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00626) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    PointXYZRGB() [3/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| constexpr pcl::PointXYZRGB::PointXYZRGB  | ( | std::uint8\_t  | *\_r*,  |
|  |  | std::uint8\_t  | *\_g*,  |
|  |  | std::uint8\_t  | *\_b* |
|  | ) |  |  |

 | inlineconstexpr |

 
 Definition at line [628](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00628) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    PointXYZRGB() [4/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| constexpr pcl::PointXYZRGB::PointXYZRGB  | ( | float  | *\_x*,  |
|  |  | float  | *\_y*,  |
|  |  | float  | *\_z* |
|  | ) |  |  |

 | inlineconstexpr |

 
 Definition at line [631](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00631) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    PointXYZRGB() [5/5]
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| constexpr pcl::PointXYZRGB::PointXYZRGB  | ( | float  | *\_x*,  |
|  |  | float  | *\_y*,  |
|  |  | float  | *\_z*,  |
|  |  | std::uint8\_t  | *\_r*,  |
|  |  | std::uint8\_t  | *\_g*,  |
|  |  | std::uint8\_t  | *\_b* |
|  | ) |  |  |

 | inlineconstexpr |

 
 Definition at line [634](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00634) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

   Friends And Related Function Documentation
------------------------------------------

  operator<<
----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::ostream& operator<<  | ( | std::ostream &  | *os*,  |
|  |  | const [PointXYZRGB](structpcl_1_1_point_x_y_z_r_g_b) &  | *p* |
|  | ) |  |  |

 | friend |

 
   

---

The documentation for this struct was generated from the following file:* pcl/impl/[point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/structpcl_1_1_point_x_y_z_r_g_b.html>

Organized Index Iterator for iterating over the "pixels" for a given line using the Bresenham algorithm. [More...](classpcl_1_1_line_iterator#details)

 `#include <[pcl/geometry/line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| enum  | [Neighborhood](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) { [Neighbor4](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22a46be2246fd499916497a074ab5fe9933) = 4 , [Neighbor8](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22aea0e99b42fadda42674196abbd861760) = 8 } |
|  | Neighborhood connectivity  [More...](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [LineIterator](classpcl_1_1_line_iterator#a48ca3d9e32e2ca89b604b285751ff4f0) (unsigned x\_start, unsigned y\_start, unsigned x\_end, unsigned y\_end, unsigned width, const [Neighborhood](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) &neighborhood=[Neighbor8](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22aea0e99b42fadda42674196abbd861760)) |
|  | Constructor. [More...](classpcl_1_1_line_iterator#a48ca3d9e32e2ca89b604b285751ff4f0) |
|
|  | [~LineIterator](classpcl_1_1_line_iterator#a4f72aacd6d269a70ce7395aa8151e705) () override |
|  | Destructor. [More...](classpcl_1_1_line_iterator#a4f72aacd6d269a70ce7395aa8151e705) |
|
| void  | [operator++](classpcl_1_1_line_iterator#a1d02e88fd07138e14fa5ccab82a74f4c) () override |
|  | go to next pixel/point in image/cloud [More...](classpcl_1_1_line_iterator#a1d02e88fd07138e14fa5ccab82a74f4c) |
|
| unsigned  | [getRowIndex](classpcl_1_1_line_iterator#a32673fd2bd7336602bcae2b0a9f4aac9) () const override |
|  | returns the row index (y-coordinate) of the current pixel/point [More...](classpcl_1_1_line_iterator#a32673fd2bd7336602bcae2b0a9f4aac9) |
|
| unsigned  | [getColumnIndex](classpcl_1_1_line_iterator#a25394acf81d48fc72284d8f55049f001) () const override |
|  | returns the col index (x-coordinate) of the current pixel/point [More...](classpcl_1_1_line_iterator#a25394acf81d48fc72284d8f55049f001) |
|
| bool  | [isValid](classpcl_1_1_line_iterator#af584226704e4636336802286a2b428c7) () const override |
|  | return whether the current visited pixel/point is valid or not. [More...](classpcl_1_1_line_iterator#af584226704e4636336802286a2b428c7) |
|
| void  | [reset](classpcl_1_1_line_iterator#a2b6709c56775bef167160e79a823a373) () override |
|  | resets the iterator to the beginning of the line [More...](classpcl_1_1_line_iterator#a2b6709c56775bef167160e79a823a373) |
|
| - Public Member Functions inherited from [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator) |
|  | [OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#a00a12986af4a5fddef8b88e51a931e22) (unsigned width) |
|  | constructor [More...](classpcl_1_1_organized_index_iterator#a00a12986af4a5fddef8b88e51a931e22) |
|
| virtual  | [~OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#ad5d19942435c44453dcef820199ee75f) () |
|  | virtual destructor [More...](classpcl_1_1_organized_index_iterator#ad5d19942435c44453dcef820199ee75f) |
|
| virtual void  | [operator++](classpcl_1_1_organized_index_iterator#a7160dcc2b4621ef04885c24016190c10) (int) |
|  | go to next pixel/point in image/cloud [More...](classpcl_1_1_organized_index_iterator#a7160dcc2b4621ef04885c24016190c10) |
|
| unsigned  | [operator\*](classpcl_1_1_organized_index_iterator#abf16fed1c152dfa8b0e99f0fb3a53f4c) () const |
|  | returns the pixel/point index in the linearized memory of the image/cloud [More...](classpcl_1_1_organized_index_iterator#abf16fed1c152dfa8b0e99f0fb3a53f4c) |
|
| virtual unsigned  | [getIndex](classpcl_1_1_organized_index_iterator#af9561b53101cc76455576159b0c56738) () const |
|  | returns the pixel/point index in the linearized memory of the image/cloud [More...](classpcl_1_1_organized_index_iterator#af9561b53101cc76455576159b0c56738) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [init](classpcl_1_1_line_iterator#a539182ca573d915b1bdb7b0c67cb56ab) (const [Neighborhood](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) &neighborhood) |
|  | initializes the variables for the Bresenham algorithm [More...](classpcl_1_1_line_iterator#a539182ca573d915b1bdb7b0c67cb56ab) |
|




|  |
| --- |
| 
 Protected Attributes |
| unsigned  | [x\_](classpcl_1_1_line_iterator#ab37f3aa2abeda4b2e5fdbb3e25a75485) |
|  | current column index [More...](classpcl_1_1_line_iterator#ab37f3aa2abeda4b2e5fdbb3e25a75485) |
|
| unsigned  | [y\_](classpcl_1_1_line_iterator#a2b2cee34fa71ff94893da75332fb5c81) |
|  | current row index [More...](classpcl_1_1_line_iterator#a2b2cee34fa71ff94893da75332fb5c81) |
|
| unsigned  | [x\_start\_](classpcl_1_1_line_iterator#af3565d0dce9adef34c2a1e67a7d6daa0) |
|  | column index of first pixel/point [More...](classpcl_1_1_line_iterator#af3565d0dce9adef34c2a1e67a7d6daa0) |
|
| unsigned  | [y\_start\_](classpcl_1_1_line_iterator#ac4cc53ca93b3a45d62a11c161e054b54) |
|  | row index of first pixel/point [More...](classpcl_1_1_line_iterator#ac4cc53ca93b3a45d62a11c161e054b54) |
|
| unsigned  | [x\_end\_](classpcl_1_1_line_iterator#a174734ebedf80e5ad42e4414d4e1ca4b) |
|  | column index of end pixel/point [More...](classpcl_1_1_line_iterator#a174734ebedf80e5ad42e4414d4e1ca4b) |
|
| unsigned  | [y\_end\_](classpcl_1_1_line_iterator#a4715dc8896950d96124547fb8b648e22) |
|  | row index of end pixel/point [More...](classpcl_1_1_line_iterator#a4715dc8896950d96124547fb8b648e22) |
|
| int  | [error\_](classpcl_1_1_line_iterator#ae0b4d0c9d0bc85cb0a4d307623a6236d) |
|  | current distance to the line [More...](classpcl_1_1_line_iterator#ae0b4d0c9d0bc85cb0a4d307623a6236d) |
|
| int  | [error\_max\_](classpcl_1_1_line_iterator#acfc1110436519d046126d0fda3711c67) |
|  | error threshold [More...](classpcl_1_1_line_iterator#acfc1110436519d046126d0fda3711c67) |
|
| int  | [error\_minus\_](classpcl_1_1_line_iterator#a4ab7732bb00d7f9c8ff8a72d03164a11) |
|  | increment of error (distance) value in case of an y-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a4ab7732bb00d7f9c8ff8a72d03164a11) |
|
| int  | [error\_plus\_](classpcl_1_1_line_iterator#a4b79594dcb36045623a3583173b75028) |
|  | increment of error (distance) value in case of just an x-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a4b79594dcb36045623a3583173b75028) |
|
| int  | [x\_plus\_](classpcl_1_1_line_iterator#a9ff7153a9f0d0e1080b21479277cedd5) |
|  | increment of column index in case of just an x-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a9ff7153a9f0d0e1080b21479277cedd5) |
|
| int  | [y\_plus\_](classpcl_1_1_line_iterator#a5f830c4985feaea8ab865f4aafd5389c) |
|  | increment of row index in case of just an x-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a5f830c4985feaea8ab865f4aafd5389c) |
|
| int  | [x\_minus\_](classpcl_1_1_line_iterator#a3262c629423d45171c9850fd0135ca55) |
|  | increment of column index in case of just an y-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a3262c629423d45171c9850fd0135ca55) |
|
| int  | [y\_minus\_](classpcl_1_1_line_iterator#a1db8459e3838bccacd5dfd3e1c639834) |
|  | increment of row index in case of just an y-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a1db8459e3838bccacd5dfd3e1c639834) |
|
| int  | [index\_plus\_](classpcl_1_1_line_iterator#a67c216ef803c958f6e8944ba5119bef1) |
|  | increment pixel/point index in case of just an x-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a67c216ef803c958f6e8944ba5119bef1) |
|
| int  | [index\_minus\_](classpcl_1_1_line_iterator#a2a8151d251176cce7c61060499fdf233) |
|  | increment pixel/point index in case of just an y-step (if dx > dy) [More...](classpcl_1_1_line_iterator#a2a8151d251176cce7c61060499fdf233) |
|
| - Protected Attributes inherited from [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator) |
| unsigned  | [width\_](classpcl_1_1_organized_index_iterator#aa3ebc81e8bd1dd52d60b25c10d4b05c9) |
|  | the width of the image/cloud [More...](classpcl_1_1_organized_index_iterator#aa3ebc81e8bd1dd52d60b25c10d4b05c9) |
|
| unsigned  | [index\_](classpcl_1_1_organized_index_iterator#acdce403c2c2c5bb4a4092740e80d2bbb) |
|  | the index of the current pixel/point [More...](classpcl_1_1_organized_index_iterator#acdce403c2c2c5bb4a4092740e80d2bbb) |
|

 Detailed Description
--------------------

 
Organized Index Iterator for iterating over the "pixels" for a given line using the Bresenham algorithm. 

 Supports 4 and 8 neighborhood connectivity 



Note
iterator does not visit the given end-point (on purpose). 
 
Author
Suat Gedikli [gedik.nosp@m.li@w.nosp@m.illow.nosp@m.gara.nosp@m.ge.co.nosp@m.m](#) 
 Definition at line [48](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00048) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 
Member Enumeration Documentation
--------------------------------

  Neighborhood
------------

   

|  |
| --- |
| enum [pcl::LineIterator::Neighborhood](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) |

 
 Neighborhood connectivity   
 

 

| Enumerator |
| --- |
| Neighbor4  |  |
| Neighbor8  |  |

 Definition at line [51](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00051) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  LineIterator()
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::LineIterator::LineIterator  | ( | unsigned  | *x\_start*,  |
|  |  | unsigned  | *y\_start*,  |
|  |  | unsigned  | *x\_end*,  |
|  |  | unsigned  | *y\_end*,  |
|  |  | unsigned  | *width*,  |
|  |  | const [Neighborhood](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) &  | *neighborhood* = `[Neighbor8](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22aea0e99b42fadda42674196abbd861760)` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |
| --- | --- |
| x\_start | column of the start pixel of the line  |
| y\_start | row of the start pixel of the line  |
| x\_end | column of the end pixel of the line  |
| y\_end | row of the end pixel of the line  |
| width | width of the organized structure e.g. image/cloud/map etc..  |
| neighborhood | connectivity of the neighborhood  |

   Definition at line [148](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00148) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168).

    ~LineIterator()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::LineIterator::~LineIterator  | ( |  | ) |  |

 | inlineoverridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  getColumnIndex()
----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned pcl::LineIterator::getColumnIndex  | ( |  | ) |  const |

 | inlineoverridevirtual |

 
 returns the col index (x-coordinate) of the current pixel/point 

 
Returns
the col index (x-coordinate) of the current pixel/point 
 Reimplemented from [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#a6edc62e9876fab1a9ace3ec2d5314d9c).

 Definition at line [260](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00260) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [x\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00093).

    getRowIndex()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned pcl::LineIterator::getRowIndex  | ( |  | ) |  const |

 | inlineoverridevirtual |

 
 returns the row index (y-coordinate) of the current pixel/point 

 default implementation.

 
Returns
the row index (y-coordinate) of the current pixel/point
 Should be overloaded 

 Reimplemented from [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#a8e15dd4231cac39c0a58434745d6a3f5).

 Definition at line [253](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00253) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [y\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00096).

    init()
------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::LineIterator::init  | ( | const [Neighborhood](classpcl_1_1_line_iterator#a5806c77db661ee1ef1b3b3fec8fcdf22) &  | *neighborhood* | ) |  |

 | inlineprotected |

 
 initializes the variables for the Bresenham algorithm 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | neighborhood | connectivity to the neighborhood. Either 4 or 8  |

   Definition at line [168](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [error\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00112), [error\_max\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00115), [error\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00118), [error\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00122), [pcl::OrganizedIndexIterator::index\_](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00104), [index\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00140), [index\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00137), [Neighbor4](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00051), [pcl::OrganizedIndexIterator::width\_](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00101), [x\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00093), [x\_end\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00105), [x\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00131), [x\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00125), [x\_start\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00099), [y\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00096), [y\_end\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00108), [y\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00134), [y\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00128), and [y\_start\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00102).

 Referenced by [LineIterator()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00148).

    isValid()
---------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool pcl::LineIterator::isValid  | ( |  | ) |  const |

 | inlineoverridevirtual |

 
 return whether the current visited pixel/point is valid or not. 

 
Returns
true if the current pixel/point is within the points to be iterated over, false otherwise 
 Implements [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#a69c605f80da0be4fea056b843450e8ae).

 Definition at line [267](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00267) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [x\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00093), [x\_end\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00105), [y\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00096), and [y\_end\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00108).

    operator++()
------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::LineIterator::operator++  | ( |  | ) |  |

 | inlineoverridevirtual |

 
 go to next pixel/point in image/cloud 

 Implements [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#ab6950d0d29b529903c11d1d02fd9f9e9).

 Definition at line [235](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [error\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00112), [error\_max\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00115), [error\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00118), [error\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00122), [pcl::OrganizedIndexIterator::index\_](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00104), [index\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00140), [index\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00137), [x\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00093), [x\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00131), [x\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00125), [y\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00096), [y\_minus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00134), and [y\_plus\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00128).

    reset()
-------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::LineIterator::reset  | ( |  | ) |  |

 | inlineoverridevirtual |

 
 resets the iterator to the beginning of the line 

 Implements [pcl::OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#a6ae0bd74fcfcf9f4243abe577644a956).

 Definition at line [274](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 References [error\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00112), [pcl::OrganizedIndexIterator::index\_](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00104), [pcl::OrganizedIndexIterator::width\_](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00101), [x\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00093), [x\_start\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00099), [y\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00096), and [y\_start\_](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00102).

   Member Data Documentation
-------------------------

  error\_
-------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::error\_ |

 | protected |

 
 current distance to the line 

 Definition at line [112](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00112) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235), and [reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

    error\_max\_
------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::error\_max\_ |

 | protected |

 
 error threshold 

 Definition at line [115](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00115) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    error\_minus\_
--------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::error\_minus\_ |

 | protected |

 
 increment of error (distance) value in case of an y-step (if dx > dy) 

 Definition at line [118](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00118) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    error\_plus\_
-------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::error\_plus\_ |

 | protected |

 
 increment of error (distance) value in case of just an x-step (if dx > dy) 

 Definition at line [122](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00122) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    index\_minus\_
--------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::index\_minus\_ |

 | protected |

 
 increment pixel/point index in case of just an y-step (if dx > dy) 

 Definition at line [140](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00140) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    index\_plus\_
-------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::index\_plus\_ |

 | protected |

 
 increment pixel/point index in case of just an x-step (if dx > dy) 

 Definition at line [137](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00137) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    x\_
---

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::LineIterator::x\_ |

 | protected |

 
 current column index 

 Definition at line [93](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00093) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [getColumnIndex()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00260), [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), [isValid()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00267), [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235), and [reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

    x\_end\_
--------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::LineIterator::x\_end\_ |

 | protected |

 
 column index of end pixel/point 

 Definition at line [105](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00105) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [isValid()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00267).

    x\_minus\_
----------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::x\_minus\_ |

 | protected |

 
 increment of column index in case of just an y-step (if dx > dy) 

 Definition at line [131](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00131) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    x\_plus\_
---------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::x\_plus\_ |

 | protected |

 
 increment of column index in case of just an x-step (if dx > dy) 

 Definition at line [125](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00125) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    x\_start\_
----------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::LineIterator::x\_start\_ |

 | protected |

 
 column index of first pixel/point 

 Definition at line [99](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00099) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

    y\_
---

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::LineIterator::y\_ |

 | protected |

 
 current row index 

 Definition at line [96](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00096) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [getRowIndex()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00253), [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), [isValid()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00267), [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235), and [reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

    y\_end\_
--------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::LineIterator::y\_end\_ |

 | protected |

 
 row index of end pixel/point 

 Definition at line [108](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00108) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [isValid()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00267).

    y\_minus\_
----------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::y\_minus\_ |

 | protected |

 
 increment of row index in case of just an y-step (if dx > dy) 

 Definition at line [134](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00134) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    y\_plus\_
---------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int pcl::LineIterator::y\_plus\_ |

 | protected |

 
 increment of row index in case of just an x-step (if dx > dy) 

 Definition at line [128](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00128) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235).

    y\_start\_
----------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::LineIterator::y\_start\_ |

 | protected |

 
 row index of first pixel/point 

 Definition at line [102](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00102) of file [line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html).

 Referenced by [init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[line\_iterator.h](https://pointclouds.org/documentation/line__iterator_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_line_iterator.html>

Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the outgoing half-edge (the target). [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#ab5a544ca7f8ec9a63c7980e39bd89246) = boost::equality\_comparable< [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d) = [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) = MeshT |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a85ff125b3f96875c9ba231307e5382b9) = typename Mesh::VertexIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a79e8dd7c69686f1840e5386db77c9946) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a79e8dd7c69686f1840e5386db77c9946) |
|
|  | [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a5ee70328b1ba0629428579ccbb544e41) (const [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a85ff125b3f96875c9ba231307e5382b9) &idx\_vertex, [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) \*const mesh) |
|  | Construct from the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a5ee70328b1ba0629428579ccbb544e41) |
|
|  | [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a15aa42d9b5f9549a077979ecaf327dcb) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) &idx\_outgoing\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) \*const mesh) |
|  | Construct directly from the outgoing half-edge. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a15aa42d9b5f9549a077979ecaf327dcb) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3fd1942d2b76e2235d13f49d178bc609) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3fd1942d2b76e2235d13f49d178bc609) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#ab2aef1237d05b7048237779ccf234d54) (const [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#ab2aef1237d05b7048237779ccf234d54) |
|
| [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d) &  | [operator++](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a22cfb37c1ed887946a35b6e5d903e2f2) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a22cfb37c1ed887946a35b6e5d903e2f2) |
|
| [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d) &  | [operator--](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a8c605176e9b049364288a6b84fc6a26d) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a8c605176e9b049364288a6b84fc6a26d) |
|
| [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a85ff125b3f96875c9ba231307e5382b9) | [getTargetIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a50345cd898bff00e40acd7c32172c1f8) () const |
|  | Get the index to the target vertex. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a50345cd898bff00e40acd7c32172c1f8) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a9489db835553dc025f6992c6d2de8582) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a9489db835553dc025f6992c6d2de8582) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) \*  | [mesh\_](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a07366b86b2340282dbca405720d86f41) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a07366b86b2340282dbca405720d86f41) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) | [idx\_outgoing\_half\_edge\_](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a8c9b853ccd77aa6a5af73aa7dbb52676) |
|  | The outgoing half-edge of the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a8c9b853ccd77aa6a5af73aa7dbb52676) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::VertexAroundVertexCirculator< MeshT >

 Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the outgoing half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getVertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a17ce476f53a6e99c6de3996bb217674c) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [67](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00067) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#ab5a544ca7f8ec9a63c7980e39bd89246) = boost::equality\_comparable< [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)<MeshT>, boost::unit\_steppable<[pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)<MeshT> >> |

 
 Definition at line [72](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00072) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [79](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00079) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) = MeshT |

 
 Definition at line [77](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00077) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d) = [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)<MeshT> |

 
 Definition at line [75](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00075) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexIndex
-----------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[VertexIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a85ff125b3f96875c9ba231307e5382b9) = typename Mesh::VertexIndex |

 
 Definition at line [78](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00078) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  VertexAroundVertexCirculator() [1/3]
------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [82](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00082) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexAroundVertexCirculator() [2/3]
------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator) | ( | const [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a85ff125b3f96875c9ba231307e5382b9) &  | *idx\_vertex*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the vertex around which we want to circulate. 

 Definition at line [85](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00085) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexAroundVertexCirculator() [3/3]
------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::[VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) &  | *idx\_outgoing\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the outgoing half-edge. 

 Definition at line [90](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00090) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [140](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00140) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01288).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a85ff125b3f96875c9ba231307e5382b9) [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the target vertex. 

 Definition at line [133](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00133) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149), and [pcl::geometry::VertexAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00146).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01288).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [99](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00099) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d)& [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [115](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00115) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149), and [pcl::geometry::VertexAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00146).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d)& [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [124](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00124) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149), and [pcl::geometry::VertexAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00146).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#af8cf98f4ea9ee803b78221630efda15d) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [108](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00108) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149).

   Member Data Documentation
-------------------------

  idx\_outgoing\_half\_edge\_
---------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a3a76a2970326f1bba10d6277ff23d5f4) [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::idx\_outgoing\_half\_edge\_ |

 
 The outgoing half-edge of the vertex around which we want to circulate. 

 Definition at line [149](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00149) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::VertexAroundVertexCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00140), [pcl::geometry::VertexAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00133), [pcl::geometry::VertexAroundVertexCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00099), [pcl::geometry::VertexAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00115), [pcl::geometry::VertexAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00124), and [pcl::geometry::VertexAroundVertexCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00108).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator#a08784aaf9c95645c576d9861b70ad93b)\* [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [146](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00146) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::VertexAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00133), [pcl::geometry::VertexAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00115), and [pcl::geometry::VertexAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00124).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html>

Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the target). [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a8a3cb676b07124d6f4dc1c024b7d8e24) = boost::equality\_comparable< [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359) = [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) = MeshT |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a31f9d6b5d44fa82470175fc67e5b2ec7) = typename Mesh::VertexIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a6edbbaa693fd7ce001f0ecfc977a0513) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a6edbbaa693fd7ce001f0ecfc977a0513) |
|
|  | [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#aaeafa3e4b9f7950e65a215456a28d604) (const [VertexIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a31f9d6b5d44fa82470175fc67e5b2ec7) &idx\_vertex, [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) \*const mesh) |
|  | Construct from the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#aaeafa3e4b9f7950e65a215456a28d604) |
|
|  | [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#ac5013c9b18e0699b28d104e4af195930) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) &idx\_outgoing\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) \*const mesh) |
|  | Construct directly from the outgoing half-edge. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#ac5013c9b18e0699b28d104e4af195930) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7dcedad06d3dd314294f97d24dc1faba) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7dcedad06d3dd314294f97d24dc1faba) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#ab2356a4ec36a52e9e7c7349328eb07d8) (const [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#ab2356a4ec36a52e9e7c7349328eb07d8) |
|
| [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359) &  | [operator++](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a653075579452b1c6bf528c5deaeedd39) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a653075579452b1c6bf528c5deaeedd39) |
|
| [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359) &  | [operator--](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a82a46faf89188647dfdbf7dde24e1a4b) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a82a46faf89188647dfdbf7dde24e1a4b) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) | [getTargetIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a12a33e71c4e2eac5fa148aa8ba791179) () const |
|  | Get the index to the outgoing half-edge. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a12a33e71c4e2eac5fa148aa8ba791179) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a46c8401b6d759640a0242b12429f86b2) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a46c8401b6d759640a0242b12429f86b2) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) \*  | [mesh\_](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a3d9886c2f6db470c54733f0ef1cbc24f) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a3d9886c2f6db470c54733f0ef1cbc24f) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) | [idx\_outgoing\_half\_edge\_](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a292fc0ec0c20160158748737c69194de) |
|  | The outgoing half-edge of the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a292fc0ec0c20160158748737c69194de) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >

 Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getOutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a76d6a2a322ad9723d8c16c6ac6adb079) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [170](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00170) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a8a3cb676b07124d6f4dc1c024b7d8e24) = boost::equality\_comparable< [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)<MeshT>, boost::unit\_steppable< [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)<MeshT> >> |

 
 Definition at line [176](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00176) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [184](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00184) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) = MeshT |

 
 Definition at line [182](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00182) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359) = [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)<MeshT> |

 
 Definition at line [180](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00180) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexIndex
-----------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[VertexIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a31f9d6b5d44fa82470175fc67e5b2ec7) = typename Mesh::VertexIndex |

 
 Definition at line [183](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00183) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  OutgoingHalfEdgeAroundVertexCirculator() [1/3]
----------------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [187](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00187) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    OutgoingHalfEdgeAroundVertexCirculator() [2/3]
----------------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator) | ( | const [VertexIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a31f9d6b5d44fa82470175fc67e5b2ec7) &  | *idx\_vertex*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the vertex around which we want to circulate. 

 Definition at line [191](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00191) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    OutgoingHalfEdgeAroundVertexCirculator() [3/3]
----------------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::[OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) &  | *idx\_outgoing\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the outgoing half-edge. 

 Definition at line [197](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00197) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [247](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00247) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the outgoing half-edge. 

 Definition at line [240](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00240) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01516), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01972).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [206](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00206) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359)& [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [222](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00222) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256), and [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00253).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359)& [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [231](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00231) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256), and [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00253).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a7b7c894bac95241dda423479d3133359) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [215](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00215) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256).

   Member Data Documentation
-------------------------

  idx\_outgoing\_half\_edge\_
---------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#af1e3ddede61e144302047da872527d3d) [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::idx\_outgoing\_half\_edge\_ |

 
 The outgoing half-edge of the vertex around which we want to circulate. 

 Definition at line [256](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00256) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00247), [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00240), [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00206), [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00222), [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00231), and [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00215).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator#a1742520035cdb8a4678b2a34f49b547f)\* [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [253](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00253) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00222), and [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00231).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html>

Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target). [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aaadf888a69fef9561fd76453e65de889) = boost::equality\_comparable< [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e) = [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) = MeshT |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ac38185d8ec4024c886455ada243b05ff) = typename Mesh::VertexIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ab33db52e9a70e63c1977237f4042d334) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ab33db52e9a70e63c1977237f4042d334) |
|
|  | [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ae4f4c8f49e08bfce334a1139352cb5f8) (const [VertexIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ac38185d8ec4024c886455ada243b05ff) &idx\_vertex, [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) \*const mesh) |
|  | Construct from the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ae4f4c8f49e08bfce334a1139352cb5f8) |
|
|  | [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a261405f4b58a24f8a629cb58b6d1b159) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) &idx\_incoming\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) \*const mesh) |
|  | Construct directly from the incoming half-edge. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a261405f4b58a24f8a629cb58b6d1b159) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aed676e5942a406b3ede4acc12512900b) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aed676e5942a406b3ede4acc12512900b) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a8362a4725c21849f4f0498ea2c97361f) (const [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a8362a4725c21849f4f0498ea2c97361f) |
|
| [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e) &  | [operator++](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a48281d851c563cfa1d20134dda14c368) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a48281d851c563cfa1d20134dda14c368) |
|
| [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e) &  | [operator--](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#af29c2210ccbde794d19562a5b3383112) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#af29c2210ccbde794d19562a5b3383112) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) | [getTargetIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a80013df6d142f28abab3551d7ebdc0db) () const |
|  | Get the index to the incoming half-edge. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a80013df6d142f28abab3551d7ebdc0db) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ae4e7f0c83bd2326a93a3dc64e43f0f5e) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ae4e7f0c83bd2326a93a3dc64e43f0f5e) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) \*  | [mesh\_](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ae5c9868d92c8c0fe7bf3c8f653f6ba62) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ae5c9868d92c8c0fe7bf3c8f653f6ba62) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) | [idx\_incoming\_half\_edge\_](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a35af04537a552fb21dd06721622fc76f) |
|  | The incoming half-edge of the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a35af04537a552fb21dd06721622fc76f) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >

 Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getIncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a3389ae4dcc4ca85e5adfdc33f48edc96) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [277](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00277) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aaadf888a69fef9561fd76453e65de889) = boost::equality\_comparable< [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)<MeshT>, boost::unit\_steppable< [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)<MeshT> >> |

 
 Definition at line [283](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00283) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [291](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00291) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) = MeshT |

 
 Definition at line [289](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00289) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e) = [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)<MeshT> |

 
 Definition at line [287](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00287) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexIndex
-----------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[VertexIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ac38185d8ec4024c886455ada243b05ff) = typename Mesh::VertexIndex |

 
 Definition at line [290](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00290) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  IncomingHalfEdgeAroundVertexCirculator() [1/3]
----------------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [294](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00294) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    IncomingHalfEdgeAroundVertexCirculator() [2/3]
----------------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator) | ( | const [VertexIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#ac38185d8ec4024c886455ada243b05ff) &  | *idx\_vertex*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the vertex around which we want to circulate. 

 Definition at line [298](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00298) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    IncomingHalfEdgeAroundVertexCirculator() [3/3]
----------------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::[IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) &  | *idx\_incoming\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the incoming half-edge. 

 Definition at line [304](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00304) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [354](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00354) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx\_incoming\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the incoming half-edge. 

 Definition at line [347](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00347) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx\_incoming\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01342), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [313](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00313) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx\_incoming\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e)& [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [329](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00329) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx\_incoming\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363), and [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00360).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e)& [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [338](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00338) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx\_incoming\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363), and [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00360).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a9e6244cecbef045d402782fcba18324e) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [322](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00322) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::idx\_incoming\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363).

   Member Data Documentation
-------------------------

  idx\_incoming\_half\_edge\_
---------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#a174c0bfdda55eebbbc6ef53686745ba2) [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::idx\_incoming\_half\_edge\_ |

 
 The incoming half-edge of the vertex around which we want to circulate. 

 Definition at line [363](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00363) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00354), [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00347), [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00313), [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00329), [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00338), and [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00322).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator#aa49d42354e7894ffd06a4237ff171c4c)\* [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [360](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00360) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00329), and [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00338).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html>

Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-edge (the target). [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a8813fa0e3c2cfaa02e4d1c141d4fe45e) = boost::equality\_comparable< [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25) = [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) = MeshT |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a707042ff0170f7d8c4286aa7d9f13030) = typename Mesh::FaceIndex |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a6937dac8e7c2f8b2f01df72c1c2974d4) = typename Mesh::VertexIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ac75b06ffe5c16e244fb791d771c12e61) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ac75b06ffe5c16e244fb791d771c12e61) |
|
|  | [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a42f3774d9781d171859d85a7cbd75c7b) (const [VertexIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a6937dac8e7c2f8b2f01df72c1c2974d4) &idx\_vertex, [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) \*const mesh) |
|  | Construct from the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a42f3774d9781d171859d85a7cbd75c7b) |
|
|  | [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a2f8b93204c5d6b35fc2cb2ded397a13a) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) &idx\_outgoing\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) \*const mesh) |
|  | Construct directly from the outgoing half-edge. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a2f8b93204c5d6b35fc2cb2ded397a13a) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a99e075d1d41774a717192787744d214c) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a99e075d1d41774a717192787744d214c) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad2686fa1641257002936a66c02d9f8d1) (const [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad2686fa1641257002936a66c02d9f8d1) |
|
| [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25) &  | [operator++](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad16f2bae88c8231305ef263ce8e144ce) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad16f2bae88c8231305ef263ce8e144ce) |
|
| [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25) &  | [operator--](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a83490494fdcd02936d977d59c9845754) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a83490494fdcd02936d977d59c9845754) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a707042ff0170f7d8c4286aa7d9f13030) | [getTargetIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a395359f719c2444e4aaff59560a7b41b) () const |
|  | Get the index to the target face. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a395359f719c2444e4aaff59560a7b41b) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad037341b5ddbdca23d62bbdda870aebd) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad037341b5ddbdca23d62bbdda870aebd) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) \*  | [mesh\_](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad304b88a5981d76c5c838cf1a397d879) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#ad304b88a5981d76c5c838cf1a397d879) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) | [idx\_outgoing\_half\_edge\_](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a04a84962347d411ce365ce6d680bd31d) |
|  | The outgoing half-edge of the vertex around which we want to circulate. [More...](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a04a84962347d411ce365ce6d680bd31d) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::FaceAroundVertexCirculator< MeshT >

 Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getFaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acbd873aa1fd360de8a67336854ceb0c0) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [384](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00384) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a8813fa0e3c2cfaa02e4d1c141d4fe45e) = boost::equality\_comparable< [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)<MeshT>, boost::unit\_steppable<[pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)<MeshT> >> |

 
 Definition at line [389](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00389) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceIndex
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[FaceIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a707042ff0170f7d8c4286aa7d9f13030) = typename Mesh::FaceIndex |

 
 Definition at line [395](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00395) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [397](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00397) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) = MeshT |

 
 Definition at line [394](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00394) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25) = [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)<MeshT> |

 
 Definition at line [392](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00392) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexIndex
-----------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[VertexIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a6937dac8e7c2f8b2f01df72c1c2974d4) = typename Mesh::VertexIndex |

 
 Definition at line [396](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00396) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  FaceAroundVertexCirculator() [1/3]
----------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [400](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00400) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceAroundVertexCirculator() [2/3]
----------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator) | ( | const [VertexIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a6937dac8e7c2f8b2f01df72c1c2974d4) &  | *idx\_vertex*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the vertex around which we want to circulate. 

 Definition at line [403](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00403) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceAroundVertexCirculator() [3/3]
----------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::[FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) &  | *idx\_outgoing\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the outgoing half-edge. 

 Definition at line [408](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00408) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [458](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00458) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a707042ff0170f7d8c4286aa7d9f13030) [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the target face. 

 Definition at line [451](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00451) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467), and [pcl::geometry::FaceAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00464).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [417](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00417) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25)& [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [433](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00433) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467), and [pcl::geometry::FaceAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00464).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25)& [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [442](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00442) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467), and [pcl::geometry::FaceAroundVertexCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00464).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_face_around_vertex_circulator#a98deff692d209b4ce285ee5502ed3e25) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [426](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00426) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundVertexCirculator< MeshT >::idx\_outgoing\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467).

   Member Data Documentation
-------------------------

  idx\_outgoing\_half\_edge\_
---------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_vertex_circulator#aa10ccde11a0d28c06aea4cdb48e1f8be) [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::idx\_outgoing\_half\_edge\_ |

 
 The outgoing half-edge of the vertex around which we want to circulate. 

 Definition at line [467](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00467) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::FaceAroundVertexCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00458), [pcl::geometry::FaceAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00451), [pcl::geometry::FaceAroundVertexCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00417), [pcl::geometry::FaceAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00433), [pcl::geometry::FaceAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00442), and [pcl::geometry::FaceAroundVertexCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00426).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_face_around_vertex_circulator#af460761b0edb9500695e1cd4d9b00763)\* [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [464](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00464) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::FaceAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00451), [pcl::geometry::FaceAroundVertexCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00433), and [pcl::geometry::FaceAroundVertexCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00442).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_face_around_vertex_circulator.html>

Base class for the half-edge mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#details)

 `#include <[pcl/geometry/mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html)>`

    ![Inheritance graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) = [MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT > |
|
| using  | [Ptr](classpcl_1_1geometry_1_1_mesh_base#ac9f1607021b5b82b3a71669fdc490a82) = shared\_ptr< [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [ConstPtr](classpcl_1_1geometry_1_1_mesh_base#a088010069ea850f670df27af07e1ec96) = shared\_ptr< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [Derived](classpcl_1_1geometry_1_1_mesh_base#a0262cb22d4c2bac4847bb6e6ee3a5b21) = DerivedT |
|
| using  | [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) = typename MeshTraitsT::VertexData |
|
| using  | [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) = typename MeshTraitsT::HalfEdgeData |
|
| using  | [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) = typename MeshTraitsT::EdgeData |
|
| using  | [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) = typename MeshTraitsT::FaceData |
|
| using  | [IsManifold](classpcl_1_1geometry_1_1_mesh_base#abcf6a42e2a578f83119c0e44f44dc2ae) = typename MeshTraitsT::IsManifold |
|
| using  | [MeshTag](classpcl_1_1geometry_1_1_mesh_base#ae8ebcbdd8ff8bf6f329238557b302cfc) = MeshTagT |
|
| using  | [HasVertexData](classpcl_1_1geometry_1_1_mesh_base#a11726b5abbf2d7c0f029b26df84af755) = std::integral\_constant< bool, !std::is\_same< [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data) >::value > |
|
| using  | [HasHalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#ae197caa81653e27b8b9392eed4be5362) = std::integral\_constant< bool, !std::is\_same< [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data) >::value > |
|
| using  | [HasEdgeData](classpcl_1_1geometry_1_1_mesh_base#a70f5a9bb189f280d58ad33951fe48da1) = std::integral\_constant< bool, !std::is\_same< [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data) >::value > |
|
| using  | [HasFaceData](classpcl_1_1geometry_1_1_mesh_base#a77c1df3beaccd8752d20065f18ff2d5e) = std::integral\_constant< bool, !std::is\_same< [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data) >::value > |
|
| using  | [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) > |
|
| using  | [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) > |
|
| using  | [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) > |
|
| using  | [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) > |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) = [pcl::geometry::VertexIndex](group__geometry#gaec9e96f2beb27bbaa15c30f822e9bd43) |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) = [pcl::geometry::HalfEdgeIndex](group__geometry#ga87ab897bc81a599385571e17c2092eeb) |
|
| using  | [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) = [pcl::geometry::EdgeIndex](group__geometry#ga741132350bddeb82e260116a5baa64be) |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) = [pcl::geometry::FaceIndex](group__geometry#ga5c9113986683da0fcf84f9853257e1fa) |
|
| using  | [VertexIndices](classpcl_1_1geometry_1_1_mesh_base#ac9601f4a7414cb54a5ce871e57089344) = std::vector< [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) > |
|
| using  | [HalfEdgeIndices](classpcl_1_1geometry_1_1_mesh_base#a67285ae9ab18ed21f2f5cf7592e65db2) = std::vector< [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) > |
|
| using  | [EdgeIndices](classpcl_1_1geometry_1_1_mesh_base#a1f6ef924d042375aab8eb339f1f7f9e0) = std::vector< [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) > |
|
| using  | [FaceIndices](classpcl_1_1geometry_1_1_mesh_base#a42ee3ca5824bda3d3ac3d099fe5b1928) = std::vector< [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) > |
|
| using  | [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acce128495bcc41783f503b6d64583ce5) = [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#af70f55fec8500a5fd9af667fc73074cc) = [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a13cd326a184b7809b8ea452ef79c3a63) = [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a64980b8e0929fb205a9e840b32644496) = [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#abb7bee9f0ef563b28668439421e12704) = [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#ac5fb5af7a83d2a8aedb49d7168702ce3) = [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a181e893bd66baa578734f085b787484e) = [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|
| using  | [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a5b136178caf303d94ead1dbacb488fea) = [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [MeshBase](classpcl_1_1geometry_1_1_mesh_base#a14d9be6a61b0476b46d5435ac615c459) () |
|  | Constructor. [More...](classpcl_1_1geometry_1_1_mesh_base#a14d9be6a61b0476b46d5435ac615c459) |
|
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) | [addVertex](classpcl_1_1geometry_1_1_mesh_base#aac6156a983fe17684d23c56a17b4c7ff) (const [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) &vertex\_data=[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c)()) |
|  | Add a vertex to the mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#aac6156a983fe17684d23c56a17b4c7ff) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) | [addFace](classpcl_1_1geometry_1_1_mesh_base#a9405be1d72b2a7bb1ec0bdc5c13c297a) (const [VertexIndices](classpcl_1_1geometry_1_1_mesh_base#ac9601f4a7414cb54a5ce871e57089344) &vertices, const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &face\_data=[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4)(), const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &edge\_data=[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d)(), const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &half\_edge\_data=[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b)()) |
|  | Add a face to the mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#a9405be1d72b2a7bb1ec0bdc5c13c297a) |
|
| void  | [deleteVertex](classpcl_1_1geometry_1_1_mesh_base#a428be4accd7f51c75d2e889d99205535) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) |
|  | Mark the given vertex and all connected half-edges and faces as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a428be4accd7f51c75d2e889d99205535) |
|
| void  | [deleteEdge](classpcl_1_1geometry_1_1_mesh_base#a4affa8ade9d394034ce299bf7fd95af1) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) |
|  | Mark the given half-edge, the opposite half-edge and the associated faces as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a4affa8ade9d394034ce299bf7fd95af1) |
|
| void  | [deleteEdge](classpcl_1_1geometry_1_1_mesh_base#a162bb8d66161e125929cd907ce48e710) (const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &idx\_edge) |
|  | Mark the given edge (both half-edges) and the associated faces as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a162bb8d66161e125929cd907ce48e710) |
|
| void  | [deleteFace](classpcl_1_1geometry_1_1_mesh_base#a18850a81cabcf16597a2418f67df452c) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) |
|  | Mark the given face as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a18850a81cabcf16597a2418f67df452c) |
|
| void  | [cleanUp](classpcl_1_1geometry_1_1_mesh_base#ad5c51551b9badbbe67526dbcf55a9efc) () |
|  | Removes all mesh elements and data that are marked as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#ad5c51551b9badbbe67526dbcf55a9efc) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getOutgoingHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#aa272421af280455cc40159a9726053a7) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Get the outgoing half-edge index to a given vertex. [More...](classpcl_1_1geometry_1_1_mesh_base#aa272421af280455cc40159a9726053a7) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getIncomingHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af963308f6ccc1e52f02ffa7aec2c1242) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Get the incoming half-edge index to a given vertex. [More...](classpcl_1_1geometry_1_1_mesh_base#af963308f6ccc1e52f02ffa7aec2c1242) |
|
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) | [getTerminatingVertexIndex](classpcl_1_1geometry_1_1_mesh_base#ace722a9209cf91e0f4a1be62ed9ace8d) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the terminating vertex index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#ace722a9209cf91e0f4a1be62ed9ace8d) |
|
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) | [getOriginatingVertexIndex](classpcl_1_1geometry_1_1_mesh_base#a495b6156425295d926afdbcc4e34fc30) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the originating vertex index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#a495b6156425295d926afdbcc4e34fc30) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getOppositeHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a1f3e4696e4a6dd299dbe94fd23ffbb37) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the opposite half-edge index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#a1f3e4696e4a6dd299dbe94fd23ffbb37) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getNextHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a06dfbe1db8d1f9c24eff51ebd4852652) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the next half-edge index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#a06dfbe1db8d1f9c24eff51ebd4852652) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getPrevHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a58255271906702d47fcbe55d6f117be1) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the previous half-edge index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#a58255271906702d47fcbe55d6f117be1) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) | [getFaceIndex](classpcl_1_1geometry_1_1_mesh_base#ae6547b360f64c3fce6ca9af1cfbf77ff) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the face index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#ae6547b360f64c3fce6ca9af1cfbf77ff) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) | [getOppositeFaceIndex](classpcl_1_1geometry_1_1_mesh_base#abcb2b4319b20191c7626bca0c4bab147) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge) const |
|  | Get the face index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#abcb2b4319b20191c7626bca0c4bab147) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getInnerHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a558324489cd62f54825fedd6f228fcc0) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Get the inner half-edge index to a given face. [More...](classpcl_1_1geometry_1_1_mesh_base#a558324489cd62f54825fedd6f228fcc0) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getOuterHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a1f508f37008a35cb0a75e031f96cc436) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Get the outer half-edge inex to a given face. [More...](classpcl_1_1geometry_1_1_mesh_base#a1f508f37008a35cb0a75e031f96cc436) |
|
| [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acce128495bcc41783f503b6d64583ce5) | [getVertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a17ce476f53a6e99c6de3996bb217674c) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|
| [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acce128495bcc41783f503b6d64583ce5) | [getVertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a138e4db9aa95de0b5b9a4c8033eaa3be) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_outgoing\_half\_edge) const |
|
| [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#af70f55fec8500a5fd9af667fc73074cc) | [getOutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a76d6a2a322ad9723d8c16c6ac6adb079) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|
| [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#af70f55fec8500a5fd9af667fc73074cc) | [getOutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a5470d21fc93156f145190d1b783f9fa2) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_outgoing\_half\_edge) const |
|
| [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a13cd326a184b7809b8ea452ef79c3a63) | [getIncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a3389ae4dcc4ca85e5adfdc33f48edc96) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|
| [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a13cd326a184b7809b8ea452ef79c3a63) | [getIncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a422dba202580736060898b65c1dde8dd) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_incoming\_half\_edge) const |
|
| [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a64980b8e0929fb205a9e840b32644496) | [getFaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acbd873aa1fd360de8a67336854ceb0c0) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|
| [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a64980b8e0929fb205a9e840b32644496) | [getFaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#aad0e01429b196849f6b081e1808dd777) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_outgoing\_half\_edge) const |
|
| [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#abb7bee9f0ef563b28668439421e12704) | [getVertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a86e8b2d7ccde25e97d4452a9c63a2be6) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|
| [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#abb7bee9f0ef563b28668439421e12704) | [getVertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a22c4d0b82719c61474f1c10ae9165273) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_inner\_half\_edge) const |
|
| [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#ac5fb5af7a83d2a8aedb49d7168702ce3) | [getInnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a3c30f9b4f2c62b35eb70fa46e48f6024) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|
| [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#ac5fb5af7a83d2a8aedb49d7168702ce3) | [getInnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a142a340e5b5cb10d86f4e1d49b3de90a) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_inner\_half\_edge) const |
|
| [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a181e893bd66baa578734f085b787484e) | [getOuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#aefe2d565191d2e35a6a4ad8b2f0773b5) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|
| [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a181e893bd66baa578734f085b787484e) | [getOuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a59a6e48c3f3275d65caf9d90139f7b30) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_inner\_half\_edge) const |
|
| [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a5b136178caf303d94ead1dbacb488fea) | [getFaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#aa0ca20bfce1cea8fdc94fddace06c38a) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|
| [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a5b136178caf303d94ead1dbacb488fea) | [getFaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#af8fb217c674a8b6cc538b80dc84708f6) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_inner\_half\_edge) const |
|
| bool  | [isEqualTopology](classpcl_1_1geometry_1_1_mesh_base#aab7ec15339e7dfb43b79c0d5bb832878) (const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) &other) const |
|  | Check if the other mesh has the same topology as this mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#aab7ec15339e7dfb43b79c0d5bb832878) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_mesh_base#ace5548daf774ab8cc7b2f294d7d8050c) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Check if the given vertex index is a valid index into the mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#ace5548daf774ab8cc7b2f294d7d8050c) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_mesh_base#a6bfa77d242a657c796f188fb78bc9ba2) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) const |
|  | Check if the given half-edge index is a valid index into the mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#a6bfa77d242a657c796f188fb78bc9ba2) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_mesh_base#a84a277d60719ee1d6793b2f5e54c64fc) (const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &idx\_edge) const |
|  | Check if the given edge index is a valid index into the mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#a84a277d60719ee1d6793b2f5e54c64fc) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_mesh_base#a8c583da87f1680b80536952fefb7b6aa) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Check if the given face index is a valid index into the mesh. [More...](classpcl_1_1geometry_1_1_mesh_base#a8c583da87f1680b80536952fefb7b6aa) |
|
| bool  | [isDeleted](classpcl_1_1geometry_1_1_mesh_base#aa114f7eeceeecdedfefc2d83d53c4f8b) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Check if the given vertex is marked as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#aa114f7eeceeecdedfefc2d83d53c4f8b) |
|
| bool  | [isDeleted](classpcl_1_1geometry_1_1_mesh_base#a9850283c5476299d481f77191b375ebc) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) const |
|  | Check if the given half-edge is marked as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a9850283c5476299d481f77191b375ebc) |
|
| bool  | [isDeleted](classpcl_1_1geometry_1_1_mesh_base#ae9dd8e27103ee10d9628d56d05e06d04) (const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &idx\_edge) const |
|  | Check if the given edge (any of the two half-edges) is marked as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#ae9dd8e27103ee10d9628d56d05e06d04) |
|
| bool  | [isDeleted](classpcl_1_1geometry_1_1_mesh_base#a0b250b2635f95c10202f73b34a5ec240) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Check if the given face is marked as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a0b250b2635f95c10202f73b34a5ec240) |
|
| bool  | [isIsolated](classpcl_1_1geometry_1_1_mesh_base#a9cbfbb8798253ce09f52fec701ee3aa7) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Check if the given vertex is isolated (not connected to other elements). [More...](classpcl_1_1geometry_1_1_mesh_base#a9cbfbb8798253ce09f52fec701ee3aa7) |
|
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#a1318e10020901a4de7eb5bdd947cf669) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Check if the given vertex lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#a1318e10020901a4de7eb5bdd947cf669) |
|
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#a32be29ab6c40c5a4a8a8c0895080ca43) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) const |
|  | Check if the given half-edge lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#a32be29ab6c40c5a4a8a8c0895080ca43) |
|
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#aeb9d2df2715d703ac11e279121433067) (const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &idx\_edge) const |
|  | Check if the given edge lies on the boundary (any of the two half-edges lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#aeb9d2df2715d703ac11e279121433067) |
|
| template<bool CheckVerticesT>  |
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#aa4a2a5251d47b228119292f93a263715) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Check if the given face lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#aa4a2a5251d47b228119292f93a263715) |
|
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#a9602bb1b698be2c9686df3e2f66a9a72) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Check if the given face lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#a9602bb1b698be2c9686df3e2f66a9a72) |
|
| bool  | [isManifold](classpcl_1_1geometry_1_1_mesh_base#aeefcfd903922b1c61251f0c237ce6cad) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Check if the given vertex is manifold. [More...](classpcl_1_1geometry_1_1_mesh_base#aeefcfd903922b1c61251f0c237ce6cad) |
|
| bool  | [isManifold](classpcl_1_1geometry_1_1_mesh_base#aed1c1b4f45d8cd9d4f357df69cd16eff) () const |
|  | Check if the mesh is manifold. [More...](classpcl_1_1geometry_1_1_mesh_base#aed1c1b4f45d8cd9d4f357df69cd16eff) |
|
| std::size\_t  | [sizeVertices](classpcl_1_1geometry_1_1_mesh_base#a343825f6c75f93e1d65cddfb6d0e5e6e) () const |
|  | Get the number of the vertices. [More...](classpcl_1_1geometry_1_1_mesh_base#a343825f6c75f93e1d65cddfb6d0e5e6e) |
|
| std::size\_t  | [sizeHalfEdges](classpcl_1_1geometry_1_1_mesh_base#a700937ce9d4c07cac30ef6c59d4a9e4f) () const |
|  | Get the number of the half-edges. [More...](classpcl_1_1geometry_1_1_mesh_base#a700937ce9d4c07cac30ef6c59d4a9e4f) |
|
| std::size\_t  | [sizeEdges](classpcl_1_1geometry_1_1_mesh_base#a383535eb90297563b6c9375b0cbad398) () const |
|  | Get the number of the edges. [More...](classpcl_1_1geometry_1_1_mesh_base#a383535eb90297563b6c9375b0cbad398) |
|
| std::size\_t  | [sizeFaces](classpcl_1_1geometry_1_1_mesh_base#a49c49707461eeb26e2f252afd265f276) () const |
|  | Get the number of the faces. [More...](classpcl_1_1geometry_1_1_mesh_base#a49c49707461eeb26e2f252afd265f276) |
|
| bool  | [empty](classpcl_1_1geometry_1_1_mesh_base#a41c3621ed5b27cbb87cb8a898f2ced25) () const |
|  | Check if the mesh is empty. [More...](classpcl_1_1geometry_1_1_mesh_base#a41c3621ed5b27cbb87cb8a898f2ced25) |
|
| bool  | [emptyVertices](classpcl_1_1geometry_1_1_mesh_base#a100c6f21e1e05ee3d70f64c35070193b) () const |
|  | Check if the vertices are empty. [More...](classpcl_1_1geometry_1_1_mesh_base#a100c6f21e1e05ee3d70f64c35070193b) |
|
| bool  | [emptyEdges](classpcl_1_1geometry_1_1_mesh_base#a205ed992a9a4ae55610dc546eb9ff07e) () const |
|  | Check if the edges are empty. [More...](classpcl_1_1geometry_1_1_mesh_base#a205ed992a9a4ae55610dc546eb9ff07e) |
|
| bool  | [emptyFaces](classpcl_1_1geometry_1_1_mesh_base#a41348d880d4db2791b117ce53ac0844d) () const |
|  | Check if the faces are empty. [More...](classpcl_1_1geometry_1_1_mesh_base#a41348d880d4db2791b117ce53ac0844d) |
|
| void  | [reserveVertices](classpcl_1_1geometry_1_1_mesh_base#ab7ddac1e5a6c3cff601818235e6c9fc5) (const std::size\_t n) |
|  | Reserve storage space n vertices. [More...](classpcl_1_1geometry_1_1_mesh_base#ab7ddac1e5a6c3cff601818235e6c9fc5) |
|
| void  | [reserveEdges](classpcl_1_1geometry_1_1_mesh_base#a924bef40ef748365f8e8dec854039d23) (const std::size\_t n) |
|  | Reserve storage space for n edges (2\*n storage space is reserved for the half-edges). [More...](classpcl_1_1geometry_1_1_mesh_base#a924bef40ef748365f8e8dec854039d23) |
|
| void  | [reserveFaces](classpcl_1_1geometry_1_1_mesh_base#a67fcf470c8c3cba8ec6d60749ec3793a) (const std::size\_t n) |
|  | Reserve storage space for n faces. [More...](classpcl_1_1geometry_1_1_mesh_base#a67fcf470c8c3cba8ec6d60749ec3793a) |
|
| void  | [resizeVertices](classpcl_1_1geometry_1_1_mesh_base#a34a7e7905a973bbd2fbf63f257f7cc00) (const std::size\_t n, const [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) &data=[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c)()) |
|  | Resize the the vertices to n elements. [More...](classpcl_1_1geometry_1_1_mesh_base#a34a7e7905a973bbd2fbf63f257f7cc00) |
|
| void  | [resizeEdges](classpcl_1_1geometry_1_1_mesh_base#a736f9c37fbd6d1ca3e8b0aceee644265) (const std::size\_t n, const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &edge\_data=[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d)(), const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) he\_data=[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b)()) |
|  | Resize the edges to n elements (half-edges will hold 2\*n elements). [More...](classpcl_1_1geometry_1_1_mesh_base#a736f9c37fbd6d1ca3e8b0aceee644265) |
|
| void  | [resizeFaces](classpcl_1_1geometry_1_1_mesh_base#ab9237c77a39896757161bbfb07da83d5) (const std::size\_t n, const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &data=[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4)()) |
|  | Resize the faces to n elements. [More...](classpcl_1_1geometry_1_1_mesh_base#ab9237c77a39896757161bbfb07da83d5) |
|
| void  | [clear](classpcl_1_1geometry_1_1_mesh_base#af3c8260c25498a753b8d6b7204667764) () |
|  | Clear all mesh elements and data. [More...](classpcl_1_1geometry_1_1_mesh_base#af3c8260c25498a753b8d6b7204667764) |
|
| [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) &  | [getVertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#ad01617b7fc9c08e79b7357659a8d6731) () |
|  | Get access to the stored vertex data. [More...](classpcl_1_1geometry_1_1_mesh_base#ad01617b7fc9c08e79b7357659a8d6731) |
|
| [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) | [getVertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#ab1237135e3318c46b9e71c7a31c22859) () const |
|  | Get the stored vertex data. [More...](classpcl_1_1geometry_1_1_mesh_base#ab1237135e3318c46b9e71c7a31c22859) |
|
| bool  | [setVertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a6337a69d1d50217e4de671d3025f236e) (const [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) &vertex\_data\_cloud) |
|  | Change the stored vertex data. [More...](classpcl_1_1geometry_1_1_mesh_base#a6337a69d1d50217e4de671d3025f236e) |
|
| [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) &  | [getHalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#ac697d98117bd574577def3475ad6f1d5) () |
|  | Get access to the stored half-edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#ac697d98117bd574577def3475ad6f1d5) |
|
| [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) | [getHalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#a2b67d93436ffa5f81b370d9f0a4ab608) () const |
|  | Get the stored half-edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#a2b67d93436ffa5f81b370d9f0a4ab608) |
|
| bool  | [setHalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#a4848866528fc0e8a64197f91498defa0) (const [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) &half\_edge\_data\_cloud) |
|  | Change the stored half-edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#a4848866528fc0e8a64197f91498defa0) |
|
| [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) &  | [getEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#a68c13e85605765881e3d885197f35fc3) () |
|  | Get access to the stored edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#a68c13e85605765881e3d885197f35fc3) |
|
| [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) | [getEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#acf44dfefcbc86259db6dd20b267bc8de) () const |
|  | Get the stored edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#acf44dfefcbc86259db6dd20b267bc8de) |
|
| bool  | [setEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#a365f1f65496b17f9ab5c51edae4a7782) (const [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) &edge\_data\_cloud) |
|  | Change the stored edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#a365f1f65496b17f9ab5c51edae4a7782) |
|
| [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) &  | [getFaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#af5df66a29bc91a2129a9da83fdd9da7e) () |
|  | Get access to the stored face data. [More...](classpcl_1_1geometry_1_1_mesh_base#af5df66a29bc91a2129a9da83fdd9da7e) |
|
| [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) | [getFaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a112b693465d5fb31297509f081209c64) () const |
|  | Get the stored face data. [More...](classpcl_1_1geometry_1_1_mesh_base#a112b693465d5fb31297509f081209c64) |
|
| bool  | [setFaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a582a4ea3ce387865fde824816fffb6ca) (const [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) &face\_data\_cloud) |
|  | Change the stored face data. [More...](classpcl_1_1geometry_1_1_mesh_base#a582a4ea3ce387865fde824816fffb6ca) |
|
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) | [getVertexIndex](classpcl_1_1geometry_1_1_mesh_base#a79c2cc7cfbccb8dbb5769c55a7b15d04) (const [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) &vertex\_data) const |
|  | Get the index associated to the given vertex data. [More...](classpcl_1_1geometry_1_1_mesh_base#a79c2cc7cfbccb8dbb5769c55a7b15d04) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [getHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a2a83029bd5d8fa5633edf20cc0f45473) (const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &half\_edge\_data) const |
|  | Get the index associated to the given half-edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#a2a83029bd5d8fa5633edf20cc0f45473) |
|
| [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) | [getEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a1f085bbc37e1866a850d6707f2839877) (const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &edge\_data) const |
|  | Get the index associated to the given edge data. [More...](classpcl_1_1geometry_1_1_mesh_base#a1f085bbc37e1866a850d6707f2839877) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) | [getFaceIndex](classpcl_1_1geometry_1_1_mesh_base#ad8c950b6fb87139e3c394ec567782d12) (const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &face\_data) const |
|  | Get the index associated to the given face data. [More...](classpcl_1_1geometry_1_1_mesh_base#ad8c950b6fb87139e3c394ec567782d12) |
|




|  |
| --- |
| 
 Protected Types |
| using  | [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) = [pcl::geometry::Vertex](classpcl_1_1geometry_1_1_vertex) |
|
| using  | [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) = [pcl::geometry::HalfEdge](classpcl_1_1geometry_1_1_half_edge) |
|
| using  | [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) = [pcl::geometry::Face](classpcl_1_1geometry_1_1_face) |
|
| using  | [Vertices](classpcl_1_1geometry_1_1_mesh_base#a1edf0dc6c8596f06d9842f508b297570) = std::vector< [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) > |
|
| using  | [HalfEdges](classpcl_1_1geometry_1_1_mesh_base#a9c648f940fd57532841a5112277036d4) = std::vector< [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) > |
|
| using  | [Faces](classpcl_1_1geometry_1_1_mesh_base#a085270b96bca43705e0f08dd1ecb70c9) = std::vector< [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) > |
|
| using  | [VertexIterator](classpcl_1_1geometry_1_1_mesh_base#af0a4c1f3034ba373176b9c294f0f08e7) = typename Vertices::iterator |
|
| using  | [HalfEdgeIterator](classpcl_1_1geometry_1_1_mesh_base#a50a6e1abbb6034e60203d039e01eb77b) = typename HalfEdges::iterator |
|
| using  | [FaceIterator](classpcl_1_1geometry_1_1_mesh_base#af806242fd556647613ba17743fb4d357) = typename Faces::iterator |
|
| using  | [VertexConstIterator](classpcl_1_1geometry_1_1_mesh_base#aa36de114f7e7d71d8edb8ec470874ee5) = typename Vertices::const\_iterator |
|
| using  | [HalfEdgeConstIterator](classpcl_1_1geometry_1_1_mesh_base#ab84541d7e5090c5f1cb52aa7efb2509a) = typename HalfEdges::const\_iterator |
|
| using  | [FaceConstIterator](classpcl_1_1geometry_1_1_mesh_base#a5eb2a7b90a41e763c79025bfe9c29165) = typename Faces::const\_iterator |
|




|  |
| --- |
| 
 Protected Member Functions |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) | [addFaceImplBase](classpcl_1_1geometry_1_1_mesh_base#a5bfa23555bbed2097f7e55ea563c48c8) (const [VertexIndices](classpcl_1_1geometry_1_1_mesh_base#ac9601f4a7414cb54a5ce871e57089344) &vertices, const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &face\_data, const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &edge\_data, const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &half\_edge\_data) |
|  | General implementation of addFace. [More...](classpcl_1_1geometry_1_1_mesh_base#a5bfa23555bbed2097f7e55ea563c48c8) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) | [addEdge](classpcl_1_1geometry_1_1_mesh_base#adfe2a701da9f75051cbff2f35f2ce4a1) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_a, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &he\_data, const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &edge\_data) |
|  | Add an edge between the two given vertices and connect them with the vertices. [More...](classpcl_1_1geometry_1_1_mesh_base#adfe2a701da9f75051cbff2f35f2ce4a1) |
|
| bool  | [checkTopology1](classpcl_1_1geometry_1_1_mesh_base#a37d396d8aed0c9940235de6e09bf27c9) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_a, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, std::vector< bool >::reference is\_new\_ab, std::true\_type) const |
|  | Check if the edge between the two vertices can be added. [More...](classpcl_1_1geometry_1_1_mesh_base#a37d396d8aed0c9940235de6e09bf27c9) |
|
| bool  | [checkTopology1](classpcl_1_1geometry_1_1_mesh_base#afa38548c1c25de9e2557bb0047f936d1) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_a, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, std::vector< bool >::reference is\_new\_ab, std::false\_type) const |
|  | Non manifold version of checkTopology1. [More...](classpcl_1_1geometry_1_1_mesh_base#afa38548c1c25de9e2557bb0047f936d1) |
|
| bool  | [checkTopology2](classpcl_1_1geometry_1_1_mesh_base#a68d0a013be4bb2f44783f0b9fa307375) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, const bool is\_new\_ab, const bool is\_new\_bc, const bool is\_isolated\_b, std::vector< bool >::reference, [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, std::true\_type) const |
|  | Check if the face may be added (mesh does not become non-manifold). [More...](classpcl_1_1geometry_1_1_mesh_base#a68d0a013be4bb2f44783f0b9fa307375) |
|
| bool  | [checkTopology2](classpcl_1_1geometry_1_1_mesh_base#ac0b438def43f6309441d2093984f7fd1) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const bool is\_new\_ab, const bool is\_new\_bc, const bool, std::vector< bool >::reference make\_adjacent\_ab\_bc, [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_free\_half\_edge, std::false\_type) const |
|  | Check if the half-edge bc is the next half-edge of ab. [More...](classpcl_1_1geometry_1_1_mesh_base#ac0b438def43f6309441d2093984f7fd1) |
|
| void  | [makeAdjacent](classpcl_1_1geometry_1_1_mesh_base#a9d9496611b3a0df8f2c769dc7899ed05) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_free\_half\_edge) |
|  | Make the half-edges bc the next half-edge of ab. [More...](classpcl_1_1geometry_1_1_mesh_base#a9d9496611b3a0df8f2c769dc7899ed05) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) | [connectFace](classpcl_1_1geometry_1_1_mesh_base#a275168373d4ed9f2787abd3be6f78597) (const [HalfEdgeIndices](classpcl_1_1geometry_1_1_mesh_base#a67285ae9ab18ed21f2f5cf7592e65db2) &inner\_he, const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &face\_data) |
|  | Add a face to the mesh and connect it to the half-edges. [More...](classpcl_1_1geometry_1_1_mesh_base#a275168373d4ed9f2787abd3be6f78597) |
|
| void  | [connectPrevNext](classpcl_1_1geometry_1_1_mesh_base#a953b3cece4af98f743a73450c557fdf3) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc) |
|  | Connect the next and prev indices of the two half-edges with each other. [More...](classpcl_1_1geometry_1_1_mesh_base#a953b3cece4af98f743a73450c557fdf3) |
|
| void  | [connectNewNew](classpcl_1_1geometry_1_1_mesh_base#aa568d61f7224822cc4fb34dc1dc02fe2) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, std::true\_type) |
|  | Both half-edges are new (manifold version). [More...](classpcl_1_1geometry_1_1_mesh_base#aa568d61f7224822cc4fb34dc1dc02fe2) |
|
| void  | [connectNewNew](classpcl_1_1geometry_1_1_mesh_base#a865e02fbeb955c222be9c5bb7f3ffe4a) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, std::false\_type) |
|  | Both half-edges are new (non-manifold version). [More...](classpcl_1_1geometry_1_1_mesh_base#a865e02fbeb955c222be9c5bb7f3ffe4a) |
|
| void  | [connectNewOld](classpcl_1_1geometry_1_1_mesh_base#acaa2e6107c5a5673f08b860d05ff0024) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b) |
|  | The first half-edge is new. [More...](classpcl_1_1geometry_1_1_mesh_base#acaa2e6107c5a5673f08b860d05ff0024) |
|
| void  | [connectOldNew](classpcl_1_1geometry_1_1_mesh_base#a45023314f8c909925b671be55bc68a16) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b) |
|  | The second half-edge is new. [More...](classpcl_1_1geometry_1_1_mesh_base#a45023314f8c909925b671be55bc68a16) |
|
| void  | [connectOldOld](classpcl_1_1geometry_1_1_mesh_base#ac78b878ac3bd968701f917cc270d3c23) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &, std::true\_type) |
|  | Both half-edges are old (manifold version). [More...](classpcl_1_1geometry_1_1_mesh_base#ac78b878ac3bd968701f917cc270d3c23) |
|
| void  | [connectOldOld](classpcl_1_1geometry_1_1_mesh_base#aea0c5b087af665fc1bc3ec290119fe95) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, std::false\_type) |
|  | Both half-edges are old (non-manifold version). [More...](classpcl_1_1geometry_1_1_mesh_base#aea0c5b087af665fc1bc3ec290119fe95) |
|
| template<class DataT >  |
| void  | [addData](classpcl_1_1geometry_1_1_mesh_base#a7d5d2cd5f1f922bcae8fd8dc11c37678) ([pcl::PointCloud](classpcl_1_1_point_cloud)< DataT > &cloud, const DataT &data, std::true\_type) |
|  | Add mesh data. [More...](classpcl_1_1geometry_1_1_mesh_base#a7d5d2cd5f1f922bcae8fd8dc11c37678) |
|
| template<class DataT >  |
| void  | [addData](classpcl_1_1geometry_1_1_mesh_base#a561e2cf538d16e8eb7c0b0548d6936dc) ([pcl::PointCloud](classpcl_1_1_point_cloud)< DataT > &, const DataT &, std::false\_type) |
|  | Does nothing. [More...](classpcl_1_1geometry_1_1_mesh_base#a561e2cf538d16e8eb7c0b0548d6936dc) |
|
| void  | [deleteFace](classpcl_1_1geometry_1_1_mesh_base#aee186b66581b7d773825c0753c4981e4) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face, std::true\_type) |
|  | Manifold version of deleteFace. [More...](classpcl_1_1geometry_1_1_mesh_base#aee186b66581b7d773825c0753c4981e4) |
|
| void  | [deleteFace](classpcl_1_1geometry_1_1_mesh_base#ad11d23b3650fab9528e15ee53cd574bb) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face, std::false\_type) |
|  | Non-manifold version of deleteFace. [More...](classpcl_1_1geometry_1_1_mesh_base#ad11d23b3650fab9528e15ee53cd574bb) |
|
| void  | [reconnect](classpcl_1_1geometry_1_1_mesh_base#a34a312e02ba5bd42a15bc8120ae6dbd9) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_ab, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const bool is\_boundary\_ba, const bool is\_boundary\_cb) |
|  | Deconnect the input half-edges from the mesh and adjust the indices of the connected half-edges. [More...](classpcl_1_1geometry_1_1_mesh_base#a34a312e02ba5bd42a15bc8120ae6dbd9) |
|
| void  | [reconnectNBNB](classpcl_1_1geometry_1_1_mesh_base#a570f361e9b46ef14eea94426c99269cc) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_cb, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, std::true\_type) |
|  | Both edges are not on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#a570f361e9b46ef14eea94426c99269cc) |
|
| void  | [reconnectNBNB](classpcl_1_1geometry_1_1_mesh_base#aebd12f7a9cb67e03ccd284da525b5e10) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he\_bc, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_v\_b, std::false\_type) |
|  | Both edges are not on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#aebd12f7a9cb67e03ccd284da525b5e10) |
|
| void  | [markDeleted](classpcl_1_1geometry_1_1_mesh_base#a62b4389cf1d19c7ae829056888651b54) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) |
|  | Mark the given vertex as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a62b4389cf1d19c7ae829056888651b54) |
|
| void  | [markDeleted](classpcl_1_1geometry_1_1_mesh_base#a6fa46aeb0131a6e8ab988821626a9b34) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) |
|  | Mark the given half-edge as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a6fa46aeb0131a6e8ab988821626a9b34) |
|
| void  | [markDeleted](classpcl_1_1geometry_1_1_mesh_base#ac92c74ee55571dc25e99425f699f4aac) (const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &idx\_edge) |
|  | Mark the given edge (both half-edges) as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#ac92c74ee55571dc25e99425f699f4aac) |
|
| void  | [markDeleted](classpcl_1_1geometry_1_1_mesh_base#a528ba58fdc6198a6465134023503510f) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) |
|  | Mark the given face as deleted. [More...](classpcl_1_1geometry_1_1_mesh_base#a528ba58fdc6198a6465134023503510f) |
|
| template<class ElementContainerT , class DataContainerT , class IndexContainerT , class HasDataT >  |
| IndexContainerT  | [remove](classpcl_1_1geometry_1_1_mesh_base#af7bd1b1b2ca096ce00e42044b68bd0f2) (ElementContainerT &elements, DataContainerT &data\_cloud) |
|  | Removes mesh elements and data that are marked as deleted from the container. [More...](classpcl_1_1geometry_1_1_mesh_base#af7bd1b1b2ca096ce00e42044b68bd0f2) |
|
| template<class IteratorT >  |
| void  | [incrementIf](classpcl_1_1geometry_1_1_mesh_base#af542a83e2a0b5552733804ad2c7c4a73) (IteratorT &it, std::true\_type) const |
|  | Increment the iterator. [More...](classpcl_1_1geometry_1_1_mesh_base#af542a83e2a0b5552733804ad2c7c4a73) |
|
| template<class IteratorT >  |
| void  | [incrementIf](classpcl_1_1geometry_1_1_mesh_base#ae6ff7ba6be05fd75cd8227c24ef3f902) (IteratorT &, std::false\_type) const |
|  | Does nothing. [More...](classpcl_1_1geometry_1_1_mesh_base#ae6ff7ba6be05fd75cd8227c24ef3f902) |
|
| template<class ConstIteratorT , class IteratorT >  |
| void  | [assignIf](classpcl_1_1geometry_1_1_mesh_base#aa05fb70a936834a610cfe1732d32f5b3) (const ConstIteratorT source, IteratorT target, std::true\_type) const |
|  | Assign the source iterator to the target iterator. [More...](classpcl_1_1geometry_1_1_mesh_base#aa05fb70a936834a610cfe1732d32f5b3) |
|
| template<class ConstIteratorT , class IteratorT >  |
| void  | [assignIf](classpcl_1_1geometry_1_1_mesh_base#a79de00dd9686d5d4b497f57ffc054c17) (const ConstIteratorT, IteratorT, std::false\_type) const |
|  | Does nothing. [More...](classpcl_1_1geometry_1_1_mesh_base#a79de00dd9686d5d4b497f57ffc054c17) |
|
| void  | [setOutgoingHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a02d2f05b6256c3ac6fca45151adbd3e9) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_outgoing\_half\_edge) |
|  | Set the outgoing half-edge index to a given vertex. [More...](classpcl_1_1geometry_1_1_mesh_base#a02d2f05b6256c3ac6fca45151adbd3e9) |
|
| void  | [setTerminatingVertexIndex](classpcl_1_1geometry_1_1_mesh_base#a8ab78ee0e1db2ce9c9d254f5b36b3cdd) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge, const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_terminating\_vertex) |
|  | Set the terminating vertex index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#a8ab78ee0e1db2ce9c9d254f5b36b3cdd) |
|
| void  | [setNextHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#a0b29a2c3e3faf15dd5030e0f6d9b99c7) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_next\_half\_edge) |
|  | Set the next half\_edge index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#a0b29a2c3e3faf15dd5030e0f6d9b99c7) |
|
| void  | [setPrevHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ab2c06f58e2b38f903b2218ad7547bd0f) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_prev\_half\_edge) |
|  | Set the previous half-edge index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#ab2c06f58e2b38f903b2218ad7547bd0f) |
|
| void  | [setFaceIndex](classpcl_1_1geometry_1_1_mesh_base#adb4ece77ab1605520fec23946c585af8) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_half\_edge, const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) |
|  | Set the face index to a given half-edge. [More...](classpcl_1_1geometry_1_1_mesh_base#adb4ece77ab1605520fec23946c585af8) |
|
| void  | [setInnerHalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ae45961df8a57ff48f1d2d3d61b2e22e5) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face, const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_inner\_half\_edge) |
|  | Set the inner half-edge index to a given face. [More...](classpcl_1_1geometry_1_1_mesh_base#ae45961df8a57ff48f1d2d3d61b2e22e5) |
|
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#a1505aeffad11519d4fdd1100c81ef750) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face, std::true\_type) const |
|  | Check if any vertex of the face lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#a1505aeffad11519d4fdd1100c81ef750) |
|
| bool  | [isBoundary](classpcl_1_1geometry_1_1_mesh_base#ae7588ea910f8bcadfa4a3f7e8cbf9248) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face, std::false\_type) const |
|  | Check if any edge of the face lies on the boundary. [More...](classpcl_1_1geometry_1_1_mesh_base#ae7588ea910f8bcadfa4a3f7e8cbf9248) |
|
| bool  | [isManifold](classpcl_1_1geometry_1_1_mesh_base#afee842fdf25161bb3085677f4f390301) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &, std::true\_type) const |
|  | Always manifold. [More...](classpcl_1_1geometry_1_1_mesh_base#afee842fdf25161bb3085677f4f390301) |
|
| bool  | [isManifold](classpcl_1_1geometry_1_1_mesh_base#aa3e54a08b0dda77864a16bac8ca61612) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex, std::false\_type) const |
|  | Check if the given vertex is manifold. [More...](classpcl_1_1geometry_1_1_mesh_base#aa3e54a08b0dda77864a16bac8ca61612) |
|
| bool  | [isManifold](classpcl_1_1geometry_1_1_mesh_base#a80aa18ed323e967b849fda64205170ad) (std::true\_type) const |
|  | Always manifold. [More...](classpcl_1_1geometry_1_1_mesh_base#a80aa18ed323e967b849fda64205170ad) |
|
| bool  | [isManifold](classpcl_1_1geometry_1_1_mesh_base#ad62eece9718f3b22b6587dc6cb40d5fd) (std::false\_type) const |
|  | Check if all vertices in the mesh are manifold. [More...](classpcl_1_1geometry_1_1_mesh_base#ad62eece9718f3b22b6587dc6cb40d5fd) |
|
| template<class DataCloudT >  |
| void  | [reserveData](classpcl_1_1geometry_1_1_mesh_base#a8d8f6b75fb3f3c65be924f409e9de8fd) (DataCloudT &cloud, const std::size\_t n, std::true\_type) const |
|  | Reserve storage space for the mesh data. [More...](classpcl_1_1geometry_1_1_mesh_base#a8d8f6b75fb3f3c65be924f409e9de8fd) |
|
| template<class DataCloudT >  |
| void  | [reserveData](classpcl_1_1geometry_1_1_mesh_base#a44ae691ac67d32904d21f773eed2943a) (DataCloudT &, const std::size\_t, std::false\_type) const |
|  | Does nothing. [More...](classpcl_1_1geometry_1_1_mesh_base#a44ae691ac67d32904d21f773eed2943a) |
|
| template<class DataCloudT >  |
| void  | [resizeData](classpcl_1_1geometry_1_1_mesh_base#a2aca8442d6e8b95945e5b8b0b5b84c56) (DataCloudT &data\_cloud, const std::size\_t n, const typename DataCloudT::value\_type &data, std::true\_type) const |
|  | Resize the mesh data. [More...](classpcl_1_1geometry_1_1_mesh_base#a2aca8442d6e8b95945e5b8b0b5b84c56) |
|
| template<class DataCloudT >  |
| void  | [resizeData](classpcl_1_1geometry_1_1_mesh_base#a4c9cb09b70b9c3d91c6004ec5ac75d3c) (DataCloudT &, const std::size\_t, const typename DataCloudT::value\_type &, std::false\_type) const |
|  | Does nothing. [More...](classpcl_1_1geometry_1_1_mesh_base#a4c9cb09b70b9c3d91c6004ec5ac75d3c) |
|
| template<class DataCloudT >  |
| void  | [clearData](classpcl_1_1geometry_1_1_mesh_base#ad6c6403569a9290404f25dc4b6ba38f0) (DataCloudT &cloud, std::true\_type) const |
|  | Clear the mesh data. [More...](classpcl_1_1geometry_1_1_mesh_base#ad6c6403569a9290404f25dc4b6ba38f0) |
|
| template<class DataCloudT >  |
| void  | [clearData](classpcl_1_1geometry_1_1_mesh_base#a5a5d1b3e40fef249a6bb34a1a1f787be) (DataCloudT &, std::false\_type) const |
|  | Does nothing. [More...](classpcl_1_1geometry_1_1_mesh_base#a5a5d1b3e40fef249a6bb34a1a1f787be) |
|
| [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) &  | [getVertex](classpcl_1_1geometry_1_1_mesh_base#a949065f206a49428ebc1169f39edab83) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) |
|  | Get the vertex for the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#a949065f206a49428ebc1169f39edab83) |
|
| [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) | [getVertex](classpcl_1_1geometry_1_1_mesh_base#a5a68751110b806710e024698cd613c32) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex) const |
|  | Get the vertex for the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#a5a68751110b806710e024698cd613c32) |
|
| void  | [setVertex](classpcl_1_1geometry_1_1_mesh_base#a74022f448b47a5b0b486133628b43da8) (const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &idx\_vertex, const [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) &vertex) |
|  | Set the vertex at the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#a74022f448b47a5b0b486133628b43da8) |
|
| [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) &  | [getHalfEdge](classpcl_1_1geometry_1_1_mesh_base#afb6751c957f49de4295d345d724ce88c) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) |
|  | Get the half-edge for the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#afb6751c957f49de4295d345d724ce88c) |
|
| [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) | [getHalfEdge](classpcl_1_1geometry_1_1_mesh_base#afcb42a465dc29719b7ccc1363230bedc) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he) const |
|  | Get the half-edge for the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#afcb42a465dc29719b7ccc1363230bedc) |
|
| void  | [setHalfEdge](classpcl_1_1geometry_1_1_mesh_base#a266993b1bdf7095c0e75d3e80427bc7b) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &idx\_he, const [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) &half\_edge) |
|  | Set the half-edge at the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#a266993b1bdf7095c0e75d3e80427bc7b) |
|
| [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) &  | [getFace](classpcl_1_1geometry_1_1_mesh_base#afcb173f4e9c97479f64a351d9fab57d8) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) |
|  | Get the face for the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#afcb173f4e9c97479f64a351d9fab57d8) |
|
| [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) | [getFace](classpcl_1_1geometry_1_1_mesh_base#a9fd8168c9e0cfb2261289c053849e8d5) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face) const |
|  | Get the face for the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#a9fd8168c9e0cfb2261289c053849e8d5) |
|
| void  | [setFace](classpcl_1_1geometry_1_1_mesh_base#aa5565dd87531f80e92d3bca5c70c92de) (const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &idx\_face, const [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) &face) |
|  | Set the face at the given index. [More...](classpcl_1_1geometry_1_1_mesh_base#aa5565dd87531f80e92d3bca5c70c92de) |
|




|  |
| --- |
| 
 Friends |
| template<class MeshT >  |
| class  | [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_base#a911d805527382c9969e3c0684075cc56) |
|

 Detailed Description
--------------------

 
### template<class DerivedT, class MeshTraitsT, class MeshTagT> class pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >

 Base class for the half-edge mesh. 

 
Template Parameters
 

|  |  |
| --- | --- |
| DerivedT | Has to implement the method 'addFaceImpl'. Please have a look at [pcl::geometry::TriangleMesh](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_triangle_mesh.html "Half-edge mesh that can only store triangles."), [pcl::geometry::QuadMesh](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_quad_mesh.html "Half-edge mesh that can only store quads.") and [pcl::geometry::PolygonMesh](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_polygon_mesh.html "General half-edge mesh that can store any polygon with a minimum number of vertices of 3.").  |
| MeshTraitsT | Please have a look at [pcl::geometry::DefaultMeshTraits](structpcl_1_1geometry_1_1_default_mesh_traits "The mesh traits are used to set up compile time settings for the mesh.").  |
| MeshTagT | Tag describing the type of the mesh, e.g. [TriangleMeshTag](structpcl_1_1geometry_1_1_triangle_mesh_tag "Tag describing the type of the mesh."), [QuadMeshTag](structpcl_1_1geometry_1_1_quad_mesh_tag "Tag describing the type of the mesh."), [PolygonMeshTag](structpcl_1_1geometry_1_1_polygon_mesh_tag "Tag describing the type of the mesh.").  |

   
Author
Martin Saelzle
 
**[Todo:](todo#_todo000011)**
Add documentation 
 Definition at line [95](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00095) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[ConstPtr](classpcl_1_1geometry_1_1_mesh_base#a088010069ea850f670df27af07e1ec96) = shared\_ptr<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [99](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00099) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Derived
-------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Derived](classpcl_1_1geometry_1_1_mesh_base#a0262cb22d4c2bac4847bb6e6ee3a5b21) = DerivedT |

 
 Definition at line [101](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00101) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    EdgeData
--------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) = typename MeshTraitsT::EdgeData |

 
 Definition at line [106](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00106) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    EdgeDataCloud
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d)> |

 
 Definition at line [132](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00132) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    EdgeIndex
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) = [pcl::geometry::EdgeIndex](group__geometry#ga741132350bddeb82e260116a5baa64be) |

 
 Definition at line [138](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00138) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    EdgeIndices
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[EdgeIndices](classpcl_1_1geometry_1_1_mesh_base#a1f6ef924d042375aab8eb339f1f7f9e0) = std::vector<[EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b)> |

 
 Definition at line [143](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00143) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Face
----

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) = [pcl::geometry::Face](classpcl_1_1geometry_1_1_face) |

 | protected |

 
 Definition at line [1139](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01139) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceAroundFaceCirculator
------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a5b136178caf303d94ead1dbacb488fea) = [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [161](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00161) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceAroundVertexCirculator
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a64980b8e0929fb205a9e840b32644496) = [pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [153](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00153) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceConstIterator
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceConstIterator](classpcl_1_1geometry_1_1_mesh_base#a5eb2a7b90a41e763c79025bfe9c29165) = typename Faces::const\_iterator |

 | protected |

 
 Definition at line [1151](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01151) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceData
--------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) = typename MeshTraitsT::FaceData |

 
 Definition at line [107](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00107) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceDataCloud
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4)> |

 
 Definition at line [133](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00133) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceIndex
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) = [pcl::geometry::FaceIndex](group__geometry#ga5c9113986683da0fcf84f9853257e1fa) |

 
 Definition at line [139](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00139) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceIndices
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceIndices](classpcl_1_1geometry_1_1_mesh_base#a42ee3ca5824bda3d3ac3d099fe5b1928) = std::vector<[FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e)> |

 
 Definition at line [144](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00144) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    FaceIterator
------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[FaceIterator](classpcl_1_1geometry_1_1_mesh_base#af806242fd556647613ba17743fb4d357) = typename Faces::iterator |

 | protected |

 
 Definition at line [1147](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01147) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Faces
-----

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Faces](classpcl_1_1geometry_1_1_mesh_base#a085270b96bca43705e0f08dd1ecb70c9) = std::vector<[Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72)> |

 | protected |

 
 Definition at line [1143](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01143) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdge
--------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) = [pcl::geometry::HalfEdge](classpcl_1_1geometry_1_1_half_edge) |

 | protected |

 
 Definition at line [1138](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01138) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdgeConstIterator
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdgeConstIterator](classpcl_1_1geometry_1_1_mesh_base#ab84541d7e5090c5f1cb52aa7efb2509a) = typename HalfEdges::const\_iterator |

 | protected |

 
 Definition at line [1150](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01150) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdgeData
------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) = typename MeshTraitsT::HalfEdgeData |

 
 Definition at line [105](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00105) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdgeDataCloud
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b)> |

 
 Definition at line [131](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00131) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdgeIndex
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) = [pcl::geometry::HalfEdgeIndex](group__geometry#ga87ab897bc81a599385571e17c2092eeb) |

 
 Definition at line [137](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00137) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdgeIndices
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdgeIndices](classpcl_1_1geometry_1_1_mesh_base#a67285ae9ab18ed21f2f5cf7592e65db2) = std::vector<[HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2)> |

 
 Definition at line [142](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00142) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdgeIterator
----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdgeIterator](classpcl_1_1geometry_1_1_mesh_base#a50a6e1abbb6034e60203d039e01eb77b) = typename HalfEdges::iterator |

 | protected |

 
 Definition at line [1146](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01146) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HalfEdges
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HalfEdges](classpcl_1_1geometry_1_1_mesh_base#a9c648f940fd57532841a5112277036d4) = std::vector<[HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3)> |

 | protected |

 
 Definition at line [1142](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01142) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HasEdgeData
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HasEdgeData](classpcl_1_1geometry_1_1_mesh_base#a70f5a9bb189f280d58ad33951fe48da1) = std::integral\_constant<bool, !std::is\_same<[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data)>::value> |

 
 Definition at line [123](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00123) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HasFaceData
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HasFaceData](classpcl_1_1geometry_1_1_mesh_base#a77c1df3beaccd8752d20065f18ff2d5e) = std::integral\_constant<bool, !std::is\_same<[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data)>::value> |

 
 Definition at line [126](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00126) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HasHalfEdgeData
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HasHalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#ae197caa81653e27b8b9392eed4be5362) = std::integral\_constant<bool, !std::is\_same<[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data)>::value> |

 
 Definition at line [120](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00120) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    HasVertexData
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[HasVertexData](classpcl_1_1geometry_1_1_mesh_base#a11726b5abbf2d7c0f029b26df84af755) = std::integral\_constant<bool, !std::is\_same<[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c), [pcl::geometry::NoData](structpcl_1_1geometry_1_1_no_data)>::value> |

 
 Definition at line [117](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00117) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    IncomingHalfEdgeAroundVertexCirculator
--------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a13cd326a184b7809b8ea452ef79c3a63) = [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [151](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00151) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    InnerHalfEdgeAroundFaceCirculator
---------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#ac5fb5af7a83d2a8aedb49d7168702ce3) = [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [157](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00157) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    IsManifold
----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[IsManifold](classpcl_1_1geometry_1_1_mesh_base#abcf6a42e2a578f83119c0e44f44dc2ae) = typename MeshTraitsT::IsManifold |

 
 Definition at line [108](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00108) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    MeshTag
-------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[MeshTag](classpcl_1_1geometry_1_1_mesh_base#ae8ebcbdd8ff8bf6f329238557b302cfc) = MeshTagT |

 
 Definition at line [114](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00114) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    OuterHalfEdgeAroundFaceCirculator
---------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a181e893bd66baa578734f085b787484e) = [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [159](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00159) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    OutgoingHalfEdgeAroundVertexCirculator
--------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#af70f55fec8500a5fd9af667fc73074cc) = [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [149](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00149) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Ptr
---

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Ptr](classpcl_1_1geometry_1_1_mesh_base#ac9f1607021b5b82b3a71669fdc490a82) = shared\_ptr<[Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [98](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00098) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Self
----

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) = [MeshBase](classpcl_1_1geometry_1_1_mesh_base)<DerivedT, MeshTraitsT, MeshTagT> |

 
 Definition at line [97](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00097) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Vertex
------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) = [pcl::geometry::Vertex](classpcl_1_1geometry_1_1_vertex) |

 | protected |

 
 Definition at line [1137](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01137) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexAroundFaceCirculator
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#abb7bee9f0ef563b28668439421e12704) = [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [155](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00155) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexAroundVertexCirculator
----------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acce128495bcc41783f503b6d64583ce5) = [pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator)<const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907)> |

 
 Definition at line [147](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00147) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexConstIterator
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexConstIterator](classpcl_1_1geometry_1_1_mesh_base#aa36de114f7e7d71d8edb8ec470874ee5) = typename Vertices::const\_iterator |

 | protected |

 
 Definition at line [1149](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01149) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexData
----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) = typename MeshTraitsT::VertexData |

 
 Definition at line [104](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00104) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexDataCloud
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c)> |

 
 Definition at line [130](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00130) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexIndex
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) = [pcl::geometry::VertexIndex](group__geometry#gaec9e96f2beb27bbaa15c30f822e9bd43) |

 
 Definition at line [136](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00136) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexIndices
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexIndices](classpcl_1_1geometry_1_1_mesh_base#ac9601f4a7414cb54a5ce871e57089344) = std::vector<[VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba)> |

 
 Definition at line [141](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00141) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    VertexIterator
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[VertexIterator](classpcl_1_1geometry_1_1_mesh_base#af0a4c1f3034ba373176b9c294f0f08e7) = typename Vertices::iterator |

 | protected |

 
 Definition at line [1145](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01145) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    Vertices
--------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| using [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[Vertices](classpcl_1_1geometry_1_1_mesh_base#a1edf0dc6c8596f06d9842f508b297570) = std::vector<[Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb)> |

 | protected |

 
 Definition at line [1141](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01141) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  MeshBase()
----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::[MeshBase](classpcl_1_1geometry_1_1_mesh_base) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [164](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00164) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

   Member Function Documentation
-----------------------------

  addData() [1/2]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::addData  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< DataT > &  | ,  |
|  |  | const DataT &  | ,  |
|  |  | std::false\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Does nothing. 

 Definition at line [1554](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01554) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    addData() [2/2]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::addData  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< DataT > &  | *cloud*,  |
|  |  | const DataT &  | *data*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Add mesh data. 

 Definition at line [1546](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01546) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::push\_back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00663).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01239), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00182), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01412).

    addEdge()
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::addEdge  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_a*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &  | *he\_data*,  |
|  |  | const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &  | *edge\_data* |
|  | ) |  |  |

 | inlineprotected |

 
 Add an edge between the two given vertices and connect them with the vertices. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | idx\_v\_a | The first vertex index  |
| [in] | idx\_v\_b | The second vertex index  |
| [in] | he\_data | Data associated with the half-edges. This is only added if the mesh has data associated with the half-edges.  |
| [in] | edge\_data | Data associated with the edge. This is only added if the mesh has data associated with the edges.  |

   
Returns
Index to the half-edge from vertex a to vertex b. 
 Definition at line [1239](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01239) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01546).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    addFace()
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::addFace  | ( | const [VertexIndices](classpcl_1_1geometry_1_1_mesh_base#ac9601f4a7414cb54a5ce871e57089344) &  | *vertices*,  |
|  |  | const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &  | *face\_data* = `[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4)()`,  |
|  |  | const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &  | *edge\_data* = `[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d)()`,  |
|  |  | const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &  | *half\_edge\_data* = `[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b)()` |
|  | ) |  |  |

 | inline |

 
 Add a face to the mesh. 

 Data is only added if it is associated with the elements. The last vertex is connected with the first one. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vertices | Indices to the vertices of the new face.  |
| [in] | face\_data | Data that is set for the face.  |
| [in] | half\_edge\_data | Data that is set for all added half-edges.  |
| [in] | edge\_data | Data that is set for all added edges.  |

   
Returns
Index to the new face. Failure is signaled by returning an invalid face index. 
 
Warning
The vertices must be valid and unique (each vertex may be contained only once). Not complying with this requirement results in undefined behavior! 
 Definition at line [202](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00202) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    addFaceImplBase()
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase  | ( | const [VertexIndices](classpcl_1_1geometry_1_1_mesh_base#ac9601f4a7414cb54a5ce871e57089344) &  | *vertices*,  |
|  |  | const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &  | *face\_data*,  |
|  |  | const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &  | *edge\_data*,  |
|  |  | const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &  | *half\_edge\_data* |
|  | ) |  |  |

 | inlineprotected |

 
 General implementation of addFace. 

 Definition at line [1155](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01239), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01267), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01320), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01412), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01436), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01476), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01492), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01508), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::makeAdjacent()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01386).

    addVertex()
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::addVertex  | ( | const [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) &  | *vertex\_data* = `[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c)()` | ) |  |

 | inline |

 
 Add a vertex to the mesh. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vertex\_data | Data that is stored in the vertex. This is only added if the mesh has data associated with the vertices.  |

   
Returns
Index to the new vertex. 
 Definition at line [182](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00182) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01546), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeVertices()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00799).

    assignIf() [1/2]
----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class ConstIteratorT , class IteratorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::assignIf  | ( | const ConstIteratorT  | *source*,  |
|  |  | IteratorT  | *target*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Assign the source iterator to the target iterator. 

 Definition at line [1854](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01854) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::remove()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01786).

    assignIf() [2/2]
----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class ConstIteratorT , class IteratorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::assignIf  | ( | const  | *ConstIteratorT*,  |
|  |  | IteratorT  | ,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Does nothing. 

 Definition at line [1864](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01864) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    checkTopology1() [1/2]
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_a*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | std::vector< bool >::reference  | *is\_new\_ab*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Non manifold version of checkTopology1. 

 Definition at line [1288](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01288) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::VertexAroundVertexCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00140), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::VertexAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00133), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00457), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709).

    checkTopology1() [2/2]
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_a*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | std::vector< bool >::reference  | *is\_new\_ab*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if the edge between the two vertices can be added. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | idx\_v\_a | Index to the first vertex.  |
| [in] | idx\_v\_b | Index to the second vertex.  |
| [out] | idx\_he\_ab | Index to the half-edge ab if is\_new\_ab=false.  |
| [out] | is\_new\_ab | true if the edge between the vertices exists already. Must be initialized with true!  |

   
Returns
true if the half-edge may be added. 
 Definition at line [1267](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01267) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    checkTopology2() [1/2]
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | const bool  | *is\_new\_ab*,  |
|  |  | const bool  | *is\_new\_bc*,  |
|  |  | const bool  | *is\_isolated\_b*,  |
|  |  | std::vector< bool >::reference  | ,  |
|  |  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if the face may be added (mesh does not become non-manifold). 

 Definition at line [1320](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01320) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    checkTopology2() [2/2]
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const bool  | *is\_new\_ab*,  |
|  |  | const bool  | *is\_new\_bc*,  |
|  |  | const bool  | ,  |
|  |  | std::vector< bool >::reference  | *make\_adjacent\_ab\_bc*,  |
|  |  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_free\_half\_edge*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if the half-edge bc is the next half-edge of ab. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | idx\_he\_ab | Index to the half-edge between the vertices a and b.  |
| [in] | idx\_he\_bc | Index to the half-edge between the vertices b and c.  |
| [in] | is\_new\_ab | Half-edge ab is new.  |
| [in] | is\_new\_bc | Half-edge bc is new.  |
| [out] | make\_adjacent\_ab\_bc | Half-edges ab and bc need to be made adjacent.  |
| [out] | idx\_free\_half\_edge | Free half-edge (needed for makeAdjacent)  |

   
Returns
true if addFace may be continued. 
 Definition at line [1342](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01342) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00490), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00347), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722).

    cleanUp()
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::cleanUp  | ( |  | ) |  |

 | inline |

 
 Removes all mesh elements and data that are marked as deleted. 

 
Note
This removes all isolated vertices as well. 
 Definition at line [296](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00296) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::begin()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00429), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeEdges()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00814).

    clear()
-------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::clear  | ( |  | ) |  |

 | inline |

 
 Clear all mesh elements and data. 

 Definition at line [926](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00926) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::clearData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02049).

    clearData() [1/2]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataCloudT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::clearData  | ( | DataCloudT &  | ,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Does nothing. 

 Definition at line [2057](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02057) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    clearData() [2/2]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataCloudT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::clearData  | ( | DataCloudT &  | *cloud*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Clear the mesh data. 

 Definition at line [2049](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02049) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::clear()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00926).

    connectFace()
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectFace  | ( | const [HalfEdgeIndices](classpcl_1_1geometry_1_1_mesh_base#a67285ae9ab18ed21f2f5cf7592e65db2) &  | *inner\_he*,  |
|  |  | const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &  | *face\_data* |
|  | ) |  |  |

 | inlineprotected |

 
 Add a face to the mesh and connect it to the half-edges. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | inner\_he | Inner half-edges of the face.  |
| [in] | face\_data | Data that is stored in the face. This is only added if the mesh has data associated with the faces.  |

   
Returns
Index to the new face. 
 Definition at line [1412](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01412) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01546), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01911), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeFaces()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00822).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    connectNewNew() [1/2]
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Both half-edges are new (non-manifold version). 

 Definition at line [1452](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01452) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01436), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709).

    connectNewNew() [2/2]
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Both half-edges are new (manifold version). 

 Definition at line [1436](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01436) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01452).

    connectNewOld()
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b* |
|  | ) |  |  |

 | inlineprotected |

 
 The first half-edge is new. 

 Definition at line [1476](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01476) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    connectOldNew()
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b* |
|  | ) |  |  |

 | inlineprotected |

 
 The second half-edge is new. 

 Definition at line [1492](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01492) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    connectOldOld() [1/2]
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | ,  |
|  |  | std::true\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Both half-edges are old (manifold version). 

 Definition at line [1508](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01508) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    connectOldOld() [2/2]
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Both half-edges are old (non-manifold version). 

 Definition at line [1516](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01516) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00473), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00240), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

    connectPrevNext()
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc* |
|  | ) |  |  |

 | inlineprotected |

 
 Connect the next and prev indices of the two half-edges with each other. 

 Definition at line [1428](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01893), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01902).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01436), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01476), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01492), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::makeAdjacent()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01386), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    deleteEdge() [1/2]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge  | ( | const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &  | *idx\_edge* | ) |  |

 | inline |

 
 Mark the given edge (both half-edges) and the associated faces as deleted. 

 
Note
Call cleanUp () to finally delete all mesh-elements. 
 Definition at line [268](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00268) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638), and [pcl::geometry::toHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00235).

    deleteEdge() [2/2]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  |

 | inline |

 
 Mark the given half-edge, the opposite half-edge and the associated faces as deleted. 

 
Note
Call cleanUp () to finally delete all mesh-elements. 
 Definition at line [245](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00282), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00268).

    deleteFace() [1/3]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::deleteFace  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  |

 | inline |

 
 Mark the given face as deleted. 

 More faces are deleted if the manifold mesh would become non-manifold. 



Note
Call cleanUp () to finally delete all mesh-elements. 
 Definition at line [282](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00282) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01567), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218).

    deleteFace() [2/3]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::deleteFace  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Non-manifold version of deleteFace. 

 Definition at line [1585](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00539), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00653), [pcl::detail::MeshIndex< IndexTagT >::invalidate()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00094), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    deleteFace() [3/3]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::deleteFace  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Manifold version of deleteFace. 

 If the mesh becomes non-manifold due to the delete operation the faces around the non-manifold vertex are deleted until the mesh becomes manifold again. 

 Definition at line [1567](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01567) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00282), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    deleteVertex()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  |

 | inline |

 
 Mark the given vertex and all connected half-edges and faces as deleted. 

 
Note
Call cleanUp () to finally delete all mesh-elements. 
 Definition at line [218](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00282), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00507), [pcl::geometry::FaceAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00451), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::detail::MeshIndex< IndexTagT >::isValid()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00087), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    empty()
-------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::empty  | ( |  | ) |  const |

 | inline |

 
 Check if the mesh is empty. 

 Definition at line [833](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00833) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::emptyEdges()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00847), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::emptyFaces()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00854), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::emptyVertices()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00840).

    emptyEdges()
------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::emptyEdges  | ( |  | ) |  const |

 | inline |

 
 Check if the edges are empty. 

 Definition at line [847](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00847) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::empty()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00833).

    emptyFaces()
------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::emptyFaces  | ( |  | ) |  const |

 | inline |

 
 Check if the faces are empty. 

 Definition at line [854](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00854) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::empty()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00833).

    emptyVertices()
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::emptyVertices  | ( |  | ) |  const |

 | inline |

 
 Check if the vertices are empty. 

 Definition at line [840](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00840) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::empty()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00833).

    getEdgeDataCloud() [1/2]
------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getEdgeDataCloud  | ( |  | ) |  |

 | inline |

 
 Get access to the stored edge data. 

 
Warning
Please make sure to NOT add or remove elements from the cloud. 
 Definition at line [1016](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01016) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getEdgeDataCloud() [2/2]
------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getEdgeDataCloud  | ( |  | ) |  const |

 | inline |

 
 Get the stored edge data. 

 Definition at line [1023](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01023) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getEdgeIndex()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getEdgeIndex  | ( | const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &  | *edge\_data* | ) |  const |

 | inline |

 
 Get the index associated to the given edge data. 

 Definition at line [1109](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01109) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00537), [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), and [pcl::PointCloud< PointT >::front()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00535).

    getFace() [1/2]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFace  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  |

 | inlineprotected |

 
 Get the face for the given index. 

 Definition at line [2122](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02122) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00437), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01758), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01919).

    getFace() [2/2]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFace  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inlineprotected |

 
 Get the face for the given index. 

 Definition at line [2130](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02130) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getFaceAroundFaceCirculator() [1/2]
-----------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a5b136178caf303d94ead1dbacb488fea) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundFaceCirculator  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator "Circulates clockwise around a face and returns an index to the face of the outer half-edge (the targe...") 
 Definition at line [571](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00571) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getFaceAroundFaceCirculator() [2/2]
-----------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a5b136178caf303d94ead1dbacb488fea) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundFaceCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_inner\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator "Circulates clockwise around a face and returns an index to the face of the outer half-edge (the targe...") 
 Definition at line [579](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00579) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getFaceAroundVertexCirculator() [1/2]
-------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a64980b8e0929fb205a9e840b32644496) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundVertexCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_outgoing\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-ed...") 
 Definition at line [515](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00515) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getFaceAroundVertexCirculator() [2/2]
-------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a64980b8e0929fb205a9e840b32644496) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundVertexCirculator  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::FaceAroundVertexCirculator](classpcl_1_1geometry_1_1_face_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-ed...") 
 Definition at line [507](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00507) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218).

    getFaceDataCloud() [1/2]
------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceDataCloud  | ( |  | ) |  |

 | inline |

 
 Get access to the stored face data. 

 
Warning
Please make sure to NOT add or remove elements from the cloud. 
 Definition at line [1050](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01050) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getFaceDataCloud() [2/2]
------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceDataCloud  | ( |  | ) |  const |

 | inline |

 
 Get the stored face data. 

 Definition at line [1057](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01057) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getFaceIndex() [1/2]
--------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex  | ( | const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &  | *face\_data* | ) |  const |

 | inline |

 
 Get the index associated to the given face data. 

 Definition at line [1121](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01121) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00537), [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), and [pcl::PointCloud< PointT >::front()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00535).

    getFaceIndex() [2/2]
--------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the face index to a given half-edge. 

 Definition at line [417](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00425), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00732), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681).

    getHalfEdge() [1/2]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  |

 | inlineprotected |

 
 Get the half-edge for the given index. 

 Definition at line [2094](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01741), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01911), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01893), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01902), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01884).

    getHalfEdge() [2/2]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  const |

 | inlineprotected |

 
 Get the half-edge for the given index. 

 Definition at line [2102](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02102) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getHalfEdgeDataCloud() [1/2]
----------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeDataCloud  | ( |  | ) |  |

 | inline |

 
 Get access to the stored half-edge data. 

 
Warning
Please make sure to NOT add or remove elements from the cloud. 
 Definition at line [981](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00981) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getHalfEdgeDataCloud() [2/2]
----------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeDataCloud  | ( |  | ) |  const |

 | inline |

 
 Get the stored half-edge data. 

 Definition at line [988](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00988) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getHalfEdgeIndex()
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeIndex  | ( | const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) &  | *half\_edge\_data* | ) |  const |

 | inline |

 
 Get the index associated to the given half-edge data. 

 Definition at line [1096](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01096) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00537), [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), and [pcl::PointCloud< PointT >::front()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00535).

    getIncomingHalfEdgeAroundVertexCirculator() [1/2]
-------------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a13cd326a184b7809b8ea452ef79c3a63) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_incoming\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the targ...") 
 Definition at line [498](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00498) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getIncomingHalfEdgeAroundVertexCirculator() [2/2]
-------------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#a13cd326a184b7809b8ea452ef79c3a63) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::IncomingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the targ...") 
 Definition at line [490](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00490) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01342), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681).

    getIncomingHalfEdgeIndex()
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeIndex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Get the incoming half-edge index to a given vertex. 

 Definition at line [362](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00362) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getInnerHalfEdgeAroundFaceCirculator() [1/2]
--------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#ac5fb5af7a83d2a8aedb49d7168702ce3) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeAroundFaceCirculator  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator "Circulates clockwise around a face and returns an index to the inner half-edge (the target).") 
 Definition at line [539](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00539) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585).

    getInnerHalfEdgeAroundFaceCirculator() [2/2]
--------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#ac5fb5af7a83d2a8aedb49d7168702ce3) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeAroundFaceCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_inner\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator "Circulates clockwise around a face and returns an index to the inner half-edge (the target).") 
 Definition at line [547](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00547) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getInnerHalfEdgeIndex()
-----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 Get the inner half-edge index to a given face. 

 Definition at line [437](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00437) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02122), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00445), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00697), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591).

    getNextHalfEdgeIndex()
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the next half-edge index to a given half-edge. 

 Definition at line [401](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01342), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01492), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::makeAdjacent()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01386), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    getOppositeFaceIndex()
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOppositeFaceIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the face index to a given half-edge. 

 Definition at line [425](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00425) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getOppositeHalfEdgeIndex()
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the opposite half-edge index to a given half-edge. 

 Definition at line [391](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01342), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01436), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01476), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01492), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00362), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00425), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOriginatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00382), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00445), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00741), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    getOriginatingVertexIndex()
---------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOriginatingVertexIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the originating vertex index to a given half-edge. 

 Definition at line [382](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00382) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getOuterHalfEdgeAroundFaceCirculator() [1/2]
--------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a181e893bd66baa578734f085b787484e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeAroundFaceCirculator  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator "Circulates clockwise around a face and returns an index to the outer half-edge (the target).") 
 Definition at line [555](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00555) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01948).

    getOuterHalfEdgeAroundFaceCirculator() [2/2]
--------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a181e893bd66baa578734f085b787484e) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeAroundFaceCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_inner\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator "Circulates clockwise around a face and returns an index to the outer half-edge (the target).") 
 Definition at line [563](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00563) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getOuterHalfEdgeIndex()
-----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeIndex  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 Get the outer half-edge inex to a given face. 

 Definition at line [445](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00445) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00437), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getOutgoingHalfEdgeAroundVertexCirculator() [1/2]
-------------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#af70f55fec8500a5fd9af667fc73074cc) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_outgoing\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the targ...") 
 Definition at line [481](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00481) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getOutgoingHalfEdgeAroundVertexCirculator() [2/2]
-------------------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#af70f55fec8500a5fd9af667fc73074cc) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator](classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the targ...") 
 Definition at line [473](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00473) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01516), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01972).

    getOutgoingHalfEdgeIndex()
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Get the outgoing half-edge index to a given vertex. 

 Definition at line [354](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02066), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01267), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01452), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01516), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00362), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709).

    getPrevHalfEdgeIndex()
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the previous half-edge index to a given half-edge. 

 Definition at line [409](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01452), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01476), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::makeAdjacent()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01386), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    getTerminatingVertexIndex()
---------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge* | ) |  const |

 | inline |

 
 Get the terminating vertex index to a given half-edge. 

 Definition at line [374](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01267), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOriginatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00382), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00679), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    getVertex() [1/2]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  |

 | inlineprotected |

 
 Get the vertex for the given index. 

 Definition at line [2066](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02066) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

    getVertex() [2/2]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inlineprotected |

 
 Get the vertex for the given index. 

 Definition at line [2074](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02074) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getVertexAroundFaceCirculator() [1/2]
-------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#abb7bee9f0ef563b28668439421e12704) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundFaceCirculator  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator "Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-e...") 
 Definition at line [523](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00523) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01932).

    getVertexAroundFaceCirculator() [2/2]
-------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#abb7bee9f0ef563b28668439421e12704) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundFaceCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_inner\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator "Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-e...") 
 Definition at line [531](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00531) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getVertexAroundVertexCirculator() [1/2]
---------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acce128495bcc41783f503b6d64583ce5) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundVertexCirculator  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_outgoing\_half\_edge* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the ou...") 
 Definition at line [465](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00465) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    getVertexAroundVertexCirculator() [2/2]
---------------------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_mesh_base#acce128495bcc41783f503b6d64583ce5) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundVertexCirculator  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 
See also

[pcl::geometry::VertexAroundVertexCirculator](classpcl_1_1geometry_1_1_vertex_around_vertex_circulator "Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the ou...") 
 Definition at line [457](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00457) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01288).

    getVertexDataCloud() [1/2]
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399)& [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexDataCloud  | ( |  | ) |  |

 | inline |

 
 Get access to the stored vertex data. 

 
Warning
Please make sure to NOT add or remove elements from the cloud. 
 Definition at line [946](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00946) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getVertexDataCloud() [2/2]
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexDataCloud  | ( |  | ) |  const |

 | inline |

 
 Get the stored vertex data. 

 Definition at line [953](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00953) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    getVertexIndex()
----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::getVertexIndex  | ( | const [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) &  | *vertex\_data* | ) |  const |

 | inline |

 
 Get the index associated to the given vertex data. 

 
Returns
Invalid index if the mesh does not have associated vertex data. 
 Definition at line [1084](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01084) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::back()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00537), [pcl::geometry::distance()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2geometry_8h_source.html#l00060), and [pcl::PointCloud< PointT >::front()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00535).

    incrementIf() [1/2]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class IteratorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::incrementIf  | ( | IteratorT &  | ,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Does nothing. 

 Definition at line [1848](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01848) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    incrementIf() [2/2]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class IteratorT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::incrementIf  | ( | IteratorT &  | *it*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Increment the iterator. 

 Definition at line [1840](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01840) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::remove()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01786).

    isBoundary() [1/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &  | *idx\_edge* | ) |  const |

 | inline |

 
 Check if the given edge lies on the boundary (any of the two half-edges lies on the boundary. 

 Definition at line [741](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00741) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638), and [pcl::geometry::toHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00235).

    isBoundary() [2/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<bool CheckVerticesT>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 Check if the given face lies on the boundary. 

 There are two versions of this method, selected by the template parameter. 



Template Parameters
 

|  |  |
| --- | --- |
| CheckVerticesT | Check if any vertex lies on the boundary (true) or check if any edge lies on the boundary (false).  |

   Definition at line [757](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00757) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    isBoundary() [3/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 Check if the given face lies on the boundary. 

 This method uses isBoundary `true` which checks if any vertex lies on the boundary. 

 Definition at line [766](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00766) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    isBoundary() [4/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if any edge of the face lies on the boundary. 

 Definition at line [1948](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01948) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00555), [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00754), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722).

    isBoundary() [5/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if any vertex of the face lies on the boundary. 

 Definition at line [1932](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01932) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00552), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00523), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722).

    isBoundary() [6/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  const |

 | inline |

 
 Check if the given half-edge lies on the boundary. 

 Definition at line [732](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00732) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    isBoundary() [7/7]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isBoundary  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Check if the given vertex lies on the boundary. 

 Isolated vertices are considered to be on the boundary. 

 Definition at line [722](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01267), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01342), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01516), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00741), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01972), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681).

    isDeleted() [1/4]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isDeleted  | ( | const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &  | *idx\_edge* | ) |  const |

 | inline |

 
 Check if the given edge (any of the two half-edges) is marked as deleted. 

 Definition at line [688](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00688) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638), and [pcl::geometry::toHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00235).

    isDeleted() [2/4]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isDeleted  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 Check if the given face is marked as deleted. 

 Definition at line [697](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00697) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00437), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    isDeleted() [3/4]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isDeleted  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  const |

 | inline |

 
 Check if the given half-edge is marked as deleted. 

 Definition at line [679](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00679) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    isDeleted() [4/4]
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isDeleted  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Check if the given vertex is marked as deleted. 

 Definition at line [671](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00282), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00688), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::remove()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01786).

    isEqualTopology()
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology  | ( | const [Self](classpcl_1_1geometry_1_1_mesh_base#ae843315c4584221f4be2371fa522e907) &  | *other* | ) |  const |

 | inline |

 
 Check if the other mesh has the same topology as this mesh. 

 Definition at line [591](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00437), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeFaces()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00822), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeHalfEdges()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00806), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeVertices()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00799).

    isIsolated()
------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isIsolated  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Check if the given vertex is isolated (not connected to other elements). 

 Definition at line [709](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01267), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01452), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00778).

    isManifold() [1/6]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isManifold  | ( |  | ) |  const |

 | inline |

 
 Check if the mesh is manifold. 

 Definition at line [788](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00788) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00778).

    isManifold() [2/6]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isManifold  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | ,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Always manifold. 

 Definition at line [1965](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01965) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    isManifold() [3/6]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isManifold  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Check if the given vertex is manifold. 

 Isolated vertices are manifold. 

 Definition at line [778](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00778) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00788), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    isManifold() [4/6]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isManifold  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Check if the given vertex is manifold. 

 Definition at line [1972](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01972) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00473), [pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00240), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722).

    isManifold() [5/6]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isManifold  | ( | std::false\_type  |  | ) |  const |

 | inlineprotected |

 
 Check if all vertices in the mesh are manifold. 

 Definition at line [1997](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01997) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00788), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeVertices()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00799).

    isManifold() [6/6]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isManifold  | ( | std::true\_type  |  | ) |  const |

 | inlineprotected |

 
 Always manifold. 

 Definition at line [1990](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01990) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    isValid() [1/4]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isValid  | ( | const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &  | *idx\_edge* | ) |  const |

 | inline |

 
 Check if the given edge index is a valid index into the mesh. 

 Definition at line [653](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00653) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    isValid() [2/4]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isValid  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  const |

 | inline |

 
 Check if the given face index is a valid index into the mesh. 

   
 

 Definition at line [660](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00660) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    isValid() [3/4]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isValid  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  const |

 | inline |

 
 Check if the given half-edge index is a valid index into the mesh. 

   
 

 Definition at line [646](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00646) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    isValid() [4/4]
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::isValid  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  const |

 | inline |

 
 Check if the given vertex index is a valid index into the mesh. 

 Definition at line [638](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00282), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02122), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00571), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00507), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00490), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00362), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00539), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00437), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00425), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOriginatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00382), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00555), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00445), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00473), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00354), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02066), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundFaceCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00523), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00457), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00709), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00778), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02138), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01911), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02110), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setInnerHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01919), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01893), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01902), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01884), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02082).

    makeAdjacent()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::makeAdjacent  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_free\_half\_edge* |
|  | ) |  |  |

 | inlineprotected |

 
 Make the half-edges bc the next half-edge of ab. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | idx\_he\_ab | Index to the half-edge between the vertices a and b.  |
| [in] | idx\_he\_bc | Index to the half-edge between the vertices b and c.  |
| [in,out] | idx\_free\_half\_edge | Free half-edge needed to re-connect the half-edges around vertex b.  |

   Definition at line [1386](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01386) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01155).

    markDeleted() [1/4]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::markDeleted  | ( | const [EdgeIndex](classpcl_1_1geometry_1_1_mesh_base#ace060394c806f0adc7d2c5fc7a1aa60b) &  | *idx\_edge* | ) |  |

 | inlineprotected |

 
 Mark the given edge (both half-edges) as deleted. 

 Definition at line [1749](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01749) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733), and [pcl::geometry::toHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00235).

    markDeleted() [2/4]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::markDeleted  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* | ) |  |

 | inlineprotected |

 
 Mark the given face as deleted. 

 Definition at line [1758](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01758) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02122), [pcl::detail::MeshIndex< IndexTagT >::invalidate()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    markDeleted() [3/4]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::markDeleted  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he* | ) |  |

 | inlineprotected |

 
 Mark the given half-edge as deleted. 

 Definition at line [1741](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01741) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), [pcl::detail::MeshIndex< IndexTagT >::invalidate()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    markDeleted() [4/4]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::markDeleted  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex* | ) |  |

 | inlineprotected |

 
 Mark the given vertex as deleted. 

 Definition at line [1733](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02066), [pcl::detail::MeshIndex< IndexTagT >::invalidate()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00245), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01749), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    reconnect()
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reconnect  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_ab*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const bool  | *is\_boundary\_ba*,  |
|  |  | const bool  | *is\_boundary\_cb* |
|  | ) |  |  |

 | inlineprotected |

 
 Deconnect the input half-edges from the mesh and adjust the indices of the connected half-edges. 

 Definition at line [1634](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00401), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00409), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00374), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585).

    reconnectNBNB() [1/2]
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | ,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | std::false\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Both edges are not on the boundary. 

 Non-manifold version. 

 Definition at line [1717](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01717) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

    reconnectNBNB() [2/2]
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_bc*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he\_cb*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_v\_b*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  |

 | inlineprotected |

 
 Both edges are not on the boundary. 

 Manifold version. 

 Definition at line [1681](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00417), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00490), [pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00347), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00722), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634).

    remove()
--------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class ElementContainerT , class DataContainerT , class IndexContainerT , class HasDataT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| IndexContainerT [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::remove  | ( | ElementContainerT &  | *elements*,  |
|  |  | DataContainerT &  | *data\_cloud* |
|  | ) |  |  |

 | inlineprotected |

 
 Removes mesh elements and data that are marked as deleted from the container. 

 
Template Parameters
 

|  |  |
| --- | --- |
| ElementContainerT | e.g. std::vector <[Vertex](classpcl_1_1geometry_1_1_vertex "A vertex is a node in the mesh.")>  |
| DataContainerT | e.g. std::vector <VertexData>  |
| IndexContainerT | e.g. std::vector <VertexIndex>  |
| HasDataT | Integral constant specifying if the mesh has data associated with the elements.  |

   
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in,out] | elements | Container for the mesh elements. Resized to the new size.  |
| [in,out] | data\_cloud | Container for the mesh data. Resized to the new size.  |

   
Returns
Container with the same size as the old input data. Holds the indices to the new elements for each non-deleted element and an invalid index if it is deleted. 
 Definition at line [1786](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01786) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::assignIf()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01854), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::incrementIf()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01840), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00671).

    reserveData() [1/2]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataCloudT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reserveData  | ( | DataCloudT &  | ,  |
|  |  | const std::size\_t  | ,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Does nothing. 

 Definition at line [2021](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02021) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    reserveData() [2/2]
-------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataCloudT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reserveData  | ( | DataCloudT &  | *cloud*,  |
|  |  | const std::size\_t  | *n*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Reserve storage space for the mesh data. 

 Definition at line [2013](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02013) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveEdges()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00874), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveFaces()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00883), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveVertices()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00865).

    reserveEdges()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reserveEdges  | ( | const std::size\_t  | *n* | ) |  |

 | inline |

 
 Reserve storage space for n edges (2\*n storage space is reserved for the half-edges). 

 Definition at line [874](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00874) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02013).

    reserveFaces()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reserveFaces  | ( | const std::size\_t  | *n* | ) |  |

 | inline |

 
 Reserve storage space for n faces. 

 Definition at line [883](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00883) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02013).

    reserveVertices()
-----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::reserveVertices  | ( | const std::size\_t  | *n* | ) |  |

 | inline |

 
 Reserve storage space n vertices. 

 Definition at line [865](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00865) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02013).

    resizeData() [1/2]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataCloudT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::resizeData  | ( | DataCloudT &  | ,  |
|  |  | const std::size\_t  | ,  |
|  |  | const typename DataCloudT::value\_type &  | ,  |
|  |  | std::false\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Does nothing. 

 Definition at line [2040](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02040) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

    resizeData() [2/2]
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class DataCloudT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::resizeData  | ( | DataCloudT &  | *data\_cloud*,  |
|  |  | const std::size\_t  | *n*,  |
|  |  | const typename DataCloudT::value\_type &  | *data*,  |
|  |  | std::true\_type  |  |
|  | ) |  |  const |

 | inlineprotected |

 
 Resize the mesh data. 

 Definition at line [2029](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02029) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeEdges()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00903), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeFaces()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00914), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeVertices()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00895).

    resizeEdges()
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::resizeEdges  | ( | const std::size\_t  | *n*,  |
|  |  | const [EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d) &  | *edge\_data* = `[EdgeData](classpcl_1_1geometry_1_1_mesh_base#a406efc19faabbdfbfab16b92b2a1d77d)()`,  |
|  |  | const [HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b) | *he\_data* = `[HalfEdgeData](classpcl_1_1geometry_1_1_mesh_base#a51d3ce3c341669cd2a9af5dd7f31b85b)()` |
|  | ) |  |  |

 | inline |

 
 Resize the edges to n elements (half-edges will hold 2\*n elements). 

 Definition at line [903](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00903) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02029).

    resizeFaces()
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::resizeFaces  | ( | const std::size\_t  | *n*,  |
|  |  | const [FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4) &  | *data* = `[FaceData](classpcl_1_1geometry_1_1_mesh_base#ac183d74378e36ce58b6f31b548d397f4)()` |
|  | ) |  |  |

 | inline |

 
 Resize the faces to n elements. 

 Definition at line [914](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00914) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02029).

    resizeVertices()
----------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::resizeVertices  | ( | const std::size\_t  | *n*,  |
|  |  | const [VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c) &  | *data* = `[VertexData](classpcl_1_1geometry_1_1_mesh_base#a6142a8560c74505a404cc7c863a1223c)()` |
|  | ) |  |  |

 | inline |

 
 Resize the the vertices to n elements. 

 Definition at line [895](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00895) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02029).

    setEdgeDataCloud()
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setEdgeDataCloud  | ( | const [EdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#afa8625b235c41c2f8befa24e561ec12c) &  | *edge\_data\_cloud* | ) |  |

 | inline |

 
 Change the stored edge data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | edge\_data\_cloud | The new edge data. Must be the same as the current data.  |

   
Returns
true if the cloud could be set. 
 Definition at line [1033](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01033) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    setFace()
---------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setFace  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face*,  |
|  |  | const [Face](classpcl_1_1geometry_1_1_mesh_base#aa57710ed8015b7f0cd6b3fe5ec0d8f72) &  | *face* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the face at the given index. 

 Definition at line [2138](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02138) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    setFaceDataCloud()
------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setFaceDataCloud  | ( | const [FaceDataCloud](classpcl_1_1geometry_1_1_mesh_base#a8033c080c18cd11b77cf90ad10ed319a) &  | *face\_data\_cloud* | ) |  |

 | inline |

 
 Change the stored face data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | face\_data\_cloud | The new face data. Must be the same as the current data.  |

   
Returns
true if the cloud could be set. 
 Definition at line [1067](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01067) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    setFaceIndex()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setFaceIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge*,  |
|  |  | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the face index to a given half-edge. 

 Definition at line [1911](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01911) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01412).

    setHalfEdge()
-------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdge  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_he*,  |
|  |  | const [HalfEdge](classpcl_1_1geometry_1_1_mesh_base#a943e075a9bf7f6275a04f82644e9a1c3) &  | *half\_edge* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the half-edge at the given index. 

 Definition at line [2110](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02110) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    setHalfEdgeDataCloud()
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdgeDataCloud  | ( | const [HalfEdgeDataCloud](classpcl_1_1geometry_1_1_mesh_base#abe7a3ae5a2c4df0431b6b5031501c07d) &  | *half\_edge\_data\_cloud* | ) |  |

 | inline |

 
 Change the stored half-edge data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | half\_edge\_data\_cloud | The new half-edge data. Must be the same as the current data.  |

   
Returns
true if the cloud could be set. 
 Definition at line [999](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00999) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    setInnerHalfEdgeIndex()
-----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setInnerHalfEdgeIndex  | ( | const [FaceIndex](classpcl_1_1geometry_1_1_mesh_base#a3b91b12ea82f2e6be40347d4c62f942e) &  | *idx\_face*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_inner\_half\_edge* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the inner half-edge index to a given face. 

 Definition at line [1919](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01919) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02122), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    setNextHalfEdgeIndex()
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setNextHalfEdgeIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_next\_half\_edge* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the next half\_edge index to a given half-edge. 

 Definition at line [1893](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01893) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428).

    setOutgoingHalfEdgeIndex()
--------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_outgoing\_half\_edge* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the outgoing half-edge index to a given vertex. 

 Definition at line [1875](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01875) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02066), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01436), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01476), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01492), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01516), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01634), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01681).

    setPrevHalfEdgeIndex()
----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setPrevHalfEdgeIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge*,  |
|  |  | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_prev\_half\_edge* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the previous half-edge index to a given half-edge. 

 Definition at line [1902](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01902) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01428).

    setTerminatingVertexIndex()
---------------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setTerminatingVertexIndex  | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_base#af86d08d7f8fb0ce7b2c3149074cf64a2) &  | *idx\_half\_edge*,  |
|  |  | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_terminating\_vertex* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the terminating vertex index to a given half-edge. 

 Definition at line [1884](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01884) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    setVertex()
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setVertex  | ( | const [VertexIndex](classpcl_1_1geometry_1_1_mesh_base#a89d585aafe6443eb27d2ca949ff24bba) &  | *idx\_vertex*,  |
|  |  | const [Vertex](classpcl_1_1geometry_1_1_mesh_base#a2f9fbdb2338725f5f60e5a99a1d24ebb) &  | *vertex* |
|  | ) |  |  |

 | inlineprotected |

 
 Set the vertex at the given index. 

 Definition at line [2082](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02082) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00638).

    setVertexDataCloud()
--------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::setVertexDataCloud  | ( | const [VertexDataCloud](classpcl_1_1geometry_1_1_mesh_base#a56601daa7da852feb9a2fcae8919b399) &  | *vertex\_data\_cloud* | ) |  |

 | inline |

 
 Change the stored vertex data. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | vertex\_data\_cloud | The new vertex data. Must be the same as the current data.  |

   
Returns
true if the cloud could be set. 
 Definition at line [964](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00964) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 References [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    sizeEdges()
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::sizeEdges  | ( |  | ) |  const |

 | inline |

 
 Get the number of the edges. 

 Definition at line [814](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00814) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::cleanUp()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00296).

    sizeFaces()
-----------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::sizeFaces  | ( |  | ) |  const |

 | inline |

 
 Get the number of the faces. 

 Definition at line [822](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00822) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01412), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591).

    sizeHalfEdges()
---------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::sizeHalfEdges  | ( |  | ) |  const |

 | inline |

 
 Get the number of the half-edges. 

 Definition at line [806](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00806) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591).

    sizeVertices()
--------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base)< DerivedT, MeshTraitsT, MeshTagT >::sizeVertices  | ( |  | ) |  const |

 | inline |

 
 Get the number of the vertices. 

 Definition at line [799](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00799) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00182), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00591), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01997).

   Friends And Related Function Documentation
------------------------------------------

  pcl::geometry::MeshIO
---------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >   template<class MeshT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o) |

 | friend |

 
 Definition at line [2195](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02195) of file [mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_mesh_base.html>

Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-edge (the target). [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a19d18afee88f935ecf652e95ba12914d) = boost::equality\_comparable< [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3) = [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) = MeshT |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aeccbb7763895a33fcbcb9d732d793187) = typename Mesh::VertexIndex |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aef2da07512fa127e099f0caf82b0a1df) = typename Mesh::FaceIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae9264b5b09e26732fc72042886cd051d) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae9264b5b09e26732fc72042886cd051d) |
|
|  | [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a9f3964dd926e809f0297873b186fbda7) (const [FaceIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aef2da07512fa127e099f0caf82b0a1df) &idx\_face, [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) \*const mesh) |
|  | Construct from the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a9f3964dd926e809f0297873b186fbda7) |
|
|  | [VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a3979339473a68701a1bb2f75fecfaebf) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) &idx\_inner\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) \*const mesh) |
|  | Construct directly from the inner half-edge. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a3979339473a68701a1bb2f75fecfaebf) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_vertex_around_face_circulator#acec1158ee83de96fb9ffd839a3fe36b9) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#acec1158ee83de96fb9ffd839a3fe36b9) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a9190b6bb5b93338cb583e52840732ba7) (const [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a9190b6bb5b93338cb583e52840732ba7) |
|
| [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3) &  | [operator++](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a307987af42712c7839ce4b45dd8600d4) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a307987af42712c7839ce4b45dd8600d4) |
|
| [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3) &  | [operator--](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ad61f634483f1f7051e522ac0abcf30e0) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ad61f634483f1f7051e522ac0abcf30e0) |
|
| [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aeccbb7763895a33fcbcb9d732d793187) | [getTargetIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a44b725644d72c21f529a895eaa5aa09d) () const |
|  | Get the index to the target vertex. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a44b725644d72c21f529a895eaa5aa09d) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a3c9f545461693dc7fb6cad68d31869fe) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a3c9f545461693dc7fb6cad68d31869fe) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) \*  | [mesh\_](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a152728225e124b445acff55555c9ff8c) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a152728225e124b445acff55555c9ff8c) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) | [idx\_inner\_half\_edge\_](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aeada034b26a50c63892da0698fd8708b) |
|  | The inner half-edge of the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aeada034b26a50c63892da0698fd8708b) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::VertexAroundFaceCirculator< MeshT >

 Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getVertexAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a86e8b2d7ccde25e97d4452a9c63a2be6) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [488](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00488) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a19d18afee88f935ecf652e95ba12914d) = boost::equality\_comparable< [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)<MeshT>, boost::unit\_steppable<[pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)<MeshT> >> |

 
 Definition at line [493](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00493) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceIndex
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[FaceIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aef2da07512fa127e099f0caf82b0a1df) = typename Mesh::FaceIndex |

 
 Definition at line [500](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00500) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [501](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00501) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) = MeshT |

 
 Definition at line [498](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00498) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3) = [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)<MeshT> |

 
 Definition at line [496](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00496) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexIndex
-----------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[VertexIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aeccbb7763895a33fcbcb9d732d793187) = typename Mesh::VertexIndex |

 
 Definition at line [499](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00499) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  VertexAroundFaceCirculator() [1/3]
----------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [504](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00504) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexAroundFaceCirculator() [2/3]
----------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator) | ( | const [FaceIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aef2da07512fa127e099f0caf82b0a1df) &  | *idx\_face*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the face around which we want to circulate. 

 Definition at line [507](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00507) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    VertexAroundFaceCirculator() [3/3]
----------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::[VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) &  | *idx\_inner\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the inner half-edge. 

 Definition at line [512](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00512) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [559](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00559) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [VertexIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#aeccbb7763895a33fcbcb9d732d793187) [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the target vertex. 

 Definition at line [552](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00552) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568), and [pcl::geometry::VertexAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00565).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01932).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [520](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00520) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3)& [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [536](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00536) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568), and [pcl::geometry::VertexAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00565).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3)& [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [544](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00544) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568), and [pcl::geometry::VertexAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00565).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_vertex_around_face_circulator#a2f7b26b38a0df7c6f89c49aa43e807e3) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [529](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00529) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::VertexAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568).

   Member Data Documentation
-------------------------

  idx\_inner\_half\_edge\_
------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ae0a3ac42fad87c2f558c70f36ddb8b07) [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::idx\_inner\_half\_edge\_ |

 
 The inner half-edge of the face around which we want to circulate. 

 Definition at line [568](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00568) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::VertexAroundFaceCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00559), [pcl::geometry::VertexAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00552), [pcl::geometry::VertexAroundFaceCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00520), [pcl::geometry::VertexAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00536), [pcl::geometry::VertexAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00544), and [pcl::geometry::VertexAroundFaceCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00529).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_vertex_around_face_circulator#ab80934eec59051480a28e668ce6d2eea)\* [pcl::geometry::VertexAroundFaceCirculator](classpcl_1_1geometry_1_1_vertex_around_face_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [565](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00565) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::VertexAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00552), [pcl::geometry::VertexAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00536), and [pcl::geometry::VertexAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00544).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_vertex_around_face_circulator.html>

Circulates clockwise around a face and returns an index to the inner half-edge (the target). [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a82c83209409ab8ef4128bb216c774cb4) = boost::equality\_comparable< [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35) = [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) = MeshT |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a9be8bda0a9062cf7f1122fbfde4347a5) = typename Mesh::FaceIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a2b04d66f65caabdc46212a128541714f) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a2b04d66f65caabdc46212a128541714f) |
|
|  | [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#acded40470ad64138880ae28f082a4251) (const [FaceIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a9be8bda0a9062cf7f1122fbfde4347a5) &idx\_face, [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) \*const mesh) |
|  | Construct from the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#acded40470ad64138880ae28f082a4251) |
|
|  | [InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abe0286a043d1dabf1e1e8efb0559f86d) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) &idx\_inner\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) \*const mesh) |
|  | Construct directly from the inner half-edge. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abe0286a043d1dabf1e1e8efb0559f86d) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a7af381f8f8e5744d77da69d633e02a8d) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a7af381f8f8e5744d77da69d633e02a8d) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a5e92295ee2b1da725d2a0699e2918b0b) (const [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a5e92295ee2b1da725d2a0699e2918b0b) |
|
| [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35) &  | [operator++](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a0fcec1ccb1a68e391e565c18a08723d0) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a0fcec1ccb1a68e391e565c18a08723d0) |
|
| [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35) &  | [operator--](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a48c181ebfa0c415a2e882368f75e75d2) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a48c181ebfa0c415a2e882368f75e75d2) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) | [getTargetIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a7768afee3590e2ccd6a91d24e4de2fd9) () const |
|  | Get the index to the inner half-edge. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a7768afee3590e2ccd6a91d24e4de2fd9) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a8b84a0c044169b36b4943569df77b274) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a8b84a0c044169b36b4943569df77b274) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) \*  | [mesh\_](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a5fcd3c4789cd7c6c548498382a4b4bea) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a5fcd3c4789cd7c6c548498382a4b4bea) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) | [idx\_inner\_half\_edge\_](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a4101e63a50b61e2d93b170109e25e795) |
|  | The inner half-edge of the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a4101e63a50b61e2d93b170109e25e795) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >

 Circulates clockwise around a face and returns an index to the inner half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getInnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#a3c30f9b4f2c62b35eb70fa46e48f6024) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [589](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00589) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a82c83209409ab8ef4128bb216c774cb4) = boost::equality\_comparable< [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)<MeshT>, boost::unit\_steppable<[pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)<MeshT> >> |

 
 Definition at line [594](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00594) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceIndex
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[FaceIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a9be8bda0a9062cf7f1122fbfde4347a5) = typename Mesh::FaceIndex |

 
 Definition at line [600](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00600) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [601](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00601) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) = MeshT |

 
 Definition at line [599](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00599) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35) = [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)<MeshT> |

 
 Definition at line [597](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00597) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  InnerHalfEdgeAroundFaceCirculator() [1/3]
-----------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [604](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00604) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    InnerHalfEdgeAroundFaceCirculator() [2/3]
-----------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator) | ( | const [FaceIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a9be8bda0a9062cf7f1122fbfde4347a5) &  | *idx\_face*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the face around which we want to circulate. 

 Definition at line [607](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00607) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    InnerHalfEdgeAroundFaceCirculator() [3/3]
-----------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::[InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) &  | *idx\_inner\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the inner half-edge. 

 Definition at line [612](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00612) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [660](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00660) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the inner half-edge. 

 Definition at line [653](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00653) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [621](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00621) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35)& [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [637](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00637) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669), and [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00666).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35)& [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [645](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00645) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669), and [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00666).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#abfad63df9d7c5d1c74fa5e2240b83c35) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [630](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00630) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669).

   Member Data Documentation
-------------------------

  idx\_inner\_half\_edge\_
------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a1628436d2b953dd289028f43678c9629) [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::idx\_inner\_half\_edge\_ |

 
 The inner half-edge of the face around which we want to circulate. 

 Definition at line [669](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00669) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00660), [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00653), [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00621), [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00637), [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00645), and [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00630).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator#a3f387e22cf41933f0bed40e3e850b9d3)\* [pcl::geometry::InnerHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [666](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00666) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00637), and [pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00645).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html>

Circulates clockwise around a face and returns an index to the outer half-edge (the target). [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6cd61a107262c3c14f6923c78b2843ba) = boost::equality\_comparable< [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f) = [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) = MeshT |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a21dda06ba1e3e236097f9887f773a3ea) = typename Mesh::FaceIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a9acba3c610ef747a0fc245ead88cadec) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a9acba3c610ef747a0fc245ead88cadec) |
|
|  | [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a8eeebd9187813863854c9c86dcbd45a4) (const [FaceIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a21dda06ba1e3e236097f9887f773a3ea) &idx\_face, [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) \*const mesh) |
|  | Construct from the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a8eeebd9187813863854c9c86dcbd45a4) |
|
|  | [OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a60832fefc085035736e5f5177278f822) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) &idx\_inner\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) \*const mesh) |
|  | Construct directly from the inner half-edge. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a60832fefc085035736e5f5177278f822) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#ad38da0259f36c9320230bbbadbb320f5) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#ad38da0259f36c9320230bbbadbb320f5) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#aafd1d1b12e8979ae9fd902bdba7be8ff) (const [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#aafd1d1b12e8979ae9fd902bdba7be8ff) |
|
| [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f) &  | [operator++](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#aa018c1675e9b8b47523235eec113ab29) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#aa018c1675e9b8b47523235eec113ab29) |
|
| [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f) &  | [operator--](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a75e16173cec4783e60baea4591b6a34a) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a75e16173cec4783e60baea4591b6a34a) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) | [getTargetIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a5a973737b232302d8601488f89820f37) () const |
|  | Get the index to the outer half-edge. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a5a973737b232302d8601488f89820f37) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a9f5e3b2a4b71433c9d9f935349839e5b) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a9f5e3b2a4b71433c9d9f935349839e5b) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) \*  | [mesh\_](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a837927e2382523f56a3da35b44abbb47) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a837927e2382523f56a3da35b44abbb47) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) | [idx\_inner\_half\_edge\_](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a906b7d799e7f7c77756fc3dfc5e482b5) |
|  | The inner half-edge of the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a906b7d799e7f7c77756fc3dfc5e482b5) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >

 Circulates clockwise around a face and returns an index to the outer half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getOuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#aefe2d565191d2e35a6a4ad8b2f0773b5) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [690](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00690) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6cd61a107262c3c14f6923c78b2843ba) = boost::equality\_comparable< [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)<MeshT>, boost::unit\_steppable<[pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)<MeshT> >> |

 
 Definition at line [695](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00695) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceIndex
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[FaceIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a21dda06ba1e3e236097f9887f773a3ea) = typename Mesh::FaceIndex |

 
 Definition at line [701](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00701) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [702](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00702) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) = MeshT |

 
 Definition at line [700](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00700) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f) = [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)<MeshT> |

 
 Definition at line [698](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00698) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  OuterHalfEdgeAroundFaceCirculator() [1/3]
-----------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [705](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00705) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    OuterHalfEdgeAroundFaceCirculator() [2/3]
-----------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator) | ( | const [FaceIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a21dda06ba1e3e236097f9887f773a3ea) &  | *idx\_face*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the face around which we want to circulate. 

 Definition at line [708](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00708) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    OuterHalfEdgeAroundFaceCirculator() [3/3]
-----------------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::[OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) &  | *idx\_inner\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the inner half-edge. 

 Definition at line [713](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00713) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [761](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00761) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the outer half-edge. 

 Definition at line [754](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00754) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770), and [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00767).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01948).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [722](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00722) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f)& [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [738](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00738) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770), and [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00767).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f)& [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [746](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00746) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770), and [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00767).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a11bcc0261c88f3fc7a14302ee2922a4f) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [731](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00731) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770).

   Member Data Documentation
-------------------------

  idx\_inner\_half\_edge\_
------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a6631090cc36e2f688b72e3223bb0c3ed) [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::idx\_inner\_half\_edge\_ |

 
 The inner half-edge of the face around which we want to circulate. 

 Definition at line [770](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00770) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00761), [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00754), [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00722), [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00738), [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00746), and [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00731).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator#a94443e144095b23a2833934739b186f6)\* [pcl::geometry::OuterHalfEdgeAroundFaceCirculator](classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [767](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00767) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00754), [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00738), and [pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00746).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html>

Circulates clockwise around a face and returns an index to the face of the outer half-edge (the target). [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#details)

 `#include <[pcl/geometry/mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1geometry_1_1_face_around_face_circulator#afd5aa6cc588f7382d20b0a0ba8e8a109) = boost::equality\_comparable< [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >, boost::unit\_steppable< [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT > >> |
|
| using  | [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67) = [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT > |
|
| using  | [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) = MeshT |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab57289fb28491a4b6663f41d7ee989d9) = typename Mesh::FaceIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) = typename Mesh::HalfEdgeIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator#afe7b8541e3fda11c7394434c434d94d2) () |
|  | Constructor resulting in an invalid circulator. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#afe7b8541e3fda11c7394434c434d94d2) |
|
|  | [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator#afdd2e336169ac5d5d15c779f3cca0dcd) (const [FaceIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab57289fb28491a4b6663f41d7ee989d9) &idx\_face, [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) \*const mesh) |
|  | Construct from the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#afdd2e336169ac5d5d15c779f3cca0dcd) |
|
|  | [FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator#a0d3d1cd5cbb74e3f7f82f59dbb891387) (const [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) &idx\_inner\_half\_edge, [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) \*const mesh) |
|  | Construct directly from the inner half-edge. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#a0d3d1cd5cbb74e3f7f82f59dbb891387) |
|
| bool  | [isValid](classpcl_1_1geometry_1_1_face_around_face_circulator#acdbc5aacb1e82fc7a1557b8f9affb6cd) () const |
|  | Check if the circulator is valid. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#acdbc5aacb1e82fc7a1557b8f9affb6cd) |
|
| bool  | [operator==](classpcl_1_1geometry_1_1_face_around_face_circulator#a40ef6d1686e8db0b5067f0bc4b03d63e) (const [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#a40ef6d1686e8db0b5067f0bc4b03d63e) |
|
| [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67) &  | [operator++](classpcl_1_1geometry_1_1_face_around_face_circulator#a8f5841d38d8529159e65d19c650b0c46) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#a8f5841d38d8529159e65d19c650b0c46) |
|
| [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67) &  | [operator--](classpcl_1_1geometry_1_1_face_around_face_circulator#a28635b482c8cdc8c591b72416e8afbb5) () |
|  | Decrement operators (with boost::operators): – (pre and post) [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#a28635b482c8cdc8c591b72416e8afbb5) |
|
| [FaceIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab57289fb28491a4b6663f41d7ee989d9) | [getTargetIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ae5091d2680c2f7588a4a46cd9ab21502) () const |
|  | Get the index to the target face. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#ae5091d2680c2f7588a4a46cd9ab21502) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) | [getCurrentHalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ad04ce551a321f9ee0068d00638f99ddd) () const |
|  | Get the half-edge that is currently stored in the circulator. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#ad04ce551a321f9ee0068d00638f99ddd) |
|




|  |
| --- |
| 
 Public Attributes |
| [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) \*  | [mesh\_](classpcl_1_1geometry_1_1_face_around_face_circulator#a562dc0dfaa10a0e1ee224e0e29e3b467) |
|  | The mesh to which this circulator belongs to. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#a562dc0dfaa10a0e1ee224e0e29e3b467) |
|
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) | [idx\_inner\_half\_edge\_](classpcl_1_1geometry_1_1_face_around_face_circulator#a56243832ee95d4eddcc936047d48f86a) |
|  | The inner half-edge of the face around which we want to circulate. [More...](classpcl_1_1geometry_1_1_face_around_face_circulator#a56243832ee95d4eddcc936047d48f86a) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::FaceAroundFaceCirculator< MeshT >

 Circulates clockwise around a face and returns an index to the face of the outer half-edge (the target). 

 The best way to declare the circulator is to use the method [pcl::geometry::MeshBase::getFaceAroundFaceCirculator](classpcl_1_1geometry_1_1_mesh_base#aa0ca20bfce1cea8fdc94fddace06c38a) (). 



Template Parameters
 

|  |  |
| --- | --- |
| MeshT | [Mesh](https://pointclouds.org/documentation/class_mesh.html) to which this circulator belongs to.  |

   
Note
The circulator can't be used to change the connectivity in the mesh (only const circulators are valid). 
 
Author
Martin Saelzle 
 Definition at line [791](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00791) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[Base](classpcl_1_1geometry_1_1_face_around_face_circulator#afd5aa6cc588f7382d20b0a0ba8e8a109) = boost::equality\_comparable< [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)<MeshT>, boost::unit\_steppable<[pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)<MeshT> >> |

 
 Definition at line [796](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00796) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceIndex
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[FaceIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab57289fb28491a4b6663f41d7ee989d9) = typename Mesh::FaceIndex |

 
 Definition at line [802](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00802) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [803](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00803) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) = MeshT |

 
 Definition at line [801](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00801) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    Self
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67) = [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)<MeshT> |

 
 Definition at line [799](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00799) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  FaceAroundFaceCirculator() [1/3]
--------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator) | ( |  | ) |  |

 | inline |

 
 Constructor resulting in an invalid circulator. 

 Definition at line [806](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00806) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceAroundFaceCirculator() [2/3]
--------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator) | ( | const [FaceIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab57289fb28491a4b6663f41d7ee989d9) &  | *idx\_face*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct from the face around which we want to circulate. 

 Definition at line [809](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00809) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

    FaceAroundFaceCirculator() [3/3]
--------------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::[FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator) | ( | const [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) &  | *idx\_inner\_half\_edge*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf) \*const  | *mesh* |
|  | ) |  |  |

 | inline |

 
 Construct directly from the inner half-edge. 

 Definition at line [814](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00814) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

   Member Function Documentation
-----------------------------

  getCurrentHalfEdgeIndex()
-------------------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::getCurrentHalfEdgeIndex  | ( |  | ) |  const |

 | inline |

 
 Get the half-edge that is currently stored in the circulator. 

 Definition at line [861](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00861) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870).

    getTargetIndex()
----------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [FaceIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab57289fb28491a4b6663f41d7ee989d9) [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::getTargetIndex  | ( |  | ) |  const |

 | inline |

 
 Get the index to the target face. 

 Definition at line [854](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00854) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870), and [pcl::geometry::FaceAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00867).

    isValid()
---------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Check if the circulator is valid. 

 
Warning
Does NOT check if the stored mesh pointer is valid. You have to ensure this yourself when constructing the circulator. 
 Definition at line [822](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00822) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870).

    operator++()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67)& [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [838](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00838) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870), and [pcl::geometry::FaceAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00867).

    operator--()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67)& [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): – (pre and post) 

 Definition at line [846](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00846) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870), and [pcl::geometry::FaceAroundFaceCirculator< MeshT >::mesh\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00867).

    operator==()
------------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::operator==  | ( | const [Self](classpcl_1_1geometry_1_1_face_around_face_circulator#a1b6a15a81c6b306a992999d043037f67) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 
Warning
Does NOT check if the circulators belong to the same mesh. Please check this yourself. 
 Definition at line [831](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00831) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 References [pcl::geometry::FaceAroundFaceCirculator< MeshT >::idx\_inner\_half\_edge\_](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870).

   Member Data Documentation
-------------------------

  idx\_inner\_half\_edge\_
------------------------

    template<class MeshT >  

|  |
| --- |
| [HalfEdgeIndex](classpcl_1_1geometry_1_1_face_around_face_circulator#ab9a9c5ade1f421336512ba1b07b32ba5) [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::idx\_inner\_half\_edge\_ |

 
 The inner half-edge of the face around which we want to circulate. 

 Definition at line [870](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00870) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::FaceAroundFaceCirculator< MeshT >::getCurrentHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00861), [pcl::geometry::FaceAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00854), [pcl::geometry::FaceAroundFaceCirculator< MeshT >::isValid()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00822), [pcl::geometry::FaceAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00838), [pcl::geometry::FaceAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00846), and [pcl::geometry::FaceAroundFaceCirculator< MeshT >::operator==()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00831).

    mesh\_
------

    template<class MeshT >  

|  |
| --- |
| [Mesh](classpcl_1_1geometry_1_1_face_around_face_circulator#afa72ca804f88637c5271f7c6fe4de9cf)\* [pcl::geometry::FaceAroundFaceCirculator](classpcl_1_1geometry_1_1_face_around_face_circulator)< MeshT >::mesh\_ |

 
 The mesh to which this circulator belongs to. 

 Definition at line [867](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00867) of file [mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html).

 Referenced by [pcl::geometry::FaceAroundFaceCirculator< MeshT >::getTargetIndex()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00854), [pcl::geometry::FaceAroundFaceCirculator< MeshT >::operator++()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00838), and [pcl::geometry::FaceAroundFaceCirculator< MeshT >::operator--()](https://pointclouds.org/documentation/mesh__circulators_8h_source.html#l00846).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_circulators.h](https://pointclouds.org/documentation/mesh__circulators_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_face_around_face_circulator.html>

A vertex is a node in the mesh. [More...](classpcl_1_1geometry_1_1_vertex#details)

 `#include <[pcl/geometry/mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html)>`

 

|  |
| --- |
| 
 Friends |
| template<class DerivedT , class MeshTraitsT , class MeshTagT >  |
| class  | [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_vertex#a53af18507a8ef835e4591f523ec802ce) |
|
| template<class MeshT >  |
| class  | [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_vertex#a911d805527382c9969e3c0684075cc56) |
|

 Detailed Description
--------------------

 
A vertex is a node in the mesh. 

 
Author
Martin Saelzle 
 Definition at line [65](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00065) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

 
Friends And Related Function Documentation
------------------------------------------

  pcl::geometry::MeshBase
-----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base) |

 | friend |

 
 Definition at line [82](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00082) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

    pcl::geometry::MeshIO
---------------------

    template<class MeshT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o) |

 | friend |

 
 Definition at line [85](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00085) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_vertex.html>

An edge is a connection between two vertices. [More...](classpcl_1_1geometry_1_1_half_edge#details)

 `#include <[pcl/geometry/mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html)>`

 

|  |
| --- |
| 
 Friends |
| template<class DerivedT , class MeshTraitsT , class MeshTagT >  |
| class  | [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_half_edge#a53af18507a8ef835e4591f523ec802ce) |
|
| template<class MeshT >  |
| class  | [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_half_edge#a911d805527382c9969e3c0684075cc56) |
|

 Detailed Description
--------------------

 
An edge is a connection between two vertices. 

 In a half-edge mesh the edge is split into two half-edges with opposite orientation. Each half-edge stores the index to the terminating vertex, the next half-edge, the previous half-edge and the face it belongs to. The opposite half-edge is accessed implicitly. 



Author
Martin Saelzle 
 Definition at line [103](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00103) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

 
Friends And Related Function Documentation
------------------------------------------

  pcl::geometry::MeshBase
-----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base) |

 | friend |

 
 Definition at line [144](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00144) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

    pcl::geometry::MeshIO
---------------------

    template<class MeshT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o) |

 | friend |

 
 Definition at line [147](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00147) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_half_edge.html>

A face is a closed loop of edges. [More...](classpcl_1_1geometry_1_1_face#details)

 `#include <[pcl/geometry/mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html)>`

 

|  |
| --- |
| 
 Friends |
| template<class DerivedT , class MeshTraitsT , class MeshTagT >  |
| class  | [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_face#a53af18507a8ef835e4591f523ec802ce) |
|
| template<class MeshT >  |
| class  | [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_face#a911d805527382c9969e3c0684075cc56) |
|

 Detailed Description
--------------------

 
A face is a closed loop of edges. 

 
Author
Martin Saelzle 
 Definition at line [162](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00162) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

 
Friends And Related Function Documentation
------------------------------------------

  pcl::geometry::MeshBase
-----------------------

    template<class DerivedT , class MeshTraitsT , class MeshTagT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshBase](classpcl_1_1geometry_1_1_mesh_base) |

 | friend |

 
 Definition at line [179](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00179) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

    pcl::geometry::MeshIO
---------------------

    template<class MeshT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| friend class [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o) |

 | friend |

 
 Definition at line [182](https://pointclouds.org/documentation/mesh__elements_8h_source.html#l00182) of file [mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_elements.h](https://pointclouds.org/documentation/mesh__elements_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_face.html>

Read / write the half-edge mesh from / to a file. [More...](classpcl_1_1geometry_1_1_mesh_i_o#details)

 `#include <[pcl/geometry/mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html)>`

 

|  |
| --- |
| 
 Public Types |
| using  | [Mesh](classpcl_1_1geometry_1_1_mesh_i_o#ab90bed0d3c49eeafa476fe32b0e3f072) = MeshT |
|
| using  | [Vertex](classpcl_1_1geometry_1_1_mesh_i_o#ad8c1684aa0421abfc36a98d91316d429) = typename Mesh::Vertex |
|
| using  | [HalfEdge](classpcl_1_1geometry_1_1_mesh_i_o#af19eb9863ede9bdc918018f4f1fdf321) = typename Mesh::HalfEdge |
|
| using  | [Face](classpcl_1_1geometry_1_1_mesh_i_o#a1cffd717b0d7e370d8a13d6dbe6a55ef) = typename Mesh::Face |
|
| using  | [Vertices](classpcl_1_1geometry_1_1_mesh_i_o#ae7ffc68c4ec41413550f6625d113c776) = typename Mesh::Vertices |
|
| using  | [HalfEdges](classpcl_1_1geometry_1_1_mesh_i_o#a57e28e77b692f5355655378bc24589dc) = typename Mesh::HalfEdges |
|
| using  | [Faces](classpcl_1_1geometry_1_1_mesh_i_o#abd20828be4ddb71cd0da91172808ac98) = typename Mesh::Faces |
|
| using  | [VertexIndex](classpcl_1_1geometry_1_1_mesh_i_o#a2c72302787d3d9fde57cee5be095d25e) = typename Mesh::VertexIndex |
|
| using  | [HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_i_o#a71870ec2e4d56c19bed90868baffa03b) = typename Mesh::HalfEdgeIndex |
|
| using  | [FaceIndex](classpcl_1_1geometry_1_1_mesh_i_o#a4b69a5a88ecc1dfc13ddc532cf90b1a6) = typename Mesh::FaceIndex |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [MeshIO](classpcl_1_1geometry_1_1_mesh_i_o#ac124585c6f3f8bb03c5aa925fbb2c468) ()=default |
|  | Constructor. [More...](classpcl_1_1geometry_1_1_mesh_i_o#ac124585c6f3f8bb03c5aa925fbb2c468) |
|
| bool  | [read](classpcl_1_1geometry_1_1_mesh_i_o#a772208d4d73090f176cb4f7dad050f2d) (const std::string &filename, [Mesh](classpcl_1_1geometry_1_1_mesh_i_o#ab90bed0d3c49eeafa476fe32b0e3f072) &mesh) const |
|  | Read the mesh from a file with the given filename. [More...](classpcl_1_1geometry_1_1_mesh_i_o#a772208d4d73090f176cb4f7dad050f2d) |
|
| bool  | [write](classpcl_1_1geometry_1_1_mesh_i_o#ae9e973ddfc075939470ae69a1126baf5) (const std::string &filename, const [Mesh](classpcl_1_1geometry_1_1_mesh_i_o#ab90bed0d3c49eeafa476fe32b0e3f072) &mesh) const |
|  | Write the mesh to a file with the given filename. [More...](classpcl_1_1geometry_1_1_mesh_i_o#ae9e973ddfc075939470ae69a1126baf5) |
|

 Detailed Description
--------------------

 
### template<class MeshT> class pcl::geometry::MeshIO< MeshT >

 Read / write the half-edge mesh from / to a file. 

 
Template Parameters
 

|  |  |
| --- | --- |
| MeshT | e.g. [pcl::geometry::TriangleMesh](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_triangle_mesh.html "Half-edge mesh that can only store triangles.") or [pcl::geometry::PolygonMesh](https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_polygon_mesh.html "General half-edge mesh that can store any polygon with a minimum number of vertices of 3.") |

   
Author
Martin Saelzle
 
**[Todo:](todo#_todo000012)**

* Only writes the topology (not the mesh data).
* Supports only ascii.
* Does not consider the mesh traits (e.g. manifold or not)

 
 Definition at line [60](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00060) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Face
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[Face](classpcl_1_1geometry_1_1_mesh_i_o#a1cffd717b0d7e370d8a13d6dbe6a55ef) = typename Mesh::Face |

 
 Definition at line [66](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00066) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    FaceIndex
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[FaceIndex](classpcl_1_1geometry_1_1_mesh_i_o#a4b69a5a88ecc1dfc13ddc532cf90b1a6) = typename Mesh::FaceIndex |

 
 Definition at line [74](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00074) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    Faces
-----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[Faces](classpcl_1_1geometry_1_1_mesh_i_o#abd20828be4ddb71cd0da91172808ac98) = typename Mesh::Faces |

 
 Definition at line [70](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00070) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    HalfEdge
--------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[HalfEdge](classpcl_1_1geometry_1_1_mesh_i_o#af19eb9863ede9bdc918018f4f1fdf321) = typename Mesh::HalfEdge |

 
 Definition at line [65](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00065) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    HalfEdgeIndex
-------------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[HalfEdgeIndex](classpcl_1_1geometry_1_1_mesh_i_o#a71870ec2e4d56c19bed90868baffa03b) = typename Mesh::HalfEdgeIndex |

 
 Definition at line [73](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00073) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    HalfEdges
---------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[HalfEdges](classpcl_1_1geometry_1_1_mesh_i_o#a57e28e77b692f5355655378bc24589dc) = typename Mesh::HalfEdges |

 
 Definition at line [69](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00069) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    Mesh
----

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[Mesh](classpcl_1_1geometry_1_1_mesh_i_o#ab90bed0d3c49eeafa476fe32b0e3f072) = MeshT |

 
 Definition at line [62](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00062) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    Vertex
------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[Vertex](classpcl_1_1geometry_1_1_mesh_i_o#ad8c1684aa0421abfc36a98d91316d429) = typename Mesh::Vertex |

 
 Definition at line [64](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00064) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    VertexIndex
-----------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[VertexIndex](classpcl_1_1geometry_1_1_mesh_i_o#a2c72302787d3d9fde57cee5be095d25e) = typename Mesh::VertexIndex |

 
 Definition at line [72](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00072) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    Vertices
--------

    template<class MeshT >  

|  |
| --- |
| using [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[Vertices](classpcl_1_1geometry_1_1_mesh_i_o#ae7ffc68c4ec41413550f6625d113c776) = typename Mesh::Vertices |

 
 Definition at line [68](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00068) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  MeshIO()
--------

    template<class MeshT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::[MeshIO](classpcl_1_1geometry_1_1_mesh_i_o) | ( |  | ) |  |

 | default |

 
 Constructor. 

   Member Function Documentation
-----------------------------

  read()
------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::read  | ( | const std::string &  | *filename*,  |
|  |  | [Mesh](classpcl_1_1geometry_1_1_mesh_i_o#ab90bed0d3c49eeafa476fe32b0e3f072) &  | *mesh* |
|  | ) |  |  const |

 | inline |

 
 Read the mesh from a file with the given filename. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | filename | Path to the file.  |
| [out] | mesh | The loaded mesh.  |

   
Returns
true if success. 
 Definition at line [85](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00085) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

    write()
-------

    template<class MeshT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool [pcl::geometry::MeshIO](classpcl_1_1geometry_1_1_mesh_i_o)< MeshT >::write  | ( | const std::string &  | *filename*,  |
|  |  | const [Mesh](classpcl_1_1geometry_1_1_mesh_i_o#ab90bed0d3c49eeafa476fe32b0e3f072) &  | *mesh* |
|  | ) |  |  const |

 | inline |

 
 Write the mesh to a file with the given filename. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | filename | Path to the file.  |
| [in] | mesh | The saved mesh.  |

   
Returns
true if success 
 Definition at line [216](https://pointclouds.org/documentation/mesh__io_8h_source.html#l00216) of file [mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/geometry/[mesh\_base.h](https://pointclouds.org/documentation/mesh__base_8h_source.html)
* pcl/geometry/[mesh\_io.h](https://pointclouds.org/documentation/mesh__io_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1geometry_1_1_mesh_i_o.html>

The mesh traits are used to set up compile time settings for the mesh. [More...](structpcl_1_1geometry_1_1_default_mesh_traits#details)

 `#include <[pcl/geometry/mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html)>`

 

|  |
| --- |
| 
 Public Types |
| using  | [VertexData](structpcl_1_1geometry_1_1_default_mesh_traits#a0ac006b22e31db4d5b56144a38b9469b) = VertexDataT |
|
| using  | [HalfEdgeData](structpcl_1_1geometry_1_1_default_mesh_traits#ab4bef61e13193f410024d769914e1e09) = HalfEdgeDataT |
|
| using  | [EdgeData](structpcl_1_1geometry_1_1_default_mesh_traits#a4ea1c55fe14e803113dcc71a4f5892b6) = EdgeDataT |
|
| using  | [FaceData](structpcl_1_1geometry_1_1_default_mesh_traits#a2ff7077b7b1890d811d691ee0e8bf983) = FaceDataT |
|
| using  | [IsManifold](structpcl_1_1geometry_1_1_default_mesh_traits#a921358165a8d414024cc14ea1b05cea2) = std::false\_type |
|  | Specifies whether the mesh is manifold or not (only non-manifold vertices can be represented). [More...](structpcl_1_1geometry_1_1_default_mesh_traits#a921358165a8d414024cc14ea1b05cea2) |
|

 Detailed Description
--------------------

 
### template<class VertexDataT = pcl::geometry::NoData, class HalfEdgeDataT = pcl::geometry::NoData, class EdgeDataT = pcl::geometry::NoData, class FaceDataT = pcl::geometry::NoData> struct pcl::geometry::DefaultMeshTraits< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >

 The mesh traits are used to set up compile time settings for the mesh. 

 
Template Parameters
 

|  |  |
| --- | --- |
| VertexDataT | Data stored for each vertex. Defaults to pcl::NoData.  |
| HalfEdgeDataT | Data stored for each half-edge. Defaults to pcl::NoData.  |
| EdgeDataT | Data stored for each edge. Defaults to pcl::NoData.  |
| FaceDataT | Data stored for each face. Defaults to pcl::NoData.  |

   
Author
Martin Saelzle 
 Definition at line [62](https://pointclouds.org/documentation/mesh__traits_8h_source.html#l00062) of file [mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html).

 
Member Typedef Documentation
----------------------------

  EdgeData
--------

    template<class VertexDataT = pcl::geometry::NoData, class HalfEdgeDataT = pcl::geometry::NoData, class EdgeDataT = pcl::geometry::NoData, class FaceDataT = pcl::geometry::NoData>  

|  |
| --- |
| using [pcl::geometry::DefaultMeshTraits](structpcl_1_1geometry_1_1_default_mesh_traits)< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >::[EdgeData](structpcl_1_1geometry_1_1_default_mesh_traits#a4ea1c55fe14e803113dcc71a4f5892b6) = EdgeDataT |

 
 Definition at line [65](https://pointclouds.org/documentation/mesh__traits_8h_source.html#l00065) of file [mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html).

    FaceData
--------

    template<class VertexDataT = pcl::geometry::NoData, class HalfEdgeDataT = pcl::geometry::NoData, class EdgeDataT = pcl::geometry::NoData, class FaceDataT = pcl::geometry::NoData>  

|  |
| --- |
| using [pcl::geometry::DefaultMeshTraits](structpcl_1_1geometry_1_1_default_mesh_traits)< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >::[FaceData](structpcl_1_1geometry_1_1_default_mesh_traits#a2ff7077b7b1890d811d691ee0e8bf983) = FaceDataT |

 
 Definition at line [66](https://pointclouds.org/documentation/mesh__traits_8h_source.html#l00066) of file [mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html).

    HalfEdgeData
------------

    template<class VertexDataT = pcl::geometry::NoData, class HalfEdgeDataT = pcl::geometry::NoData, class EdgeDataT = pcl::geometry::NoData, class FaceDataT = pcl::geometry::NoData>  

|  |
| --- |
| using [pcl::geometry::DefaultMeshTraits](structpcl_1_1geometry_1_1_default_mesh_traits)< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >::[HalfEdgeData](structpcl_1_1geometry_1_1_default_mesh_traits#ab4bef61e13193f410024d769914e1e09) = HalfEdgeDataT |

 
 Definition at line [64](https://pointclouds.org/documentation/mesh__traits_8h_source.html#l00064) of file [mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html).

    IsManifold
----------

    template<class VertexDataT = pcl::geometry::NoData, class HalfEdgeDataT = pcl::geometry::NoData, class EdgeDataT = pcl::geometry::NoData, class FaceDataT = pcl::geometry::NoData>  

|  |
| --- |
| using [pcl::geometry::DefaultMeshTraits](structpcl_1_1geometry_1_1_default_mesh_traits)< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >::[IsManifold](structpcl_1_1geometry_1_1_default_mesh_traits#a921358165a8d414024cc14ea1b05cea2) = std::false\_type |

 
 Specifies whether the mesh is manifold or not (only non-manifold vertices can be represented). 

 Definition at line [70](https://pointclouds.org/documentation/mesh__traits_8h_source.html#l00070) of file [mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html).

    VertexData
----------

    template<class VertexDataT = pcl::geometry::NoData, class HalfEdgeDataT = pcl::geometry::NoData, class EdgeDataT = pcl::geometry::NoData, class FaceDataT = pcl::geometry::NoData>  

|  |
| --- |
| using [pcl::geometry::DefaultMeshTraits](structpcl_1_1geometry_1_1_default_mesh_traits)< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >::[VertexData](structpcl_1_1geometry_1_1_default_mesh_traits#a0ac006b22e31db4d5b56144a38b9469b) = VertexDataT |

 
 Definition at line [63](https://pointclouds.org/documentation/mesh__traits_8h_source.html#l00063) of file [mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html).

   

---

The documentation for this struct was generated from the following file:* pcl/geometry/[mesh\_traits.h](https://pointclouds.org/documentation/mesh__traits_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/structpcl_1_1geometry_1_1_default_mesh_traits.html>

base class for iterators on 2-dimensional maps like images/organized clouds etc. [More...](classpcl_1_1_organized_index_iterator#details)

 `#include <[pcl/geometry/organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html)>`

    ![Inheritance graph]]
 

|  |
| --- |
| 
 Public Member Functions |
|  | [OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#a00a12986af4a5fddef8b88e51a931e22) (unsigned width) |
|  | constructor [More...](classpcl_1_1_organized_index_iterator#a00a12986af4a5fddef8b88e51a931e22) |
|
| virtual  | [~OrganizedIndexIterator](classpcl_1_1_organized_index_iterator#ad5d19942435c44453dcef820199ee75f) () |
|  | virtual destructor [More...](classpcl_1_1_organized_index_iterator#ad5d19942435c44453dcef820199ee75f) |
|
| virtual void  | [operator++](classpcl_1_1_organized_index_iterator#ab6950d0d29b529903c11d1d02fd9f9e9) ()=0 |
|  | go to next pixel/point in image/cloud [More...](classpcl_1_1_organized_index_iterator#ab6950d0d29b529903c11d1d02fd9f9e9) |
|
| virtual void  | [operator++](classpcl_1_1_organized_index_iterator#a7160dcc2b4621ef04885c24016190c10) (int) |
|  | go to next pixel/point in image/cloud [More...](classpcl_1_1_organized_index_iterator#a7160dcc2b4621ef04885c24016190c10) |
|
| unsigned  | [operator\*](classpcl_1_1_organized_index_iterator#abf16fed1c152dfa8b0e99f0fb3a53f4c) () const |
|  | returns the pixel/point index in the linearized memory of the image/cloud [More...](classpcl_1_1_organized_index_iterator#abf16fed1c152dfa8b0e99f0fb3a53f4c) |
|
| virtual unsigned  | [getIndex](classpcl_1_1_organized_index_iterator#af9561b53101cc76455576159b0c56738) () const |
|  | returns the pixel/point index in the linearized memory of the image/cloud [More...](classpcl_1_1_organized_index_iterator#af9561b53101cc76455576159b0c56738) |
|
| virtual unsigned  | [getRowIndex](classpcl_1_1_organized_index_iterator#a8e15dd4231cac39c0a58434745d6a3f5) () const |
|  | returns the row index (y-coordinate) of the current pixel/point [More...](classpcl_1_1_organized_index_iterator#a8e15dd4231cac39c0a58434745d6a3f5) |
|
| virtual unsigned  | [getColumnIndex](classpcl_1_1_organized_index_iterator#a6edc62e9876fab1a9ace3ec2d5314d9c) () const |
|  | returns the col index (x-coordinate) of the current pixel/point [More...](classpcl_1_1_organized_index_iterator#a6edc62e9876fab1a9ace3ec2d5314d9c) |
|
| virtual bool  | [isValid](classpcl_1_1_organized_index_iterator#a69c605f80da0be4fea056b843450e8ae) () const =0 |
|  | return whether the current visited pixel/point is valid or not. [More...](classpcl_1_1_organized_index_iterator#a69c605f80da0be4fea056b843450e8ae) |
|
| virtual void  | [reset](classpcl_1_1_organized_index_iterator#a6ae0bd74fcfcf9f4243abe577644a956) ()=0 |
|  | resets the iterator to the beginning of the line [More...](classpcl_1_1_organized_index_iterator#a6ae0bd74fcfcf9f4243abe577644a956) |
|




|  |
| --- |
| 
 Protected Attributes |
| unsigned  | [width\_](classpcl_1_1_organized_index_iterator#aa3ebc81e8bd1dd52d60b25c10d4b05c9) |
|  | the width of the image/cloud [More...](classpcl_1_1_organized_index_iterator#aa3ebc81e8bd1dd52d60b25c10d4b05c9) |
|
| unsigned  | [index\_](classpcl_1_1_organized_index_iterator#acdce403c2c2c5bb4a4092740e80d2bbb) |
|  | the index of the current pixel/point [More...](classpcl_1_1_organized_index_iterator#acdce403c2c2c5bb4a4092740e80d2bbb) |
|

 Detailed Description
--------------------

 
base class for iterators on 2-dimensional maps like images/organized clouds etc. 

 
Author
Suat Gedikli [gedik.nosp@m.li@w.nosp@m.illow.nosp@m.gara.nosp@m.ge.co.nosp@m.m](#) 
 Definition at line [44](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00044) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  OrganizedIndexIterator()
------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| pcl::OrganizedIndexIterator::OrganizedIndexIterator  | ( | unsigned  | *width* | ) |  |

 | inline |

 
 constructor 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | width | the width of the image/organized cloud  |

   Definition at line [112](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00112) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

    ~OrganizedIndexIterator()
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::OrganizedIndexIterator::~OrganizedIndexIterator  | ( |  | ) |  |

 | inlinevirtualdefault |

 
 virtual destructor 

   Member Function Documentation
-----------------------------

  getColumnIndex()
----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned pcl::OrganizedIndexIterator::getColumnIndex  | ( |  | ) |  const |

 | inlinevirtual |

 
 returns the col index (x-coordinate) of the current pixel/point 

 
Returns
the col index (x-coordinate) of the current pixel/point 
 Reimplemented in [pcl::LineIterator](classpcl_1_1_line_iterator#a25394acf81d48fc72284d8f55049f001).

 Definition at line [151](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00151) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

    getIndex()
----------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned pcl::OrganizedIndexIterator::getIndex  | ( |  | ) |  const |

 | inlinevirtual |

 
 returns the pixel/point index in the linearized memory of the image/cloud 

 
Returns
the pixel/point index in the linearized memory of the image/cloud 
 Definition at line [135](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00135) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

    getRowIndex()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned pcl::OrganizedIndexIterator::getRowIndex  | ( |  | ) |  const |

 | inlinevirtual |

 
 returns the row index (y-coordinate) of the current pixel/point 

 default implementation.

 
Returns
the row index (y-coordinate) of the current pixel/point
 Should be overloaded 

 Reimplemented in [pcl::LineIterator](classpcl_1_1_line_iterator#a32673fd2bd7336602bcae2b0a9f4aac9).

 Definition at line [144](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00144) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

    isValid()
---------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual bool pcl::OrganizedIndexIterator::isValid  | ( |  | ) |  const |

 | pure virtual |

 
 return whether the current visited pixel/point is valid or not. 

 
Returns
true if the current pixel/point is within the points to be iterated over, false otherwise 
 Implemented in [pcl::LineIterator](classpcl_1_1_line_iterator#af584226704e4636336802286a2b428c7).

    operator\*()
------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned pcl::OrganizedIndexIterator::operator\*  | ( |  | ) |  const |

 | inline |

 
 returns the pixel/point index in the linearized memory of the image/cloud 

 
Returns
the pixel/point index in the linearized memory of the image/cloud 
 Definition at line [128](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00128) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

    operator++() [1/2]
------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual void pcl::OrganizedIndexIterator::operator++  | ( |  | ) |  |

 | pure virtual |

 
 go to next pixel/point in image/cloud 

 Implemented in [pcl::LineIterator](classpcl_1_1_line_iterator#a1d02e88fd07138e14fa5ccab82a74f4c).

 Referenced by [operator++()](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00121).

    operator++() [2/2]
------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::OrganizedIndexIterator::operator++  | ( | int  |  | ) |  |

 | inlinevirtual |

 
 go to next pixel/point in image/cloud 

 Definition at line [121](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00121) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

 References [operator++()](classpcl_1_1_organized_index_iterator#ab6950d0d29b529903c11d1d02fd9f9e9).

    reset()
-------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual void pcl::OrganizedIndexIterator::reset  | ( |  | ) |  |

 | pure virtual |

 
 resets the iterator to the beginning of the line 

 Implemented in [pcl::LineIterator](classpcl_1_1_line_iterator#a2b6709c56775bef167160e79a823a373).

   Member Data Documentation
-------------------------

  index\_
-------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::OrganizedIndexIterator::index\_ |

 | protected |

 
 the index of the current pixel/point 

 Definition at line [104](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00104) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

 Referenced by [pcl::LineIterator::init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), [pcl::LineIterator::operator++()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00235), and [pcl::LineIterator::reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

    width\_
-------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned pcl::OrganizedIndexIterator::width\_ |

 | protected |

 
 the width of the image/cloud 

 Definition at line [101](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html#l00101) of file [organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html).

 Referenced by [pcl::LineIterator::init()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00168), and [pcl::LineIterator::reset()](https://pointclouds.org/documentation/line__iterator_8h_source.html#l00274).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[organized\_index\_iterator.h](https://pointclouds.org/documentation/organized__index__iterator_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_organized_index_iterator.html>

`#include <[pcl/geometry/mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Base](classpcl_1_1detail_1_1_mesh_index#a27ac9c179d57558b5b80563b7cd2b10d) = boost::totally\_ordered< [MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >, boost::unit\_steppable< [MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >, boost::additive< [MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT > >> > |
|
| using  | [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) = [MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [MeshIndex](classpcl_1_1detail_1_1_mesh_index#affe88aa070d7406f9f6b319b1b8874d8) () |
|  | Constructor. [More...](classpcl_1_1detail_1_1_mesh_index#affe88aa070d7406f9f6b319b1b8874d8) |
|
|  | [MeshIndex](classpcl_1_1detail_1_1_mesh_index#afb247955277a21f191fd16ad57863f45) (const int index) |
|  | Constructor. [More...](classpcl_1_1detail_1_1_mesh_index#afb247955277a21f191fd16ad57863f45) |
|
| bool  | [isValid](classpcl_1_1detail_1_1_mesh_index#a8ed1c5cf2bcde84643cbb717c146cb7b) () const |
|  | Returns true if the index is valid. [More...](classpcl_1_1detail_1_1_mesh_index#a8ed1c5cf2bcde84643cbb717c146cb7b) |
|
| void  | [invalidate](classpcl_1_1detail_1_1_mesh_index#a00386e7e7f1c184907792889c9e664e8) () |
|  | Invalidate the index. [More...](classpcl_1_1detail_1_1_mesh_index#a00386e7e7f1c184907792889c9e664e8) |
|
| int  | [get](classpcl_1_1detail_1_1_mesh_index#a9c1b95eebec55f6204e4c720e9c20abc) () const |
|  | Get the index. [More...](classpcl_1_1detail_1_1_mesh_index#a9c1b95eebec55f6204e4c720e9c20abc) |
|
| void  | [set](classpcl_1_1detail_1_1_mesh_index#a9070bd9923949a081129d214bd3c9d4a) (const int index) |
|  | Set the index. [More...](classpcl_1_1detail_1_1_mesh_index#a9070bd9923949a081129d214bd3c9d4a) |
|
| bool  | [operator<](classpcl_1_1detail_1_1_mesh_index#acfe196d9d9cfad878bb31757f48b5400) (const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &other) const |
|  | Comparison operators (with boost::operators): < > <= >=. [More...](classpcl_1_1detail_1_1_mesh_index#acfe196d9d9cfad878bb31757f48b5400) |
|
| bool  | [operator==](classpcl_1_1detail_1_1_mesh_index#aaeb41e39cd84c2f349aab34f304fda7a) (const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &other) const |
|  | Comparison operators (with boost::operators): == !=. [More...](classpcl_1_1detail_1_1_mesh_index#aaeb41e39cd84c2f349aab34f304fda7a) |
|
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | [operator++](classpcl_1_1detail_1_1_mesh_index#abb0af69b124af8d48ee91c5b61c60229) () |
|  | Increment operators (with boost::operators): ++ (pre and post) [More...](classpcl_1_1detail_1_1_mesh_index#abb0af69b124af8d48ee91c5b61c60229) |
|
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | [operator--](classpcl_1_1detail_1_1_mesh_index#a42ab339093003ac5ed7205aca2a0b6fc) () |
|  | Decrement operators (with boost::operators): -- (pre and post) [More...](classpcl_1_1detail_1_1_mesh_index#a42ab339093003ac5ed7205aca2a0b6fc) |
|
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | [operator+=](classpcl_1_1detail_1_1_mesh_index#ab06bf4d7cb0d8844f3709e152486abbe) (const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &other) |
|  | Addition operators (with boost::operators): + +=. [More...](classpcl_1_1detail_1_1_mesh_index#ab06bf4d7cb0d8844f3709e152486abbe) |
|
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | [operator-=](classpcl_1_1detail_1_1_mesh_index#adf7f6ef839ec59912296fe46f86cdbb4) (const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &other) |
|  | Subtraction operators (with boost::operators): - -=. [More...](classpcl_1_1detail_1_1_mesh_index#adf7f6ef839ec59912296fe46f86cdbb4) |
|




|  |
| --- |
| 
 Friends |
| std::istream &  | [operator>>](classpcl_1_1detail_1_1_mesh_index#a1e2cd77ab800b44d0d98dee70c156d7c) (std::istream &is, [MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT > &index) |
|  | istream operator. [More...](classpcl_1_1detail_1_1_mesh_index#a1e2cd77ab800b44d0d98dee70c156d7c) |
|

 Detailed Description
--------------------

 
### template<class IndexTagT> class pcl::detail::MeshIndex< IndexTagT >

 Definition at line [62](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00062) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 
Member Typedef Documentation
----------------------------

  Base
----

    template<class IndexTagT >  

|  |
| --- |
| using [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::[Base](classpcl_1_1detail_1_1_mesh_index#a27ac9c179d57558b5b80563b7cd2b10d) = boost::totally\_ordered< [MeshIndex](classpcl_1_1detail_1_1_mesh_index)<IndexTagT>, boost::unit\_steppable<[MeshIndex](classpcl_1_1detail_1_1_mesh_index)<IndexTagT>, boost::additive<[MeshIndex](classpcl_1_1detail_1_1_mesh_index)<IndexTagT> >> > |

 
 Definition at line [71](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00071) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    Self
----

    template<class IndexTagT >  

|  |
| --- |
| using [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::[Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) = [MeshIndex](classpcl_1_1detail_1_1_mesh_index)<IndexTagT> |

 
 Definition at line [75](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00075) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  MeshIndex() [1/2]
-----------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::[MeshIndex](classpcl_1_1detail_1_1_mesh_index) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Initializes with an invalid index. 

 Definition at line [78](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00078) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    MeshIndex() [2/2]
-----------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::[MeshIndex](classpcl_1_1detail_1_1_mesh_index) | ( | const int  | *index* | ) |  |

 | inlineexplicit |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | The integer index.  |

   Definition at line [83](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00083) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

   Member Function Documentation
-----------------------------

  get()
-----

    template<class IndexTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::get  | ( |  | ) |  const |

 | inline |

 
 Get the index. 

 Definition at line [101](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 Referenced by [pcl::geometry::getBoundBoundaryHalfEdges()](https://pointclouds.org/documentation/get__boundary_8h_source.html#l00060), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02122), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02094), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00391), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02066), [pcl::detail::MeshIndex< IndexTagT >::operator+=()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00145), [pcl::detail::MeshIndex< IndexTagT >::operator-=()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00153), [pcl::detail::MeshIndex< IndexTagT >::operator<()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00115), [pcl::detail::operator<<()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00170), [pcl::detail::MeshIndex< IndexTagT >::operator==()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00122), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02138), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdge()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02110), [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l02082), [pcl::geometry::toEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00224), and [pcl::geometry::toHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00235).

    invalidate()
------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::invalidate  | ( |  | ) |  |

 | inline |

 
 Invalidate the index. 

 Definition at line [94](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00094) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01585), and [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l01733).

    isValid()
---------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::isValid  | ( |  | ) |  const |

 | inline |

 
 Returns true if the index is valid. 

 Definition at line [87](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00087) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 Referenced by [pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex()](https://pointclouds.org/documentation/mesh__base_8h_source.html#l00218), [pcl::geometry::toEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00224), and [pcl::geometry::toHalfEdgeIndex()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00235).

    operator++()
------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6)& [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::operator++  | ( |  | ) |  |

 | inline |

 
 Increment operators (with boost::operators): ++ (pre and post) 

 Definition at line [129](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00129) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    operator+=()
------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6)& [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::operator+=  | ( | const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | *other* | ) |  |

 | inline |

 
 Addition operators (with boost::operators): + +=. 

 Definition at line [145](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00145) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101).

    operator--()
------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6)& [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::operator--  | ( |  | ) |  |

 | inline |

 
 Decrement operators (with boost::operators): -- (pre and post) 

 Definition at line [137](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00137) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

    operator-=()
------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6)& [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::operator-=  | ( | const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | *other* | ) |  |

 | inline |

 
 Subtraction operators (with boost::operators): - -=. 

 Definition at line [153](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00153) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101).

    operator<()
-----------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::operator<  | ( | const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): < > <= >=. 

 Definition at line [114](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00114) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101).

    operator==()
------------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| bool [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::operator==  | ( | const [Self](classpcl_1_1detail_1_1_mesh_index#a840487535a79a562c0a21326548f65e6) &  | *other* | ) |  const |

 | inline |

 
 Comparison operators (with boost::operators): == !=. 

 Definition at line [122](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00122) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

 References [pcl::detail::MeshIndex< IndexTagT >::get()](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00101).

    set()
-----

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::detail::MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT >::set  | ( | const int  | *index* | ) |  |

 | inline |

 
 Set the index. 

 Definition at line [108](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00108) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

   Friends And Related Function Documentation
------------------------------------------

  operator>>
----------

    template<class IndexTagT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::istream& operator>>  | ( | std::istream &  | *is*,  |
|  |  | [MeshIndex](classpcl_1_1detail_1_1_mesh_index)< IndexTagT > &  | *index* |
|  | ) |  |  |

 | friend |

 
 istream operator. 

 Definition at line [178](https://pointclouds.org/documentation/mesh__indices_8h_source.html#l00178) of file [mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/geometry/[mesh\_indices.h](https://pointclouds.org/documentation/mesh__indices_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1detail_1_1_mesh_index.html>

A point structure representing an [Axis](structpcl_1_1_axis "A point structure representing an Axis using its normal coordinates.") using its normal coordinates. [More...](structpcl_1_1_axis#details)

 `#include <[pcl/impl/point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Member Functions |
| constexpr  | [Axis](structpcl_1_1_axis#ac5311a0e859f740c34b8bd60fc9e4e79) (const [\_Axis](structpcl_1_1___axis) &p) |
|
| constexpr  | [Axis](structpcl_1_1_axis#abab74275b51f9b13270d3014747ae837) () |
|
| constexpr  | [Axis](structpcl_1_1_axis#a2e823e7765dfd90ca5eee0efa5f5f4e0) (float n\_x, float n\_y, float n\_z) |
|




|  |
| --- |
| 
 Friends |
| std::ostream &  | [operator<<](structpcl_1_1_axis#a09a081a13dc201be7f85e3650556e001) (std::ostream &os, const [Axis](structpcl_1_1_axis) &p) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Attributes inherited from [pcl::\_Axis](structpcl_1_1___axis) |
|  | [PCL\_ADD\_NORMAL4D](structpcl_1_1___axis#a6d5172690bbed9fc24557eeb83b8d74d) |
|

 Detailed Description
--------------------

 
A point structure representing an [Axis](structpcl_1_1_axis "A point structure representing an Axis using its normal coordinates.") using its normal coordinates. 

 (SSE friendly) 

 Definition at line [844](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00844) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  Axis() [1/3]
------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| constexpr pcl::Axis::Axis  | ( | const [\_Axis](structpcl_1_1___axis) &  | *p* | ) |  |

 | inlineconstexpr |

 
 Definition at line [846](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00846) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    Axis() [2/3]
------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| constexpr pcl::Axis::Axis  | ( |  | ) |  |

 | inlineconstexpr |

 
 Definition at line [848](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00848) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

    Axis() [3/3]
------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| constexpr pcl::Axis::Axis  | ( | float  | *n\_x*,  |
|  |  | float  | *n\_y*,  |
|  |  | float  | *n\_z* |
|  | ) |  |  |

 | inlineconstexpr |

 
 Definition at line [850](https://pointclouds.org/documentation/point__types_8hpp_source.html#l00850) of file [point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html).

   Friends And Related Function Documentation
------------------------------------------

  operator<<
----------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| std::ostream& operator<<  | ( | std::ostream &  | *os*,  |
|  |  | const [Axis](structpcl_1_1_axis) &  | *p* |
|  | ) |  |  |

 | friend |

 
   

---

The documentation for this struct was generated from the following file:* pcl/impl/[point\_types.hpp](https://pointclouds.org/documentation/point__types_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/structpcl_1_1_axis.html>

[KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations.") represents the base spatial locator class for kd-tree implementations. [More...](classpcl_1_1_kd_tree#details)

 `#include <[pcl/kdtree/kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [IndicesPtr](classpcl_1_1_kd_tree#aaef81f53008028cf9488064b1e4916aa) = shared\_ptr< [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |
|
| using  | [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) = shared\_ptr< const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |
|
| using  | [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > |
|
| using  | [PointCloudPtr](classpcl_1_1_kd_tree#a961cb6b5228848f822ac328c2eaa616f) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointRepresentation](classpcl_1_1_kd_tree#aae424330be6444e99eb43a97f6314618) = [pcl::PointRepresentation](classpcl_1_1_point_representation)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > |
|
| using  | [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) = typename [PointRepresentation::ConstPtr](classpcl_1_1_point_representation#a2654e2f5b889ca56fdd61a59fbb43327) |
|
| using  | [Ptr](classpcl_1_1_kd_tree#aeab3727a7da7b1cb80fe97d40c64242b) = shared\_ptr< [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|
| using  | [ConstPtr](classpcl_1_1_kd_tree#aef99a42f1a3929c3d1db95fc7c5409c7) = shared\_ptr< const [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [KdTree](classpcl_1_1_kd_tree#a49e8890a0cd0e35d0d5290b6e2be7900) (bool sorted=true) |
|  | Empty constructor for [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations."). [More...](classpcl_1_1_kd_tree#a49e8890a0cd0e35d0d5290b6e2be7900) |
|
| virtual void  | [setInputCloud](classpcl_1_1_kd_tree#ac105d90b2b10383adb58e62abe7b1161) (const [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) &cloud, const [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) &indices=[IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3)()) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_kd_tree#ac105d90b2b10383adb58e62abe7b1161) |
|
| [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) | [getIndices](classpcl_1_1_kd_tree#a5ea7020b3505f736ba78fb38be00d16a) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_kd_tree#a5ea7020b3505f736ba78fb38be00d16a) |
|
| [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) | [getInputCloud](classpcl_1_1_kd_tree#a4839876a6d01bddc7984a3193e23d463) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_kd_tree#a4839876a6d01bddc7984a3193e23d463) |
|
| void  | [setPointRepresentation](classpcl_1_1_kd_tree#ab2c8cd07baaebb4e1504f223405419cc) (const [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) &point\_representation) |
|  | Provide a pointer to the point representation to use to convert points into k-D vectors. [More...](classpcl_1_1_kd_tree#ab2c8cd07baaebb4e1504f223405419cc) |
|
| [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) | [getPointRepresentation](classpcl_1_1_kd_tree#afa158ec6aedf91fc898fadffdee449c6) () const |
|  | Get a pointer to the point representation used when converting points into k-D vectors. [More...](classpcl_1_1_kd_tree#afa158ec6aedf91fc898fadffdee449c6) |
|
| virtual  | [~KdTree](classpcl_1_1_kd_tree#a9201a9f4489198e05878d4032b39f1ce) ()=default |
|  | Destructor for [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations."). [More...](classpcl_1_1_kd_tree#a9201a9f4489198e05878d4032b39f1ce) |
|
| virtual int  | [nearestKSearch](classpcl_1_1_kd_tree#aecd6ea2d4f9aafe4904147d83416312c) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &p\_q, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const =0 |
|  | Search for k-nearest neighbors for the given query point. [More...](classpcl_1_1_kd_tree#aecd6ea2d4f9aafe4904147d83416312c) |
|
| virtual int  | [nearestKSearch](classpcl_1_1_kd_tree#aca0be52dc5f37509ae6690b1aeb2b0ae) (const [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) &cloud, int index, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const |
|  | Search for k-nearest neighbors for the given query point. [More...](classpcl_1_1_kd_tree#aca0be52dc5f37509ae6690b1aeb2b0ae) |
|
| template<typename PointTDiff >  |
| int  | [nearestKSearchT](classpcl_1_1_kd_tree#ab2b23eb59a16bdaf5bd6edd56960a343) (const PointTDiff &point, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const |
|  | Search for k-nearest neighbors for the given query point. [More...](classpcl_1_1_kd_tree#ab2b23eb59a16bdaf5bd6edd56960a343) |
|
| virtual int  | [nearestKSearch](classpcl_1_1_kd_tree#a05af2f18030e47ada72265daf4ee822d) (int index, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const |
|  | Search for k-nearest neighbors for the given query point (zero-copy). [More...](classpcl_1_1_kd_tree#a05af2f18030e47ada72265daf4ee822d) |
|
| virtual int  | [radiusSearch](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &p\_q, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const =0 |
|  | Search for all the nearest neighbors of the query point in a given radius. [More...](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c) |
|
| virtual int  | [radiusSearch](classpcl_1_1_kd_tree#a98cba8a833015d7a9e4466b33946d4c9) (const [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) &cloud, int index, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const |
|  | Search for all the nearest neighbors of the query point in a given radius. [More...](classpcl_1_1_kd_tree#a98cba8a833015d7a9e4466b33946d4c9) |
|
| template<typename PointTDiff >  |
| int  | [radiusSearchT](classpcl_1_1_kd_tree#aeb0e49027c7e673c3ab155230053a0cf) (const PointTDiff &point, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const |
|  | Search for all the nearest neighbors of the query point in a given radius. [More...](classpcl_1_1_kd_tree#aeb0e49027c7e673c3ab155230053a0cf) |
|
| virtual int  | [radiusSearch](classpcl_1_1_kd_tree#a5537b5d24cd87b827a8a2806b825a57a) (int index, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const |
|  | Search for all the nearest neighbors of the query point in a given radius (zero-copy). [More...](classpcl_1_1_kd_tree#a5537b5d24cd87b827a8a2806b825a57a) |
|
| virtual void  | [setEpsilon](classpcl_1_1_kd_tree#aa150954080bc14f46772871739c3bfff) (float eps) |
|  | Set the search epsilon precision (error bound) for nearest neighbors searches. [More...](classpcl_1_1_kd_tree#aa150954080bc14f46772871739c3bfff) |
|
| float  | [getEpsilon](classpcl_1_1_kd_tree#a9f29d3de4ab5a0213806077e7c280f1b) () const |
|  | Get the search epsilon precision (error bound) for nearest neighbors searches. [More...](classpcl_1_1_kd_tree#a9f29d3de4ab5a0213806077e7c280f1b) |
|
| void  | [setMinPts](classpcl_1_1_kd_tree#abd7f2b98e375c48d9fe113b95b3edc20) (int min\_pts) |
|  | Minimum allowed number of k nearest neighbors points that a viable result must contain. [More...](classpcl_1_1_kd_tree#abd7f2b98e375c48d9fe113b95b3edc20) |
|
| int  | [getMinPts](classpcl_1_1_kd_tree#ac62ad92ed0a7a494cdb8ba52d2c0dc08) () const |
|  | Get the minimum allowed number of k nearest neighbors points that a viable result must contain. [More...](classpcl_1_1_kd_tree#ac62ad92ed0a7a494cdb8ba52d2c0dc08) |
|




|  |
| --- |
| 
 Protected Member Functions |
| virtual std::string  | [getName](classpcl_1_1_kd_tree#af2adf6e714a116858487e4d40859d80e) () const =0 |
|  | Class getName method. [More...](classpcl_1_1_kd_tree#af2adf6e714a116858487e4d40859d80e) |
|




|  |
| --- |
| 
 Protected Attributes |
| [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) | [input\_](classpcl_1_1_kd_tree#a9b71072db4f7662c7c565d4c49145db2) |
|  | The input point cloud dataset containing the points we need to use. [More...](classpcl_1_1_kd_tree#a9b71072db4f7662c7c565d4c49145db2) |
|
| [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) | [indices\_](classpcl_1_1_kd_tree#ae59a4b07f95b8193d951f940f7fb6e1d) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_kd_tree#ae59a4b07f95b8193d951f940f7fb6e1d) |
|
| float  | [epsilon\_](classpcl_1_1_kd_tree#aa393b60f0978c529b28e060a21c96222) |
|  | Epsilon precision (error bound) for nearest neighbors searches. [More...](classpcl_1_1_kd_tree#aa393b60f0978c529b28e060a21c96222) |
|
| int  | [min\_pts\_](classpcl_1_1_kd_tree#aaceb7706d5a8b57ab626277f826162d3) |
|  | Minimum allowed number of k nearest neighbors points that a viable result must contain. [More...](classpcl_1_1_kd_tree#aaceb7706d5a8b57ab626277f826162d3) |
|
| bool  | [sorted\_](classpcl_1_1_kd_tree#ac50d9f0a88e43cb9be347337865a5194) |
|  | Return the radius search neighbours sorted. [More...](classpcl_1_1_kd_tree#ac50d9f0a88e43cb9be347337865a5194) |
|
| [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) | [point\_representation\_](classpcl_1_1_kd_tree#a2cacacf162468a473dca65193e708002) |
|  | For converting different point structures into k-dimensional vectors for nearest-neighbor search. [More...](classpcl_1_1_kd_tree#a2cacacf162468a473dca65193e708002) |
|

 Detailed Description
--------------------

 
### template<typename PointT> class pcl::KdTree< PointT >

 [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations.") represents the base spatial locator class for kd-tree implementations. 

 
Author
Radu B Rusu, Bastian Steder, Michael Dixon 
 Definition at line [54](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00054) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[ConstPtr](classpcl_1_1_kd_tree#aef99a42f1a3929c3d1db95fc7c5409c7) = shared\_ptr<const [KdTree](classpcl_1_1_kd_tree)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > |

 
 Definition at line [69](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00069) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    IndicesConstPtr
---------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) = shared\_ptr<const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |

 
 Definition at line [58](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00058) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    IndicesPtr
----------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[IndicesPtr](classpcl_1_1_kd_tree#aaef81f53008028cf9488064b1e4916aa) = shared\_ptr<[Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |

 
 Definition at line [57](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00057) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    PointCloud
----------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> |

 
 Definition at line [60](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00060) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    PointCloudConstPtr
------------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [62](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00062) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    PointCloudPtr
-------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloudPtr](classpcl_1_1_kd_tree#a961cb6b5228848f822ac328c2eaa616f) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [61](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00061) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    PointRepresentation
-------------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointRepresentation](classpcl_1_1_kd_tree#aae424330be6444e99eb43a97f6314618) = [pcl::PointRepresentation](classpcl_1_1_point_representation)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> |

 
 Definition at line [64](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00064) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    PointRepresentationConstPtr
---------------------------

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) = typename [PointRepresentation::ConstPtr](classpcl_1_1_point_representation#a2654e2f5b889ca56fdd61a59fbb43327) |

 
 Definition at line [65](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00065) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    Ptr
---

    template<typename PointT >  

|  |
| --- |
| using [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[Ptr](classpcl_1_1_kd_tree#aeab3727a7da7b1cb80fe97d40c64242b) = shared\_ptr<[KdTree](classpcl_1_1_kd_tree)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)> > |

 
 Definition at line [68](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00068) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  KdTree()
--------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[KdTree](classpcl_1_1_kd_tree) | ( | bool  | *sorted* = `true` | ) |  |

 | inline |

 
 Empty constructor for [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations."). 

 Sets some internal values to their defaults. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | sorted | set to true if the application that the tree will be used for requires sorted nearest neighbor indices (default). False otherwise.  |

   Definition at line [74](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00074) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

    ~KdTree()
---------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::~[KdTree](classpcl_1_1_kd_tree) | ( |  | ) |  |

 | virtualdefault |

 
 Destructor for [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations."). 

 Deletes all allocated data arrays and destroys the kd-tree structures. 

   Member Function Documentation
-----------------------------

  getEpsilon()
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getEpsilon  | ( |  | ) |  const |

 | inline |

 
 Get the search epsilon precision (error bound) for nearest neighbors searches. 

 Definition at line [313](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00313) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::epsilon\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00342).

    getIndices()
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getIndices  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the vector of indices used. 

 Definition at line [93](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00093) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::indices\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00339).

 Referenced by [pcl::extractEuclideanClusters()](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00217).

    getInputCloud()
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getInputCloud  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the input point cloud dataset. 

 Definition at line [100](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00100) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::input\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00336).

 Referenced by [pcl::extractEuclideanClusters()](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00103).

    getMinPts()
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getMinPts  | ( |  | ) |  const |

 | inline |

 
 Get the minimum allowed number of k nearest neighbors points that a viable result must contain. 

 Definition at line [329](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00329) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::min\_pts\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00345).

    getName()
---------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual std::string [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getName  | ( |  | ) |  const |

 | protectedpure virtual |

 
 Class getName method. 

    getPointRepresentation()
------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::getPointRepresentation  | ( |  | ) |  const |

 | inline |

 
 Get a pointer to the point representation used when converting points into k-D vectors. 

 Definition at line [118](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00118) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::point\_representation\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00351).

    nearestKSearch() [1/3]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::nearestKSearch  | ( | const [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) &  | *cloud*,  |
|  |  | int  | *index*,  |
|  |  | unsigned int  | *k*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances* |
|  | ) |  |  const |

 | inlinevirtual |

 
 Search for k-nearest neighbors for the given query point. 

 
Attention
This method does not do any bounds checking for the input index (i.e., index >= cloud.size () || index < 0), and assumes valid (i.e., finite) data.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data  |
| [in] | index | a *valid* index in *cloud* representing a *valid* (i.e., finite) query point  |
| [in] | k | the number of neighbors to search for  |
| [out] | k\_indices | the resultant indices of the neighboring points (must be resized to *k* a priori!)  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points (must be resized to *k* a priori!) |

   
Returns
number of neighbors found
 
Exceptions
 

|  |  |
| --- | --- |
| asserts | in debug mode if the index is not between 0 and the maximum number of points  |

   Definition at line [155](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00155) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::nearestKSearch()](classpcl_1_1_kd_tree#aecd6ea2d4f9aafe4904147d83416312c), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    nearestKSearch() [2/3]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::nearestKSearch  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *p\_q*,  |
|  |  | unsigned int  | *k*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances* |
|  | ) |  |  const |

 | pure virtual |

 
 Search for k-nearest neighbors for the given query point. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | p\_q | the given query point  |
| [in] | k | the number of neighbors to search for  |
| [out] | k\_indices | the resultant indices of the neighboring points (must be resized to *k* a priori!)  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points (must be resized to *k* a priori!)  |

   
Returns
number of neighbors found 
 Implemented in [pcl::KdTreeFLANN< PointTarget >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097), [pcl::KdTreeFLANN< PointT, Dist >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097), [pcl::KdTreeFLANN< pcl::VFHSignature308 >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097), [pcl::KdTreeFLANN< pcl::PointXYZRGB >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097), [pcl::KdTreeFLANN< pcl::PointXYZLAB >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097), [pcl::KdTreeFLANN< pcl::InterestPoint >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097), and [pcl::KdTreeFLANN< FeatureT >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097).

 Referenced by [pcl::KdTree< PointT >::nearestKSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00155), and [pcl::KdTree< PointT >::nearestKSearchT()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00172).

    nearestKSearch() [3/3]
----------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::nearestKSearch  | ( | int  | *index*,  |
|  |  | unsigned int  | *k*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances* |
|  | ) |  |  const |

 | inlinevirtual |

 
 Search for k-nearest neighbors for the given query point (zero-copy). 

 
Attention
This method does not do any bounds checking for the input index (i.e., index >= cloud.size () || index < 0), and assumes valid (i.e., finite) data.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | a *valid* index representing a *valid* query point in the dataset given by *setInputCloud*. If indices were given in setInputCloud, index will be the position in the indices vector. |
| [in] | k | the number of neighbors to search for  |
| [out] | k\_indices | the resultant indices of the neighboring points (must be resized to *k* a priori!)  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points (must be resized to *k* a priori!)  |

   
Returns
number of neighbors found
 
Exceptions
 

|  |  |
| --- | --- |
| asserts | in debug mode if the index is not between 0 and the maximum number of points  |

   Definition at line [198](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00198) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::indices\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00339), [pcl::KdTree< PointT >::input\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00336), and [pcl::KdTree< PointT >::nearestKSearch()](classpcl_1_1_kd_tree#aecd6ea2d4f9aafe4904147d83416312c).

    nearestKSearchT()
-----------------

    template<typename PointT >   template<typename PointTDiff >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::nearestKSearchT  | ( | const PointTDiff &  | *point*,  |
|  |  | unsigned int  | *k*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances* |
|  | ) |  |  const |

 | inline |

 
 Search for k-nearest neighbors for the given query point. 

 This method accepts a different template parameter for the point type. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | the given query point  |
| [in] | k | the number of neighbors to search for  |
| [out] | k\_indices | the resultant indices of the neighboring points (must be resized to *k* a priori!)  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points (must be resized to *k* a priori!)  |

   
Returns
number of neighbors found 
 Definition at line [172](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00172) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::copyPoint()](https://pointclouds.org/documentation/copy__point_8hpp_source.html#l00137), and [pcl::KdTree< PointT >::nearestKSearch()](classpcl_1_1_kd_tree#aecd6ea2d4f9aafe4904147d83416312c).

 Referenced by [pcl::getApproximateIndices()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html#l00047).

    radiusSearch() [1/3]
--------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::radiusSearch  | ( | const [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) &  | *cloud*,  |
|  |  | int  | *index*,  |
|  |  | double  | *radius*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances*,  |
|  |  | unsigned int  | *max\_nn* = `0` |
|  | ) |  |  const |

 | inlinevirtual |

 
 Search for all the nearest neighbors of the query point in a given radius. 

 
Attention
This method does not do any bounds checking for the input index (i.e., index >= cloud.size () || index < 0), and assumes valid (i.e., finite) data.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the point cloud data  |
| [in] | index | a *valid* index in *cloud* representing a *valid* (i.e., finite) query point  |
| [in] | radius | the radius of the sphere bounding all of p\_q's neighbors  |
| [out] | k\_indices | the resultant indices of the neighboring points  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points  |
| [in] | max\_nn | if given, bounds the maximum returned neighbors to this value. If *max\_nn* is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in *radius* will be returned.  |

   
Returns
number of neighbors found in radius
 
Exceptions
 

|  |  |
| --- | --- |
| asserts | in debug mode if the index is not between 0 and the maximum number of points  |

   Definition at line [243](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00243) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::radiusSearch()](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    radiusSearch() [2/3]
--------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::radiusSearch  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *p\_q*,  |
|  |  | double  | *radius*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances*,  |
|  |  | unsigned int  | *max\_nn* = `0` |
|  | ) |  |  const |

 | pure virtual |

 
 Search for all the nearest neighbors of the query point in a given radius. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | p\_q | the given query point  |
| [in] | radius | the radius of the sphere bounding all of p\_q's neighbors  |
| [out] | k\_indices | the resultant indices of the neighboring points  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points  |
| [in] | max\_nn | if given, bounds the maximum returned neighbors to this value. If *max\_nn* is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in *radius* will be returned.  |

   
Returns
number of neighbors found in radius 
 Implemented in [pcl::KdTreeFLANN< PointTarget >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e), [pcl::KdTreeFLANN< PointT, Dist >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e), [pcl::KdTreeFLANN< pcl::VFHSignature308 >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e), [pcl::KdTreeFLANN< pcl::PointXYZRGB >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e), [pcl::KdTreeFLANN< pcl::PointXYZLAB >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e), [pcl::KdTreeFLANN< pcl::InterestPoint >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e), and [pcl::KdTreeFLANN< FeatureT >](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e).

 Referenced by [pcl::extractEuclideanClusters()](https://pointclouds.org/documentation/extract__clusters_8h_source.html#l00103), [pcl::KdTree< PointT >::radiusSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00243), and [pcl::KdTree< PointT >::radiusSearchT()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00262).

    radiusSearch() [3/3]
--------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::radiusSearch  | ( | int  | *index*,  |
|  |  | double  | *radius*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances*,  |
|  |  | unsigned int  | *max\_nn* = `0` |
|  | ) |  |  const |

 | inlinevirtual |

 
 Search for all the nearest neighbors of the query point in a given radius (zero-copy). 

 
Attention
This method does not do any bounds checking for the input index (i.e., index >= cloud.size () || index < 0), and assumes valid (i.e., finite) data.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | index | a *valid* index representing a *valid* query point in the dataset given by *setInputCloud*. If indices were given in setInputCloud, index will be the position in the indices vector. |
| [in] | radius | the radius of the sphere bounding all of p\_q's neighbors  |
| [out] | k\_indices | the resultant indices of the neighboring points  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points  |
| [in] | max\_nn | if given, bounds the maximum returned neighbors to this value. If *max\_nn* is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in *radius* will be returned.  |

   
Returns
number of neighbors found in radius
 
Exceptions
 

|  |  |
| --- | --- |
| asserts | in debug mode if the index is not between 0 and the maximum number of points  |

   Definition at line [290](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00290) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::indices\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00339), [pcl::KdTree< PointT >::input\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00336), and [pcl::KdTree< PointT >::radiusSearch()](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c).

    radiusSearchT()
---------------

    template<typename PointT >   template<typename PointTDiff >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::radiusSearchT  | ( | const PointTDiff &  | *point*,  |
|  |  | double  | *radius*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances*,  |
|  |  | unsigned int  | *max\_nn* = `0` |
|  | ) |  |  const |

 | inline |

 
 Search for all the nearest neighbors of the query point in a given radius. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | the given query point  |
| [in] | radius | the radius of the sphere bounding all of p\_q's neighbors  |
| [out] | k\_indices | the resultant indices of the neighboring points  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points  |
| [in] | max\_nn | if given, bounds the maximum returned neighbors to this value. If *max\_nn* is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in *radius* will be returned.  |

   
Returns
number of neighbors found in radius 
 Definition at line [262](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00262) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::copyPoint()](https://pointclouds.org/documentation/copy__point_8hpp_source.html#l00137), and [pcl::KdTree< PointT >::radiusSearch()](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c).

    setEpsilon()
------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual void [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::setEpsilon  | ( | float  | *eps* | ) |  |

 | inlinevirtual |

 
 Set the search epsilon precision (error bound) for nearest neighbors searches. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | eps | precision (error bound) for nearest neighbors searches  |

   Reimplemented in [pcl::KdTreeFLANN< PointT, Dist >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9), [pcl::KdTreeFLANN< pcl::PointXYZRGB >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9), [pcl::KdTreeFLANN< pcl::VFHSignature308 >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9), [pcl::KdTreeFLANN< PointTarget >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9), [pcl::KdTreeFLANN< pcl::PointXYZLAB >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9), [pcl::KdTreeFLANN< pcl::InterestPoint >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9), and [pcl::KdTreeFLANN< FeatureT >](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9).

 Definition at line [306](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00306) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::epsilon\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00342).

    setInputCloud()
---------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual void [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::setInputCloud  | ( | const [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) &  | *cloud*,  |
|  |  | const [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) &  | *indices* = `[IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) ()` |
|  | ) |  |  |

 | inlinevirtual |

 
 Provide a pointer to the input dataset. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |
| [in] | indices | the point indices subset that is to be used from *cloud* - if NULL the whole cloud is used  |

   Reimplemented in [pcl::KdTreeFLANN< PointT, Dist >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8), [pcl::KdTreeFLANN< pcl::PointXYZRGB >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8), [pcl::KdTreeFLANN< pcl::VFHSignature308 >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8), [pcl::KdTreeFLANN< PointTarget >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8), [pcl::KdTreeFLANN< pcl::PointXYZLAB >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8), [pcl::KdTreeFLANN< pcl::InterestPoint >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8), and [pcl::KdTreeFLANN< FeatureT >](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8).

 Definition at line [85](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00085) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::indices\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00339), and [pcl::KdTree< PointT >::input\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00336).

 Referenced by [pcl::KdTree< PointT >::setPointRepresentation()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00109).

    setMinPts()
-----------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::setMinPts  | ( | int  | *min\_pts* | ) |  |

 | inline |

 
 Minimum allowed number of k nearest neighbors points that a viable result must contain. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min\_pts | the minimum number of neighbors in a viable neighborhood  |

   Definition at line [322](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00322) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::min\_pts\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00345).

    setPointRepresentation()
------------------------

    template<typename PointT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::setPointRepresentation  | ( | const [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) &  | *point\_representation* | ) |  |

 | inline |

 
 Provide a pointer to the point representation to use to convert points into k-D vectors. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point\_representation | the const boost shared pointer to a [PointRepresentation](classpcl_1_1_point_representation "PointRepresentation provides a set of methods for converting a point structs/object into an n-dimensi...") |

   Definition at line [109](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00109) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 References [pcl::KdTree< PointT >::indices\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00339), [pcl::KdTree< PointT >::input\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00336), [pcl::KdTree< PointT >::point\_representation\_](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00351), and [pcl::KdTree< PointT >::setInputCloud()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00085).

   Member Data Documentation
-------------------------

  epsilon\_
---------

    template<typename PointT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::epsilon\_ |

 | protected |

 
 Epsilon precision (error bound) for nearest neighbors searches. 

 Definition at line [342](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00342) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 Referenced by [pcl::KdTree< PointT >::getEpsilon()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00313), and [pcl::KdTree< PointT >::setEpsilon()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00306).

    indices\_
---------

    template<typename PointT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::indices\_ |

 | protected |

 
 A pointer to the vector of point indices to use. 

 Definition at line [339](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00339) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 Referenced by [pcl::KdTree< PointT >::getIndices()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00093), [pcl::KdTree< PointT >::nearestKSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00198), [pcl::KdTree< PointT >::radiusSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00290), [pcl::KdTree< PointT >::setInputCloud()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00085), and [pcl::KdTree< PointT >::setPointRepresentation()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00109).

    input\_
-------

    template<typename PointT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::input\_ |

 | protected |

 
 The input point cloud dataset containing the points we need to use. 

 Definition at line [336](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00336) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 Referenced by [pcl::KdTree< PointT >::getInputCloud()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00100), [pcl::KdTree< PointT >::nearestKSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00198), [pcl::KdTree< PointT >::radiusSearch()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00290), [pcl::KdTree< PointT >::setInputCloud()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00085), and [pcl::KdTree< PointT >::setPointRepresentation()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00109).

    min\_pts\_
----------

    template<typename PointT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::min\_pts\_ |

 | protected |

 
 Minimum allowed number of k nearest neighbors points that a viable result must contain. 

 Definition at line [345](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00345) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 Referenced by [pcl::KdTree< PointT >::getMinPts()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00329), and [pcl::KdTree< PointT >::setMinPts()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00322).

    point\_representation\_
-----------------------

    template<typename PointT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::point\_representation\_ |

 | protected |

 
 For converting different point structures into k-dimensional vectors for nearest-neighbor search. 

 Definition at line [351](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00351) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

 Referenced by [pcl::KdTree< PointT >::getPointRepresentation()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00118), and [pcl::KdTree< PointT >::setPointRepresentation()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00109).

    sorted\_
--------

    template<typename PointT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::sorted\_ |

 | protected |

 
 Return the radius search neighbours sorted. 

 Definition at line [348](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html#l00348) of file [kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/kdtree/[kdtree.h](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2kdtree_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_kd_tree.html>

[KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures.") is a generic type of 3D spatial locator using kD-tree structures. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#details)

 `#include <[pcl/kdtree/kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloud](classpcl_1_1_kd_tree_f_l_a_n_n#a7f91ec6092534715824bce6ddab8dd31) = typename [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_kd_tree_f_l_a_n_n#abef62cd3e56f14aa00a8a9c9d37a7e40) = typename [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) >::[PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) |
|
| using  | [IndicesPtr](classpcl_1_1_kd_tree_f_l_a_n_n#ac8c1fd01497063417f9d000f25a74373) = shared\_ptr< [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |
|
| using  | [IndicesConstPtr](classpcl_1_1_kd_tree_f_l_a_n_n#a76f4d733bd982226585d5c0842de6621) = shared\_ptr< const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |
|
| using  | [FLANNIndex](classpcl_1_1_kd_tree_f_l_a_n_n#a3a05423fb338659e7719288f15807bae) = ::[flann::Index](classflann_1_1_index)< Dist > |
|
| using  | [Ptr](classpcl_1_1_kd_tree_f_l_a_n_n#a83e0d70a543b88fe1daeb36e40320540) = shared\_ptr< [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > > |
|
| using  | [ConstPtr](classpcl_1_1_kd_tree_f_l_a_n_n#a5872238a71a67793cb8c38e12ca0b0b6) = shared\_ptr< const [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > > |
|
| - Public Types inherited from [pcl::KdTree< PointT >](classpcl_1_1_kd_tree) |
| using  | [IndicesPtr](classpcl_1_1_kd_tree#aaef81f53008028cf9488064b1e4916aa) = shared\_ptr< [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |
|
| using  | [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) = shared\_ptr< const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) > |
|
| using  | [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > |
|
| using  | [PointCloudPtr](classpcl_1_1_kd_tree#a961cb6b5228848f822ac328c2eaa616f) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointRepresentation](classpcl_1_1_kd_tree#aae424330be6444e99eb43a97f6314618) = [pcl::PointRepresentation](classpcl_1_1_point_representation)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > |
|
| using  | [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) = typename [PointRepresentation::ConstPtr](classpcl_1_1_point_representation#a2654e2f5b889ca56fdd61a59fbb43327) |
|
| using  | [Ptr](classpcl_1_1_kd_tree#aeab3727a7da7b1cb80fe97d40c64242b) = shared\_ptr< [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|
| using  | [ConstPtr](classpcl_1_1_kd_tree#aef99a42f1a3929c3d1db95fc7c5409c7) = shared\_ptr< const [KdTree](classpcl_1_1_kd_tree)< [PointT](structpcl_1_1_point_x_y_z_r_g_b) > > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n#adebe4b1eed5e5e1bc0d1dd085be9a8b7) (bool sorted=true) |
|  | Default Constructor for [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures."). [More...](classpcl_1_1_kd_tree_f_l_a_n_n#adebe4b1eed5e5e1bc0d1dd085be9a8b7) |
|
|  | [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n#aff2d210b62c3535991252ec11962bf36) (const [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > &k) |
|  | Copy constructor. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#aff2d210b62c3535991252ec11962bf36) |
|
| [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > &  | [operator=](classpcl_1_1_kd_tree_f_l_a_n_n#a1efb7d444c24ea5959c6898afd7dbf9b) (const [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > &k) |
|  | Copy operator. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#a1efb7d444c24ea5959c6898afd7dbf9b) |
|
| void  | [setEpsilon](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9) (float eps) override |
|  | Set the search epsilon precision (error bound) for nearest neighbors searches. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#a2214a9a963d8a3df2c1cdcd097cfd1d9) |
|
| void  | [setSortedResults](classpcl_1_1_kd_tree_f_l_a_n_n#ad1af06f3e1a1fb40a2b3858c3edc9038) (bool sorted) |
|
| [Ptr](classpcl_1_1_kd_tree#aeab3727a7da7b1cb80fe97d40c64242b) | [makeShared](classpcl_1_1_kd_tree_f_l_a_n_n#a3b2346732b715083bd2559d701d87d6d) () |
|
|  | [~KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n#a41e2b936120450dfd56d4c38ee0343c1) () override |
|  | Destructor for [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures."). [More...](classpcl_1_1_kd_tree_f_l_a_n_n#a41e2b936120450dfd56d4c38ee0343c1) |
|
| void  | [setInputCloud](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8) (const [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) &cloud, const [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) &indices=[IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3)()) override |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#ae63180631ac6fe1ad6b3349ef942bbe8) |
|
| int  | [nearestKSearch](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const override |
|  | Search for k-nearest neighbors for the given query point. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#a9b1d76456cb533962d62b9b6de3e8097) |
|
| int  | [radiusSearch](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e) (const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &point, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const override |
|  | Search for all the nearest neighbors of the query point in a given radius. [More...](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e) |
|
| - Public Member Functions inherited from [pcl::KdTree< PointT >](classpcl_1_1_kd_tree) |
|  | [KdTree](classpcl_1_1_kd_tree#a49e8890a0cd0e35d0d5290b6e2be7900) (bool sorted=true) |
|  | Empty constructor for [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations."). [More...](classpcl_1_1_kd_tree#a49e8890a0cd0e35d0d5290b6e2be7900) |
|
| [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) | [getIndices](classpcl_1_1_kd_tree#a5ea7020b3505f736ba78fb38be00d16a) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_kd_tree#a5ea7020b3505f736ba78fb38be00d16a) |
|
| [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) | [getInputCloud](classpcl_1_1_kd_tree#a4839876a6d01bddc7984a3193e23d463) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_kd_tree#a4839876a6d01bddc7984a3193e23d463) |
|
| void  | [setPointRepresentation](classpcl_1_1_kd_tree#ab2c8cd07baaebb4e1504f223405419cc) (const [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) &point\_representation) |
|  | Provide a pointer to the point representation to use to convert points into k-D vectors. [More...](classpcl_1_1_kd_tree#ab2c8cd07baaebb4e1504f223405419cc) |
|
| [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) | [getPointRepresentation](classpcl_1_1_kd_tree#afa158ec6aedf91fc898fadffdee449c6) () const |
|  | Get a pointer to the point representation used when converting points into k-D vectors. [More...](classpcl_1_1_kd_tree#afa158ec6aedf91fc898fadffdee449c6) |
|
| virtual  | [~KdTree](classpcl_1_1_kd_tree#a9201a9f4489198e05878d4032b39f1ce) ()=default |
|  | Destructor for [KdTree](classpcl_1_1_kd_tree "KdTree represents the base spatial locator class for kd-tree implementations."). [More...](classpcl_1_1_kd_tree#a9201a9f4489198e05878d4032b39f1ce) |
|
| virtual int  | [nearestKSearch](classpcl_1_1_kd_tree#aca0be52dc5f37509ae6690b1aeb2b0ae) (const [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) &cloud, int index, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const |
|  | Search for k-nearest neighbors for the given query point. [More...](classpcl_1_1_kd_tree#aca0be52dc5f37509ae6690b1aeb2b0ae) |
|
| template<typename PointTDiff >  |
| int  | [nearestKSearchT](classpcl_1_1_kd_tree#ab2b23eb59a16bdaf5bd6edd56960a343) (const PointTDiff &point, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const |
|  | Search for k-nearest neighbors for the given query point. [More...](classpcl_1_1_kd_tree#ab2b23eb59a16bdaf5bd6edd56960a343) |
|
| virtual int  | [nearestKSearch](classpcl_1_1_kd_tree#a05af2f18030e47ada72265daf4ee822d) (int index, unsigned int k, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances) const |
|  | Search for k-nearest neighbors for the given query point (zero-copy). [More...](classpcl_1_1_kd_tree#a05af2f18030e47ada72265daf4ee822d) |
|
| virtual int  | [radiusSearch](classpcl_1_1_kd_tree#a98cba8a833015d7a9e4466b33946d4c9) (const [PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) &cloud, int index, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const |
|  | Search for all the nearest neighbors of the query point in a given radius. [More...](classpcl_1_1_kd_tree#a98cba8a833015d7a9e4466b33946d4c9) |
|
| template<typename PointTDiff >  |
| int  | [radiusSearchT](classpcl_1_1_kd_tree#aeb0e49027c7e673c3ab155230053a0cf) (const PointTDiff &point, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const |
|  | Search for all the nearest neighbors of the query point in a given radius. [More...](classpcl_1_1_kd_tree#aeb0e49027c7e673c3ab155230053a0cf) |
|
| virtual int  | [radiusSearch](classpcl_1_1_kd_tree#a5537b5d24cd87b827a8a2806b825a57a) (int index, double radius, [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &k\_indices, std::vector< float > &k\_sqr\_distances, unsigned int max\_nn=0) const |
|  | Search for all the nearest neighbors of the query point in a given radius (zero-copy). [More...](classpcl_1_1_kd_tree#a5537b5d24cd87b827a8a2806b825a57a) |
|
| float  | [getEpsilon](classpcl_1_1_kd_tree#a9f29d3de4ab5a0213806077e7c280f1b) () const |
|  | Get the search epsilon precision (error bound) for nearest neighbors searches. [More...](classpcl_1_1_kd_tree#a9f29d3de4ab5a0213806077e7c280f1b) |
|
| void  | [setMinPts](classpcl_1_1_kd_tree#abd7f2b98e375c48d9fe113b95b3edc20) (int min\_pts) |
|  | Minimum allowed number of k nearest neighbors points that a viable result must contain. [More...](classpcl_1_1_kd_tree#abd7f2b98e375c48d9fe113b95b3edc20) |
|
| int  | [getMinPts](classpcl_1_1_kd_tree#ac62ad92ed0a7a494cdb8ba52d2c0dc08) () const |
|  | Get the minimum allowed number of k nearest neighbors points that a viable result must contain. [More...](classpcl_1_1_kd_tree#ac62ad92ed0a7a494cdb8ba52d2c0dc08) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::KdTree< PointT >](classpcl_1_1_kd_tree) |
| [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) | [input\_](classpcl_1_1_kd_tree#a9b71072db4f7662c7c565d4c49145db2) |
|  | The input point cloud dataset containing the points we need to use. [More...](classpcl_1_1_kd_tree#a9b71072db4f7662c7c565d4c49145db2) |
|
| [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) | [indices\_](classpcl_1_1_kd_tree#ae59a4b07f95b8193d951f940f7fb6e1d) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_kd_tree#ae59a4b07f95b8193d951f940f7fb6e1d) |
|
| float  | [epsilon\_](classpcl_1_1_kd_tree#aa393b60f0978c529b28e060a21c96222) |
|  | Epsilon precision (error bound) for nearest neighbors searches. [More...](classpcl_1_1_kd_tree#aa393b60f0978c529b28e060a21c96222) |
|
| int  | [min\_pts\_](classpcl_1_1_kd_tree#aaceb7706d5a8b57ab626277f826162d3) |
|  | Minimum allowed number of k nearest neighbors points that a viable result must contain. [More...](classpcl_1_1_kd_tree#aaceb7706d5a8b57ab626277f826162d3) |
|
| bool  | [sorted\_](classpcl_1_1_kd_tree#ac50d9f0a88e43cb9be347337865a5194) |
|  | Return the radius search neighbours sorted. [More...](classpcl_1_1_kd_tree#ac50d9f0a88e43cb9be347337865a5194) |
|
| [PointRepresentationConstPtr](classpcl_1_1_kd_tree#a52ad4ffb60d4db6e6ab45a3308a7539d) | [point\_representation\_](classpcl_1_1_kd_tree#a2cacacf162468a473dca65193e708002) |
|  | For converting different point structures into k-dimensional vectors for nearest-neighbor search. [More...](classpcl_1_1_kd_tree#a2cacacf162468a473dca65193e708002) |
|

 Detailed Description
--------------------

 
### template<typename PointT, typename Dist = ::flann::L2\_Simple<float>> class pcl::KdTreeFLANN< PointT, Dist >

 [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures.") is a generic type of 3D spatial locator using kD-tree structures. 

 The class is making use of the FLANN (Fast Library for Approximate Nearest Neighbor) project by Marius Muja and David Lowe.

 
Author
Radu B. Rusu, Marius Muja 
 Definition at line [132](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00132) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[ConstPtr](classpcl_1_1_kd_tree#aef99a42f1a3929c3d1db95fc7c5409c7) = shared\_ptr<const [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)<[PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist> > |

 
 Definition at line [152](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00152) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    FLANNIndex
----------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[FLANNIndex](classpcl_1_1_kd_tree_f_l_a_n_n#a3a05423fb338659e7719288f15807bae) = ::[flann::Index](classflann_1_1_index)<Dist> |

 
 Definition at line [148](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00148) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    IndicesConstPtr
---------------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) = shared\_ptr<const [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6)> |

 
 Definition at line [146](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00146) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    IndicesPtr
----------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[IndicesPtr](classpcl_1_1_kd_tree#aaef81f53008028cf9488064b1e4916aa) = shared\_ptr<[Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6)> |

 
 Definition at line [145](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00145) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    PointCloud
----------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) = typename [KdTree](classpcl_1_1_kd_tree)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)>::[PointCloud](classpcl_1_1_kd_tree#afc34812fe33e1767dd856ae7d9dcda77) |

 
 Definition at line [142](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00142) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    PointCloudConstPtr
------------------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) = typename [KdTree](classpcl_1_1_kd_tree)<[PointT](structpcl_1_1_point_x_y_z_r_g_b)>::[PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) |

 
 Definition at line [143](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00143) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    Ptr
---

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |
| --- |
| using [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[Ptr](classpcl_1_1_kd_tree#aeab3727a7da7b1cb80fe97d40c64242b) = shared\_ptr<[KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)<[PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist> > |

 
 Definition at line [151](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00151) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  KdTreeFLANN() [1/2]
-------------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n) | ( | bool  | *sorted* = `true` | ) |  |

 
 Default Constructor for [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures."). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | sorted | set to true if the application that the tree will be used for requires sorted nearest neighbor indices (default). False otherwise. |

   By setting sorted to false, the [radiusSearch](classpcl_1_1_kd_tree_f_l_a_n_n#a9b2485acd008ac09559a95820592782e) operations will be faster. 

 Definition at line [49](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00049) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

    KdTreeFLANN() [2/2]
-------------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::[KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n) | ( | const [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > &  | *k* | ) |  |

 
 Copy constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | k | the tree to copy into this  |

   Definition at line [71](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00071) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

    ~KdTreeFLANN()
--------------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::~[KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n) | ( |  | ) |  |

 | inlineoverride |

 
 Destructor for [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n "KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures."). 

 Deletes all allocated data arrays and destroys the kd-tree structures. 

 Definition at line [203](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00203) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

   Member Function Documentation
-----------------------------

  makeShared()
------------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Ptr](classpcl_1_1_kd_tree#aeab3727a7da7b1cb80fe97d40c64242b) [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::makeShared  | ( |  | ) |  |

 | inline |

 
 Definition at line [195](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00195) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    nearestKSearch()
----------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::nearestKSearch  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | unsigned int  | *k*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances* |
|  | ) |  |  const |

 | overridevirtual |

 
 Search for k-nearest neighbors for the given query point. 

 
Attention
This method does not do any bounds checking for the input index (i.e., index >= cloud.size () || index < 0), and assumes valid (i.e., finite) data.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | a given *valid* (i.e., finite) query point  |
| [in] | k | the number of neighbors to search for  |
| [out] | k\_indices | the resultant indices of the neighboring points (must be resized to *k* a priori!) |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points (must be resized to *k* a priori!)  |

   
Returns
number of neighbors found
 
Exceptions
 

|  |  |
| --- | --- |
| asserts | in debug mode if the index is not between 0 and the maximum number of points  |

   Implements [pcl::KdTree< PointT >](classpcl_1_1_kd_tree#aecd6ea2d4f9aafe4904147d83416312c).

 Definition at line [237](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00237) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

 Referenced by [pcl::gpu::DataSource::findKNNeghbors()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00125), [pcl::StatisticalMultiscaleInterestRegionExtraction< PointT >::generateCloudGraph()](https://pointclouds.org/documentation/statistical__multiscale__interest__region__extraction_8hpp_source.html#l00053), [pcl::getApproximateIndices()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html#l00067), and [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119).

    operator=()
-----------

    template<typename PointT , typename Dist = ::flann::L2\_Simple<float>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)<[PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist>& [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::operator=  | ( | const [KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist > &  | *k* | ) |  |

 | inline |

 
 Copy operator. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | k | the tree to copy into this  |

   Definition at line [171](https://pointclouds.org/documentation/kdtree__flann_8h_source.html#l00171) of file [kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html).

    radiusSearch()
--------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::radiusSearch  | ( | const [PointT](structpcl_1_1_point_x_y_z_r_g_b) &  | *point*,  |
|  |  | double  | *radius*,  |
|  |  | [Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *k\_indices*,  |
|  |  | std::vector< float > &  | *k\_sqr\_distances*,  |
|  |  | unsigned int  | *max\_nn* = `0` |
|  | ) |  |  const |

 | overridevirtual |

 
 Search for all the nearest neighbors of the query point in a given radius. 

 
Attention
This method does not do any bounds checking for the input index (i.e., index >= cloud.size () || index < 0), and assumes valid (i.e., finite) data.
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | point | a given *valid* (i.e., finite) query point  |
| [in] | radius | the radius of the sphere bounding all of p\_q's neighbors  |
| [out] | k\_indices | the resultant indices of the neighboring points  |
| [out] | k\_sqr\_distances | the resultant squared distances to the neighboring points |
| [in] | max\_nn | if given, bounds the maximum returned neighbors to this value. If *max\_nn* is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in *radius* will be returned.  |

   
Returns
number of neighbors found in radius
 
Exceptions
 

|  |  |
| --- | --- |
| asserts | in debug mode if the index is not between 0 and the maximum number of points  |

   Implements [pcl::KdTree< PointT >](classpcl_1_1_kd_tree#ae1210c2a4a33886d25248a6d7950bf4c).

 Definition at line [375](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00375) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

 References [pcl::radius\_search()](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00362).

 Referenced by [pcl::gpu::DataSource::findRadiusNeghbors()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00142), and [pcl::TextureMapping< PointInT >::textureMeshwithMultipleCameras()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00702).

    setEpsilon()
------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::setEpsilon  | ( | float  | *eps* | ) |  |

 | overridevirtual |

 
 Set the search epsilon precision (error bound) for nearest neighbors searches. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | eps | precision (error bound) for nearest neighbors searches  |

   Reimplemented from [pcl::KdTree< PointT >](classpcl_1_1_kd_tree#aa150954080bc14f46772871739c3bfff).

 Definition at line [84](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00084) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

    setInputCloud()
---------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::setInputCloud  | ( | const [PointCloudConstPtr](classpcl_1_1_kd_tree#a899c6b5d462f4126259ac445a57f92ca) &  | *cloud*,  |
|  |  | const [IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3) &  | *indices* = `[IndicesConstPtr](classpcl_1_1_kd_tree#a2355c3a32fca23615a9c1e382271ccc3)()` |
|  | ) |  |  |

 | overridevirtual |

 
 Provide a pointer to the input dataset. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |
| [in] | indices | the point indices subset that is to be used from *cloud* - if NULL the whole cloud is used  |

   Reimplemented from [pcl::KdTree< PointT >](classpcl_1_1_kd_tree#ac105d90b2b10383adb58e62abe7b1161).

 Definition at line [102](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00102) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

 Referenced by [pcl::gpu::DataSource::findKNNeghbors()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00125), [pcl::gpu::DataSource::findRadiusNeghbors()](https://pointclouds.org/documentation/data__source_8hpp_source.html#l00142), [pcl::StatisticalMultiscaleInterestRegionExtraction< PointT >::generateCloudGraph()](https://pointclouds.org/documentation/statistical__multiscale__interest__region__extraction_8hpp_source.html#l00053), [pcl::getApproximateIndices()](https://pointclouds.org/documentation/kdtree_2include_2pcl_2kdtree_2impl_2io_8hpp_source.html#l00047), [pcl::ConcaveHull< PointInT >::performReconstruction()](https://pointclouds.org/documentation/concave__hull_8hpp_source.html#l00119), and [pcl::TextureMapping< PointInT >::textureMeshwithMultipleCameras()](https://pointclouds.org/documentation/texture__mapping_8hpp_source.html#l00702).

    setSortedResults()
------------------

    template<typename PointT , typename Dist >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::KdTreeFLANN](classpcl_1_1_kd_tree_f_l_a_n_n)< [PointT](structpcl_1_1_point_x_y_z_r_g_b), Dist >::setSortedResults  | ( | bool  | *sorted* | ) |  |

 
 Definition at line [93](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html#l00093) of file [kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/kdtree/[kdtree\_flann.h](https://pointclouds.org/documentation/kdtree__flann_8h_source.html)
* pcl/kdtree/impl/[kdtree\_flann.hpp](https://pointclouds.org/documentation/kdtree__flann_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_kd_tree_f_l_a_n_n.html>

Abstract detector class for AGAST corner point detectors. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
 

|  |
| --- |
| 
 Classes |
| struct  | [CompareScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_compare_score_index) |
|  | Score index comparator. [More...](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_compare_score_index#details) |
|
| struct  | [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) |
|  | Structure holding an index and the associated keypoint score. [More...](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index#details) |
|




|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) = shared\_ptr< [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a58f93542a0f46feed2ce791549ac0790) = shared\_ptr< const [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) |
|
| virtual  | [~AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) ()=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) (const std::vector< unsigned char > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) (const std::vector< float > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) (const std::vector< unsigned char > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) (const std::vector< float > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) |
|
| virtual int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ab793848fb125b65c4b8e68eb4341f6f8) (const unsigned char \*im) const =0 |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ab793848fb125b65c4b8e68eb4341f6f8) |
|
| virtual int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#adfd3667d1a4e0311a0908aeea42b2cd9) (const float \*im) const =0 |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#adfd3667d1a4e0311a0908aeea42b2cd9) |
|
| void  | [setThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) |
|
| double  | [getThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) |
|
| void  | [setMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) |
|
| virtual void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9e086276b2b357b40009e698cf4a39c4) (const unsigned char \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const =0 |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9e086276b2b357b40009e698cf4a39c4) |
|
| virtual void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a0ee56e1bd42cb8599d0f8de368e509b2) (const float \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &) const =0 |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a0ee56e1bd42cb8599d0f8de368e509b2) |
|




|  |
| --- |
| 
 Protected Member Functions |
| virtual void  | [initPattern](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a80b6333d58f4f0218dd1fa80083d845f) ()=0 |
|  | Initializes the sample pattern. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a80b6333d58f4f0218dd1fa80083d845f) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, const std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Non-max-suppression helper method. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) (const unsigned char \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) (const float \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::size\_t  | [width\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|  | Width of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|
| std::size\_t  | [height\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|  | Height of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|
| double  | [threshold\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|  | Threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|
| double  | [bmax\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|  | Max image value. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|

 Detailed Description
--------------------

 
Abstract detector class for AGAST corner point detectors. 

 Adapted from the C++ implementation of Elmar Mair (<http://www6.in.tum.de/Main/ResearchAgast>).

 
Author
Stefan Holzer 
 Definition at line [64](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00064) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

   

|  |
| --- |
| using [pcl::keypoints::agast::AbstractAgastDetector::ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a58f93542a0f46feed2ce791549ac0790) = shared\_ptr<const [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector)> |

 
 Definition at line [68](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00068) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::keypoints::agast::AbstractAgastDetector::Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) = shared\_ptr<[AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector)> |

 
 Definition at line [67](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00067) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  AbstractAgastDetector()
-----------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::keypoints::agast::AbstractAgastDetector::AbstractAgastDetector  | ( | const std::size\_t  | *width*,  |
|  |  | const std::size\_t  | *height*,  |
|  |  | const double  | *threshold*,  |
|  |  | const double  | *bmax* |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | width | the width of the image to process  |
| [in] | height | the height of the image to process  |
| [in] | threshold | the corner detection threshold  |
| [in] | bmax | the max image value (default: 255)  |

   Definition at line [76](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00076) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    ~AbstractAgastDetector()
------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual pcl::keypoints::agast::AbstractAgastDetector::~AbstractAgastDetector  | ( |  | ) |  |

 | virtualdefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  applyNonMaxSuppression() [1/3]
------------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression  | ( | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *input*,  |
|  |  | const std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &  | *scores*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *output* |
|  | ) |  |  |

 | protected |

 
 Non-max-suppression helper method. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | input | the keypoint positions  |
| [in] | scores | the keypoint scores computed on the image data  |
| [out] | output | the resultant keypoints after non-max-suppression  |

      applyNonMaxSuppression() [2/3]
------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression  | ( | const std::vector< float > &  | *intensity\_data*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *input*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *output* |
|  | ) |  |  |

 
 Applies non-max-suppression. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | intensity\_data | the image data  |
| [in] | input | the keypoint positions  |
| [out] | output | the resultant keypoints after non-max-suppression  |

      applyNonMaxSuppression() [3/3]
------------------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression  | ( | const std::vector< unsigned char > &  | *intensity\_data*,  |
|  |  | const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *input*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *output* |
|  | ) |  |  |

 
 Applies non-max-suppression. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | intensity\_data | the image data  |
| [in] | input | the keypoint positions  |
| [out] | output | the resultant keypoints after non-max-suppression  |

      computeCornerScore() [1/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual int pcl::keypoints::agast::AbstractAgastDetector::computeCornerScore  | ( | const float \*  | *im* | ) |  const |

 | pure virtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the pixels to compute the score at  |

   Implemented in [pcl::keypoints::agast::OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a0050e327489da2cc589cc7f74be6cd39), [pcl::keypoints::agast::AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a7613f5011e493b10bbc997a59c032ed6), and [pcl::keypoints::agast::AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#afa18a5a3dd9c46b0ae170b9aba0f1c50).

    computeCornerScore() [2/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual int pcl::keypoints::agast::AbstractAgastDetector::computeCornerScore  | ( | const unsigned char \*  | *im* | ) |  const |

 | pure virtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the pixels to compute the score at  |

   Implemented in [pcl::keypoints::agast::OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a8337379bdff7fc83edfdee3e658d84df), [pcl::keypoints::agast::AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a41ed58a1b02c0c2a3a97c8d80c1a5d9c), and [pcl::keypoints::agast::AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#afb32ffe558a0e945cb48eeb5fd465261).

    computeCornerScores() [1/2]
---------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::computeCornerScores  | ( | const float \*  | *im*,  |
|  |  | const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all*,  |
|  |  | std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &  | *scores* |
|  | ) |  |  const |

 | protected |

 
 Computes corner scores for the specified points. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |
| corners\_all |  |
| scores |  |

      computeCornerScores() [2/2]
---------------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::computeCornerScores  | ( | const unsigned char \*  | *im*,  |
|  |  | const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all*,  |
|  |  | std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &  | *scores* |
|  | ) |  |  const |

 | protected |

 
 Computes corner scores for the specified points. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |
| corners\_all |  |
| scores |  |

      detect() [1/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual void pcl::keypoints::agast::AbstractAgastDetector::detect  | ( | const float \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  |  |
|  | ) |  |  const |

 | pure virtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |

   Implemented in [pcl::keypoints::agast::OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a06c091ac7591d49477be93cd6e7230d6), [pcl::keypoints::agast::AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a0ab0ca39fe2ec1adb4c4e274f2dab10d), and [pcl::keypoints::agast::AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a37c40823e28131c2caf612b4e54de7f2).

    detect() [2/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| virtual void pcl::keypoints::agast::AbstractAgastDetector::detect  | ( | const unsigned char \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | pure virtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implemented in [pcl::keypoints::agast::OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a5ebdfc3bce2646d7f515a6a3d09899f9), [pcl::keypoints::agast::AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#ae2fca085448981efbca0d3655a470c98), and [pcl::keypoints::agast::AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a2fa7a797bff417c01fb277488fe23cb9).

    detectKeypoints() [1/2]
-----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints  | ( | const std::vector< float > &  | *intensity\_data*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *output* |
|  | ) |  |  const |

 
 Detects corner points. 

 
Parameters
 

|  |  |
| --- | --- |
| intensity\_data |  |
| output |  |

      detectKeypoints() [2/2]
-----------------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints  | ( | const std::vector< unsigned char > &  | *intensity\_data*,  |
|  |  | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *output* |
|  | ) |  |  const |

 
 Detects corner points. 

 
Parameters
 

|  |  |
| --- | --- |
| intensity\_data |  |
| output |  |

      getMaxKeypoints()
-----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned int pcl::keypoints::agast::AbstractAgastDetector::getMaxKeypoints  | ( |  | ) |  |

 | inline |

 
 Get the maximum number of keypoints to return, as set by the user. 

 Definition at line [166](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00166) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    getThreshold()
--------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double pcl::keypoints::agast::AbstractAgastDetector::getThreshold  | ( |  | ) |  |

 | inline |

 
 Get the threshold for corner detection, as set by the user. 

 Definition at line [149](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00149) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    initPattern()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual void pcl::keypoints::agast::AbstractAgastDetector::initPattern  | ( |  | ) |  |

 | protectedpure virtual |

 
 Initializes the sample pattern. 

 Implemented in [pcl::keypoints::agast::OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a1c394d9d55671f3f429009a3a4b15115), [pcl::keypoints::agast::AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a00dd2e4e412a16e3e8a059cb18224916), and [pcl::keypoints::agast::AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a9c16fa3ff52d3becef2ad38dd1a1a14c).

    setMaxKeypoints()
-----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::setMaxKeypoints  | ( | const unsigned int  | *nr\_max\_keypoints* | ) |  |

 | inline |

 
 Sets the maximum number of keypoints to return. 

 The estimated keypoints are sorted by their internal score. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_max\_keypoints | set the maximum number of keypoints to return  |

   Definition at line [159](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00159) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    setThreshold()
--------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::keypoints::agast::AbstractAgastDetector::setThreshold  | ( | const double  | *threshold* | ) |  |

 | inline |

 
 Sets the threshold for corner detection. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | threshold | the threshold used for corner detection.  |

   Definition at line [142](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00142) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Member Data Documentation
-------------------------

  bmax\_
------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double pcl::keypoints::agast::AbstractAgastDetector::bmax\_ |

 | protected |

 
 Max image value. 

 Definition at line [255](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00255) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    height\_
--------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t pcl::keypoints::agast::AbstractAgastDetector::height\_ |

 | protected |

 
 Height of the image to process. 

 Definition at line [246](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00246) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    nr\_max\_keypoints\_
--------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int pcl::keypoints::agast::AbstractAgastDetector::nr\_max\_keypoints\_ |

 | protected |

 
 The maximum number of keypoints to return. 

 Definition at line [252](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00252) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    threshold\_
-----------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double pcl::keypoints::agast::AbstractAgastDetector::threshold\_ |

 | protected |

 
 Threshold for corner detection. 

 Definition at line [249](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00249) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    width\_
-------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::size\_t pcl::keypoints::agast::AbstractAgastDetector::width\_ |

 | protected |

 
 Width of the image to process. 

 Definition at line [244](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00244) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector.html>

Detector class for AGAST corner point detector (7\_12s). [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#acae075d2dcbb8a8bf7135878d354ca59) = shared\_ptr< [AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a467d0f2a9a35c916da74b3ab94bf8c53) = shared\_ptr< const [AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s) > |
|
| - Public Types inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) = shared\_ptr< [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a58f93542a0f46feed2ce791549ac0790) = shared\_ptr< const [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a3076c8763a5e3c3f761c5a54c204c241) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax=255) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a3076c8763a5e3c3f761c5a54c204c241) |
|
|  | [~AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a01e8d71497489258a9b9f9737312a84d) () override=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a01e8d71497489258a9b9f9737312a84d) |
|
| int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#afb32ffe558a0e945cb48eeb5fd465261) (const unsigned char \*im) const override |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#afb32ffe558a0e945cb48eeb5fd465261) |
|
| int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#afa18a5a3dd9c46b0ae170b9aba0f1c50) (const float \*im) const override |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#afa18a5a3dd9c46b0ae170b9aba0f1c50) |
|
| void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a2fa7a797bff417c01fb277488fe23cb9) (const unsigned char \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const override |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a2fa7a797bff417c01fb277488fe23cb9) |
|
| void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a37c40823e28131c2caf612b4e54de7f2) (const float \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const override |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a37c40823e28131c2caf612b4e54de7f2) |
|
| - Public Member Functions inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
|  | [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) |
|
| virtual  | [~AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) ()=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) (const std::vector< unsigned char > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) (const std::vector< float > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) (const std::vector< unsigned char > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) (const std::vector< float > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) |
|
| void  | [setThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) |
|
| double  | [getThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) |
|
| void  | [setMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [initPattern](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a9c16fa3ff52d3becef2ad38dd1a1a14c) () override |
|  | Initializes the sample pattern. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a9c16fa3ff52d3becef2ad38dd1a1a14c) |
|
| - Protected Member Functions inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, const std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Non-max-suppression helper method. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) (const unsigned char \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) (const float \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| std::size\_t  | [width\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|  | Width of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|
| std::size\_t  | [height\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|  | Height of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|
| double  | [threshold\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|  | Threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|
| double  | [bmax\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|  | Max image value. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|

 Detailed Description
--------------------

 
Detector class for AGAST corner point detector (7\_12s). 

 Adapted from the C++ implementation of Elmar Mair (<http://www6.in.tum.de/Main/ResearchAgast>).

 
Author
Stefan Holzer 
 Definition at line [266](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00266) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

   

|  |
| --- |
| using [pcl::keypoints::agast::AgastDetector7\_12s::ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#a467d0f2a9a35c916da74b3ab94bf8c53) = shared\_ptr<const [AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s)> |

 
 Definition at line [270](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00270) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::keypoints::agast::AgastDetector7\_12s::Ptr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s#acae075d2dcbb8a8bf7135878d354ca59) = shared\_ptr<[AgastDetector7\_12s](classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s)> |

 
 Definition at line [269](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00269) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  AgastDetector7\_12s()
---------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::keypoints::agast::AgastDetector7\_12s::AgastDetector7\_12s  | ( | const std::size\_t  | *width*,  |
|  |  | const std::size\_t  | *height*,  |
|  |  | const double  | *threshold*,  |
|  |  | const double  | *bmax* = `255` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | width | the width of the image to process  |
| [in] | height | the height of the image to process  |
| [in] | threshold | the corner detection threshold  |
| [in] | bmax | the max image value (default: 255)  |

   Definition at line [278](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00278) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    ~AgastDetector7\_12s()
----------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::keypoints::agast::AgastDetector7\_12s::~AgastDetector7\_12s  | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  computeCornerScore() [1/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::keypoints::agast::AgastDetector7\_12s::computeCornerScore  | ( | const float \*  | *im* | ) |  const |

 | overridevirtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#adfd3667d1a4e0311a0908aeea42b2cd9).

    computeCornerScore() [2/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::keypoints::agast::AgastDetector7\_12s::computeCornerScore  | ( | const unsigned char \*  | *im* | ) |  const |

 | overridevirtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ab793848fb125b65c4b8e68eb4341f6f8).

    detect() [1/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AgastDetector7\_12s::detect  | ( | const float \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | overridevirtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a0ee56e1bd42cb8599d0f8de368e509b2).

    detect() [2/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AgastDetector7\_12s::detect  | ( | const unsigned char \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | overridevirtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9e086276b2b357b40009e698cf4a39c4).

    initPattern()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::keypoints::agast::AgastDetector7\_12s::initPattern  | ( |  | ) |  |

 | overrideprotectedvirtual |

 
 Initializes the sample pattern. 

 Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a80b6333d58f4f0218dd1fa80083d845f).

   

---

The documentation for this class was generated from the following file:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1keypoints_1_1agast_1_1_agast_detector7__12s.html>

Detector class for AGAST corner point detector (5\_8). [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#aee86b458db064458828747eba936d1b1) = shared\_ptr< [AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#ac2f35f412ce3562381e70e369e1d6026) = shared\_ptr< const [AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8) > |
|
| - Public Types inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) = shared\_ptr< [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a58f93542a0f46feed2ce791549ac0790) = shared\_ptr< const [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a831a08fe74af1042103d4bff94d8f9cf) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax=255) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a831a08fe74af1042103d4bff94d8f9cf) |
|
|  | [~AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a4d5ceeff41edf7b5e2032375958766c9) () override=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a4d5ceeff41edf7b5e2032375958766c9) |
|
| int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a41ed58a1b02c0c2a3a97c8d80c1a5d9c) (const unsigned char \*im) const override |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a41ed58a1b02c0c2a3a97c8d80c1a5d9c) |
|
| int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a7613f5011e493b10bbc997a59c032ed6) (const float \*im) const override |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a7613f5011e493b10bbc997a59c032ed6) |
|
| void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#ae2fca085448981efbca0d3655a470c98) (const unsigned char \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const override |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#ae2fca085448981efbca0d3655a470c98) |
|
| void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a0ab0ca39fe2ec1adb4c4e274f2dab10d) (const float \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const override |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a0ab0ca39fe2ec1adb4c4e274f2dab10d) |
|
| - Public Member Functions inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
|  | [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) |
|
| virtual  | [~AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) ()=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) (const std::vector< unsigned char > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) (const std::vector< float > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) (const std::vector< unsigned char > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) (const std::vector< float > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) |
|
| void  | [setThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) |
|
| double  | [getThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) |
|
| void  | [setMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [initPattern](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a00dd2e4e412a16e3e8a059cb18224916) () override |
|  | Initializes the sample pattern. [More...](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#a00dd2e4e412a16e3e8a059cb18224916) |
|
| - Protected Member Functions inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, const std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Non-max-suppression helper method. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) (const unsigned char \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) (const float \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| std::size\_t  | [width\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|  | Width of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|
| std::size\_t  | [height\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|  | Height of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|
| double  | [threshold\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|  | Threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|
| double  | [bmax\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|  | Max image value. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|

 Detailed Description
--------------------

 
Detector class for AGAST corner point detector (5\_8). 

 Adapted from the C++ implementation of Elmar Mair (<http://www6.in.tum.de/Main/ResearchAgast>).

 
Author
Stefan Holzer 
 Definition at line [337](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00337) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

   

|  |
| --- |
| using [pcl::keypoints::agast::AgastDetector5\_8::ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#ac2f35f412ce3562381e70e369e1d6026) = shared\_ptr<const [AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8)> |

 
 Definition at line [341](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00341) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::keypoints::agast::AgastDetector5\_8::Ptr](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8#aee86b458db064458828747eba936d1b1) = shared\_ptr<[AgastDetector5\_8](classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8)> |

 
 Definition at line [340](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00340) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  AgastDetector5\_8()
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::keypoints::agast::AgastDetector5\_8::AgastDetector5\_8  | ( | const std::size\_t  | *width*,  |
|  |  | const std::size\_t  | *height*,  |
|  |  | const double  | *threshold*,  |
|  |  | const double  | *bmax* = `255` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | width | the width of the image to process  |
| [in] | height | the height of the image to process  |
| [in] | threshold | the corner detection threshold  |
| [in] | bmax | the max image value (default: 255)  |

   Definition at line [349](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00349) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    ~AgastDetector5\_8()
--------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::keypoints::agast::AgastDetector5\_8::~AgastDetector5\_8  | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  computeCornerScore() [1/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::keypoints::agast::AgastDetector5\_8::computeCornerScore  | ( | const float \*  | *im* | ) |  const |

 | overridevirtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#adfd3667d1a4e0311a0908aeea42b2cd9).

    computeCornerScore() [2/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::keypoints::agast::AgastDetector5\_8::computeCornerScore  | ( | const unsigned char \*  | *im* | ) |  const |

 | overridevirtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ab793848fb125b65c4b8e68eb4341f6f8).

    detect() [1/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AgastDetector5\_8::detect  | ( | const float \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | overridevirtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a0ee56e1bd42cb8599d0f8de368e509b2).

    detect() [2/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::AgastDetector5\_8::detect  | ( | const unsigned char \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | overridevirtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9e086276b2b357b40009e698cf4a39c4).

    initPattern()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::keypoints::agast::AgastDetector5\_8::initPattern  | ( |  | ) |  |

 | overrideprotectedvirtual |

 
 Initializes the sample pattern. 

 Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a80b6333d58f4f0218dd1fa80083d845f).

   

---

The documentation for this class was generated from the following file:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1keypoints_1_1agast_1_1_agast_detector5__8.html>

Detector class for AGAST corner point detector (OAST 9\_16). [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a9b52647ed07831654bc3a56b1e30efa6) = shared\_ptr< [OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#ab96cbc620549dd78bf537e7713fd9e00) = shared\_ptr< const [OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16) > |
|
| - Public Types inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| using  | [Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) = shared\_ptr< [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|
| using  | [ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a58f93542a0f46feed2ce791549ac0790) = shared\_ptr< const [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) > |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a26720817e798da6cf60076fddfc4265d) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax=255) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a26720817e798da6cf60076fddfc4265d) |
|
|  | [~OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#ad6ab310c9c29e098a038e68ad0e0e085) () override=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#ad6ab310c9c29e098a038e68ad0e0e085) |
|
| int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a8337379bdff7fc83edfdee3e658d84df) (const unsigned char \*im) const override |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a8337379bdff7fc83edfdee3e658d84df) |
|
| int  | [computeCornerScore](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a0050e327489da2cc589cc7f74be6cd39) (const float \*im) const override |
|  | Computes corner score. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a0050e327489da2cc589cc7f74be6cd39) |
|
| void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a5ebdfc3bce2646d7f515a6a3d09899f9) (const unsigned char \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const override |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a5ebdfc3bce2646d7f515a6a3d09899f9) |
|
| void  | [detect](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a06c091ac7591d49477be93cd6e7230d6) (const float \*im, std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all) const override |
|  | Detects points of interest (i.e., keypoints) in the given image. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a06c091ac7591d49477be93cd6e7230d6) |
|
| - Public Member Functions inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
|  | [AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) (const std::size\_t width, const std::size\_t height, const double threshold, const double bmax) |
|  | Constructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a001b850a48eacb35566a468b8f07d170) |
|
| virtual  | [~AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) ()=default |
|  | Destructor. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a8b862ff60fc00618578f496cbafdfb33) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) (const std::vector< unsigned char > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a7e7750e5aff8ee78fbc3a15b0339905e) |
|
| void  | [detectKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) (const std::vector< float > &intensity\_data, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) const |
|  | Detects corner points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a4991aeb5ce1ed0ea5e4fcc56a33e71e3) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) (const std::vector< unsigned char > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2e60cf595fe72727a50f91172b6b1f76) |
|
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) (const std::vector< float > &intensity\_data, const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Applies non-max-suppression. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ae936195a723d48c3730584a74eb32bb1) |
|
| void  | [setThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a6846bbbbd9b4d6d063613a7fc454314d) |
|
| double  | [getThreshold](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a68693f48efdc32fc292da634f187b7a2) |
|
| void  | [setMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a2712d02a6b0264813ec631c2926d3bbb) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a53415de44dc2ae2728013a4ca85af15c) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [initPattern](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a1c394d9d55671f3f429009a3a4b15115) () override |
|  | Initializes the sample pattern. [More...](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a1c394d9d55671f3f429009a3a4b15115) |
|
| - Protected Member Functions inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| void  | [applyNonMaxSuppression](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) (const [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &input, const std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores, [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) |
|  | Non-max-suppression helper method. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aa994a405e6650454483e29f0d9b907cb) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) (const unsigned char \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9912adb575083b2041213fc3c8967dc8) |
|
| void  | [computeCornerScores](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) (const float \*im, const std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &corners\_all, std::vector< [ScoreIndex](structpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector_1_1_score_index) > &scores) const |
|  | Computes corner scores for the specified points. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a26a24d83934b15929d529bea735123df) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector) |
| std::size\_t  | [width\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|  | Width of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#abf4c33f034bdd93a5b9a2f14fcaea9de) |
|
| std::size\_t  | [height\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|  | Height of the image to process. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a93aeed3f4fe69295bfe21efb85bdf4be) |
|
| double  | [threshold\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|  | Threshold for corner detection. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a28fdd805e64e27e97e26522eef5d86f1) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#aad57d4be9cd0653695650608644fb820) |
|
| double  | [bmax\_](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|  | Max image value. [More...](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#af1b1c542c9a00d96bb2d00b0c8d43f4f) |
|

 Detailed Description
--------------------

 
Detector class for AGAST corner point detector (OAST 9\_16). 

 Adapted from the C++ implementation of Elmar Mair (<http://www6.in.tum.de/Main/ResearchAgast>).

 
Author
Stefan Holzer 
 Definition at line [408](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00408) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

   

|  |
| --- |
| using [pcl::keypoints::agast::OastDetector9\_16::ConstPtr](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#ab96cbc620549dd78bf537e7713fd9e00) = shared\_ptr<const [OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16)> |

 
 Definition at line [412](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00412) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::keypoints::agast::OastDetector9\_16::Ptr](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16#a9b52647ed07831654bc3a56b1e30efa6) = shared\_ptr<[OastDetector9\_16](classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16)> |

 
 Definition at line [411](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00411) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  OastDetector9\_16()
-------------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::keypoints::agast::OastDetector9\_16::OastDetector9\_16  | ( | const std::size\_t  | *width*,  |
|  |  | const std::size\_t  | *height*,  |
|  |  | const double  | *threshold*,  |
|  |  | const double  | *bmax* = `255` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | width | the width of the image to process  |
| [in] | height | the height of the image to process  |
| [in] | threshold | the corner detection threshold  |
| [in] | bmax | the max image value (default: 255)  |

   Definition at line [420](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00420) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    ~OastDetector9\_16()
--------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::keypoints::agast::OastDetector9\_16::~OastDetector9\_16  | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  computeCornerScore() [1/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::keypoints::agast::OastDetector9\_16::computeCornerScore  | ( | const float \*  | *im* | ) |  const |

 | overridevirtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#adfd3667d1a4e0311a0908aeea42b2cd9).

    computeCornerScore() [2/2]
--------------------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| int pcl::keypoints::agast::OastDetector9\_16::computeCornerScore  | ( | const unsigned char \*  | *im* | ) |  const |

 | overridevirtual |

 
 Computes corner score. 

 
Parameters
 

|  |  |
| --- | --- |
| im |  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#ab793848fb125b65c4b8e68eb4341f6f8).

    detect() [1/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::OastDetector9\_16::detect  | ( | const float \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | overridevirtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a0ee56e1bd42cb8599d0f8de368e509b2).

    detect() [2/2]
--------------

   

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void pcl::keypoints::agast::OastDetector9\_16::detect  | ( | const unsigned char \*  | *im*,  |
|  |  | std::vector< [pcl::PointUV](structpcl_1_1_point_u_v), Eigen::aligned\_allocator< [pcl::PointUV](structpcl_1_1_point_u_v) > > &  | *corners\_all* |
|  | ) |  |  const |

 | overridevirtual |

 
 Detects points of interest (i.e., keypoints) in the given image. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | im | the image to detect keypoints in  |
| [out] | corners\_all | the resultant set of keypoints detected  |

   Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a9e086276b2b357b40009e698cf4a39c4).

    initPattern()
-------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::keypoints::agast::OastDetector9\_16::initPattern  | ( |  | ) |  |

 | overrideprotectedvirtual |

 
 Initializes the sample pattern. 

 Implements [pcl::keypoints::agast::AbstractAgastDetector](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a80b6333d58f4f0218dd1fa80083d845f).

   

---

The documentation for this class was generated from the following file:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1keypoints_1_1agast_1_1_oast_detector9__16.html>

Detects 2D AGAST corner points. [More...](classpcl_1_1_agast_keypoint2_d_base#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudIn](classpcl_1_1_agast_keypoint2_d_base#ac7487970e7574e0c18b6018ae0c44fc7) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_agast_keypoint2_d_base#ac7487970e7574e0c18b6018ae0c44fc7) |
|
| using  | [PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) |
|
| using  | [KdTree](classpcl_1_1_agast_keypoint2_d_base#a41a95460c5d3a68982541ddb6f4cd6cb) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_agast_keypoint2_d_base#a41a95460c5d3a68982541ddb6f4cd6cb) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_agast_keypoint2_d_base#a30e1a23ddd36ddd6eddae6e88015dee4) = typename PointCloudIn::ConstPtr |
|
| using  | [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) = [pcl::keypoints::agast::AbstractAgastDetector::Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base#ab433c5dee1ce520ccefd403885133402) () |
|  | Constructor. [More...](classpcl_1_1_agast_keypoint2_d_base#ab433c5dee1ce520ccefd403885133402) |
|
|  | [~AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base#a9385494d5f6fa6966f8a34e61d2c0881) () override=default |
|  | Destructor. [More...](classpcl_1_1_agast_keypoint2_d_base#a9385494d5f6fa6966f8a34e61d2c0881) |
|
| void  | [setThreshold](classpcl_1_1_agast_keypoint2_d_base#a7fcafff800893f95e1dc9ed9e7a58d14) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1_agast_keypoint2_d_base#a7fcafff800893f95e1dc9ed9e7a58d14) |
|
| double  | [getThreshold](classpcl_1_1_agast_keypoint2_d_base#a229986d52bd25c46ae604ab383858efd) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#a229986d52bd25c46ae604ab383858efd) |
|
| void  | [setMaxKeypoints](classpcl_1_1_agast_keypoint2_d_base#a7219fa5b5ffa8a41e67f2a999ef55a4f) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1_agast_keypoint2_d_base#a7219fa5b5ffa8a41e67f2a999ef55a4f) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1_agast_keypoint2_d_base#afc90e3ce3d5b82c2426b6e82d75d2b0e) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#afc90e3ce3d5b82c2426b6e82d75d2b0e) |
|
| void  | [setMaxDataValue](classpcl_1_1_agast_keypoint2_d_base#a38fcda315ed1385558e44544635c818a) (const double bmax) |
|  | Sets the max image data value (affects how many iterations AGAST does) [More...](classpcl_1_1_agast_keypoint2_d_base#a38fcda315ed1385558e44544635c818a) |
|
| double  | [getMaxDataValue](classpcl_1_1_agast_keypoint2_d_base#a7599ab815736a5a75d703d4ccab70bcc) () |
|  | Get the bmax image value, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#a7599ab815736a5a75d703d4ccab70bcc) |
|
| void  | [setNonMaxSuppression](classpcl_1_1_agast_keypoint2_d_base#ad5b6e04f35aea17cff25bd374e232179) (const bool enabled) |
|  | Sets whether non-max-suppression is applied or not. [More...](classpcl_1_1_agast_keypoint2_d_base#ad5b6e04f35aea17cff25bd374e232179) |
|
| bool  | [getNonMaxSuppression](classpcl_1_1_agast_keypoint2_d_base#aaaee15d894aa3874adc787d0e46b313c) () |
|  | Returns whether non-max-suppression is applied or not. [More...](classpcl_1_1_agast_keypoint2_d_base#aaaee15d894aa3874adc787d0e46b313c) |
|
| void  | [setAgastDetector](classpcl_1_1_agast_keypoint2_d_base#a93a13fe2c4b3293dbdf1572aaa391d3c) (const [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) &detector) |
|
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) | [getAgastDetector](classpcl_1_1_agast_keypoint2_d_base#a104c6022e0721b4ff10e205f2fb959b6) () |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6) () override |
|  | Initializes everything and checks whether input data is fine. [More...](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6) |
|
| void  | [detectKeypoints](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b) ([PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) &output) override=0 |
|  | Detects the keypoints. [More...](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| IntensityT  | [intensity\_](classpcl_1_1_agast_keypoint2_d_base#a4a6279fb59e170b759712be65de09854) |
|  | [Intensity](structpcl_1_1_intensity "A point structure representing the grayscale intensity in single-channel images.") field accessor. [More...](classpcl_1_1_agast_keypoint2_d_base#a4a6279fb59e170b759712be65de09854) |
|
| double  | [threshold\_](classpcl_1_1_agast_keypoint2_d_base#a3fa742a17e73bbf367a5ec67402efeef) |
|  | Threshold for corner detection. [More...](classpcl_1_1_agast_keypoint2_d_base#a3fa742a17e73bbf367a5ec67402efeef) |
|
| bool  | [apply\_non\_max\_suppression\_](classpcl_1_1_agast_keypoint2_d_base#abc46374a276cd14177f45d20b6f5ff1c) |
|  | Determines whether non-max-suppression is activated. [More...](classpcl_1_1_agast_keypoint2_d_base#abc46374a276cd14177f45d20b6f5ff1c) |
|
| double  | [bmax\_](classpcl_1_1_agast_keypoint2_d_base#a7226354a5af9c3daa77ee174ee771b89) |
|  | Max image value. [More...](classpcl_1_1_agast_keypoint2_d_base#a7226354a5af9c3daa77ee174ee771b89) |
|
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) | [detector\_](classpcl_1_1_agast_keypoint2_d_base#a9ee609d7022fc586127729029ce27447) |
|  | The Agast detector to use. [More...](classpcl_1_1_agast_keypoint2_d_base#a9ee609d7022fc586127729029ce27447) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1_agast_keypoint2_d_base#aa1c97ed82c68cf86ab23f3aee57d3cb1) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1_agast_keypoint2_d_base#aa1c97ed82c68cf86ab23f3aee57d3cb1) |
|
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>> class pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >

 Detects 2D AGAST corner points. 

 Based on the original work and paper reference by

 

Elmar Mair, Gregory D. Hager, Darius Burschka, Michael Suppa, and Gerhard Hirzinger. Adaptive and generic corner detection based on the accelerated segment test. In Proceedings of the European Conference on Computer Vision (ECCV'10), September 2010.
 
Note
This is an abstract base class. All children must implement a detectKeypoints method, based on the type of AGAST keypoint to be used.
 
Author
Stefan Holzer, Radu B. Rusu 
 Definition at line [556](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00556) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  AgastDetectorPtr
----------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::[AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) = [pcl::keypoints::agast::AbstractAgastDetector::Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) |

 
 Definition at line [564](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00564) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::[KdTree](classpcl_1_1_agast_keypoint2_d_base#a41a95460c5d3a68982541ddb6f4cd6cb) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[KdTree](classpcl_1_1_agast_keypoint2_d_base#a41a95460c5d3a68982541ddb6f4cd6cb) |

 
 Definition at line [561](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00561) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::[PointCloudIn](classpcl_1_1_agast_keypoint2_d_base#ac7487970e7574e0c18b6018ae0c44fc7) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_agast_keypoint2_d_base#ac7487970e7574e0c18b6018ae0c44fc7) |

 
 Definition at line [559](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00559) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::[PointCloudInConstPtr](classpcl_1_1_agast_keypoint2_d_base#a30e1a23ddd36ddd6eddae6e88015dee4) = typename PointCloudIn::ConstPtr |

 
 Definition at line [562](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00562) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::[PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) |

 
 Definition at line [560](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00560) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  AgastKeypoint2DBase()
---------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::[AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [572](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00572) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::k\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00190).

    ~AgastKeypoint2DBase()
----------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::~[AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base) | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) &  | *output* | ) |  |

 | overrideprotectedpure virtual |

 
 Detects the keypoints. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant keypoints  |

      getAgastDetector()
------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::getAgastDetector  | ( |  | ) |  |

 | inline |

 
 Definition at line [656](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00656) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::detector\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00685).

    getMaxDataValue()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::getMaxDataValue  | ( |  | ) |  |

 | inline |

 
 Get the bmax image value, as set by the user. 

 Definition at line [628](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00628) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::bmax\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00682).

    getMaxKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| unsigned int [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::getMaxKeypoints  | ( |  | ) |  |

 | inline |

 
 Get the maximum number of keypoints to return, as set by the user. 

 Definition at line [612](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00612) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::nr\_max\_keypoints\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00688).

    getNonMaxSuppression()
----------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::getNonMaxSuppression  | ( |  | ) |  |

 | inline |

 
 Returns whether non-max-suppression is applied or not. 

 Definition at line [644](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00644) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::apply\_non\_max\_suppression\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00679).

    getThreshold()
--------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::getThreshold  | ( |  | ) |  |

 | inline |

 
 Get the threshold for corner detection, as set by the user. 

 Definition at line [595](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00595) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::threshold\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00676).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::initCompute |

 | overrideprotectedvirtual |

 
 Initializes everything and checks whether input data is fine. 

 Reimplemented from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db).

 Definition at line [49](https://pointclouds.org/documentation/agast__2d_8hpp_source.html#l00049) of file [agast\_2d.hpp](https://pointclouds.org/documentation/agast__2d_8hpp_source.html).

    setAgastDetector()
------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::setAgastDetector  | ( | const [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) &  | *detector* | ) |  |

 | inline |

 
 Definition at line [650](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00650) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::detector\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00685).

    setMaxDataValue()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::setMaxDataValue  | ( | const double  | *bmax* | ) |  |

 | inline |

 
 Sets the max image data value (affects how many iterations AGAST does) 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | bmax | the max image data value  |

   Definition at line [621](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00621) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::bmax\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00682).

    setMaxKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::setMaxKeypoints  | ( | const unsigned int  | *nr\_max\_keypoints* | ) |  |

 | inline |

 
 Sets the maximum number of keypoints to return. 

 The estimated keypoints are sorted by their internal score. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_max\_keypoints | set the maximum number of keypoints to return  |

   Definition at line [605](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00605) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::nr\_max\_keypoints\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00688).

    setNonMaxSuppression()
----------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::setNonMaxSuppression  | ( | const bool  | *enabled* | ) |  |

 | inline |

 
 Sets whether non-max-suppression is applied or not. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | enabled | determines whether non-max-suppression is enabled.  |

   Definition at line [637](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00637) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::apply\_non\_max\_suppression\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00679).

    setThreshold()
--------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::setThreshold  | ( | const double  | *threshold* | ) |  |

 | inline |

 
 Sets the threshold for corner detection. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | threshold | the threshold used for corner detection.  |

   Definition at line [588](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00588) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::threshold\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00676).

   Member Data Documentation
-------------------------

  apply\_non\_max\_suppression\_
------------------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::apply\_non\_max\_suppression\_ |

 | protected |

 
 Determines whether non-max-suppression is activated. 

 Definition at line [679](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00679) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 Referenced by [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::getNonMaxSuppression()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00644), and [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::setNonMaxSuppression()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00637).

    bmax\_
------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::bmax\_ |

 | protected |

 
 Max image value. 

 Definition at line [682](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00682) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 Referenced by [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::getMaxDataValue()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00628), and [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::setMaxDataValue()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00621).

    detector\_
----------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::detector\_ |

 | protected |

 
 The Agast detector to use. 

 Definition at line [685](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00685) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 Referenced by [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::getAgastDetector()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00656), and [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::setAgastDetector()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00650).

    intensity\_
-----------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| IntensityT [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::intensity\_ |

 | protected |

 
 [Intensity](structpcl_1_1_intensity "A point structure representing the grayscale intensity in single-channel images.") field accessor. 

 Definition at line [673](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00673) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

    nr\_max\_keypoints\_
--------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::nr\_max\_keypoints\_ |

 | protected |

 
 The maximum number of keypoints to return. 

 Definition at line [688](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00688) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 Referenced by [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::getMaxKeypoints()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00612), and [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::setMaxKeypoints()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00605).

    threshold\_
-----------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base)< PointInT, PointOutT, IntensityT >::threshold\_ |

 | protected |

 
 Threshold for corner detection. 

 Definition at line [676](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00676) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 Referenced by [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::getThreshold()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00595), and [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >::setThreshold()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00588).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)
* pcl/keypoints/impl/[agast\_2d.hpp](https://pointclouds.org/documentation/agast__2d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_agast_keypoint2_d_base.html>

Detects 2D AGAST corner points. [More...](classpcl_1_1_agast_keypoint2_d#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [PointCloudOut](classpcl_1_1_agast_keypoint2_d#aa9f89c26833e11888787bd0947fd98b7) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_agast_keypoint2_d#aa9f89c26833e11888787bd0947fd98b7) |
|
| - Public Types inherited from [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >](classpcl_1_1_agast_keypoint2_d_base) |
| using  | [PointCloudIn](classpcl_1_1_agast_keypoint2_d_base#ac7487970e7574e0c18b6018ae0c44fc7) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, [pcl::PointUV](structpcl_1_1_point_u_v) >::[PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) |
|
| using  | [PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, [pcl::PointUV](structpcl_1_1_point_u_v) >::[PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) |
|
| using  | [KdTree](classpcl_1_1_agast_keypoint2_d_base#a41a95460c5d3a68982541ddb6f4cd6cb) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, [pcl::PointUV](structpcl_1_1_point_u_v) >::[KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_agast_keypoint2_d_base#a30e1a23ddd36ddd6eddae6e88015dee4) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) = [pcl::keypoints::agast::AbstractAgastDetector::Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) |
|
| - Public Types inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d#a9305825b2a5cdde9e26fec862c1cc157) () |
|  | Constructor. [More...](classpcl_1_1_agast_keypoint2_d#a9305825b2a5cdde9e26fec862c1cc157) |
|
|  | [~AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d#ad5b3f9f011b8e1b2a9ab834de8038389) () override=default |
|  | Destructor. [More...](classpcl_1_1_agast_keypoint2_d#ad5b3f9f011b8e1b2a9ab834de8038389) |
|
| - Public Member Functions inherited from [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >](classpcl_1_1_agast_keypoint2_d_base) |
|  | [AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base#ab433c5dee1ce520ccefd403885133402) () |
|  | Constructor. [More...](classpcl_1_1_agast_keypoint2_d_base#ab433c5dee1ce520ccefd403885133402) |
|
|  | [~AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base#a9385494d5f6fa6966f8a34e61d2c0881) () override=default |
|  | Destructor. [More...](classpcl_1_1_agast_keypoint2_d_base#a9385494d5f6fa6966f8a34e61d2c0881) |
|
| void  | [setThreshold](classpcl_1_1_agast_keypoint2_d_base#a7fcafff800893f95e1dc9ed9e7a58d14) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1_agast_keypoint2_d_base#a7fcafff800893f95e1dc9ed9e7a58d14) |
|
| double  | [getThreshold](classpcl_1_1_agast_keypoint2_d_base#a229986d52bd25c46ae604ab383858efd) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#a229986d52bd25c46ae604ab383858efd) |
|
| void  | [setMaxKeypoints](classpcl_1_1_agast_keypoint2_d_base#a7219fa5b5ffa8a41e67f2a999ef55a4f) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1_agast_keypoint2_d_base#a7219fa5b5ffa8a41e67f2a999ef55a4f) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1_agast_keypoint2_d_base#afc90e3ce3d5b82c2426b6e82d75d2b0e) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#afc90e3ce3d5b82c2426b6e82d75d2b0e) |
|
| void  | [setMaxDataValue](classpcl_1_1_agast_keypoint2_d_base#a38fcda315ed1385558e44544635c818a) (const double bmax) |
|  | Sets the max image data value (affects how many iterations AGAST does) [More...](classpcl_1_1_agast_keypoint2_d_base#a38fcda315ed1385558e44544635c818a) |
|
| double  | [getMaxDataValue](classpcl_1_1_agast_keypoint2_d_base#a7599ab815736a5a75d703d4ccab70bcc) () |
|  | Get the bmax image value, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#a7599ab815736a5a75d703d4ccab70bcc) |
|
| void  | [setNonMaxSuppression](classpcl_1_1_agast_keypoint2_d_base#ad5b6e04f35aea17cff25bd374e232179) (const bool enabled) |
|  | Sets whether non-max-suppression is applied or not. [More...](classpcl_1_1_agast_keypoint2_d_base#ad5b6e04f35aea17cff25bd374e232179) |
|
| bool  | [getNonMaxSuppression](classpcl_1_1_agast_keypoint2_d_base#aaaee15d894aa3874adc787d0e46b313c) () |
|  | Returns whether non-max-suppression is applied or not. [More...](classpcl_1_1_agast_keypoint2_d_base#aaaee15d894aa3874adc787d0e46b313c) |
|
| void  | [setAgastDetector](classpcl_1_1_agast_keypoint2_d_base#a93a13fe2c4b3293dbdf1572aaa391d3c) (const [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) &detector) |
|
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) | [getAgastDetector](classpcl_1_1_agast_keypoint2_d_base#a104c6022e0721b4ff10e205f2fb959b6) () |
|
| - Public Member Functions inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (ImageType &output, ImageType &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (ImageType &output, ImageType &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (ImageType &output, ImageType &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (ImageType &output, ImageType &input1, ImageType &input2) |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [detectKeypoints](classpcl_1_1_agast_keypoint2_d#abb968464ebf1954afc96334ace72cd26) ([PointCloudOut](classpcl_1_1_agast_keypoint2_d#aa9f89c26833e11888787bd0947fd98b7) &output) override |
|  | Detects the keypoints. [More...](classpcl_1_1_agast_keypoint2_d#abb968464ebf1954afc96334ace72cd26) |
|
| - Protected Member Functions inherited from [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >](classpcl_1_1_agast_keypoint2_d_base) |
| bool  | [initCompute](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6) () override |
|  | Initializes everything and checks whether input data is fine. [More...](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6) |
|
| void  | [detectKeypoints](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) override=0 |
|  | Detects the keypoints. [More...](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >](classpcl_1_1_agast_keypoint2_d_base) |
| [pcl::common::IntensityFieldAccessor](structpcl_1_1common_1_1_intensity_field_accessor)< PointInT >  | [intensity\_](classpcl_1_1_agast_keypoint2_d_base#a4a6279fb59e170b759712be65de09854) |
|  | Intensity field accessor. [More...](classpcl_1_1_agast_keypoint2_d_base#a4a6279fb59e170b759712be65de09854) |
|
| double  | [threshold\_](classpcl_1_1_agast_keypoint2_d_base#a3fa742a17e73bbf367a5ec67402efeef) |
|  | Threshold for corner detection. [More...](classpcl_1_1_agast_keypoint2_d_base#a3fa742a17e73bbf367a5ec67402efeef) |
|
| bool  | [apply\_non\_max\_suppression\_](classpcl_1_1_agast_keypoint2_d_base#abc46374a276cd14177f45d20b6f5ff1c) |
|  | Determines whether non-max-suppression is activated. [More...](classpcl_1_1_agast_keypoint2_d_base#abc46374a276cd14177f45d20b6f5ff1c) |
|
| double  | [bmax\_](classpcl_1_1_agast_keypoint2_d_base#a7226354a5af9c3daa77ee174ee771b89) |
|  | Max image value. [More...](classpcl_1_1_agast_keypoint2_d_base#a7226354a5af9c3daa77ee174ee771b89) |
|
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) | [detector\_](classpcl_1_1_agast_keypoint2_d_base#a9ee609d7022fc586127729029ce27447) |
|  | The Agast detector to use. [More...](classpcl_1_1_agast_keypoint2_d_base#a9ee609d7022fc586127729029ce27447) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1_agast_keypoint2_d_base#aa1c97ed82c68cf86ab23f3aee57d3cb1) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1_agast_keypoint2_d_base#aa1c97ed82c68cf86ab23f3aee57d3cb1) |
|
| - Protected Attributes inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = pcl::PointUV> class pcl::AgastKeypoint2D< PointInT, PointOutT >

 Detects 2D AGAST corner points. 

 Based on the original work and paper reference by

 

Elmar Mair, Gregory D. Hager, Darius Burschka, Michael Suppa, and Gerhard Hirzinger. Adaptive and generic corner detection based on the accelerated segment test. In Proceedings of the European Conference on Computer Vision (ECCV'10), September 2010.
 Code example:

 
```
pcl::PointCloud<pcl::PointXYZRGBA> cloud;
pcl::AgastKeypoint2D<pcl::PointXYZRGBA> agast;
agast.setThreshold (30);
agast.setInputCloud (cloud);
 
PointCloud<pcl::PointUV> keypoints;
agast.compute (keypoints);
pcl::AgastKeypoint2DBase::setThresholdvoid setThreshold(const double threshold)Sets the threshold for corner detection.Definition: agast_2d.h:588
pcl::AgastKeypoint2DBase::setThreshold
void setThreshold(const double threshold)
Sets the threshold for corner detection.
Definition: agast_2d.h:588
pcl::AgastKeypoint2DDetects 2D AGAST corner points.Definition: agast_2d.h:718
pcl::AgastKeypoint2D
Detects 2D AGAST corner points.
Definition: agast_2d.h:718
pcl::Keypoint::computevoid compute(PointCloudOut &output)Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...Definition: keypoint.hpp:137
pcl::Keypoint::compute
void compute(PointCloudOut &output)
Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...
Definition: keypoint.hpp:137
pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::PointCloud< pcl::PointXYZRGBA >
pcl::PointCloud< pcl::PointXYZRGBA >

```


Note
The AGAST keypoint type used is 7\_12s.
 
Author
Stefan Holzer, Radu B. Rusu 
 Definition at line [717](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00717) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  PointCloudOut
-------------

    template<typename PointInT , typename PointOutT = pcl::PointUV>  

|  |
| --- |
| using [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_agast_keypoint2_d#aa9f89c26833e11888787bd0947fd98b7) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_agast_keypoint2_d#aa9f89c26833e11888787bd0947fd98b7) |

 
 Definition at line [720](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00720) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  AgastKeypoint2D()
-----------------

    template<typename PointInT , typename PointOutT = pcl::PointUV>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< PointInT, PointOutT >::[AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [734](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00734) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::Keypoint< ImageType >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169).

    ~AgastKeypoint2D()
------------------

    template<typename PointInT , typename PointOutT = pcl::PointUV>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< PointInT, PointOutT >::~[AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d) | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< PointInT, PointOutT >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_agast_keypoint2_d#aa9f89c26833e11888787bd0947fd98b7) &  | *output* | ) |  |

 | overrideprotected |

 
 Detects the keypoints. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant keypoints  |

   Definition at line [68](https://pointclouds.org/documentation/agast__2d_8hpp_source.html#l00068) of file [agast\_2d.hpp](https://pointclouds.org/documentation/agast__2d_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)
* pcl/keypoints/impl/[agast\_2d.hpp](https://pointclouds.org/documentation/agast__2d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_agast_keypoint2_d.html>

Detects 2D AGAST corner points. [More...](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#details)

 `#include <[pcl/keypoints/agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Member Functions |
|  | [AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#aa2f56789e23224254ad2085af2775646) () |
|  | Constructor. [More...](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#aa2f56789e23224254ad2085af2775646) |
|
|  | [~AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#a63b1060cbb928ac55838a280772cad92) () override=default |
|  | Destructor. [More...](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#a63b1060cbb928ac55838a280772cad92) |
|
| - Public Member Functions inherited from [pcl::AgastKeypoint2DBase< pcl::PointXYZ, pcl::PointUV, pcl::common::IntensityFieldAccessor< pcl::PointXYZ > >](classpcl_1_1_agast_keypoint2_d_base) |
|  | [AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base#ab433c5dee1ce520ccefd403885133402) () |
|  | Constructor. [More...](classpcl_1_1_agast_keypoint2_d_base#ab433c5dee1ce520ccefd403885133402) |
|
|  | [~AgastKeypoint2DBase](classpcl_1_1_agast_keypoint2_d_base#a9385494d5f6fa6966f8a34e61d2c0881) () override=default |
|  | Destructor. [More...](classpcl_1_1_agast_keypoint2_d_base#a9385494d5f6fa6966f8a34e61d2c0881) |
|
| void  | [setThreshold](classpcl_1_1_agast_keypoint2_d_base#a7fcafff800893f95e1dc9ed9e7a58d14) (const double threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1_agast_keypoint2_d_base#a7fcafff800893f95e1dc9ed9e7a58d14) |
|
| double  | [getThreshold](classpcl_1_1_agast_keypoint2_d_base#a229986d52bd25c46ae604ab383858efd) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#a229986d52bd25c46ae604ab383858efd) |
|
| void  | [setMaxKeypoints](classpcl_1_1_agast_keypoint2_d_base#a7219fa5b5ffa8a41e67f2a999ef55a4f) (const unsigned int nr\_max\_keypoints) |
|  | Sets the maximum number of keypoints to return. [More...](classpcl_1_1_agast_keypoint2_d_base#a7219fa5b5ffa8a41e67f2a999ef55a4f) |
|
| unsigned int  | [getMaxKeypoints](classpcl_1_1_agast_keypoint2_d_base#afc90e3ce3d5b82c2426b6e82d75d2b0e) () |
|  | Get the maximum number of keypoints to return, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#afc90e3ce3d5b82c2426b6e82d75d2b0e) |
|
| void  | [setMaxDataValue](classpcl_1_1_agast_keypoint2_d_base#a38fcda315ed1385558e44544635c818a) (const double bmax) |
|  | Sets the max image data value (affects how many iterations AGAST does) [More...](classpcl_1_1_agast_keypoint2_d_base#a38fcda315ed1385558e44544635c818a) |
|
| double  | [getMaxDataValue](classpcl_1_1_agast_keypoint2_d_base#a7599ab815736a5a75d703d4ccab70bcc) () |
|  | Get the bmax image value, as set by the user. [More...](classpcl_1_1_agast_keypoint2_d_base#a7599ab815736a5a75d703d4ccab70bcc) |
|
| void  | [setNonMaxSuppression](classpcl_1_1_agast_keypoint2_d_base#ad5b6e04f35aea17cff25bd374e232179) (const bool enabled) |
|  | Sets whether non-max-suppression is applied or not. [More...](classpcl_1_1_agast_keypoint2_d_base#ad5b6e04f35aea17cff25bd374e232179) |
|
| bool  | [getNonMaxSuppression](classpcl_1_1_agast_keypoint2_d_base#aaaee15d894aa3874adc787d0e46b313c) () |
|  | Returns whether non-max-suppression is applied or not. [More...](classpcl_1_1_agast_keypoint2_d_base#aaaee15d894aa3874adc787d0e46b313c) |
|
| void  | [setAgastDetector](classpcl_1_1_agast_keypoint2_d_base#a93a13fe2c4b3293dbdf1572aaa391d3c) (const [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) &detector) |
|
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) | [getAgastDetector](classpcl_1_1_agast_keypoint2_d_base#a104c6022e0721b4ff10e205f2fb959b6) () |
|
| - Public Member Functions inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (ImageType &output, ImageType &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (ImageType &output, ImageType &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (ImageType &output, ImageType &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (ImageType &output, ImageType &input1, ImageType &input2) |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [detectKeypoints](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#a61664ffefaa7069224ac651ddd3b49ce) ([pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &output) override |
|  | Detects the keypoints. [More...](classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4#a61664ffefaa7069224ac651ddd3b49ce) |
|
| - Protected Member Functions inherited from [pcl::AgastKeypoint2DBase< pcl::PointXYZ, pcl::PointUV, pcl::common::IntensityFieldAccessor< pcl::PointXYZ > >](classpcl_1_1_agast_keypoint2_d_base) |
| bool  | [initCompute](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6) () override |
|  | Initializes everything and checks whether input data is fine. [More...](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6) |
|
| void  | [detectKeypoints](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) override=0 |
|  | Detects the keypoints. [More...](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Public Types inherited from [pcl::AgastKeypoint2DBase< pcl::PointXYZ, pcl::PointUV, pcl::common::IntensityFieldAccessor< pcl::PointXYZ > >](classpcl_1_1_agast_keypoint2_d_base) |
| using  | [PointCloudIn](classpcl_1_1_agast_keypoint2_d_base#ac7487970e7574e0c18b6018ae0c44fc7) = typename [Keypoint](classpcl_1_1_keypoint)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z), [pcl::PointUV](structpcl_1_1_point_u_v) >::[PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) |
|
| using  | [PointCloudOut](classpcl_1_1_agast_keypoint2_d_base#a15d0e86af47e8996d798699e3d095ec5) = typename [Keypoint](classpcl_1_1_keypoint)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z), [pcl::PointUV](structpcl_1_1_point_u_v) >::[PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) |
|
| using  | [KdTree](classpcl_1_1_agast_keypoint2_d_base#a41a95460c5d3a68982541ddb6f4cd6cb) = typename [Keypoint](classpcl_1_1_keypoint)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z), [pcl::PointUV](structpcl_1_1_point_u_v) >::[KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_agast_keypoint2_d_base#a30e1a23ddd36ddd6eddae6e88015dee4) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) = [pcl::keypoints::agast::AbstractAgastDetector::Ptr](classpcl_1_1keypoints_1_1agast_1_1_abstract_agast_detector#a10b8b1380d81de44b9703a91943e8c15) |
|
| - Public Types inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|
| - Protected Attributes inherited from [pcl::AgastKeypoint2DBase< pcl::PointXYZ, pcl::PointUV, pcl::common::IntensityFieldAccessor< pcl::PointXYZ > >](classpcl_1_1_agast_keypoint2_d_base) |
| [pcl::common::IntensityFieldAccessor](structpcl_1_1common_1_1_intensity_field_accessor)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z) >  | [intensity\_](classpcl_1_1_agast_keypoint2_d_base#a4a6279fb59e170b759712be65de09854) |
|  | Intensity field accessor. [More...](classpcl_1_1_agast_keypoint2_d_base#a4a6279fb59e170b759712be65de09854) |
|
| double  | [threshold\_](classpcl_1_1_agast_keypoint2_d_base#a3fa742a17e73bbf367a5ec67402efeef) |
|  | Threshold for corner detection. [More...](classpcl_1_1_agast_keypoint2_d_base#a3fa742a17e73bbf367a5ec67402efeef) |
|
| bool  | [apply\_non\_max\_suppression\_](classpcl_1_1_agast_keypoint2_d_base#abc46374a276cd14177f45d20b6f5ff1c) |
|  | Determines whether non-max-suppression is activated. [More...](classpcl_1_1_agast_keypoint2_d_base#abc46374a276cd14177f45d20b6f5ff1c) |
|
| double  | [bmax\_](classpcl_1_1_agast_keypoint2_d_base#a7226354a5af9c3daa77ee174ee771b89) |
|  | Max image value. [More...](classpcl_1_1_agast_keypoint2_d_base#a7226354a5af9c3daa77ee174ee771b89) |
|
| [AgastDetectorPtr](classpcl_1_1_agast_keypoint2_d_base#ad67d70257566ae64ff031dbdf0f8318c) | [detector\_](classpcl_1_1_agast_keypoint2_d_base#a9ee609d7022fc586127729029ce27447) |
|  | The Agast detector to use. [More...](classpcl_1_1_agast_keypoint2_d_base#a9ee609d7022fc586127729029ce27447) |
|
| unsigned int  | [nr\_max\_keypoints\_](classpcl_1_1_agast_keypoint2_d_base#aa1c97ed82c68cf86ab23f3aee57d3cb1) |
|  | The maximum number of keypoints to return. [More...](classpcl_1_1_agast_keypoint2_d_base#aa1c97ed82c68cf86ab23f3aee57d3cb1) |
|
| - Protected Attributes inherited from [pcl::Keypoint< ImageType >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
Detects 2D AGAST corner points. 

 Based on the original work and paper reference by

 

Elmar Mair, Gregory D. Hager, Darius Burschka, Michael Suppa, and Gerhard Hirzinger. Adaptive and generic corner detection based on the accelerated segment test. In Proceedings of the European Conference on Computer Vision (ECCV'10), September 2010.
 Code example:

 
```
pcl::PointCloud<pcl::PointXYZRGBA> cloud;
pcl::AgastKeypoint2D<pcl::PointXYZRGBA> agast;
agast.setThreshold (30);
agast.setInputCloud (cloud);
 
PointCloud<pcl::PointUV> keypoints;
agast.compute (keypoints);
pcl::AgastKeypoint2DBase::setThresholdvoid setThreshold(const double threshold)Sets the threshold for corner detection.Definition: agast_2d.h:588
pcl::AgastKeypoint2DBase::setThreshold
void setThreshold(const double threshold)
Sets the threshold for corner detection.
Definition: agast_2d.h:588
pcl::AgastKeypoint2DDetects 2D AGAST corner points.Definition: agast_2d.h:718
pcl::AgastKeypoint2D
Detects 2D AGAST corner points.
Definition: agast_2d.h:718
pcl::Keypoint::computevoid compute(PointCloudOut &output)Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...Definition: keypoint.hpp:137
pcl::Keypoint::compute
void compute(PointCloudOut &output)
Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...
Definition: keypoint.hpp:137
pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::PointCloud< pcl::PointXYZRGBA >
pcl::PointCloud< pcl::PointXYZRGBA >

```


Note
This is a specialized version for [PointXYZ](structpcl_1_1_point_x_y_z "A point structure representing Euclidean xyz coordinates.") clouds, and operates on depth (z) as float. The output keypoints are of the [PointXY](structpcl_1_1_point_x_y "A 2D point structure representing Euclidean xy coordinates.") type.   The AGAST keypoint type used is 7\_12s.
 
Author
Stefan Holzer, Radu B. Rusu 
 Definition at line [777](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00777) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 
Constructor & Destructor Documentation
--------------------------------------

  AgastKeypoint2D()
-----------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z), [pcl::PointUV](structpcl_1_1_point_u_v) >::[AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d) | ( |  | ) |  |

 | inline |

 
 Constructor. 

 Definition at line [782](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00782) of file [agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html).

 References [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >::bmax\_](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00682), and [pcl::Keypoint< ImageType >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169).

    ~AgastKeypoint2D()
------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z), [pcl::PointUV](structpcl_1_1_point_u_v) >::~[AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d) | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  detectKeypoints()
-----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::AgastKeypoint2D](classpcl_1_1_agast_keypoint2_d)< [pcl::PointXYZ](structpcl_1_1_point_x_y_z), [pcl::PointUV](structpcl_1_1_point_u_v) >::detectKeypoints  | ( | [pcl::PointCloud](classpcl_1_1_point_cloud)< [pcl::PointUV](structpcl_1_1_point_u_v) > &  | *output* | ) |  |

 | overrideprotected |

 
 Detects the keypoints. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant keypoints  |

     

---

The documentation for this class was generated from the following file:* pcl/keypoints/[agast\_2d.h](https://pointclouds.org/documentation/agast__2d_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_agast_keypoint2_d_3_01pcl_1_1_point_x_y_z_00_01pcl_1_1_point_u_v_01_4.html>

Detects BRISK interest points based on the original code and paper reference by. [More...](classpcl_1_1_brisk_keypoint2_d#details)

 `#include <[pcl/keypoints/brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_brisk_keypoint2_d#adc257397588b8a925cc6d91d29e3ee40) = shared\_ptr< [BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT > > |
|
| using  | [ConstPtr](classpcl_1_1_brisk_keypoint2_d#a40c07aaf8d5ba8427eb82fe49073c779) = shared\_ptr< const [BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT > > |
|
| using  | [PointCloudIn](classpcl_1_1_brisk_keypoint2_d#a30c48b9a817988850078724cc7ad185f) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_brisk_keypoint2_d#a30c48b9a817988850078724cc7ad185f) |
|
| using  | [PointCloudOut](classpcl_1_1_brisk_keypoint2_d#a33eca38658c08b7bc20b8aad32e7180f) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_brisk_keypoint2_d#a33eca38658c08b7bc20b8aad32e7180f) |
|
| using  | [KdTree](classpcl_1_1_brisk_keypoint2_d#a58e65e7dd04f5afa53d58910e35cd25d) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_brisk_keypoint2_d#a58e65e7dd04f5afa53d58910e35cd25d) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_brisk_keypoint2_d#afc49a5e6237d461804418c0b55a136e5) = typename PointCloudIn::ConstPtr |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, pcl::PointWithScale >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d#a68418f802729d2fb580e6cde185e799c) (int octaves=4, int threshold=60) |
|  | Constructor. [More...](classpcl_1_1_brisk_keypoint2_d#a68418f802729d2fb580e6cde185e799c) |
|
|  | [~BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d#a09c4b7bf26fe83fc84e006d52bb4a7f5) () override=default |
|  | Destructor. [More...](classpcl_1_1_brisk_keypoint2_d#a09c4b7bf26fe83fc84e006d52bb4a7f5) |
|
| void  | [setThreshold](classpcl_1_1_brisk_keypoint2_d#a0ec5e3aa61678bcbe86e0136636d643d) (const int threshold) |
|  | Sets the threshold for corner detection. [More...](classpcl_1_1_brisk_keypoint2_d#a0ec5e3aa61678bcbe86e0136636d643d) |
|
| std::size\_t  | [getThreshold](classpcl_1_1_brisk_keypoint2_d#a6806669d8fd37aac8c12b945477f1000) () |
|  | Get the threshold for corner detection, as set by the user. [More...](classpcl_1_1_brisk_keypoint2_d#a6806669d8fd37aac8c12b945477f1000) |
|
| void  | [setOctaves](classpcl_1_1_brisk_keypoint2_d#a8a58c65d1a846763e52e4068a301811f) (const int octaves) |
|  | Set the number of octaves to use. [More...](classpcl_1_1_brisk_keypoint2_d#a8a58c65d1a846763e52e4068a301811f) |
|
| int  | [getOctaves](classpcl_1_1_brisk_keypoint2_d#abeaf0bb89b1a94e8f15822584e94ef43) () |
|  | Returns the number of octaves used. [More...](classpcl_1_1_brisk_keypoint2_d#abeaf0bb89b1a94e8f15822584e94ef43) |
|
| void  | [setRemoveInvalid3DKeypoints](classpcl_1_1_brisk_keypoint2_d#afd263e0bb459ce78e7c0fed57dd2899b) (bool remove) |
|  | Specify whether we should do a 2nd pass through the list of keypoints found, and remove the ones that do not have a valid 3D (x-y-z) position (i.e., are NaN or Inf). [More...](classpcl_1_1_brisk_keypoint2_d#afd263e0bb459ce78e7c0fed57dd2899b) |
|
| bool  | [getRemoveInvalid3DKeypoints](classpcl_1_1_brisk_keypoint2_d#a5c53a903009694e3fc7e5694995af95a) () |
|  | Specify whether the keypoints that do not have a valid 3D position are kept (false) or removed (true). [More...](classpcl_1_1_brisk_keypoint2_d#a5c53a903009694e3fc7e5694995af95a) |
|
| void  | [bilinearInterpolation](classpcl_1_1_brisk_keypoint2_d#acfa3d4aad370671d480afe840da29954) (const [PointCloudInConstPtr](classpcl_1_1_brisk_keypoint2_d#afc49a5e6237d461804418c0b55a136e5) &cloud, float x, float y, PointOutT &pt) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, pcl::PointWithScale >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_brisk_keypoint2_d#addbc56630209e2d547e79b03d1f8b415) () override |
|  | Initializes everything and checks whether input data is fine. [More...](classpcl_1_1_brisk_keypoint2_d#addbc56630209e2d547e79b03d1f8b415) |
|
| void  | [detectKeypoints](classpcl_1_1_brisk_keypoint2_d#a19558d10925200524bea743011be4a87) ([PointCloudOut](classpcl_1_1_brisk_keypoint2_d#a33eca38658c08b7bc20b8aad32e7180f) &output) override |
|  | Detects the keypoints. [More...](classpcl_1_1_brisk_keypoint2_d#a19558d10925200524bea743011be4a87) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, pcl::PointWithScale >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, pcl::PointWithScale >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>> class pcl::BriskKeypoint2D< PointInT, PointOutT, IntensityT >

 Detects BRISK interest points based on the original code and paper reference by. 

 

Stefan Leutenegger,Margarita Chli and Roland Siegwart, BRISK: Binary Robust Invariant Scalable Keypoints, in Proceedings of the IEEE International Conference on Computer Vision (ICCV2011).
 Code example:

 
```
pcl::PointCloud<pcl::PointXYZRGBA> cloud;
pcl::BriskKeypoint2D<pcl::PointXYZRGBA> brisk;
brisk.setThreshold (60);
brisk.setOctaves (4);
brisk.setInputCloud (cloud);
 
PointCloud<pcl::PointWithScale> keypoints;
brisk.compute (keypoints);
pcl::BriskKeypoint2DDetects BRISK interest points based on the original code and paper reference by.Definition: brisk_2d.h:74
pcl::BriskKeypoint2D
Detects BRISK interest points based on the original code and paper reference by.
Definition: brisk_2d.h:74
pcl::BriskKeypoint2D::setThresholdvoid setThreshold(const int threshold)Sets the threshold for corner detection.Definition: brisk_2d.h:106
pcl::BriskKeypoint2D::setThreshold
void setThreshold(const int threshold)
Sets the threshold for corner detection.
Definition: brisk_2d.h:106
pcl::BriskKeypoint2D::setOctavesvoid setOctaves(const int octaves)Set the number of octaves to use.Definition: brisk_2d.h:122
pcl::BriskKeypoint2D::setOctaves
void setOctaves(const int octaves)
Set the number of octaves to use.
Definition: brisk_2d.h:122
pcl::Keypoint::computevoid compute(PointCloudOut &output)Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...Definition: keypoint.hpp:137
pcl::Keypoint::compute
void compute(PointCloudOut &output)
Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...
Definition: keypoint.hpp:137
pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::PointCloud< pcl::PointXYZRGBA >
pcl::PointCloud< pcl::PointXYZRGBA >

```


Author
Radu B. Rusu, Stefan Holzer 
 Definition at line [73](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00073) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[ConstPtr](classpcl_1_1_brisk_keypoint2_d#a40c07aaf8d5ba8427eb82fe49073c779) = shared\_ptr<const [BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)<PointInT, PointOutT, IntensityT> > |

 
 Definition at line [77](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00077) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[KdTree](classpcl_1_1_brisk_keypoint2_d#a58e65e7dd04f5afa53d58910e35cd25d) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[KdTree](classpcl_1_1_brisk_keypoint2_d#a58e65e7dd04f5afa53d58910e35cd25d) |

 
 Definition at line [81](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00081) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[PointCloudIn](classpcl_1_1_brisk_keypoint2_d#a30c48b9a817988850078724cc7ad185f) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_brisk_keypoint2_d#a30c48b9a817988850078724cc7ad185f) |

 
 Definition at line [79](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00079) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[PointCloudInConstPtr](classpcl_1_1_brisk_keypoint2_d#afc49a5e6237d461804418c0b55a136e5) = typename PointCloudIn::ConstPtr |

 
 Definition at line [82](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00082) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[PointCloudOut](classpcl_1_1_brisk_keypoint2_d#a33eca38658c08b7bc20b8aad32e7180f) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_brisk_keypoint2_d#a33eca38658c08b7bc20b8aad32e7180f) |

 
 Definition at line [80](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00080) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[Ptr](classpcl_1_1_brisk_keypoint2_d#adc257397588b8a925cc6d91d29e3ee40) = shared\_ptr<[BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)<PointInT, PointOutT, IntensityT> > |

 
 Definition at line [76](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00076) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  BriskKeypoint2D()
-----------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::[BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d) | ( | int  | *octaves* = `4`,  |
|  |  | int  | *threshold* = `60` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 Definition at line [90](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00090) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

 References [pcl::Keypoint< PointInT, pcl::PointWithScale >::k\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00190), and [pcl::Keypoint< PointInT, pcl::PointWithScale >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169).

    ~BriskKeypoint2D()
------------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::~[BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d) | ( |  | ) |  |

 | overridedefault |

 
 Destructor. 

   Member Function Documentation
-----------------------------

  bilinearInterpolation()
-----------------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::bilinearInterpolation  | ( | const [PointCloudInConstPtr](classpcl_1_1_brisk_keypoint2_d#afc49a5e6237d461804418c0b55a136e5) &  | *cloud*,  |
|  |  | float  | *x*,  |
|  |  | float  | *y*,  |
|  |  | PointOutT &  | *pt* |
|  | ) |  |  |

 | inline |

 
 Definition at line [156](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00156) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_brisk_keypoint2_d#a33eca38658c08b7bc20b8aad32e7180f) &  | *output* | ) |  |

 | overrideprotected |

 
 Detects the keypoints. 

 Definition at line [69](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html#l00069) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html).

 References [pcl::keypoints::brisk::ScaleSpace::constructPyramid()](classpcl_1_1keypoints_1_1brisk_1_1_scale_space#a7d76800cce5c06421299877f195dc0ba), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::keypoints::brisk::ScaleSpace::getKeypoints()](classpcl_1_1keypoints_1_1brisk_1_1_scale_space#ad3bd3803a23dc47879288696538f4749), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395).

    getOctaves()
------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::getOctaves  | ( |  | ) |  |

 | inline |

 
 Returns the number of octaves used. 

 Definition at line [129](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00129) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    getRemoveInvalid3DKeypoints()
-----------------------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| bool [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::getRemoveInvalid3DKeypoints  | ( |  | ) |  |

 | inline |

 
 Specify whether the keypoints that do not have a valid 3D position are kept (false) or removed (true). 

 Definition at line [149](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00149) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    getThreshold()
--------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| std::size\_t [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::getThreshold  | ( |  | ) |  |

 | inline |

 
 Get the threshold for corner detection, as set by the user. 

 Definition at line [113](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00113) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::initCompute |

 | overrideprotectedvirtual |

 
 Initializes everything and checks whether input data is fine. 

 Reimplemented from [pcl::Keypoint< PointInT, pcl::PointWithScale >](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db).

 Definition at line [50](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html#l00050) of file [brisk\_2d.hpp](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html).

    setOctaves()
------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::setOctaves  | ( | const int  | *octaves* | ) |  |

 | inline |

 
 Set the number of octaves to use. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | octaves | the number of octaves to use  |

   Definition at line [122](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00122) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    setRemoveInvalid3DKeypoints()
-----------------------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::setRemoveInvalid3DKeypoints  | ( | bool  | *remove* | ) |  |

 | inline |

 
 Specify whether we should do a 2nd pass through the list of keypoints found, and remove the ones that do not have a valid 3D (x-y-z) position (i.e., are NaN or Inf). 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | remove | set to true whether we want the invalid 3D keypoints removed  |

   Definition at line [140](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00140) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

    setThreshold()
--------------

    template<typename PointInT , typename PointOutT = pcl::PointWithScale, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::BriskKeypoint2D](classpcl_1_1_brisk_keypoint2_d)< PointInT, PointOutT, IntensityT >::setThreshold  | ( | const int  | *threshold* | ) |  |

 | inline |

 
 Sets the threshold for corner detection. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | threshold | the threshold used for corner detection.  |

   Definition at line [106](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html#l00106) of file [brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[brisk\_2d.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2brisk__2d_8h_source.html)
* pcl/keypoints/impl/[brisk\_2d.hpp](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2brisk__2d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_brisk_keypoint2_d.html>

[HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d "HarrisKeypoint2D detects Harris corners family points.") detects Harris corners family points. [More...](classpcl_1_1_harris_keypoint2_d#details)

 `#include <[pcl/keypoints/harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| enum  | [ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) { [HARRIS](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847bae8949ed252e7680ba96e7c229aeb7d75) = 1 , [NOBLE](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847ba01c9aee516720b1f5daf66ad2b9d6c91) , [LOWE](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847ba9f8046af76447fad430b397a08a88535) , [TOMASI](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847ba4a26e895cddf0331fe7cd90090468044) } |
|
| using  | [Ptr](classpcl_1_1_harris_keypoint2_d#a9a39ecf240bc5938af8e0bc01dcf44cb) = shared\_ptr< [HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT > > |
|
| using  | [ConstPtr](classpcl_1_1_harris_keypoint2_d#aa4d90c96abae3806b36e8e3d16628fd1) = shared\_ptr< const [HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT > > |
|
| using  | [PointCloudIn](classpcl_1_1_harris_keypoint2_d#ae0fd569ebdab1765b14f43d05d2c1a50) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_harris_keypoint2_d#ae0fd569ebdab1765b14f43d05d2c1a50) |
|
| using  | [PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) |
|
| using  | [KdTree](classpcl_1_1_harris_keypoint2_d#a36c76441ba05d455aeab9088429a0bad) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_harris_keypoint2_d#a36c76441ba05d455aeab9088429a0bad) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_harris_keypoint2_d#ad18de4b706bf79f0b77eded5069a7246) = typename PointCloudIn::ConstPtr |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d#a253ac013906ccc19917d8bec63c3598b) ([ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) method=[HARRIS](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847bae8949ed252e7680ba96e7c229aeb7d75), int window\_width=3, int window\_height=3, int min\_distance=5, float threshold=0.0) |
|  | Constructor. [More...](classpcl_1_1_harris_keypoint2_d#a253ac013906ccc19917d8bec63c3598b) |
|
| void  | [setMethod](classpcl_1_1_harris_keypoint2_d#a91d7fef58256748302ba05a9e724ddf7) ([ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) type) |
|  | set the method of the response to be calculated. [More...](classpcl_1_1_harris_keypoint2_d#a91d7fef58256748302ba05a9e724ddf7) |
|
| void  | [setWindowWidth](classpcl_1_1_harris_keypoint2_d#ae0587a8ce30ef1d36eb84e77e417680d) (int window\_width) |
|  | Set window width. [More...](classpcl_1_1_harris_keypoint2_d#ae0587a8ce30ef1d36eb84e77e417680d) |
|
| void  | [setWindowHeight](classpcl_1_1_harris_keypoint2_d#aa365f4785c8027780bb86a25f7996ff6) (int window\_height) |
|  | Set window height. [More...](classpcl_1_1_harris_keypoint2_d#aa365f4785c8027780bb86a25f7996ff6) |
|
| void  | [setSkippedPixels](classpcl_1_1_harris_keypoint2_d#a485e82af9c31d2babf6b3ff3f184cce1) (int skipped\_pixels) |
|  | Set number of pixels to skip. [More...](classpcl_1_1_harris_keypoint2_d#a485e82af9c31d2babf6b3ff3f184cce1) |
|
| void  | [setMinimalDistance](classpcl_1_1_harris_keypoint2_d#a90e3f17bc44a4afee50678d522f9603b) (int min\_distance) |
|  | Set minimal distance between candidate keypoints. [More...](classpcl_1_1_harris_keypoint2_d#a90e3f17bc44a4afee50678d522f9603b) |
|
| void  | [setThreshold](classpcl_1_1_harris_keypoint2_d#ac8c72d04eca58d9c035c735f556efcbb) (float threshold) |
|  | set the threshold value for detecting corners. [More...](classpcl_1_1_harris_keypoint2_d#ac8c72d04eca58d9c035c735f556efcbb) |
|
| void  | [setNonMaxSupression](classpcl_1_1_harris_keypoint2_d#a22dab1af5e082f9ac938ceb3ac90ac39) (bool=false) |
|  | whether non maxima suppression should be applied or the response for each point should be returned [More...](classpcl_1_1_harris_keypoint2_d#a22dab1af5e082f9ac938ceb3ac90ac39) |
|
| void  | [setRefine](classpcl_1_1_harris_keypoint2_d#a780a13a832c455e0f8e5d4c81df9bb0d) (bool do\_refine) |
|  | whether the detected key points should be refined or not. [More...](classpcl_1_1_harris_keypoint2_d#a780a13a832c455e0f8e5d4c81df9bb0d) |
|
| void  | [setNumberOfThreads](classpcl_1_1_harris_keypoint2_d#a09be8c7b4d38db15cf67dd1f22304c9e) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_harris_keypoint2_d#a09be8c7b4d38db15cf67dd1f22304c9e) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_harris_keypoint2_d#ac4a00cb9207969701db69664c45d5929) () override |
|
| void  | [detectKeypoints](classpcl_1_1_harris_keypoint2_d#a7a52cec2144a03818212a735da1e733c) ([PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &output) override |
|
| void  | [responseHarris](classpcl_1_1_harris_keypoint2_d#aa5c0370a076cc2fd98a9df58fee1a2ad) ([PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &output) const |
|  | gets the corner response for valid input points [More...](classpcl_1_1_harris_keypoint2_d#aa5c0370a076cc2fd98a9df58fee1a2ad) |
|
| void  | [responseNoble](classpcl_1_1_harris_keypoint2_d#a86a5cf208e39a3226233595e74883efd) ([PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &output) const |
|
| void  | [responseLowe](classpcl_1_1_harris_keypoint2_d#a64d837c8b58c4773f60f7bb5036c82c1) ([PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &output) const |
|
| void  | [responseTomasi](classpcl_1_1_harris_keypoint2_d#a6288dc24c2e0ed30859bdd18faae1028) ([PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &output) const |
|
| void  | [computeSecondMomentMatrix](classpcl_1_1_harris_keypoint2_d#aa1439eafe3edf60c1227975d1489db15) (std::size\_t pos, float \*coefficients) const |
|  | calculates the upper triangular part of unnormalized covariance matrix over intensities given by the 2D coordinates and window\_width\_ and window\_height\_ [More...](classpcl_1_1_harris_keypoint2_d#aa1439eafe3edf60c1227975d1489db15) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| float  | [threshold\_](classpcl_1_1_harris_keypoint2_d#ab69e5e33cfd310bc7df6b1d8f0669215) |
|  | threshold for non maxima suppression [More...](classpcl_1_1_harris_keypoint2_d#ab69e5e33cfd310bc7df6b1d8f0669215) |
|
| bool  | [refine\_](classpcl_1_1_harris_keypoint2_d#afd717f291207e72a70f0b40eb9efdb2e) |
|  | corner refinement [More...](classpcl_1_1_harris_keypoint2_d#afd717f291207e72a70f0b40eb9efdb2e) |
|
| bool  | [nonmax\_](classpcl_1_1_harris_keypoint2_d#aae6c31094a9f3d5e3a2b0d5458b2694c) |
|  | non maximas suppression [More...](classpcl_1_1_harris_keypoint2_d#aae6c31094a9f3d5e3a2b0d5458b2694c) |
|
| [ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) | [method\_](classpcl_1_1_harris_keypoint2_d#a1f5da154b775b2d0c47a958f7847e0a1) |
|  | cornerness computation method [More...](classpcl_1_1_harris_keypoint2_d#a1f5da154b775b2d0c47a958f7847e0a1) |
|
| unsigned int  | [threads\_](classpcl_1_1_harris_keypoint2_d#a005f27db4a1f4f03d9606c87c4269ac6) |
|  | number of threads to be used [More...](classpcl_1_1_harris_keypoint2_d#a005f27db4a1f4f03d9606c87c4269ac6) |
|
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>> class pcl::HarrisKeypoint2D< PointInT, PointOutT, IntensityT >

 [HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d "HarrisKeypoint2D detects Harris corners family points.") detects Harris corners family points. 

 
Author
Nizar Sallem 
 Definition at line [53](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00053) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[ConstPtr](classpcl_1_1_harris_keypoint2_d#aa4d90c96abae3806b36e8e3d16628fd1) = shared\_ptr<const [HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)<PointInT, PointOutT, IntensityT> > |

 
 Definition at line [57](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00057) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[KdTree](classpcl_1_1_harris_keypoint2_d#a36c76441ba05d455aeab9088429a0bad) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[KdTree](classpcl_1_1_harris_keypoint2_d#a36c76441ba05d455aeab9088429a0bad) |

 
 Definition at line [61](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00061) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[PointCloudIn](classpcl_1_1_harris_keypoint2_d#ae0fd569ebdab1765b14f43d05d2c1a50) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_harris_keypoint2_d#ae0fd569ebdab1765b14f43d05d2c1a50) |

 
 Definition at line [59](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00059) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[PointCloudInConstPtr](classpcl_1_1_harris_keypoint2_d#ad18de4b706bf79f0b77eded5069a7246) = typename PointCloudIn::ConstPtr |

 
 Definition at line [62](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00062) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) |

 
 Definition at line [60](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00060) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[Ptr](classpcl_1_1_harris_keypoint2_d#a9a39ecf240bc5938af8e0bc01dcf44cb) = shared\_ptr<[HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)<PointInT, PointOutT, IntensityT> > |

 
 Definition at line [56](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00056) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

   Member Enumeration Documentation
--------------------------------

  ResponseMethod
--------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| enum [pcl::HarrisKeypoint2D::ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) |

 
 

| Enumerator |
| --- |
| HARRIS  |  |
| NOBLE  |  |
| LOWE  |  |
| TOMASI  |  |

 Definition at line [69](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00069) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  HarrisKeypoint2D()
------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::[HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d) | ( | [ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) | *method* = `[HARRIS](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847bae8949ed252e7680ba96e7c229aeb7d75)`,  |
|  |  | int  | *window\_width* = `3`,  |
|  |  | int  | *window\_height* = `3`,  |
|  |  | int  | *min\_distance* = `5`,  |
|  |  | float  | *threshold* = `0.0` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | method | the method to be used to determine the corner responses  |
|  | window\_width |  |
|  | window\_height |  |
|  | min\_distance |  |
| [in] | threshold | the threshold to filter out weak corners  |

   Definition at line [78](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00078) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169).

   Member Function Documentation
-----------------------------

  computeSecondMomentMatrix()
---------------------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::computeSecondMomentMatrix  | ( | std::size\_t  | *pos*,  |
|  |  | float \*  | *coefficients* |
|  | ) |  |  const |

 | protected |

 
 calculates the upper triangular part of unnormalized covariance matrix over intensities given by the 2D coordinates and window\_width\_ and window\_height\_ 

 Definition at line [106](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00106) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &  | *output* | ) |  |

 | overrideprotected |

 
 !! nsallem 20120220 : we don't test here for density so if one term is nan the result is nan

 Definition at line [178](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00178) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

 References [pcl::isXYZFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00125).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::initCompute |

 | overrideprotectedvirtual |

 
 Reimplemented from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db).

 Definition at line [132](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00132) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    responseHarris()
----------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::responseHarris  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &  | *output* | ) |  const |

 | protected |

 
 gets the corner response for valid input points 

 Definition at line [305](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00305) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

 References [pcl::isXYZFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00125).

    responseLowe()
--------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::responseLowe  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [397](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00397) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

 References [pcl::isXYZFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00125).

    responseNoble()
---------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::responseNoble  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [351](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00351) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

 References [pcl::isXYZFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00125).

    responseTomasi()
----------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::responseTomasi  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint2_d#ab86d8e8a5072973dd9af35d6082b9e6a) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [443](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00443) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

 References [pcl::isXYZFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00125).

    setMethod()
-----------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setMethod  | ( | [ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) | *type* | ) |  |

 
 set the method of the response to be calculated. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | type |  |

   Definition at line [50](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00050) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setMinimalDistance()
--------------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setMinimalDistance  | ( | int  | *min\_distance* | ) |  |

 
 Set minimal distance between candidate keypoints. 

 Definition at line [99](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00099) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setNonMaxSupression()
---------------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setNonMaxSupression  | ( | bool  | *nonmax* = `false` | ) |  |

 
 whether non maxima suppression should be applied or the response for each point should be returned 

 
Note
this value needs to be turned on in order to apply thresholding and refinement 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nonmax | default is false  |

   Definition at line [71](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00071) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [133](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00133) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

 References [pcl::HarrisKeypoint2D< PointInT, PointOutT, IntensityT >::threads\_](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00165).

    setRefine()
-----------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setRefine  | ( | bool  | *do\_refine* | ) |  |

 
 whether the detected key points should be refined or not. 

 If turned of, the key points are a subset of the original point cloud. Otherwise the key points may be arbitrary.

 note non maxima suppression needs to be on in order to use this feature. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | do\_refine |  |

   Definition at line [64](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00064) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setSkippedPixels()
------------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setSkippedPixels  | ( | int  | *skipped\_pixels* | ) |  |

 
 Set number of pixels to skip. 

 Definition at line [92](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00092) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setThreshold()
--------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setThreshold  | ( | float  | *threshold* | ) |  |

 
 set the threshold value for detecting corners. 

 This is only evaluated if non maxima suppression is turned on.

 note non maxima suppression needs to be activated in order to use this feature. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | threshold |  |

   Definition at line [57](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00057) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setWindowHeight()
-----------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setWindowHeight  | ( | int  | *window\_height* | ) |  |

 
 Set window height. 

 Definition at line [85](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00085) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

    setWindowWidth()
----------------

    template<typename PointInT , typename PointOutT , typename IntensityT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::setWindowWidth  | ( | int  | *window\_width* | ) |  |

 
 Set window width. 

 Definition at line [78](https://pointclouds.org/documentation/harris__2d_8hpp_source.html#l00078) of file [harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html).

   Member Data Documentation
-------------------------

  method\_
--------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [ResponseMethod](classpcl_1_1_harris_keypoint2_d#a2e567bec4ce62fa55b83ed539cde847b) [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::method\_ |

 | protected |

 
 cornerness computation method 

 Definition at line [163](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00163) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    nonmax\_
--------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::nonmax\_ |

 | protected |

 
 non maximas suppression 

 Definition at line [161](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00161) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    refine\_
--------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::refine\_ |

 | protected |

 
 corner refinement 

 Definition at line [159](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00159) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

    threads\_
---------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::threads\_ |

 | protected |

 
 number of threads to be used 

 Definition at line [165](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00165) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

 Referenced by [pcl::HarrisKeypoint2D< PointInT, PointOutT, IntensityT >::setNumberOfThreads()](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00133).

    threshold\_
-----------

    template<typename PointInT , typename PointOutT , typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::HarrisKeypoint2D](classpcl_1_1_harris_keypoint2_d)< PointInT, PointOutT, IntensityT >::threshold\_ |

 | protected |

 
 threshold for non maxima suppression 

 Definition at line [157](https://pointclouds.org/documentation/harris__2d_8h_source.html#l00157) of file [harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[harris\_2d.h](https://pointclouds.org/documentation/harris__2d_8h_source.html)
* pcl/keypoints/impl/[harris\_2d.hpp](https://pointclouds.org/documentation/harris__2d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_harris_keypoint2_d.html>

[HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d "HarrisKeypoint3D uses the idea of 2D Harris keypoints, but instead of using image gradients,...") uses the idea of 2D Harris keypoints, but instead of using image gradients, it uses surface normals. [More...](classpcl_1_1_harris_keypoint3_d#details)

 `#include <[pcl/keypoints/harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| enum  | [ResponseMethod](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187) {  [HARRIS](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187aae1cd7868184d698a1e4eaa659ceb67b) = 1 , [NOBLE](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187a44b647aef21bf6e729040811c48a851c) , [LOWE](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187a62c99cee45eadd40bdc3275e1a492cb4) , [TOMASI](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187a9f579996fc55f8a9f01925bedbc91a6f) ,  [CURVATURE](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187a6159b39a0350ae43cfbe64457af06a50)  } |
|
| using  | [Ptr](classpcl_1_1_harris_keypoint3_d#a8f737431acbce5f2dad347624570567c) = shared\_ptr< [HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) > > |
|
| using  | [ConstPtr](classpcl_1_1_harris_keypoint3_d#a6cee1da8d6f509f0dc679fd5ffb2372f) = shared\_ptr< const [HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) > > |
|
| using  | [PointCloudIn](classpcl_1_1_harris_keypoint3_d#af812023322dab8086bb940a06258e676) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_harris_keypoint3_d#af812023322dab8086bb940a06258e676) |
|
| using  | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) |
|
| using  | [KdTree](classpcl_1_1_harris_keypoint3_d#a320baa768300e0500ff12351ed51411c) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_harris_keypoint3_d#a320baa768300e0500ff12351ed51411c) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_harris_keypoint3_d#ae8f2b1a05313fd1b82a73cc116010865) = typename PointCloudIn::ConstPtr |
|
| using  | [PointCloudN](classpcl_1_1_harris_keypoint3_d#a5808cbb9978c15b702ae2e46bb779253) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > |
|
| using  | [PointCloudNPtr](classpcl_1_1_harris_keypoint3_d#a093345f533e96dbb8758b5399ffde8ce) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_harris_keypoint3_d#a37c9f4b503236e8d504d231fa3d4584c) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d#a1afa16c2e7c1b8b8a1cca616b1845a18) ([ResponseMethod](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187) method=[HARRIS](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187aae1cd7868184d698a1e4eaa659ceb67b), float radius=0.01f, float threshold=0.0f) |
|  | Constructor. [More...](classpcl_1_1_harris_keypoint3_d#a1afa16c2e7c1b8b8a1cca616b1845a18) |
|
|  | [~HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d#ab643c29ebd7ac1ab095a3c1ad26370d3) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_harris_keypoint3_d#ab643c29ebd7ac1ab095a3c1ad26370d3) |
|
| void  | [setInputCloud](classpcl_1_1_harris_keypoint3_d#abe026ff6de2f34e99c3c00a89efc398a) (const [PointCloudInConstPtr](classpcl_1_1_harris_keypoint3_d#ae8f2b1a05313fd1b82a73cc116010865) &cloud) override |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_harris_keypoint3_d#abe026ff6de2f34e99c3c00a89efc398a) |
|
| void  | [setMethod](classpcl_1_1_harris_keypoint3_d#abf699289812b5dc5cc79b97df93767a1) ([ResponseMethod](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187) type) |
|  | Set the method of the response to be calculated. [More...](classpcl_1_1_harris_keypoint3_d#abf699289812b5dc5cc79b97df93767a1) |
|
| void  | [setRadius](classpcl_1_1_harris_keypoint3_d#a9c95472adc1a41da8860edae7fbf9e90) (float radius) |
|  | Set the radius for normal estimation and non maxima suppression. [More...](classpcl_1_1_harris_keypoint3_d#a9c95472adc1a41da8860edae7fbf9e90) |
|
| void  | [setThreshold](classpcl_1_1_harris_keypoint3_d#ad5874363fb23e47c4d3bb038fcb30c1c) (float threshold) |
|  | Set the threshold value for detecting corners. [More...](classpcl_1_1_harris_keypoint3_d#ad5874363fb23e47c4d3bb038fcb30c1c) |
|
| void  | [setNonMaxSupression](classpcl_1_1_harris_keypoint3_d#ab7d78e7ad7d9505fea7bfa7d2e836023) (bool=false) |
|  | Whether non maxima suppression should be applied or the response for each point should be returned. [More...](classpcl_1_1_harris_keypoint3_d#ab7d78e7ad7d9505fea7bfa7d2e836023) |
|
| void  | [setRefine](classpcl_1_1_harris_keypoint3_d#af0d6b4d9dae5e0ff5137c19b4352e27e) (bool do\_refine) |
|  | Whether the detected key points should be refined or not. [More...](classpcl_1_1_harris_keypoint3_d#af0d6b4d9dae5e0ff5137c19b4352e27e) |
|
| void  | [setNormals](classpcl_1_1_harris_keypoint3_d#a70fba15fb0957bf087d3a17b096545c7) (const [PointCloudNConstPtr](classpcl_1_1_harris_keypoint3_d#a37c9f4b503236e8d504d231fa3d4584c) &normals) |
|  | Set normals if precalculated normals are available. [More...](classpcl_1_1_harris_keypoint3_d#a70fba15fb0957bf087d3a17b096545c7) |
|
| void  | [setSearchSurface](classpcl_1_1_harris_keypoint3_d#ab82311b58ce8fd4dac0be3596009f122) (const [PointCloudInConstPtr](classpcl_1_1_harris_keypoint3_d#ae8f2b1a05313fd1b82a73cc116010865) &cloud) override |
|  | Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. [More...](classpcl_1_1_harris_keypoint3_d#ab82311b58ce8fd4dac0be3596009f122) |
|
| void  | [setNumberOfThreads](classpcl_1_1_harris_keypoint3_d#a7f7a8adf1f523ef11509e2e2dcda78d9) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_harris_keypoint3_d#a7f7a8adf1f523ef11509e2e2dcda78d9) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_harris_keypoint3_d#a4501ac2d3546ccc8fca7a5f7d1c94db0) () override |
|
| void  | [detectKeypoints](classpcl_1_1_harris_keypoint3_d#a231e5ae081bc1764e5e9003613226f2d) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &output) override |
|
| void  | [responseHarris](classpcl_1_1_harris_keypoint3_d#a5fc92825eb963fbab8a538644594e8cc) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &output) const |
|  | gets the corner response for valid input points [More...](classpcl_1_1_harris_keypoint3_d#a5fc92825eb963fbab8a538644594e8cc) |
|
| void  | [responseNoble](classpcl_1_1_harris_keypoint3_d#a38cc1ad0cb18e53eebad0929b9e2ceef) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &output) const |
|
| void  | [responseLowe](classpcl_1_1_harris_keypoint3_d#adcdc423d1b6c51e326f32048c2f924e7) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &output) const |
|
| void  | [responseTomasi](classpcl_1_1_harris_keypoint3_d#a11ffe872261553c144bd5f6b834e5ff2) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &output) const |
|
| void  | [responseCurvature](classpcl_1_1_harris_keypoint3_d#a80e32cb4619b0ce48ae46f861c8b23a7) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &output) const |
|
| void  | [refineCorners](classpcl_1_1_harris_keypoint3_d#a97eba535cba9946aa2fe20e79d6310ca) ([PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &corners) const |
|
| void  | [calculateNormalCovar](classpcl_1_1_harris_keypoint3_d#ae0ba44857fd8ee0789677e3ceee24ba2) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &neighbors, float \*coefficients) const |
|  | calculates the upper triangular part of unnormalized covariance matrix over the normals given by the indices. [More...](classpcl_1_1_harris_keypoint3_d#ae0ba44857fd8ee0789677e3ceee24ba2) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT, typename NormalT = pcl::Normal> class pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >

 [HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d "HarrisKeypoint3D uses the idea of 2D Harris keypoints, but instead of using image gradients,...") uses the idea of 2D Harris keypoints, but instead of using image gradients, it uses surface normals. 

 
Author
Suat Gedikli 
 Definition at line [51](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00051) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[ConstPtr](classpcl_1_1_harris_keypoint3_d#a6cee1da8d6f509f0dc679fd5ffb2372f) = shared\_ptr<const [HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)<PointInT, PointOutT, [NormalT](structpcl_1_1_normal)> > |

 
 Definition at line [55](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00055) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[KdTree](classpcl_1_1_harris_keypoint3_d#a320baa768300e0500ff12351ed51411c) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[KdTree](classpcl_1_1_harris_keypoint3_d#a320baa768300e0500ff12351ed51411c) |

 
 Definition at line [59](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00059) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudIn](classpcl_1_1_harris_keypoint3_d#af812023322dab8086bb940a06258e676) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_harris_keypoint3_d#af812023322dab8086bb940a06258e676) |

 
 Definition at line [57](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00057) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudInConstPtr](classpcl_1_1_harris_keypoint3_d#ae8f2b1a05313fd1b82a73cc116010865) = typename PointCloudIn::ConstPtr |

 
 Definition at line [60](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00060) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    PointCloudN
-----------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudN](classpcl_1_1_harris_keypoint3_d#a5808cbb9978c15b702ae2e46bb779253) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[NormalT](structpcl_1_1_normal)> |

 
 Definition at line [62](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00062) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    PointCloudNConstPtr
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudNConstPtr](classpcl_1_1_harris_keypoint3_d#a37c9f4b503236e8d504d231fa3d4584c) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [64](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00064) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    PointCloudNPtr
--------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudNPtr](classpcl_1_1_harris_keypoint3_d#a093345f533e96dbb8758b5399ffde8ce) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [63](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00063) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) |

 
 Definition at line [58](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00058) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[Ptr](classpcl_1_1_harris_keypoint3_d#a8f737431acbce5f2dad347624570567c) = shared\_ptr<[HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)<PointInT, PointOutT, [NormalT](structpcl_1_1_normal)> > |

 
 Definition at line [54](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00054) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

   Member Enumeration Documentation
--------------------------------

  ResponseMethod
--------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| enum [pcl::HarrisKeypoint3D::ResponseMethod](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187) |

 
 

| Enumerator |
| --- |
| HARRIS  |  |
| NOBLE  |  |
| LOWE  |  |
| TOMASI  |  |
| CURVATURE  |  |

 Definition at line [78](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00078) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  HarrisKeypoint3D()
------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d) | ( | [ResponseMethod](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187) | *method* = `[HARRIS](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187aae1cd7868184d698a1e4eaa659ceb67b)`,  |
|  |  | float  | *radius* = `0.01f`,  |
|  |  | float  | *threshold* = `0.0f` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | method | the method to be used to determine the corner responses  |
| [in] | radius | the radius for normal estimation as well as for non maxima suppression  |
| [in] | threshold | the threshold to filter out weak corners  |

   Definition at line [85](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00085) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169), and [pcl::Keypoint< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00187).

    ~HarrisKeypoint3D()
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::~[HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  calculateNormalCovar()
----------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::calculateNormalCovar  | ( | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *neighbors*,  |
|  |  | float \*  | *coefficients* |
|  | ) |  |  const |

 | protected |

 
 calculates the upper triangular part of unnormalized covariance matrix over the normals given by the indices. 

 Definition at line [103](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00103) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *output* | ) |  |

 | overrideprotected |

 
 Definition at line [238](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00238) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

 References [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::initCompute |

 | overrideprotectedvirtual |

 
 Reimplemented from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db).

 Definition at line [192](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00192) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

 References [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00232), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalEstimationMethod()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00214), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00190), and [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198).

    refineCorners()
---------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::refineCorners  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *corners* | ) |  const |

 | protected |

 
 Definition at line [502](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00502) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    responseCurvature()
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::responseCurvature  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [439](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00439) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    responseHarris()
----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::responseHarris  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *output* | ) |  const |

 | protected |

 
 gets the corner response for valid input points 

 Definition at line [318](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00318) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    responseLowe()
--------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::responseLowe  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [399](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00399) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    responseNoble()
---------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::responseNoble  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [359](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00359) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    responseTomasi()
----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::responseTomasi  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint3_d#a6e4cdc25ae280c5d956b33bac7bb8e50) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [457](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00457) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

 References [pcl::eigen33()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2eigen_8hpp_source.html#l00296), and [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    setInputCloud()
---------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setInputCloud  | ( | const [PointCloudInConstPtr](classpcl_1_1_harris_keypoint3_d#ae8f2b1a05313fd1b82a73cc116010865) &  | *cloud* | ) |  |

 | override |

 
 Provide a pointer to the input dataset. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |

   Definition at line [52](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00052) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    setMethod()
-----------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setMethod  | ( | [ResponseMethod](classpcl_1_1_harris_keypoint3_d#a372b4e5dd47b17cb70dd3a8f6e9e4187) | *type* | ) |  |

 
 Set the method of the response to be calculated. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | type |  |

   Definition at line [61](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00061) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    setNonMaxSupression()
---------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNonMaxSupression  | ( | bool  | *nonmax* = `false` | ) |  |

 
 Whether non maxima suppression should be applied or the response for each point should be returned. 

 
Note
this value needs to be turned on in order to apply thresholding and refinement 
 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nonmax | default is false  |

   Definition at line [89](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00089) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    setNormals()
------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNormals  | ( | const [PointCloudNConstPtr](classpcl_1_1_harris_keypoint3_d#a37c9f4b503236e8d504d231fa3d4584c) &  | *normals* | ) |  |

 
 Set normals if precalculated normals are available. 

 
Parameters
 

|  |  |
| --- | --- |
| normals |  |

   Definition at line [96](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00096) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [158](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00158) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

    setRadius()
-----------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setRadius  | ( | float  | *radius* | ) |  |

 
 Set the radius for normal estimation and non maxima suppression. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | radius |  |

   Definition at line [75](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00075) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    setRefine()
-----------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setRefine  | ( | bool  | *do\_refine* | ) |  |

 
 Whether the detected key points should be refined or not. 

 If turned of, the key points are a subset of the original point cloud. Otherwise the key points may be arbitrary.

 note non maxima suppression needs to be on in order to use this feature. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | do\_refine |  |

   Definition at line [82](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00082) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

    setSearchSurface()
------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setSearchSurface  | ( | const [PointCloudInConstPtr](classpcl_1_1_harris_keypoint3_d#ae8f2b1a05313fd1b82a73cc116010865) &  | *cloud* | ) |  |

 | inlineoverride |

 
 Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. 

 This is optional, if this is not set, it will only use the data in the input cloud to estimate the features. This is useful when you only need to compute the features for a downsampled cloud. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | cloud | a pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |

   Definition at line [152](https://pointclouds.org/documentation/harris__3d_8h_source.html#l00152) of file [harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::surface\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00178).

    setThreshold()
--------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint3D](classpcl_1_1_harris_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setThreshold  | ( | float  | *threshold* | ) |  |

 
 Set the threshold value for detecting corners. 

 This is only evaluated if non maxima suppression is turned on.

 note non maxima suppression needs to be activated in order to use this feature. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | threshold |  |

   Definition at line [68](https://pointclouds.org/documentation/harris__3d_8hpp_source.html#l00068) of file [harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[harris\_3d.h](https://pointclouds.org/documentation/harris__3d_8h_source.html)
* pcl/keypoints/impl/[harris\_3d.hpp](https://pointclouds.org/documentation/harris__3d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_harris_keypoint3_d.html>

[Keypoint](classpcl_1_1_keypoint "Keypoint represents the base class for key points.") detector for detecting corners in 3D (XYZ), 2D (intensity) AND mixed versions of these. [More...](classpcl_1_1_harris_keypoint6_d#details)

 `#include <[pcl/keypoints/harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_harris_keypoint6_d#a88b04a9a3d45378aae81fb616417c780) = shared\_ptr< [HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) > > |
|
| using  | [ConstPtr](classpcl_1_1_harris_keypoint6_d#a1c3d4b666bcac7d6449203515de89dbc) = shared\_ptr< const [HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) > > |
|
| using  | [PointCloudIn](classpcl_1_1_harris_keypoint6_d#a118cbfe6cd1a847dfd6d445a97164342) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_harris_keypoint6_d#a118cbfe6cd1a847dfd6d445a97164342) |
|
| using  | [PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) |
|
| using  | [KdTree](classpcl_1_1_harris_keypoint6_d#a7539dd5480e7585f8caaff07b850d4b0) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_harris_keypoint6_d#a7539dd5480e7585f8caaff07b850d4b0) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_harris_keypoint6_d#a533db056b0681f3e0c3375e3fd3df478) = typename PointCloudIn::ConstPtr |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d#acdf288a88556dc936f8331aea5ce17ed) (float radius=0.01, float threshold=0.0) |
|  | Constructor. [More...](classpcl_1_1_harris_keypoint6_d#acdf288a88556dc936f8331aea5ce17ed) |
|
| virtual  | [~HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d#aab3d1051ae69b7b3dfd767423117885a) ()=default |
|  | Empty destructor. [More...](classpcl_1_1_harris_keypoint6_d#aab3d1051ae69b7b3dfd767423117885a) |
|
| void  | [setRadius](classpcl_1_1_harris_keypoint6_d#a3a47cfa8e967df522ef722b1eacf57b7) (float radius) |
|  | set the radius for normal estimation and non maxima suppression. [More...](classpcl_1_1_harris_keypoint6_d#a3a47cfa8e967df522ef722b1eacf57b7) |
|
| void  | [setThreshold](classpcl_1_1_harris_keypoint6_d#a2363b81d8258ccd044efb83ad0120291) (float threshold) |
|  | set the threshold value for detecting corners. [More...](classpcl_1_1_harris_keypoint6_d#a2363b81d8258ccd044efb83ad0120291) |
|
| void  | [setNonMaxSupression](classpcl_1_1_harris_keypoint6_d#a1c0c0da396e659eb9e14128ee95216b3) (bool=false) |
|  | whether non maxima suppression should be applied or the response for each point should be returned [More...](classpcl_1_1_harris_keypoint6_d#a1c0c0da396e659eb9e14128ee95216b3) |
|
| void  | [setRefine](classpcl_1_1_harris_keypoint6_d#a390001f22f742bb1f7fe26f519bc114d) (bool do\_refine) |
|  | whether the detected key points should be refined or not. [More...](classpcl_1_1_harris_keypoint6_d#a390001f22f742bb1f7fe26f519bc114d) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_harris_keypoint6_d#add849d0ae6b9d6705ad3d68dd231b9a0) (const [PointCloudInConstPtr](classpcl_1_1_harris_keypoint6_d#a533db056b0681f3e0c3375e3fd3df478) &cloud) |
|
| void  | [setNumberOfThreads](classpcl_1_1_harris_keypoint6_d#a51f92a6da3cee1ea3144bb91d617ade2) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_harris_keypoint6_d#a51f92a6da3cee1ea3144bb91d617ade2) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [detectKeypoints](classpcl_1_1_harris_keypoint6_d#a6322ec64de1cafa4a6320b8dea17d858) ([PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) &output) |
|
| void  | [responseTomasi](classpcl_1_1_harris_keypoint6_d#a4d414fd4699b9679f08f8c41d9fc101e) ([PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) &output) const |
|
| void  | [refineCorners](classpcl_1_1_harris_keypoint6_d#a712a8f7399e4fd179b3a8d9f99dc6a68) ([PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) &corners) const |
|
| void  | [calculateCombinedCovar](classpcl_1_1_harris_keypoint6_d#af2323bb0fc59a5ab101e397b5d618dc4) (const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &neighbors, float \*coefficients) const |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| virtual bool  | [initCompute](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db) () |
|
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT, typename NormalT = pcl::Normal> class pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >

 [Keypoint](classpcl_1_1_keypoint "Keypoint represents the base class for key points.") detector for detecting corners in 3D (XYZ), 2D (intensity) AND mixed versions of these. 

 
Author
Suat Gedikli 
 Definition at line [49](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00049) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[ConstPtr](classpcl_1_1_harris_keypoint6_d#a1c3d4b666bcac7d6449203515de89dbc) = shared\_ptr<const [HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)<PointInT, PointOutT, [NormalT](structpcl_1_1_normal)> > |

 
 Definition at line [53](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00053) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[KdTree](classpcl_1_1_harris_keypoint6_d#a7539dd5480e7585f8caaff07b850d4b0) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[KdTree](classpcl_1_1_harris_keypoint6_d#a7539dd5480e7585f8caaff07b850d4b0) |

 
 Definition at line [57](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00057) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudIn](classpcl_1_1_harris_keypoint6_d#a118cbfe6cd1a847dfd6d445a97164342) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_harris_keypoint6_d#a118cbfe6cd1a847dfd6d445a97164342) |

 
 Definition at line [55](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00055) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudInConstPtr](classpcl_1_1_harris_keypoint6_d#a533db056b0681f3e0c3375e3fd3df478) = typename PointCloudIn::ConstPtr |

 
 Definition at line [58](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00058) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) |

 
 Definition at line [56](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00056) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[Ptr](classpcl_1_1_harris_keypoint6_d#a88b04a9a3d45378aae81fb616417c780) = shared\_ptr<[HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)<PointInT, PointOutT, [NormalT](structpcl_1_1_normal)> > |

 
 Definition at line [52](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00052) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  HarrisKeypoint6D()
------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d) | ( | float  | *radius* = `0.01`,  |
|  |  | float  | *threshold* = `0.0` |
|  | ) |  |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |
| --- | --- |
| radius | the radius for normal estimation as well as for non maxima suppression  |
| threshold | the threshold to filter out weak corners  |

   Definition at line [75](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00075) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169), and [pcl::Keypoint< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00187).

    ~HarrisKeypoint6D()
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| virtual [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::~[HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d) | ( |  | ) |  |

 | virtualdefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  calculateCombinedCovar()
------------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::calculateCombinedCovar  | ( | const [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *neighbors*,  |
|  |  | float \*  | *coefficients* |
|  | ) |  |  const |

 | protected |

 
 Definition at line [75](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00075) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

    detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) &  | *output* | ) |  |

 | protected |

 
 Definition at line [142](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00142) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

 References [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::copyPointCloud()](https://pointclouds.org/documentation/common_2include_2pcl_2common_2impl_2io_8hpp_source.html#l00142), [pcl::PointCloud< PointT >::is\_dense](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00403), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), [pcl::PointCloud< PointT >::points](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00395), [pcl::PointCloud< PointT >::resize()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00462), [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065), [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00232), [pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::setInputNormals()](https://pointclouds.org/documentation/feature_8h_source.html#l00339), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalEstimationMethod()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00214), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00190), [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    refineCorners()
---------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::refineCorners  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) &  | *corners* | ) |  const |

 | protected |

 
 Definition at line [357](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00357) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

 References [pcl::search::KdTree< PointT, Tree >::radiusSearch()](https://pointclouds.org/documentation/kdtree_8hpp_source.html#l00096), and [pcl::search::KdTree< PointT, Tree >::setInputCloud()](https://pointclouds.org/documentation/kdtree_8hpp_source.html#l00076).

    responseTomasi()
----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::responseTomasi  | ( | [PointCloudOut](classpcl_1_1_harris_keypoint6_d#a655377e4911ee0e25f5f498c189c49d3) &  | *output* | ) |  const |

 | protected |

 
 Definition at line [267](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00267) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    setNonMaxSupression()
---------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNonMaxSupression  | ( | bool  | *nonmax* = `false` | ) |  |

 
 whether non maxima suppression should be applied or the response for each point should be returned 

 
Note
this value needs to be turned on in order to apply thresholding and refinement 
 
Parameters
 

|  |  |
| --- | --- |
| nonmax | default is false  |

   Definition at line [68](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00068) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 | inline |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |
| --- | --- |
| nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [124](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00124) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

    setRadius()
-----------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setRadius  | ( | float  | *radius* | ) |  |

 
 set the radius for normal estimation and non maxima suppression. 

 
Parameters
 

|  |  |
| --- | --- |
| radius |  |

   Definition at line [56](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00056) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

    setRefine()
-----------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setRefine  | ( | bool  | *do\_refine* | ) |  |

 
 whether the detected key points should be refined or not. 

 If turned of, the key points are a subset of the original point cloud. Otherwise the key points may be arbitrary.

 note non maxima suppression needs to be on in order to use this feature. 



Parameters
 

|  |  |
| --- | --- |
| do\_refine |  |

   Definition at line [62](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00062) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

    setSearchSurface()
------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setSearchSurface  | ( | const [PointCloudInConstPtr](classpcl_1_1_harris_keypoint6_d#a533db056b0681f3e0c3375e3fd3df478) &  | *cloud* | ) |  |

 | inlinevirtual |

 
 Definition at line [118](https://pointclouds.org/documentation/harris__6d_8h_source.html#l00118) of file [harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html).

 References [pcl::PointCloud< PointT >::clear()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00885), and [pcl::Keypoint< PointInT, PointOutT >::surface\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00178).

    setThreshold()
--------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::HarrisKeypoint6D](classpcl_1_1_harris_keypoint6_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setThreshold  | ( | float  | *threshold* | ) |  |

 
 set the threshold value for detecting corners. 

 This is only evaluated if non maxima suppression is turned on.

 note non maxima suppression needs to be activated in order to use this feature. 



Parameters
 

|  |  |
| --- | --- |
| threshold |  |

   Definition at line [50](https://pointclouds.org/documentation/harris__6d_8hpp_source.html#l00050) of file [harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[harris\_6d.h](https://pointclouds.org/documentation/harris__6d_8h_source.html)
* pcl/keypoints/impl/[harris\_6d.hpp](https://pointclouds.org/documentation/harris__6d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_harris_keypoint6_d.html>

**[Keypoint](classpcl_1_1_keypoint "Keypoint represents the base class for key points.")** represents the base class for key points. [More...](classpcl_1_1_keypoint#details)

 `#include <[pcl/2d/keypoint.h](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2keypoint_8h_source.html)>`

    ![Inheritance graph](https://pointclouds.org/documentation/classpcl_1_1_keypoint__inherit__graph.png)                          [[legend](graph_legend)]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (ImageType &output, ImageType &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (ImageType &output, ImageType &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (ImageType &output, ImageType &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (ImageType &output, ImageType &input1, ImageType &input2) |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| virtual bool  | [initCompute](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db) () |
|
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename ImageType> class pcl::Keypoint< ImageType >

 **[Keypoint](classpcl_1_1_keypoint "Keypoint represents the base class for key points.")** represents the base class for key points. 

 
Author
Bastian Steder 
 Definition at line [49](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2keypoint_8h_source.html#l00049) of file [keypoint.h](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2keypoint_8h_source.html).

 
Member Typedef Documentation
----------------------------

  BaseClass
---------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)<PointInT> |

 
 Definition at line [63](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00063) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    ConstPtr
--------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr<const [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT> > |

 
 Definition at line [58](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00058) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    KdTree
------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)<PointInT> |

 
 Definition at line [64](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00064) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    KdTreePtr
---------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |

 
 Definition at line [65](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00065) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    PointCloudIn
------------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointInT> |

 
 Definition at line [66](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00066) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    PointCloudInConstPtr
--------------------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [68](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00068) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    PointCloudInPtr
---------------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [67](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00067) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    PointCloudOut
-------------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)<PointOutT> |

 
 Definition at line [69](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00069) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    Ptr
---

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr<[Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT> > |

 
 Definition at line [57](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00057) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    SearchMethod
------------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function<int ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector<float> &)> |

 
 Definition at line [70](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00070) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    SearchMethodSurface
-------------------

    template<typename ImageType >  

|  |
| --- |
| using [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function<int (const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector<float> &)> |

 
 Definition at line [71](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00071) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  Keypoint() [1/2]
----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[Keypoint](classpcl_1_1_keypoint) | ( |  | ) |  |

 | default |

 
    Keypoint() [2/2]
----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::[Keypoint](classpcl_1_1_keypoint) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [75](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00075) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

    ~Keypoint()
-----------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::~[Keypoint](classpcl_1_1_keypoint) | ( |  | ) |  |

 | overridedefault |

 
 Empty destructor. 

   Member Function Documentation
-----------------------------

  compute()
---------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::compute  | ( | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &  | *output* | ) |  |

 | inline |

 
 Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant point cloud model dataset containing the estimated features  |

   Definition at line [137](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2keypoint_8hpp_source.html#l00137) of file [keypoint.hpp](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2keypoint_8hpp_source.html).

    detectKeypoints()
-----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &  | *output* | ) |  |

 | protectedpure virtual |

 
 Abstract key point detection method. 

 Implemented in [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b), and [pcl::AgastKeypoint2DBase< pcl::PointXYZ, pcl::PointUV, pcl::common::IntensityFieldAccessor< pcl::PointXYZ > >](classpcl_1_1_agast_keypoint2_d_base#a4a08f9dc63a98faa07a0889913dbeb9b).

    getClassName()
--------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const std::string& [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getClassName  | ( |  | ) |  const |

 | inlineprotected |

 
 Get a string representation of the name of this class. 

 Definition at line [197](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00197) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169).

    getKeypointsIndices()
---------------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getKeypointsIndices  | ( |  | ) |  |

 | inline |

 
 
Returns
the keypoints indices in the input cloud. 
 
Note
not all the daughter classes populate the keypoints indices so check emptiness before use. 
 Definition at line [137](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00137) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::keypoints\_indices\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00193).

    getKSearch()
------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| int [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getKSearch  | ( |  | ) |  |

 | inline |

 
 get the number of k nearest neighbors used for the feature estimation. 

 Definition at line [120](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00120) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::k\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00190).

    getRadiusSearch()
-----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getRadiusSearch  | ( |  | ) |  |

 | inline |

 
 Get the sphere radius used for determining the neighbors. 

 Definition at line [131](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00131) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::search\_radius\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00187).

    getSearchMethod()
-----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getSearchMethod  | ( |  | ) |  |

 | inline |

 
 Get a pointer to the search method used. 

 Definition at line [106](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00106) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::tree\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00181).

    getSearchParameter()
--------------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| double [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getSearchParameter  | ( |  | ) |  |

 | inline |

 
 Get the internal search parameter. 

 Definition at line [110](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00110) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::search\_parameter\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00184).

    getSearchSurface()
------------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::getSearchSurface  | ( |  | ) |  |

 | inline |

 
 Get a pointer to the surface point cloud dataset. 

 Definition at line [96](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00096) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::surface\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00178).

    harrisCorner()
--------------

    template<typename ImageType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::harrisCorner  | ( | ImageType &  | *output*,  |
|  |  | ImageType &  | *input*,  |
|  |  | const float  | *sigma\_d*,  |
|  |  | const float  | *sigma\_i*,  |
|  |  | const float  | *alpha*,  |
|  |  | const float  | *thresh* |
|  | ) |  |  |

 
 Definition at line [54](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html#l00054) of file [keypoint.hpp](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html).

    hessianBlob() [1/2]
-------------------

    template<typename ImageType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::hessianBlob  | ( | ImageType &  | *output*,  |
|  |  | ImageType &  | *input*,  |
|  |  | const float  | *sigma*,  |
|  |  | bool  | *SCALE* |
|  | ) |  |  |

 
 Definition at line [122](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html#l00122) of file [keypoint.hpp](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html).

 References [pcl::kernel< PointT >::gaussianKernel()](https://pointclouds.org/documentation/kernel_8hpp_source.html#l00096).

    hessianBlob() [2/2]
-------------------

    template<typename ImageType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::hessianBlob  | ( | ImageType &  | *output*,  |
|  |  | ImageType &  | *input*,  |
|  |  | const float  | *start\_scale*,  |
|  |  | const float  | *scaling\_factor*,  |
|  |  | const int  | *num\_scales* |
|  | ) |  |  |

 
 Definition at line [182](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html#l00182) of file [keypoint.hpp](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html).

    imageElementMultiply()
----------------------

    template<typename ImageType >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::imageElementMultiply  | ( | ImageType &  | *output*,  |
|  |  | ImageType &  | *input1*,  |
|  |  | ImageType &  | *input2* |
|  | ) |  |  |

 
 Definition at line [244](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html#l00244) of file [keypoint.hpp](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::initCompute |

 | protectedvirtual |

 
 Reimplemented in [pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >](classpcl_1_1_trajkovic_keypoint3_d#a2a1177a43ae7eab9f43d143b27eb39bf), [pcl::TrajkovicKeypoint2D< PointInT, PointOutT, IntensityT >](classpcl_1_1_trajkovic_keypoint2_d#ab8e7d4b98e5ef54258fc35fc15592181), [pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >](classpcl_1_1_s_u_s_a_n_keypoint#a9fe73d5ae4b9b78d95e02f1bde8bded6), [pcl::SmoothedSurfacesKeypoint< PointT, PointNT >](classpcl_1_1_smoothed_surfaces_keypoint#a919e558878d42b90d795326f5dcfbc1f), [pcl::SIFTKeypoint< PointInT, PointOutT >](classpcl_1_1_s_i_f_t_keypoint#a38369ca56950376cb72b1db7aa206d7f), [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >](classpcl_1_1_i_s_s_keypoint3_d#ab35abd55d3aa81805393e48b6ad5c7a8), [pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >](classpcl_1_1_harris_keypoint3_d#a4501ac2d3546ccc8fca7a5f7d1c94db0), [pcl::HarrisKeypoint2D< PointInT, PointOutT, IntensityT >](classpcl_1_1_harris_keypoint2_d#ac4a00cb9207969701db69664c45d5929), [pcl::BriskKeypoint2D< PointInT, PointOutT, IntensityT >](classpcl_1_1_brisk_keypoint2_d#addbc56630209e2d547e79b03d1f8b415), [pcl::AgastKeypoint2DBase< PointInT, PointOutT, IntensityT >](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6), [pcl::AgastKeypoint2DBase< PointInT, pcl::PointUV, pcl::common::IntensityFieldAccessor< PointInT > >](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6), and [pcl::AgastKeypoint2DBase< pcl::PointXYZ, pcl::PointUV, pcl::common::IntensityFieldAccessor< pcl::PointXYZ > >](classpcl_1_1_agast_keypoint2_d_base#a912a118e07044efefe78135be6f210e6).

 Definition at line [51](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2keypoint_8hpp_source.html#l00051) of file [keypoint.hpp](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2impl_2keypoint_8hpp_source.html).

    searchForNeighbors()
--------------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| int [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::searchForNeighbors  | ( | [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) | *index*,  |
|  |  | double  | *parameter*,  |
|  |  | [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &  | *indices*,  |
|  |  | std::vector< float > &  | *distances* |
|  | ) |  |  const |

 | inline |

 
 Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. 

 
Parameters
 

|  |  |
| --- | --- |
| index | the index of the query point  |
| parameter | the search parameter (either k or radius)  |
| indices | the resultant vector of indices representing the k-nearest neighbors  |
| distances | the resultant vector of distances representing the distances from the query point to the k-nearest neighbors  |

   Definition at line [155](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00155) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::PCLBase< PointInT >::input\_](https://pointclouds.org/documentation/pcl__base_8h_source.html#l00147), [pcl::Keypoint< ImageType >::search\_method\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00172), [pcl::Keypoint< ImageType >::search\_method\_surface\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00175), and [pcl::Keypoint< ImageType >::surface\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00178).

    setKSearch()
------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::setKSearch  | ( | int  | *k* | ) |  |

 | inline |

 
 Set the number of k nearest neighbors to use for the feature estimation. 

 
Parameters
 

|  |  |
| --- | --- |
| k | the number of k-nearest neighbors  |

   Definition at line [116](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00116) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::k\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00190).

    setRadiusSearch()
-----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::setRadiusSearch  | ( | double  | *radius* | ) |  |

 | inline |

 
 Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. 

 
Parameters
 

|  |  |
| --- | --- |
| radius | the sphere radius used as the maximum distance to consider a point a neighbor  |

   Definition at line [127](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00127) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::search\_radius\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00187).

    setSearchMethod()
-----------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::setSearchMethod  | ( | const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &  | *tree* | ) |  |

 | inline |

 
 Provide a pointer to the search object. 

 
Parameters
 

|  |  |
| --- | --- |
| tree | a pointer to the spatial search object.  |

   Definition at line [102](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00102) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::tree\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00181).

    setSearchSurface()
------------------

    template<typename ImageType >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| virtual void [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::setSearchSurface  | ( | const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &  | *cloud* | ) |  |

 | inlinevirtual |

 
 Provide a pointer to the input dataset that we need to estimate features at every point for. 

 
Parameters
 

|  |  |
| --- | --- |
| cloud | the const boost shared pointer to a [PointCloud](classpcl_1_1_point_cloud "PointCloud represents the base class in PCL for storing collections of 3D points.") message  |

   Definition at line [92](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00092) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 References [pcl::Keypoint< ImageType >::surface\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00178).

   Member Data Documentation
-------------------------

  k\_
---

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::k\_ |

 | protected |

 
 The number of K nearest neighbors to use for each point. 

 Definition at line [190](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00190) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::getKSearch()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00120), and [pcl::Keypoint< ImageType >::setKSearch()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00116).

    keypoints\_indices\_
--------------------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::keypoints\_indices\_ |

 | protected |

 
 Indices of the keypoints in the input cloud. 

 Definition at line [193](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00193) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::getKeypointsIndices()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00137).

    name\_
------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::string [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::name\_ |

 | protected |

 
 The key point detection method's name. 

 Definition at line [169](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::AgastKeypoint2D< PointInT, PointOutT >::AgastKeypoint2D()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00734), [pcl::AgastKeypoint2D< pcl::PointXYZ, pcl::PointUV >::AgastKeypoint2D()](https://pointclouds.org/documentation/agast__2d_8h_source.html#l00782), and [pcl::Keypoint< ImageType >::getClassName()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00197).

    search\_method\_
----------------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::search\_method\_ |

 | protected |

 
 The search method template for indices. 

 Definition at line [172](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00172) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::searchForNeighbors()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00155).

    search\_method\_surface\_
-------------------------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::search\_method\_surface\_ |

 | protected |

 
 The search method template for points. 

 Definition at line [175](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00175) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::searchForNeighbors()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00155).

    search\_parameter\_
-------------------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::search\_parameter\_ |

 | protected |

 
 The actual search parameter (casted from either *search\_radius\_* or *k\_*). 

 Definition at line [184](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00184) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::getSearchParameter()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00110).

    search\_radius\_
----------------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::search\_radius\_ |

 | protected |

 
 The nearest neighbors search radius for each point. 

 Definition at line [187](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00187) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::getRadiusSearch()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00131), and [pcl::Keypoint< ImageType >::setRadiusSearch()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00127).

    surface\_
---------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::surface\_ |

 | protected |

 
 An input point cloud describing the surface that is to be used for nearest neighbors estimation. 

 Definition at line [178](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00178) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::getSearchSurface()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00096), [pcl::Keypoint< ImageType >::searchForNeighbors()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00155), and [pcl::Keypoint< ImageType >::setSearchSurface()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00092).

    tree\_
------

    template<typename ImageType >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) [pcl::Keypoint](classpcl_1_1_keypoint)< ImageType >::tree\_ |

 | protected |

 
 A pointer to the spatial search object. 

 Definition at line [181](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00181) of file [keypoint.h](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html).

 Referenced by [pcl::Keypoint< ImageType >::getSearchMethod()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00106), and [pcl::Keypoint< ImageType >::setSearchMethod()](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00102).

   

---

The documentation for this class was generated from the following files:* pcl/2d/[keypoint.h](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2keypoint_8h_source.html)
* pcl/2d/impl/[keypoint.hpp](https://pointclouds.org/documentation/2d_2include_2pcl_22d_2impl_2keypoint_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_keypoint.html>

[ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d "ISSKeypoint3D detects the Intrinsic Shape Signatures keypoints for a given point cloud.") detects the Intrinsic Shape Signatures keypoints for a given point cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#details)

 `#include <[pcl/keypoints/iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_i_s_s_keypoint3_d#a571e452eff2fe6e0d974e4111950ee00) = shared\_ptr< [ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) > > |
|
| using  | [ConstPtr](classpcl_1_1_i_s_s_keypoint3_d#aee3a40288899bafc4391cbfad8e08713) = shared\_ptr< const [ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) > > |
|
| using  | [PointCloudIn](classpcl_1_1_i_s_s_keypoint3_d#a2f488858bec85231d0d844e63d66af30) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_i_s_s_keypoint3_d#a2f488858bec85231d0d844e63d66af30) |
|
| using  | [PointCloudOut](classpcl_1_1_i_s_s_keypoint3_d#af2058f1878dbfad6e754677e7d638396) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_i_s_s_keypoint3_d#af2058f1878dbfad6e754677e7d638396) |
|
| using  | [PointCloudN](classpcl_1_1_i_s_s_keypoint3_d#a07de42c1cb17d4b918957f3332d7de70) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > |
|
| using  | [PointCloudNPtr](classpcl_1_1_i_s_s_keypoint3_d#ada0900fc3b7f86c5e48b474e3cf79cec) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_i_s_s_keypoint3_d#a28598d3caca87b0227e91d77c33f7c50) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [OctreeSearchIn](classpcl_1_1_i_s_s_keypoint3_d#a612d4605bbe2aec45151680e1e74e9a9) = [pcl::octree::OctreePointCloudSearch](https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_search.html)< PointInT > |
|
| using  | [OctreeSearchInPtr](classpcl_1_1_i_s_s_keypoint3_d#a00bf83c79f940d6a749319cf6ebe58e8) = typename [OctreeSearchIn::Ptr](https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_search.html#a7b8a77e7272ea255cbd28c99639df308) |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d#abd04154f4b62ac83bdc6811b433522de) (double salient\_radius=0.0001) |
|  | Constructor. [More...](classpcl_1_1_i_s_s_keypoint3_d#abd04154f4b62ac83bdc6811b433522de) |
|
|  | [~ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d#abcb6fc42bb09d6ef4d66bbf21dcbbeab) () override |
|  | Destructor. [More...](classpcl_1_1_i_s_s_keypoint3_d#abcb6fc42bb09d6ef4d66bbf21dcbbeab) |
|
| void  | [setSalientRadius](classpcl_1_1_i_s_s_keypoint3_d#a5feefc782bd54c324170b82482711360) (double salient\_radius) |
|  | Set the radius of the spherical neighborhood used to compute the scatter matrix. [More...](classpcl_1_1_i_s_s_keypoint3_d#a5feefc782bd54c324170b82482711360) |
|
| void  | [setNonMaxRadius](classpcl_1_1_i_s_s_keypoint3_d#ade672eadfb5e9ae231348cca7b49aabd) (double non\_max\_radius) |
|  | Set the radius for the application of the non maxima suppression algorithm. [More...](classpcl_1_1_i_s_s_keypoint3_d#ade672eadfb5e9ae231348cca7b49aabd) |
|
| void  | [setNormalRadius](classpcl_1_1_i_s_s_keypoint3_d#a9549a2fac5de5583404ee6699ffe26c1) (double normal\_radius) |
|  | Set the radius used for the estimation of the surface normals of the input cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#a9549a2fac5de5583404ee6699ffe26c1) |
|
| void  | [setBorderRadius](classpcl_1_1_i_s_s_keypoint3_d#a5f3b3731352fcb7b3dadca2a8bfa78e9) (double border\_radius) |
|  | Set the radius used for the estimation of the boundary points. [More...](classpcl_1_1_i_s_s_keypoint3_d#a5f3b3731352fcb7b3dadca2a8bfa78e9) |
|
| void  | [setThreshold21](classpcl_1_1_i_s_s_keypoint3_d#a8530d096380170a4d81d65ae2e85d9ca) (double gamma\_21) |
|  | Set the upper bound on the ratio between the second and the first eigenvalue. [More...](classpcl_1_1_i_s_s_keypoint3_d#a8530d096380170a4d81d65ae2e85d9ca) |
|
| void  | [setThreshold32](classpcl_1_1_i_s_s_keypoint3_d#aa0687ad53c67c5a140ecea019036d67d) (double gamma\_32) |
|  | Set the upper bound on the ratio between the third and the second eigenvalue. [More...](classpcl_1_1_i_s_s_keypoint3_d#aa0687ad53c67c5a140ecea019036d67d) |
|
| void  | [setMinNeighbors](classpcl_1_1_i_s_s_keypoint3_d#a90c224d042979a73195fdcbc7b007f05) (int min\_neighbors) |
|  | Set the minimum number of neighbors that has to be found while applying the non maxima suppression algorithm. [More...](classpcl_1_1_i_s_s_keypoint3_d#a90c224d042979a73195fdcbc7b007f05) |
|
| void  | [setNormals](classpcl_1_1_i_s_s_keypoint3_d#a2f59c8225cdd9e2b7aa8b309d73d7b13) (const [PointCloudNConstPtr](classpcl_1_1_i_s_s_keypoint3_d#a28598d3caca87b0227e91d77c33f7c50) &normals) |
|  | Set the normals if pre-calculated normals are available. [More...](classpcl_1_1_i_s_s_keypoint3_d#a2f59c8225cdd9e2b7aa8b309d73d7b13) |
|
| void  | [setAngleThreshold](classpcl_1_1_i_s_s_keypoint3_d#a8984ac00ee1822bcdae48486394175c1) (float angle) |
|  | Set the decision boundary (angle threshold) that marks points as boundary or regular. [More...](classpcl_1_1_i_s_s_keypoint3_d#a8984ac00ee1822bcdae48486394175c1) |
|
| void  | [setNumberOfThreads](classpcl_1_1_i_s_s_keypoint3_d#a2afb0b8044b352a795ab38f85218f581) (unsigned int nr\_threads=0) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_i_s_s_keypoint3_d#a2afb0b8044b352a795ab38f85218f581) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool \*  | [getBoundaryPoints](classpcl_1_1_i_s_s_keypoint3_d#aea90235222675852378ca58bd8202494) ([PointCloudIn](classpcl_1_1_i_s_s_keypoint3_d#a2f488858bec85231d0d844e63d66af30) &input, double border\_radius, float angle\_threshold) |
|  | Compute the boundary points for the given input cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#aea90235222675852378ca58bd8202494) |
|
| void  | [getScatterMatrix](classpcl_1_1_i_s_s_keypoint3_d#a61e2d8e2b2546001194e438034bb1f8d) (const int &current\_index, Eigen::Matrix3d &cov\_m) |
|  | Compute the scatter matrix for a point index. [More...](classpcl_1_1_i_s_s_keypoint3_d#a61e2d8e2b2546001194e438034bb1f8d) |
|
| bool  | [initCompute](classpcl_1_1_i_s_s_keypoint3_d#ab35abd55d3aa81805393e48b6ad5c7a8) () override |
|  | Perform the initial checks before computing the keypoints. [More...](classpcl_1_1_i_s_s_keypoint3_d#ab35abd55d3aa81805393e48b6ad5c7a8) |
|
| void  | [detectKeypoints](classpcl_1_1_i_s_s_keypoint3_d#af083226413df507cc70c62f1541f1953) ([PointCloudOut](classpcl_1_1_i_s_s_keypoint3_d#af2058f1878dbfad6e754677e7d638396) &output) override |
|  | Detect the keypoints by performing the EVD of the scatter matrix. [More...](classpcl_1_1_i_s_s_keypoint3_d#af083226413df507cc70c62f1541f1953) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| double  | [salient\_radius\_](classpcl_1_1_i_s_s_keypoint3_d#a7172556ea66b5b2a1c86c48097e4b66c) |
|  | The radius of the spherical neighborhood used to compute the scatter matrix. [More...](classpcl_1_1_i_s_s_keypoint3_d#a7172556ea66b5b2a1c86c48097e4b66c) |
|
| double  | [non\_max\_radius\_](classpcl_1_1_i_s_s_keypoint3_d#a962bdf309d623503b1b262fedb829754) |
|  | The non maxima suppression radius. [More...](classpcl_1_1_i_s_s_keypoint3_d#a962bdf309d623503b1b262fedb829754) |
|
| double  | [normal\_radius\_](classpcl_1_1_i_s_s_keypoint3_d#ac8ecef68caca79848c9c87f8d25187a4) |
|  | The radius used to compute the normals of the input cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#ac8ecef68caca79848c9c87f8d25187a4) |
|
| double  | [border\_radius\_](classpcl_1_1_i_s_s_keypoint3_d#acee859609fc4af6647ff620e2345b5ab) |
|  | The radius used to compute the boundary points of the input cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#acee859609fc4af6647ff620e2345b5ab) |
|
| double  | [gamma\_21\_](classpcl_1_1_i_s_s_keypoint3_d#a9371d707be211e6a031f00de27aec208) |
|  | The upper bound on the ratio between the second and the first eigenvalue returned by the EVD. [More...](classpcl_1_1_i_s_s_keypoint3_d#a9371d707be211e6a031f00de27aec208) |
|
| double  | [gamma\_32\_](classpcl_1_1_i_s_s_keypoint3_d#a5785e509ce928ec4bb18de8ccd920668) |
|  | The upper bound on the ratio between the third and the second eigenvalue returned by the EVD. [More...](classpcl_1_1_i_s_s_keypoint3_d#a5785e509ce928ec4bb18de8ccd920668) |
|
| double \*  | [third\_eigen\_value\_](classpcl_1_1_i_s_s_keypoint3_d#a1e2c3555b8731f73f80038d53c5e02d1) |
|  | Store the third eigen value associated to each point in the input cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#a1e2c3555b8731f73f80038d53c5e02d1) |
|
| bool \*  | [edge\_points\_](classpcl_1_1_i_s_s_keypoint3_d#a7ed8196d927bc413146e7a76dd885255) |
|  | Store the information about the boundary points of the input cloud. [More...](classpcl_1_1_i_s_s_keypoint3_d#a7ed8196d927bc413146e7a76dd885255) |
|
| int  | [min\_neighbors\_](classpcl_1_1_i_s_s_keypoint3_d#ae9a44f39d2d44e6406bd28f4bedfaef5) |
|  | Minimum number of neighbors that has to be found while applying the non maxima suppression algorithm. [More...](classpcl_1_1_i_s_s_keypoint3_d#ae9a44f39d2d44e6406bd28f4bedfaef5) |
|
| [PointCloudNConstPtr](classpcl_1_1_i_s_s_keypoint3_d#a28598d3caca87b0227e91d77c33f7c50) | [normals\_](classpcl_1_1_i_s_s_keypoint3_d#aa182e0c44f26fb0da65ea203046db3e9) |
|  | The cloud of normals related to the input surface. [More...](classpcl_1_1_i_s_s_keypoint3_d#aa182e0c44f26fb0da65ea203046db3e9) |
|
| float  | [angle\_threshold\_](classpcl_1_1_i_s_s_keypoint3_d#ab052a7323d71aeb347563cd061f37823) |
|  | The decision boundary (angle threshold) that marks points as boundary or regular. [More...](classpcl_1_1_i_s_s_keypoint3_d#ab052a7323d71aeb347563cd061f37823) |
|
| unsigned int  | [threads\_](classpcl_1_1_i_s_s_keypoint3_d#aa65049e1122f688195bff1672f697fa4) |
|  | The number of threads that has to be used by the scheduler. [More...](classpcl_1_1_i_s_s_keypoint3_d#aa65049e1122f688195bff1672f697fa4) |
|
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT, typename NormalT = pcl::Normal> class pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >

 [ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d "ISSKeypoint3D detects the Intrinsic Shape Signatures keypoints for a given point cloud.") detects the Intrinsic Shape Signatures keypoints for a given point cloud. 

 This class is based on a particular implementation made by Federico Tombari and Samuele Salti and it has been explicitly adapted to PCL.

 For more information about the original ISS detector, see:

 

Yu Zhong, “Intrinsic shape signatures: A shape descriptor for 3D object recognition,” Computer Vision Workshops (ICCV Workshops), 2009 IEEE 12th International Conference on , vol., no., pp.689-696, Sept. 27 2009-Oct. 4 2009
 Code example:

 
```
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr model (new pcl::PointCloud<pcl::PointXYZRGBA> ());
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr model_keypoints (new pcl::PointCloud<pcl::PointXYZRGBA> ());
pcl::search::KdTree<pcl::PointXYZRGBA>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZRGBA> ());
 
// Fill in the model cloud
 
double model_resolution;
 
// Compute model_resolution
 
pcl::ISSKeypoint3D<pcl::PointXYZRGBA, pcl::PointXYZRGBA> iss_detector;
 
iss_detector.setSearchMethod (tree);
iss_detector.setSalientRadius (6 * model_resolution);
iss_detector.setNonMaxRadius (4 * model_resolution);
iss_detector.setThreshold21 (0.975);
iss_detector.setThreshold32 (0.975);
iss_detector.setMinNeighbors (5);
iss_detector.setNumberOfThreads (4);
iss_detector.setInputCloud (model);
iss_detector.compute (*model_keypoints);
pcl::ISSKeypoint3DISSKeypoint3D detects the Intrinsic Shape Signatures keypoints for a given point cloud.Definition: iss_3d.h:86
pcl::ISSKeypoint3D
ISSKeypoint3D detects the Intrinsic Shape Signatures keypoints for a given point cloud.
Definition: iss_3d.h:86
pcl::ISSKeypoint3D::setNumberOfThreadsvoid setNumberOfThreads(unsigned int nr_threads=0)Initialize the scheduler and set the number of threads to use.Definition: iss_3d.hpp:106
pcl::ISSKeypoint3D::setNumberOfThreads
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
Definition: iss_3d.hpp:106
pcl::ISSKeypoint3D::setSalientRadiusvoid setSalientRadius(double salient_radius)Set the radius of the spherical neighborhood used to compute the scatter matrix.Definition: iss_3d.hpp:50
pcl::ISSKeypoint3D::setSalientRadius
void setSalientRadius(double salient_radius)
Set the radius of the spherical neighborhood used to compute the scatter matrix.
Definition: iss_3d.hpp:50
pcl::ISSKeypoint3D::setThreshold21void setThreshold21(double gamma_21)Set the upper bound on the ratio between the second and the first eigenvalue.Definition: iss_3d.hpp:78
pcl::ISSKeypoint3D::setThreshold21
void setThreshold21(double gamma_21)
Set the upper bound on the ratio between the second and the first eigenvalue.
Definition: iss_3d.hpp:78
pcl::ISSKeypoint3D::setMinNeighborsvoid setMinNeighbors(int min_neighbors)Set the minimum number of neighbors that has to be found while applying the non maxima suppression al...Definition: iss_3d.hpp:92
pcl::ISSKeypoint3D::setMinNeighbors
void setMinNeighbors(int min_neighbors)
Set the minimum number of neighbors that has to be found while applying the non maxima suppression al...
Definition: iss_3d.hpp:92
pcl::ISSKeypoint3D::setThreshold32void setThreshold32(double gamma_32)Set the upper bound on the ratio between the third and the second eigenvalue.Definition: iss_3d.hpp:85
pcl::ISSKeypoint3D::setThreshold32
void setThreshold32(double gamma_32)
Set the upper bound on the ratio between the third and the second eigenvalue.
Definition: iss_3d.hpp:85
pcl::ISSKeypoint3D::setNonMaxRadiusvoid setNonMaxRadius(double non_max_radius)Set the radius for the application of the non maxima suppression algorithm.Definition: iss_3d.hpp:57
pcl::ISSKeypoint3D::setNonMaxRadius
void setNonMaxRadius(double non_max_radius)
Set the radius for the application of the non maxima suppression algorithm.
Definition: iss_3d.hpp:57
pcl::Keypoint::computevoid compute(PointCloudOut &output)Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...Definition: keypoint.hpp:137
pcl::Keypoint::compute
void compute(PointCloudOut &output)
Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using t...
Definition: keypoint.hpp:137
pcl::Keypoint::setSearchMethodvoid setSearchMethod(const KdTreePtr &tree)Provide a pointer to the search object.Definition: keypoint.h:102
pcl::Keypoint::setSearchMethod
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
Definition: keypoint.h:102
pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::PointCloud< pcl::PointXYZRGBA >
pcl::PointCloud< pcl::PointXYZRGBA >
pcl::PointCloud::Ptrshared_ptr< PointCloud< PointT > > PtrDefinition: point_cloud.h:413
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:413
pcl::search::KdTreesearch::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...Definition: kdtree.h:62
pcl::search::KdTree
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
Definition: kdtree.h:62
pcl::search::KdTree::Ptrshared_ptr< KdTree< PointT, Tree > > PtrDefinition: kdtree.h:75
pcl::search::KdTree::Ptr
shared_ptr< KdTree< PointT, Tree > > Ptr
Definition: kdtree.h:75

```


Author
Gioia Ballin 
 Definition at line [85](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00085) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[ConstPtr](classpcl_1_1_i_s_s_keypoint3_d#aee3a40288899bafc4391cbfad8e08713) = shared\_ptr<const [ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)<PointInT, PointOutT, [NormalT](structpcl_1_1_normal)> > |

 
 Definition at line [89](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00089) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    OctreeSearchIn
--------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[OctreeSearchIn](classpcl_1_1_i_s_s_keypoint3_d#a612d4605bbe2aec45151680e1e74e9a9) = [pcl::octree::OctreePointCloudSearch](https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_search.html)<PointInT> |

 
 Definition at line [98](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00098) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    OctreeSearchInPtr
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[OctreeSearchInPtr](classpcl_1_1_i_s_s_keypoint3_d#a00bf83c79f940d6a749319cf6ebe58e8) = typename [OctreeSearchIn::Ptr](https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_search.html#a7b8a77e7272ea255cbd28c99639df308) |

 
 Definition at line [99](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00099) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudIn](classpcl_1_1_i_s_s_keypoint3_d#a2f488858bec85231d0d844e63d66af30) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_i_s_s_keypoint3_d#a2f488858bec85231d0d844e63d66af30) |

 
 Definition at line [91](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00091) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    PointCloudN
-----------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudN](classpcl_1_1_i_s_s_keypoint3_d#a07de42c1cb17d4b918957f3332d7de70) = [pcl::PointCloud](classpcl_1_1_point_cloud)<[NormalT](structpcl_1_1_normal)> |

 
 Definition at line [94](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00094) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    PointCloudNConstPtr
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudNConstPtr](classpcl_1_1_i_s_s_keypoint3_d#a28598d3caca87b0227e91d77c33f7c50) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |

 
 Definition at line [96](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00096) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    PointCloudNPtr
--------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudNPtr](classpcl_1_1_i_s_s_keypoint3_d#ada0900fc3b7f86c5e48b474e3cf79cec) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |

 
 Definition at line [95](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00095) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[PointCloudOut](classpcl_1_1_i_s_s_keypoint3_d#af2058f1878dbfad6e754677e7d638396) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_i_s_s_keypoint3_d#af2058f1878dbfad6e754677e7d638396) |

 
 Definition at line [92](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00092) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |
| --- |
| using [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[Ptr](classpcl_1_1_i_s_s_keypoint3_d#a571e452eff2fe6e0d974e4111950ee00) = shared\_ptr<[ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)<PointInT, PointOutT, [NormalT](structpcl_1_1_normal)> > |

 
 Definition at line [88](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00088) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  ISSKeypoint3D()
---------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::[ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d) | ( | double  | *salient\_radius* = `0.0001` | ) |  |

 | inline |

 
 Constructor. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | salient\_radius | the radius of the spherical neighborhood used to compute the scatter matrix.  |

   Definition at line [112](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00112) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169), [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::salient\_radius\_](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00236), [pcl::Keypoint< PointInT, PointOutT >::search\_radius\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00187), [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::setNumberOfThreads()](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00106), and [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::threads\_](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00269).

    ~ISSKeypoint3D()
----------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::~[ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d) | ( |  | ) |  |

 | inlineoverride |

 
 Destructor. 

 Definition at line [132](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00132) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 References [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::edge\_points\_](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00257), and [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::third\_eigen\_value\_](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00254).

   Member Function Documentation
-----------------------------

  detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_i_s_s_keypoint3_d#af2058f1878dbfad6e754677e7d638396) &  | *output* | ) |  |

 | overrideprotected |

 
 Detect the keypoints by performing the EVD of the scatter matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [out] | output | the resultant cloud of keypoints  |

   Definition at line [303](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00303) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

 References [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055).

    getBoundaryPoints()
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| bool \* [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::getBoundaryPoints  | ( | [PointCloudIn](classpcl_1_1_i_s_s_keypoint3_d#a2f488858bec85231d0d844e63d66af30) &  | *input*,  |
|  |  | double  | *border\_radius*,  |
|  |  | float  | *angle\_threshold* |
|  | ) |  |  |

 | protected |

 
 Compute the boundary points for the given input cloud. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | input | the input cloud  |
| [in] | border\_radius | the radius used to compute the boundary points  |
| [in] | angle\_threshold | the decision boundary that marks the points as boundary  |

   
Returns
the vector of boolean values in which the information about the boundary points is stored 
 Definition at line [120](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00120) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

 References [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::getCoordinateSystemOnPlane()](https://pointclouds.org/documentation/boundary_8h_source.html#l00159), [pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::isBoundaryPoint()](https://pointclouds.org/documentation/boundary_8hpp_source.html#l00051), [pcl::isFinite()](https://pointclouds.org/documentation/point__tests_8h_source.html#l00055), and [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065).

    getScatterMatrix()
------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::getScatterMatrix  | ( | const int &  | *current\_index*,  |
|  |  | Eigen::Matrix3d &  | *cov\_m* |
|  | ) |  |  |

 | protected |

 
 Compute the scatter matrix for a point index. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | current\_index | the index of the point  |
| [out] | cov\_m | the point scatter matrix  |

   Definition at line [165](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00165) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::initCompute |

 | overrideprotectedvirtual |

 
 Perform the initial checks before computing the keypoints. 

 
Returns
true if all the checks are passed, false otherwise 
 Reimplemented from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db).

 Definition at line [212](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00212) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

 References [pcl::Feature< PointInT, PointOutT >::compute()](https://pointclouds.org/documentation/feature_8hpp_source.html#l00194), [pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/features_2include_2pcl_2features_2normal__3d_8h_source.html#l00332), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setInputCloud()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00232), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalEstimationMethod()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00214), [pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize()](https://pointclouds.org/documentation/integral__image__normal_8h_source.html#l00190), and [pcl::Feature< PointInT, PointOutT >::setRadiusSearch()](https://pointclouds.org/documentation/feature_8h_source.html#l00198).

    setAngleThreshold()
-------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setAngleThreshold  | ( | float  | *angle* | ) |  |

 | inline |

 
 Set the decision boundary (angle threshold) that marks points as boundary or regular. 

 (default ![$\pi / 2.0$] 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | angle | the angle threshold  |

   Definition at line [193](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00193) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 References [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::angle\_threshold\_](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00266).

    setBorderRadius()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setBorderRadius  | ( | double  | *border\_radius* | ) |  |

 
 Set the radius used for the estimation of the boundary points. 

 If the radius is too large, the temporal performances of the detector may degrade significantly. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | border\_radius | the radius used to compute the boundary points  |

   Definition at line [71](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00071) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setMinNeighbors()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setMinNeighbors  | ( | int  | *min\_neighbors* | ) |  |

 
 Set the minimum number of neighbors that has to be found while applying the non maxima suppression algorithm. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | min\_neighbors | the minimum number of neighbors required  |

   Definition at line [92](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00092) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setNonMaxRadius()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNonMaxRadius  | ( | double  | *non\_max\_radius* | ) |  |

 
 Set the radius for the application of the non maxima suppression algorithm. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | non\_max\_radius | the non maxima suppression radius  |

   Definition at line [57](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00057) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setNormalRadius()
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNormalRadius  | ( | double  | *normal\_radius* | ) |  |

 
 Set the radius used for the estimation of the surface normals of the input cloud. 

 If the radius is too large, the temporal performances of the detector may degrade significantly. 



Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normal\_radius | the radius used to estimate surface normals  |

   Definition at line [64](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00064) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setNormals()
------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNormals  | ( | const [PointCloudNConstPtr](classpcl_1_1_i_s_s_keypoint3_d#a28598d3caca87b0227e91d77c33f7c50) &  | *normals* | ) |  |

 
 Set the normals if pre-calculated normals are available. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | normals | the given cloud of normals  |

   Definition at line [99](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00099) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setNumberOfThreads()
--------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setNumberOfThreads  | ( | unsigned int  | *nr\_threads* = `0` | ) |  |

 
 Initialize the scheduler and set the number of threads to use. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | nr\_threads | the number of hardware threads to use (0 sets the value back to automatic)  |

   Definition at line [106](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00106) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::ISSKeypoint3D()](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00112).

    setSalientRadius()
------------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setSalientRadius  | ( | double  | *salient\_radius* | ) |  |

 
 Set the radius of the spherical neighborhood used to compute the scatter matrix. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | salient\_radius | the radius of the spherical neighborhood  |

   Definition at line [50](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00050) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setThreshold21()
----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setThreshold21  | ( | double  | *gamma\_21* | ) |  |

 
 Set the upper bound on the ratio between the second and the first eigenvalue. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | gamma\_21 | the upper bound on the ratio between the second and the first eigenvalue  |

   Definition at line [78](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00078) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

    setThreshold32()
----------------

    template<typename PointInT , typename PointOutT , typename NormalT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::setThreshold32  | ( | double  | *gamma\_32* | ) |  |

 
 Set the upper bound on the ratio between the third and the second eigenvalue. 

 
Parameters
 

|  |  |  |
| --- | --- | --- |
| [in] | gamma\_32 | the upper bound on the ratio between the third and the second eigenvalue  |

   Definition at line [85](https://pointclouds.org/documentation/iss__3d_8hpp_source.html#l00085) of file [iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html).

   Member Data Documentation
-------------------------

  angle\_threshold\_
------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::angle\_threshold\_ |

 | protected |

 
 The decision boundary (angle threshold) that marks points as boundary or regular. 

 (default ![$\pi / 2.0$] 

 Definition at line [266](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00266) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::setAngleThreshold()](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00193).

    border\_radius\_
----------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::border\_radius\_ |

 | protected |

 
 The radius used to compute the boundary points of the input cloud. 

 Definition at line [245](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00245) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    edge\_points\_
--------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool\* [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::edge\_points\_ |

 | protected |

 
 Store the information about the boundary points of the input cloud. 

 Definition at line [257](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00257) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::~ISSKeypoint3D()](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00132).

    gamma\_21\_
-----------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::gamma\_21\_ |

 | protected |

 
 The upper bound on the ratio between the second and the first eigenvalue returned by the EVD. 

 Definition at line [248](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00248) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    gamma\_32\_
-----------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::gamma\_32\_ |

 | protected |

 
 The upper bound on the ratio between the third and the second eigenvalue returned by the EVD. 

 Definition at line [251](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00251) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    min\_neighbors\_
----------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| int [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::min\_neighbors\_ |

 | protected |

 
 Minimum number of neighbors that has to be found while applying the non maxima suppression algorithm. 

 Definition at line [260](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00260) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    non\_max\_radius\_
------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::non\_max\_radius\_ |

 | protected |

 
 The non maxima suppression radius. 

 Definition at line [239](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00239) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    normal\_radius\_
----------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::normal\_radius\_ |

 | protected |

 
 The radius used to compute the normals of the input cloud. 

 Definition at line [242](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00242) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    normals\_
---------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [PointCloudNConstPtr](classpcl_1_1_i_s_s_keypoint3_d#a28598d3caca87b0227e91d77c33f7c50) [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::normals\_ |

 | protected |

 
 The cloud of normals related to the input surface. 

 Definition at line [263](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00263) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

    salient\_radius\_
-----------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::salient\_radius\_ |

 | protected |

 
 The radius of the spherical neighborhood used to compute the scatter matrix. 

 Definition at line [236](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00236) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::ISSKeypoint3D()](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00112).

    third\_eigen\_value\_
---------------------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| double\* [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::third\_eigen\_value\_ |

 | protected |

 
 Store the third eigen value associated to each point in the input cloud. 

 Definition at line [254](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00254) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::~ISSKeypoint3D()](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00132).

    threads\_
---------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal>  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| unsigned int [pcl::ISSKeypoint3D](classpcl_1_1_i_s_s_keypoint3_d)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal) >::threads\_ |

 | protected |

 
 The number of threads that has to be used by the scheduler. 

 Definition at line [269](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00269) of file [iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html).

 Referenced by [pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::ISSKeypoint3D()](https://pointclouds.org/documentation/iss__3d_8h_source.html#l00112).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[iss\_3d.h](https://pointclouds.org/documentation/iss__3d_8h_source.html)
* pcl/keypoints/impl/[iss\_3d.hpp](https://pointclouds.org/documentation/iss__3d_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_i_s_s_keypoint3_d.html>

**NARF** ([Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Aligned Radial [Feature](classpcl_1_1_feature "Feature represents the base feature class.")) keypoints. [More...](classpcl_1_1_narf_keypoint#details)

 `#include <[pcl/keypoints/narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph](https://pointclouds.org/documentation/classpcl_1_1_narf_keypoint__coll__graph.png)                          [[legend](graph_legend)]
 

|  |
| --- |
| 
 Classes |
| struct  | [Parameters](structpcl_1_1_narf_keypoint_1_1_parameters) |
|  | [Parameters](structpcl_1_1_narf_keypoint_1_1_parameters "Parameters used in this class.") used in this class. [More...](structpcl_1_1_narf_keypoint_1_1_parameters#details) |
|




|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_narf_keypoint#a353596d2323157d7010d5f95c58a5712) = shared\_ptr< [NarfKeypoint](classpcl_1_1_narf_keypoint) > |
|
| using  | [ConstPtr](classpcl_1_1_narf_keypoint#ac52b97ce7a19efe49a3025eeb5ea293b) = shared\_ptr< const [NarfKeypoint](classpcl_1_1_narf_keypoint) > |
|
| using  | [BaseClass](classpcl_1_1_narf_keypoint#a268a1f07166629fe7c4076dc3239dd5a) = [Keypoint](classpcl_1_1_keypoint)< [PointWithRange](structpcl_1_1_point_with_range), int > |
|
| using  | [PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) = [Keypoint](classpcl_1_1_keypoint)< [PointWithRange](structpcl_1_1_point_with_range), int >::[PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) |
|
| - Public Types inherited from [pcl::Keypoint< PointWithRange, int >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [NarfKeypoint](classpcl_1_1_narf_keypoint#a7261c9792e464f6452eeb2fad3036b24) ([RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \*range\_image\_border\_extractor=nullptr, float support\_size=-1.0f) |
|
|  | [~NarfKeypoint](classpcl_1_1_narf_keypoint#ab88971687ca78c741fe2de41da2695e9) () override |
|
| void  | [clearData](classpcl_1_1_narf_keypoint#aa211ef313b846e6b9d5af4a921721088) () |
|  | Erase all data calculated for the current range image. [More...](classpcl_1_1_narf_keypoint#aa211ef313b846e6b9d5af4a921721088) |
|
| void  | [setRangeImageBorderExtractor](classpcl_1_1_narf_keypoint#a9b101e191efa338cb42761b00382c879) ([RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \*range\_image\_border\_extractor) |
|  | Set the [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor "Extract obstacle borders from range images, meaning positions where there is a transition from foregr...") member (required) [More...](classpcl_1_1_narf_keypoint#a9b101e191efa338cb42761b00382c879) |
|
| [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \*  | [getRangeImageBorderExtractor](classpcl_1_1_narf_keypoint#ac6248c18fb63bba9eb1c42a0a6e3959e) () |
|  | Get the [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor "Extract obstacle borders from range images, meaning positions where there is a transition from foregr...") member. [More...](classpcl_1_1_narf_keypoint#ac6248c18fb63bba9eb1c42a0a6e3959e) |
|
| void  | [setRangeImage](classpcl_1_1_narf_keypoint#a86b01311b9bed5200964ad464033b02d) (const [RangeImage](classpcl_1_1_range_image) \*range\_image) |
|  | Set the [RangeImage](classpcl_1_1_range_image "RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...") member of the [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor "Extract obstacle borders from range images, meaning positions where there is a transition from foregr..."). [More...](classpcl_1_1_narf_keypoint#a86b01311b9bed5200964ad464033b02d) |
|
| float \*  | [getInterestImage](classpcl_1_1_narf_keypoint#ab5354883380de350b56d7a04ddae2b88) () |
|  | Extract interest value per image point. [More...](classpcl_1_1_narf_keypoint#ab5354883380de350b56d7a04ddae2b88) |
|
| const ::[pcl::PointCloud](classpcl_1_1_point_cloud)< [InterestPoint](structpcl_1_1_interest_point) > &  | [getInterestPoints](classpcl_1_1_narf_keypoint#a4330f1b3b2962e8df799592a45ce6736) () |
|  | Extract maxima from an interest image. [More...](classpcl_1_1_narf_keypoint#a4330f1b3b2962e8df799592a45ce6736) |
|
| const std::vector< bool > &  | [getIsInterestPointImage](classpcl_1_1_narf_keypoint#ad0be2b830e18c364b680df615e0fb442) () |
|  | Set all points in the image that are interest points to true, the rest to false. [More...](classpcl_1_1_narf_keypoint#ad0be2b830e18c364b680df615e0fb442) |
|
| [Parameters](structpcl_1_1_narf_keypoint_1_1_parameters) &  | [getParameters](classpcl_1_1_narf_keypoint#a2ab427b4391a1f855cdbe83d76e7a467) () |
|  | Getter for the parameter struct. [More...](classpcl_1_1_narf_keypoint#a2ab427b4391a1f855cdbe83d76e7a467) |
|
| const [RangeImage](classpcl_1_1_range_image) &  | [getRangeImage](classpcl_1_1_narf_keypoint#a1cb760116e08c35b8e06cde5f560858f) () |
|  | Getter for the range image of range\_image\_border\_extractor\_. [More...](classpcl_1_1_narf_keypoint#a1cb760116e08c35b8e06cde5f560858f) |
|
| void  | [compute](classpcl_1_1_narf_keypoint#a594e9663dea26dfd35f4bb38152c4c32) ([PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) &output) |
|  | Overwrite the compute function of the base class. [More...](classpcl_1_1_narf_keypoint#a594e9663dea26dfd35f4bb38152c4c32) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointWithRange, int >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) ([PointWithRange](structpcl_1_1_point_with_range) &output, [PointWithRange](structpcl_1_1_point_with_range) &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) ([PointWithRange](structpcl_1_1_point_with_range) &output, [PointWithRange](structpcl_1_1_point_with_range) &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) ([PointWithRange](structpcl_1_1_point_with_range) &output, [PointWithRange](structpcl_1_1_point_with_range) &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) ([PointWithRange](structpcl_1_1_point_with_range) &output, [PointWithRange](structpcl_1_1_point_with_range) &input1, [PointWithRange](structpcl_1_1_point_with_range) &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| void  | [calculateScaleSpace](classpcl_1_1_narf_keypoint#adba9a64aa34ddb0f2ad9d493602f2f8b) () |
|
| void  | [calculateInterestImage](classpcl_1_1_narf_keypoint#a642f2612914c125aec4d1a238766c452) () |
|
| void  | [calculateCompleteInterestImage](classpcl_1_1_narf_keypoint#a7bd723b488a97a87704c585ff254d1fc) () |
|
| void  | [calculateSparseInterestImage](classpcl_1_1_narf_keypoint#accc748e1b7c3e6cbdc898b941a64dc61) () |
|
| void  | [calculateInterestPoints](classpcl_1_1_narf_keypoint#a411374436a0a78f95be58964c64c7d8a) () |
|
| void  | [detectKeypoints](classpcl_1_1_narf_keypoint#a486ba7429b6799517cddffe0fb4377b5) ([PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) &output) override |
|  | Detect key points. [More...](classpcl_1_1_narf_keypoint#a486ba7429b6799517cddffe0fb4377b5) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointWithRange, int >](classpcl_1_1_keypoint) |
| virtual bool  | [initCompute](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db) () |
|
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Protected Attributes |
| [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \*  | [range\_image\_border\_extractor\_](classpcl_1_1_narf_keypoint#af7d84156143b58586a99b823d10cdfe4) |
|
| [Parameters](structpcl_1_1_narf_keypoint_1_1_parameters) | [parameters\_](classpcl_1_1_narf_keypoint#a5a458380043bfac99c0748144f697477) |
|
| float \*  | [interest\_image\_](classpcl_1_1_narf_keypoint#a72f40e934b7641ec1a4e6ac251286977) |
|
| ::[pcl::PointCloud](classpcl_1_1_point_cloud)< [InterestPoint](structpcl_1_1_interest_point) > \*  | [interest\_points\_](classpcl_1_1_narf_keypoint#a2d599d710c14df1418d326cc2aab2d0a) |
|
| std::vector< bool >  | [is\_interest\_point\_image\_](classpcl_1_1_narf_keypoint#ad2e5e667cee1531a180b7dff2acb1967) |
|
| std::vector< [RangeImage](classpcl_1_1_range_image) \* >  | [range\_image\_scale\_space\_](classpcl_1_1_narf_keypoint#aff3340c4e8c364c8b4ea927e267cc2d1) |
|
| std::vector< [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \* >  | [border\_extractor\_scale\_space\_](classpcl_1_1_narf_keypoint#abe368ba4c4a3177c9a6135e9b93cc6b4) |
|
| std::vector< float \* >  | [interest\_image\_scale\_space\_](classpcl_1_1_narf_keypoint#a5ecca1a7fcfa1cce337af8719936bc2a) |
|
| - Protected Attributes inherited from [pcl::Keypoint< PointWithRange, int >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
**NARF** ([Normal](structpcl_1_1_normal "A point structure representing normal coordinates and the surface curvature estimate.") Aligned Radial [Feature](classpcl_1_1_feature "Feature represents the base feature class.")) keypoints. 

 Input is a range image, output the indices of the keypoints See B. Steder, R. B. Rusu, K. Konolige, and W. Burgard Point [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Extraction on 3D Range Scans Taking into Account [Object](https://pointclouds.org/documentation/class_object.html) Boundaries In Proc. of the IEEE Int. Conf. on Robotics &Automation (ICRA). 2011. 



Author
Bastian Steder 
 Definition at line [60](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00060) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

 
Member Typedef Documentation
----------------------------

  BaseClass
---------

   

|  |
| --- |
| using [pcl::NarfKeypoint::BaseClass](classpcl_1_1_narf_keypoint#a268a1f07166629fe7c4076dc3239dd5a) = [Keypoint](classpcl_1_1_keypoint)<[PointWithRange](structpcl_1_1_point_with_range), int> |

 
 Definition at line [67](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00067) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    ConstPtr
--------

   

|  |
| --- |
| using [pcl::NarfKeypoint::ConstPtr](classpcl_1_1_narf_keypoint#ac52b97ce7a19efe49a3025eeb5ea293b) = shared\_ptr<const [NarfKeypoint](classpcl_1_1_narf_keypoint)> |

 
 Definition at line [64](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00064) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    PointCloudOut
-------------

   

|  |
| --- |
| using [pcl::NarfKeypoint::PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) = [Keypoint](classpcl_1_1_keypoint)<[PointWithRange](structpcl_1_1_point_with_range), int>::[PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) |

 
 Definition at line [69](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00069) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    Ptr
---

   

|  |
| --- |
| using [pcl::NarfKeypoint::Ptr](classpcl_1_1_narf_keypoint#a353596d2323157d7010d5f95c58a5712) = shared\_ptr<[NarfKeypoint](classpcl_1_1_narf_keypoint)> |

 
 Definition at line [63](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00063) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  NarfKeypoint()
--------------

   

|  |  |  |  |
| --- | --- | --- | --- |
| pcl::NarfKeypoint::NarfKeypoint  | ( | [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \*  | *range\_image\_border\_extractor* = `nullptr`,  |
|  |  | float  | *support\_size* = `-1.0f` |
|  | ) |  |  |

 
    ~NarfKeypoint()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| pcl::NarfKeypoint::~NarfKeypoint  | ( |  | ) |  |

 | override |

 
   Member Function Documentation
-----------------------------

  calculateCompleteInterestImage()
--------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::calculateCompleteInterestImage  | ( |  | ) |  |

 | protected |

 
    calculateInterestImage()
------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::calculateInterestImage  | ( |  | ) |  |

 | protected |

 
    calculateInterestPoints()
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::calculateInterestPoints  | ( |  | ) |  |

 | protected |

 
    calculateScaleSpace()
---------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::calculateScaleSpace  | ( |  | ) |  |

 | protected |

 
    calculateSparseInterestImage()
------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::calculateSparseInterestImage  | ( |  | ) |  |

 | protected |

 
    clearData()
-----------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::clearData  | ( |  | ) |  |

 
 Erase all data calculated for the current range image. 

    compute()
---------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::compute  | ( | [PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) &  | *output* | ) |  |

 
 Overwrite the compute function of the base class. 

    detectKeypoints()
-----------------

   

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_narf_keypoint#a205685c42b713052283e6cfe3f3fc292) &  | *output* | ) |  |

 | overrideprotected |

 
 Detect key points. 

    getInterestImage()
------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| float\* pcl::NarfKeypoint::getInterestImage  | ( |  | ) |  |

 | inline |

 
 Extract interest value per image point. 

 Definition at line [141](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00141) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    getInterestPoints()
-------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const ::[pcl::PointCloud](classpcl_1_1_point_cloud)<[InterestPoint](structpcl_1_1_interest_point)>& pcl::NarfKeypoint::getInterestPoints  | ( |  | ) |  |

 | inline |

 
 Extract maxima from an interest image. 

 Definition at line [145](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00145) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    getIsInterestPointImage()
-------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const std::vector<bool>& pcl::NarfKeypoint::getIsInterestPointImage  | ( |  | ) |  |

 | inline |

 
 Set all points in the image that are interest points to true, the rest to false. 

 Definition at line [149](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00149) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    getParameters()
---------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [Parameters](structpcl_1_1_narf_keypoint_1_1_parameters)& pcl::NarfKeypoint::getParameters  | ( |  | ) |  |

 | inline |

 
 Getter for the parameter struct. 

 Definition at line [153](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00153) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    getRangeImage()
---------------

   

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| const [RangeImage](classpcl_1_1_range_image)& pcl::NarfKeypoint::getRangeImage  | ( |  | ) |  |

 
 Getter for the range image of range\_image\_border\_extractor\_. 

    getRangeImageBorderExtractor()
------------------------------

   

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor)\* pcl::NarfKeypoint::getRangeImageBorderExtractor  | ( |  | ) |  |

 | inline |

 
 Get the [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor "Extract obstacle borders from range images, meaning positions where there is a transition from foregr...") member. 

 Definition at line [133](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00133) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    setRangeImage()
---------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::setRangeImage  | ( | const [RangeImage](classpcl_1_1_range_image) \*  | *range\_image* | ) |  |

 
 Set the [RangeImage](classpcl_1_1_range_image "RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where...") member of the [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor "Extract obstacle borders from range images, meaning positions where there is a transition from foregr..."). 

    setRangeImageBorderExtractor()
------------------------------

   

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void pcl::NarfKeypoint::setRangeImageBorderExtractor  | ( | [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor) \*  | *range\_image\_border\_extractor* | ) |  |

 
 Set the [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor "Extract obstacle borders from range images, meaning positions where there is a transition from foregr...") member (required) 

   Member Data Documentation
-------------------------

  border\_extractor\_scale\_space\_
---------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<[RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor)\*> pcl::NarfKeypoint::border\_extractor\_scale\_space\_ |

 | protected |

 
 Definition at line [189](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00189) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    interest\_image\_
-----------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| float\* pcl::NarfKeypoint::interest\_image\_ |

 | protected |

 
 Definition at line [185](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00185) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    interest\_image\_scale\_space\_
-------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<float\*> pcl::NarfKeypoint::interest\_image\_scale\_space\_ |

 | protected |

 
 Definition at line [190](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00190) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    interest\_points\_
------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| ::[pcl::PointCloud](classpcl_1_1_point_cloud)<[InterestPoint](structpcl_1_1_interest_point)>\* pcl::NarfKeypoint::interest\_points\_ |

 | protected |

 
 Definition at line [186](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00186) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    is\_interest\_point\_image\_
----------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<bool> pcl::NarfKeypoint::is\_interest\_point\_image\_ |

 | protected |

 
 Definition at line [187](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00187) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    parameters\_
------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [Parameters](structpcl_1_1_narf_keypoint_1_1_parameters) pcl::NarfKeypoint::parameters\_ |

 | protected |

 
 Definition at line [184](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00184) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    range\_image\_border\_extractor\_
---------------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| [RangeImageBorderExtractor](classpcl_1_1_range_image_border_extractor)\* pcl::NarfKeypoint::range\_image\_border\_extractor\_ |

 | protected |

 
 Definition at line [183](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00183) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

    range\_image\_scale\_space\_
----------------------------

   

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| std::vector<[RangeImage](classpcl_1_1_range_image)\*> pcl::NarfKeypoint::range\_image\_scale\_space\_ |

 | protected |

 
 Definition at line [188](https://pointclouds.org/documentation/narf__keypoint_8h_source.html#l00188) of file [narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html).

   

---

The documentation for this class was generated from the following file:* pcl/keypoints/[narf\_keypoint.h](https://pointclouds.org/documentation/narf__keypoint_8h_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_narf_keypoint.html>

**[SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint "SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...")** detects the Scale Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform keypoints for a given point cloud dataset containing points and intensity. [More...](classpcl_1_1_s_i_f_t_keypoint#details)

 `#include <[pcl/keypoints/sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_i_f_t_keypoint#a25e5fc6a28edfb6af07d063f5e1adc79) = shared\_ptr< [SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_i_f_t_keypoint#aa768775c36508ae6b585d9c69351e52a) = shared\_ptr< const [SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_i_f_t_keypoint#ac4b41b911f1c5c1c1d8478063a6e1f75) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_i_f_t_keypoint#ac4b41b911f1c5c1c1d8478063a6e1f75) |
|
| using  | [PointCloudOut](classpcl_1_1_s_i_f_t_keypoint#af949bcd24f33fa7c0131214c4ba4e8e4) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_i_f_t_keypoint#af949bcd24f33fa7c0131214c4ba4e8e4) |
|
| using  | [KdTree](classpcl_1_1_s_i_f_t_keypoint#a66150646dc80694be26d0b603f96f972) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_s_i_f_t_keypoint#a66150646dc80694be26d0b603f96f972) |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint#a8873bdacc195701f40e7145a2cf23b96) () |
|  | Empty constructor. [More...](classpcl_1_1_s_i_f_t_keypoint#a8873bdacc195701f40e7145a2cf23b96) |
|
| void  | [setScales](classpcl_1_1_s_i_f_t_keypoint#aa7b165d782eca9c9d226504b84729439) (float min\_scale, int nr\_octaves, int nr\_scales\_per\_octave) |
|  | Specify the range of scales over which to search for keypoints. [More...](classpcl_1_1_s_i_f_t_keypoint#aa7b165d782eca9c9d226504b84729439) |
|
| void  | [setMinimumContrast](classpcl_1_1_s_i_f_t_keypoint#a5fcabfa4b90cc77cf0c18a5b263d06a0) (float min\_contrast) |
|  | Provide a threshold to limit detection of keypoints without sufficient contrast. [More...](classpcl_1_1_s_i_f_t_keypoint#a5fcabfa4b90cc77cf0c18a5b263d06a0) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_s_i_f_t_keypoint#a38369ca56950376cb72b1db7aa206d7f) () override |
|
| void  | [detectKeypoints](classpcl_1_1_s_i_f_t_keypoint#ab8bd646a0ea2703d191321438f5ba2c5) ([PointCloudOut](classpcl_1_1_s_i_f_t_keypoint#af949bcd24f33fa7c0131214c4ba4e8e4) &output) override |
|  | Detect the SIFT keypoints for a set of points given in setInputCloud () using the spatial locator in setSearchMethod (). [More...](classpcl_1_1_s_i_f_t_keypoint#ab8bd646a0ea2703d191321438f5ba2c5) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT> class pcl::SIFTKeypoint< PointInT, PointOutT >

 **[SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint "SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset ...")** detects the Scale Invariant [Feature](classpcl_1_1_feature "Feature represents the base feature class.") Transform keypoints for a given point cloud dataset containing points and intensity. 

 This implementation adapts the original algorithm from images to point clouds.

 For more information about the image-based SIFT interest operator, see:

 David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp. 91-110.

 
Author
Michael Dixon 
 Definition at line [93](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00093) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::[ConstPtr](classpcl_1_1_s_i_f_t_keypoint#aa768775c36508ae6b585d9c69351e52a) = shared\_ptr<const [SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)<PointInT, PointOutT> > |

 
 Definition at line [97](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00097) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

    KdTree
------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_s_i_f_t_keypoint#a66150646dc80694be26d0b603f96f972) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[KdTree](classpcl_1_1_s_i_f_t_keypoint#a66150646dc80694be26d0b603f96f972) |

 
 Definition at line [101](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00101) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

    PointCloudIn
------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_i_f_t_keypoint#ac4b41b911f1c5c1c1d8478063a6e1f75) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudIn](classpcl_1_1_s_i_f_t_keypoint#ac4b41b911f1c5c1c1d8478063a6e1f75) |

 
 Definition at line [99](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00099) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

    PointCloudOut
-------------

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_i_f_t_keypoint#af949bcd24f33fa7c0131214c4ba4e8e4) = typename [Keypoint](classpcl_1_1_keypoint)<PointInT, PointOutT>::[PointCloudOut](classpcl_1_1_s_i_f_t_keypoint#af949bcd24f33fa7c0131214c4ba4e8e4) |

 
 Definition at line [100](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00100) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

    Ptr
---

    template<typename PointInT , typename PointOutT >  

|  |
| --- |
| using [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::[Ptr](classpcl_1_1_s_i_f_t_keypoint#a25e5fc6a28edfb6af07d063f5e1adc79) = shared\_ptr<[SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)<PointInT, PointOutT> > |

 
 Definition at line [96](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00096) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

   Constructor & Destructor Documentation
--------------------------------------

  SIFTKeypoint()
--------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::[SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint) | ( |  | ) |  |

 | inline |

 
 Empty constructor. 

 Definition at line [111](https://pointclouds.org/documentation/sift__keypoint_8h_source.html#l00111) of file [sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html).

 References [pcl::Keypoint< PointInT, PointOutT >::name\_](https://pointclouds.org/documentation/keypoints_2include_2pcl_2keypoints_2keypoint_8h_source.html#l00169).

   Member Function Documentation
-----------------------------

  detectKeypoints()
-----------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::detectKeypoints  | ( | [PointCloudOut](classpcl_1_1_s_i_f_t_keypoint#af949bcd24f33fa7c0131214c4ba4e8e4) &  | *output* | ) |  |

 | overrideprotected |

 
 Detect the SIFT keypoints for a set of points given in setInputCloud () using the spatial locator in setSearchMethod (). 

 
Parameters
 

|  |  |
| --- | --- |
| output | the resultant cloud of keypoints  |

   Definition at line [98](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html#l00098) of file [sift\_keypoint.hpp](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html).

 References [pcl::Filter< PointT >::filter()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2filter_8h_source.html#l00121), [pcl::PCLBase< PointT >::setInputCloud()](https://pointclouds.org/documentation/pcl__base_8hpp_source.html#l00065), [pcl::VoxelGrid< PointT >::setLeafSize()](https://pointclouds.org/documentation/filters_2include_2pcl_2filters_2voxel__grid_8h_source.html#l00221), and [pcl::PointCloud< PointT >::size()](https://pointclouds.org/documentation/common_2include_2pcl_2point__cloud_8h_source.html#l00443).

    initCompute()
-------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |
| --- | --- | --- |
| 

|  |
| --- |
| bool [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::initCompute |

 | overrideprotectedvirtual |

 
 Reimplemented from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint#a7eeb86d927038a60afabb226429f54db).

 Definition at line [64](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html#l00064) of file [sift\_keypoint.hpp](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html).

    setMinimumContrast()
--------------------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| void [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::setMinimumContrast  | ( | float  | *min\_contrast* | ) |  |

 
 Provide a threshold to limit detection of keypoints without sufficient contrast. 

 
Parameters
 

|  |  |
| --- | --- |
| min\_contrast | the minimum contrast required for detection  |

   Definition at line [57](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html#l00057) of file [sift\_keypoint.hpp](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html).

    setScales()
-----------

    template<typename PointInT , typename PointOutT >  

|  |  |  |  |
| --- | --- | --- | --- |
| void [pcl::SIFTKeypoint](classpcl_1_1_s_i_f_t_keypoint)< PointInT, PointOutT >::setScales  | ( | float  | *min\_scale*,  |
|  |  | int  | *nr\_octaves*,  |
|  |  | int  | *nr\_scales\_per\_octave* |
|  | ) |  |  |

 
 Specify the range of scales over which to search for keypoints. 

 
Parameters
 

|  |  |
| --- | --- |
| min\_scale | the standard deviation of the smallest scale in the scale space  |
| nr\_octaves | the number of octaves (i.e. doublings of scale) to compute  |
| nr\_scales\_per\_octave | the number of scales to compute within each octave  |

   Definition at line [47](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html#l00047) of file [sift\_keypoint.hpp](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html).

   

---

The documentation for this class was generated from the following files:* pcl/keypoints/[sift\_keypoint.h](https://pointclouds.org/documentation/sift__keypoint_8h_source.html)
* pcl/keypoints/impl/[sift\_keypoint.hpp](https://pointclouds.org/documentation/sift__keypoint_8hpp_source.html)

 

 © 2009–2012, Willow Garage, Inc.  
© 2012–, Open Perception, Inc.  
Licensed under the BSD License.  

<https://pointclouds.org/documentation/classpcl_1_1_s_i_f_t_keypoint.html>

[SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint "SUSANKeypoint implements a RGB-D extension of the SUSAN detector including normal directions variatio...") implements a RGB-D extension of the SUSAN detector including normal directions variation in top of intensity variation. [More...](classpcl_1_1_s_u_s_a_n_keypoint#details)

 `#include <[pcl/keypoints/susan.h](https://pointclouds.org/documentation/susan_8h_source.html)>`

    ![Inheritance graph]]
    ![Collaboration graph]]
 

|  |
| --- |
| 
 Public Types |
| using  | [Ptr](classpcl_1_1_s_u_s_a_n_keypoint#a987af012accdcae5fc1a856b456eb6b0) = shared\_ptr< [SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal), IntensityT > > |
|
| using  | [ConstPtr](classpcl_1_1_s_u_s_a_n_keypoint#a187a87ce8314f9f43794a947a06d61a5) = shared\_ptr< const [SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal), [Intensity](structpcl_1_1_intensity) > > |
|
| using  | [PointCloudIn](classpcl_1_1_s_u_s_a_n_keypoint#ad89751519bcac42994e366af70160dc9) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudIn](classpcl_1_1_s_u_s_a_n_keypoint#ad89751519bcac42994e366af70160dc9) |
|
| using  | [PointCloudOut](classpcl_1_1_s_u_s_a_n_keypoint#ac02f9e9db5bae5fd89d8ab920cb0573c) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[PointCloudOut](classpcl_1_1_s_u_s_a_n_keypoint#ac02f9e9db5bae5fd89d8ab920cb0573c) |
|
| using  | [KdTree](classpcl_1_1_s_u_s_a_n_keypoint#a58b33027990737a8aaafa7f3e8efbcd6) = typename [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT >::[KdTree](classpcl_1_1_s_u_s_a_n_keypoint#a58b33027990737a8aaafa7f3e8efbcd6) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_s_u_s_a_n_keypoint#a6fc6a0bd44790be53a59f70f9eff4263) = typename PointCloudIn::ConstPtr |
|
| using  | [PointCloudN](classpcl_1_1_s_u_s_a_n_keypoint#a7b015158f91d201c9221238b943053a5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< [NormalT](structpcl_1_1_normal) > |
|
| using  | [PointCloudNPtr](classpcl_1_1_s_u_s_a_n_keypoint#a60ba15267075a3715ca01c0354ab4dc2) = typename [PointCloudN::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudNConstPtr](classpcl_1_1_s_u_s_a_n_keypoint#aa66f5b4ccbb534ac618f7e3dccee63bf) = typename [PointCloudN::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| - Public Types inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| using  | [Ptr](classpcl_1_1_keypoint#a4a298ad83990caf9cc4615ff5f47d835) = shared\_ptr< [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [ConstPtr](classpcl_1_1_keypoint#aef0828810a45adcdaa517406806e921f) = shared\_ptr< const [Keypoint](classpcl_1_1_keypoint)< PointInT, PointOutT > > |
|
| using  | [BaseClass](classpcl_1_1_keypoint#a285575f8ba202d203c1372079d1223a7) = [PCLBase](classpcl_1_1_p_c_l_base)< PointInT > |
|
| using  | [KdTree](classpcl_1_1_keypoint#af313d9edfa4fc522eda42e9c4012295e) = [pcl::search::Search](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html)< PointInT > |
|
| using  | [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) = typename [KdTree::Ptr](https://pointclouds.org/documentation/classpcl_1_1search_1_1_search.html#ab4688e4899ce5aa6937dba334dc75763) |
|
| using  | [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudInPtr](classpcl_1_1_keypoint#a6ba87d8026b0470cfcd5684e430c0649) = typename [PointCloudIn::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) = typename [PointCloudIn::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointOutT > |
|
| using  | [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) = std::function< int([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911), double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| using  | [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) = std::function< int(const [PointCloudIn](classpcl_1_1_keypoint#a800c9ea45061d5fc5234beb4db8d20ac) &cloud, [pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &, std::vector< float > &)> |
|
| - Public Types inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| using  | [PointCloud](classpcl_1_1_p_c_l_base#a69de4001826d45c280087187322d779d) = [pcl::PointCloud](classpcl_1_1_point_cloud)< PointInT > |
|
| using  | [PointCloudPtr](classpcl_1_1_p_c_l_base#a4399c6b93663d4762fc3389c1b594eb8) = typename [PointCloud::Ptr](classpcl_1_1_point_cloud#ab805ba3b19e952ad19d084a9caa3dc60) |
|
| using  | [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) = typename [PointCloud::ConstPtr](classpcl_1_1_point_cloud#af70fd81ce582ccabf683dd782ed3f032) |
|
| using  | [PointIndicesPtr](classpcl_1_1_p_c_l_base#afe906230f3e673dc2ff10b9d579f4ccb) = [PointIndices::Ptr](structpcl_1_1_point_indices#a3c574b78dfbe67c93d09acdbc8ecc499) |
|
| using  | [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) = [PointIndices::ConstPtr](structpcl_1_1_point_indices#a6880da079270712d46b0bb348cf124bc) |
|




|  |
| --- |
| 
 Public Member Functions |
|  | [SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint#afecd0079c746adf2b6d1189b4dbd1d3d) (float radius=0.01f, float distance\_threshold=0.001f, float angular\_threshold=0.0001f, float intensity\_threshold=7.0f) |
|  | Constructor. [More...](classpcl_1_1_s_u_s_a_n_keypoint#afecd0079c746adf2b6d1189b4dbd1d3d) |
|
|  | [~SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint#a5cc849b3c88f26dce25bcca3b35befef) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_s_u_s_a_n_keypoint#a5cc849b3c88f26dce25bcca3b35befef) |
|
| void  | [setRadius](classpcl_1_1_s_u_s_a_n_keypoint#a46113c414b9876ad17ce12285acfd98e) (float radius) |
|  | set the radius for normal estimation and non maxima supression. [More...](classpcl_1_1_s_u_s_a_n_keypoint#a46113c414b9876ad17ce12285acfd98e) |
|
| void  | [setDistanceThreshold](classpcl_1_1_s_u_s_a_n_keypoint#a7f2e035d390660009df6ab826472edfa) (float distance\_threshold) |
|
| void  | [setAngularThreshold](classpcl_1_1_s_u_s_a_n_keypoint#af1498d1f71ae40d0e7c0a0059c1d9f02) (float angular\_threshold) |
|  | set the angular\_threshold value for detecting corners. [More...](classpcl_1_1_s_u_s_a_n_keypoint#af1498d1f71ae40d0e7c0a0059c1d9f02) |
|
| void  | [setIntensityThreshold](classpcl_1_1_s_u_s_a_n_keypoint#a27b0542ff9404c8eb472ed370e3f791f) (float intensity\_threshold) |
|  | set the intensity\_threshold value for detecting corners. [More...](classpcl_1_1_s_u_s_a_n_keypoint#a27b0542ff9404c8eb472ed370e3f791f) |
|
| void  | [setNormals](classpcl_1_1_s_u_s_a_n_keypoint#af267b2591d5c90eaa383dfc4e4bdd3fb) (const [PointCloudNConstPtr](classpcl_1_1_s_u_s_a_n_keypoint#aa66f5b4ccbb534ac618f7e3dccee63bf) &normals) |
|  | set normals if precalculated normals are available. [More...](classpcl_1_1_s_u_s_a_n_keypoint#af267b2591d5c90eaa383dfc4e4bdd3fb) |
|
| void  | [setSearchSurface](classpcl_1_1_s_u_s_a_n_keypoint#a90c0213f6ac8271a3403d6cfce869dcd) (const [PointCloudInConstPtr](classpcl_1_1_s_u_s_a_n_keypoint#a6fc6a0bd44790be53a59f70f9eff4263) &cloud) override |
|
| void  | [setNumberOfThreads](classpcl_1_1_s_u_s_a_n_keypoint#ad5319f6a2ea12d495fb90b8ad534260f) (unsigned int nr\_threads) |
|  | Initialize the scheduler and set the number of threads to use. [More...](classpcl_1_1_s_u_s_a_n_keypoint#ad5319f6a2ea12d495fb90b8ad534260f) |
|
| void  | [setNonMaxSupression](classpcl_1_1_s_u_s_a_n_keypoint#a59c1126fb24e12e248d688810fd7e218) (bool nonmax) |
|  | Apply non maxima suppression to the responses to keep strongest corners. [More...](classpcl_1_1_s_u_s_a_n_keypoint#a59c1126fb24e12e248d688810fd7e218) |
|
| void  | [setGeometricValidation](classpcl_1_1_s_u_s_a_n_keypoint#a29a5fbb90ce58d5fedde0c26bf40899b) (bool validate) |
|  | Filetr false positive using geometric criteria. [More...](classpcl_1_1_s_u_s_a_n_keypoint#a29a5fbb90ce58d5fedde0c26bf40899b) |
|
| - Public Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
|  | [Keypoint](classpcl_1_1_keypoint#a196c2d59225b820f79938b859c241b1a) ()=default |
|
|  | [Keypoint](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) () |
|  | Empty constructor. [More...](classpcl_1_1_keypoint#ac7d244c1f7ec9a3a3c14438a9e983f15) |
|
| void  | [harrisCorner](classpcl_1_1_keypoint#ac3192deeb5d74d647768b472ec44baa6) (PointInT &output, PointInT &input, const float sigma\_d, const float sigma\_i, const float alpha, const float thresh) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#aa75a9bc1a92a269bd02d702314cf84ad) (PointInT &output, PointInT &input, const float sigma, bool SCALE) |
|
| void  | [hessianBlob](classpcl_1_1_keypoint#a01397730ac2f3fc03286ba676ca3b5e4) (PointInT &output, PointInT &input, const float start\_scale, const float scaling\_factor, const int num\_scales) |
|
| void  | [imageElementMultiply](classpcl_1_1_keypoint#a5d0f6762964c3be793623ab491aff190) (PointInT &output, PointInT &input1, PointInT &input2) |
|
|  | [~Keypoint](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) () override=default |
|  | Empty destructor. [More...](classpcl_1_1_keypoint#a25e054782d64b43f4e8341251737f059) |
|
| virtual void  | [setSearchSurface](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) (const [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) &cloud) |
|  | Provide a pointer to the input dataset that we need to estimate features at every point for. [More...](classpcl_1_1_keypoint#a8f6040453f5a649ed1b81708a902a001) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [getSearchSurface](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) () |
|  | Get a pointer to the surface point cloud dataset. [More...](classpcl_1_1_keypoint#a3f72be743468d12e937449ccfe1f97b3) |
|
| void  | [setSearchMethod](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) (const [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) &tree) |
|  | Provide a pointer to the search object. [More...](classpcl_1_1_keypoint#a517b02131e34e0f767b2724f2db0b2a1) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [getSearchMethod](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) () |
|  | Get a pointer to the search method used. [More...](classpcl_1_1_keypoint#a9b44d41140d1be871ffa4d97dc7ad9e0) |
|
| double  | [getSearchParameter](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) () |
|  | Get the internal search parameter. [More...](classpcl_1_1_keypoint#af23d203edfbb003629cbbdea17f13261) |
|
| void  | [setKSearch](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) (int k) |
|  | Set the number of k nearest neighbors to use for the feature estimation. [More...](classpcl_1_1_keypoint#aec339206fd5c9500cb33ae466b4499cc) |
|
| int  | [getKSearch](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) () |
|  | get the number of k nearest neighbors used for the feature estimation. [More...](classpcl_1_1_keypoint#a39c2a03fec74e16a3edd91c0487dfb5b) |
|
| void  | [setRadiusSearch](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) (double radius) |
|  | Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection. [More...](classpcl_1_1_keypoint#a27915fb9299cb8f5a3516a6e33cf37e7) |
|
| double  | [getRadiusSearch](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) () |
|  | Get the sphere radius used for determining the neighbors. [More...](classpcl_1_1_keypoint#a689793d4c81267dedf587b5473f3b254) |
|
| [pcl::PointIndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#aaf931dfa9573efdfea6ca35cb8a52993) | [getKeypointsIndices](classpcl_1_1_keypoint#a6dbb9d7b0ae0b61585fcde757a32a3c0) () |
|
| void  | [compute](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output) |
|  | Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () [More...](classpcl_1_1_keypoint#a046a7cd11598b06d2076da69a3100e4b) |
|
| int  | [searchForNeighbors](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) ([pcl::index\_t](https://pointclouds.org/documentation/namespacepcl.html#a45edbae979af563e6a1e39fd1aad3911) index, double parameter, [pcl::Indices](https://pointclouds.org/documentation/namespacepcl.html#a8bfe09b8680e7129dd0fd6177c1a2ce6) &indices, std::vector< float > &distances) const |
|  | Search for k-nearest neighbors using the spatial locator from *setSearchmethod*, and the given surface from *setSearchSurface*. [More...](classpcl_1_1_keypoint#ad800dd7d20259aeb975ba8bbccbad036) |
|
| - Public Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
|  | [PCLBase](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) () |
|  | Empty constructor. [More...](classpcl_1_1_p_c_l_base#af4fbc5eb005057f8a0fc6d60bde595df) |
|
|  | [PCLBase](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) (const [PCLBase](classpcl_1_1_p_c_l_base) &base) |
|  | Copy constructor. [More...](classpcl_1_1_p_c_l_base#a7a6dd7a91275d7737cf1b18005b47244) |
|
| virtual  | [~PCLBase](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) ()=default |
|  | Destructor. [More...](classpcl_1_1_p_c_l_base#ace0baa9034497232920bbe6e5a9f393b) |
|
| virtual void  | [setInputCloud](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) (const [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) &cloud) |
|  | Provide a pointer to the input dataset. [More...](classpcl_1_1_p_c_l_base#a1952d7101f3942bac3b69ed55c1ca7ea) |
|
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) const  | [getInputCloud](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) () const |
|  | Get a pointer to the input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a8cd745c4f7a792212f4fc3720b9d46ea) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) (const [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#ab219359de6eb34c9d51e2e976dd1a0d1) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) (const [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#a436c68c74b31e4dd00000adfbb11ca7c) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) (const [PointIndicesConstPtr](classpcl_1_1_p_c_l_base#ae4b0d9b8a0867631ef2b9114116f9618) &indices) |
|  | Provide a pointer to the vector of indices that represents the input data. [More...](classpcl_1_1_p_c_l_base#af9cc90d8364ce968566f75800d3773ca) |
|
| virtual void  | [setIndices](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) (std::size\_t row\_start, std::size\_t col\_start, std::size\_t nb\_rows, std::size\_t nb\_cols) |
|  | Set the indices for the points laying within an interest region of the point cloud. [More...](classpcl_1_1_p_c_l_base#a554d92d5605748c0573f6d1c7428f5a7) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [getIndices](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) () |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#af46c8513100321ca44df399abb494ad1) |
|
| [IndicesConstPtr](https://pointclouds.org/documentation/namespacepcl.html#a011f84e43d80cb736d9ec9abd0930024) const  | [getIndices](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) () const |
|  | Get a pointer to the vector of indices used. [More...](classpcl_1_1_p_c_l_base#acae187b37230758959572ceb1e6e2045) |
|
| const PointInT &  | [operator[]](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) (std::size\_t pos) const |
|  | Override PointCloud operator[] to shorten code. [More...](classpcl_1_1_p_c_l_base#ae97525f1375a8eec6d3119bf3de16ef0) |
|




|  |
| --- |
| 
 Protected Member Functions |
| bool  | [initCompute](classpcl_1_1_s_u_s_a_n_keypoint#a9fe73d5ae4b9b78d95e02f1bde8bded6) () override |
|
| void  | [detectKeypoints](classpcl_1_1_s_u_s_a_n_keypoint#a71bb532287298220a7d962fcffdcc6f1) ([PointCloudOut](classpcl_1_1_s_u_s_a_n_keypoint#ac02f9e9db5bae5fd89d8ab920cb0573c) &output) override |
|
| bool  | [isWithinNucleusCentroid](classpcl_1_1_s_u_s_a_n_keypoint#a2e506876598d89cdc16a36810a2790a7) (const Eigen::Vector3f &nucleus, const Eigen::Vector3f &centroid, const Eigen::Vector3f &nc, const PointInT &point) const |
|  | return true if a point lies within the line between the nucleus and the centroid [More...](classpcl_1_1_s_u_s_a_n_keypoint#a2e506876598d89cdc16a36810a2790a7) |
|
| - Protected Member Functions inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| const std::string &  | [getClassName](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) () const |
|  | Get a string representation of the name of this class. [More...](classpcl_1_1_keypoint#ae5f2c37cadfe3957635dcd2b0d310d2e) |
|
| virtual void  | [detectKeypoints](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) ([PointCloudOut](classpcl_1_1_keypoint#aaeded99ebd94de46117047c2f2857ee5) &output)=0 |
|  | Abstract key point detection method. [More...](classpcl_1_1_keypoint#a12304417bb48d0f5a460dc7ab7538a86) |
|
| - Protected Member Functions inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| bool  | [initCompute](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) () |
|  | This method should get called before starting the actual computation. [More...](classpcl_1_1_p_c_l_base#acceb20854934f4cf77e266eb5a44d4f0) |
|
| bool  | [deinitCompute](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) () |
|  | This method should get called after finishing the actual computation. [More...](classpcl_1_1_p_c_l_base#afc426c4eebb94b7734d4fa556bff1420) |
|




|  |
| --- |
| 
 Additional Inherited Members |
| - Protected Attributes inherited from [pcl::Keypoint< PointInT, PointOutT >](classpcl_1_1_keypoint) |
| std::string  | [name\_](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|  | The key point detection method's name. [More...](classpcl_1_1_keypoint#a73ddedd264e48db32db023bd067b4063) |
|
| [SearchMethod](classpcl_1_1_keypoint#a3b37a2ca33f818178aa6b35fbc805620) | [search\_method\_](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|  | The search method template for indices. [More...](classpcl_1_1_keypoint#a091691263bc4f2186245ce570e85bccb) |
|
| [SearchMethodSurface](classpcl_1_1_keypoint#a425c6984bd98ddbe8da154aaf31d7c66) | [search\_method\_surface\_](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|  | The search method template for points. [More...](classpcl_1_1_keypoint#a9d5631c580e91f46c5d985cd61eef2bd) |
|
| [PointCloudInConstPtr](classpcl_1_1_keypoint#a8e964def6d3ebe2e75ca1efa722225bf) | [surface\_](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|  | An input point cloud describing the surface that is to be used for nearest neighbors estimation. [More...](classpcl_1_1_keypoint#abc5cea2fc91608ada491c3aac5f01149) |
|
| [KdTreePtr](classpcl_1_1_keypoint#ab09feffc3cd41fdd9cd3bc52a22809cb) | [tree\_](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|  | A pointer to the spatial search object. [More...](classpcl_1_1_keypoint#ab648013526b96620698070b379b3a5c1) |
|
| double  | [search\_parameter\_](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|  | The actual search parameter (casted from either *search\_radius\_* or *k\_*). [More...](classpcl_1_1_keypoint#a878a69812dad1821d2d36fa58199b5cb) |
|
| double  | [search\_radius\_](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|  | The nearest neighbors search radius for each point. [More...](classpcl_1_1_keypoint#aced70776be62dcb88f8293e9a5d46ae9) |
|
| int  | [k\_](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|  | The number of K nearest neighbors to use for each point. [More...](classpcl_1_1_keypoint#a6f79ff083299e0b67316b26d1931613e) |
|
| [pcl::PointIndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#a9648b74014e6b52eb855a7f75dad9806) | [keypoints\_indices\_](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|  | Indices of the keypoints in the input cloud. [More...](classpcl_1_1_keypoint#a9c24f114f3a640326cb42386b4c4051c) |
|
| - Protected Attributes inherited from [pcl::PCLBase< PointInT >](classpcl_1_1_p_c_l_base) |
| [PointCloudConstPtr](classpcl_1_1_p_c_l_base#a575135fb579dc86f7845ed9dba1ea276) | [input\_](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|  | The input point cloud dataset. [More...](classpcl_1_1_p_c_l_base#a09c70d8e06e3fb4f07903fe6f8d67869) |
|
| [IndicesPtr](https://pointclouds.org/documentation/namespacepcl.html#ab11731b62628e35f6adc312d1cdaf372) | [indices\_](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|  | A pointer to the vector of point indices to use. [More...](classpcl_1_1_p_c_l_base#aaee847c8a517ebf365bad2cb182a6626) |
|
| bool  | [use\_indices\_](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|  | Set to true if point indices are used. [More...](classpcl_1_1_p_c_l_base#ada1eadb824d34ca9206a86343d9760bb) |
|
| bool  | [fake\_indices\_](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|  | If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. [More...](classpcl_1_1_p_c_l_base#adadb0299f144528020ed558af6879662) |
|

 Detailed Description
--------------------

 
### template<typename PointInT, typename PointOutT, typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>> class pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >

 [SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint "SUSANKeypoint implements a RGB-D extension of the SUSAN detector including normal directions variatio...") implements a RGB-D extension of the SUSAN detector including normal directions variation in top of intensity variation. 

 It is different from Harris in that it exploits normals directly so it is faster.   
 Original paper "SUSAN — A New Approach to Low Level Image Processing", Smith, Stephen M. and Brady, J. Michael

 
Author
Nizar Sallem 
 Definition at line [56](https://pointclouds.org/documentation/susan_8h_source.html#l00056) of file [susan.h](https://pointclouds.org/documentation/susan_8h_source.html).

 
Member Typedef Documentation
----------------------------

  ConstPtr
--------

    template<typename PointInT , typename PointOutT , typename NormalT = pcl::Normal, typename IntensityT = pcl::common::IntensityFieldAccessor<PointInT>>  

|  |
| --- |
| using [pcl::SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint)< PointInT, PointOutT, [NormalT](structpcl_1_1_normal), IntensityT >::[ConstPtr](classpcl_1_1_s_u_s_a_n_keypoint#a187a87ce8314f9f43794a947a06d61a5) = shared\_ptr<const [SUSANKeypoint](classpcl_1_1_s_u_s_a_n_keypoint)<Poin
[cell cut: 25,694,662 characters, first 4,193,889 kept]