37#ifndef PCL_GPU_FEATURES_DEVICE_PAIR_FEATURES_HPP_
38#define PCL_GPU_FEATURES_DEVICE_PAIR_FEATURES_HPP_
40#include <pcl/gpu/utils/device/vector_math.hpp>
41#include <pcl/gpu/features/device/rodrigues.hpp>
47 __device__ __host__ __forceinline__
50 f1 = f2 = f3 = f4 = 0.0f;
63 if (std::acos (std::abs (
angle1)) > std::acos (std::abs (
angle2)))
96 float &f1,
float &f2,
float &f3,
float &f4,
float &f5,
float &f6,
float &f7)
103 f1 = f2 = f3 = f4 = f5 = f6 = f7 = 0.0f;
118 f1 = f2 = f3 = f4 = f5 = f6 = f7 = 0.0f;
140 if (f5 > 1.f) f5 = - 1.f / f5;
141 if (f6 > 1.f) f6 = - 1.f / f6;
142 if (f7 > 1.f) f7 = - 1.f / f7;
155 if (f5 > 1.f) f5 = - 1.f / f5;
156 if (f6 > 1.f) f6 = - 1.f / f6;
157 if (f7 > 1.f) f7 = - 1.f / f7;
161 float& f1,
float& f2,
float& f3,
float& f4)
Iterator class for point clouds with or without given indices.
__device__ __host__ __forceinline__ bool computePPFPairFeature(const float3 &p1, const float3 &n1, const float3 &p2, const float3 &n2, float &f1, float &f2, float &f3, float &f4)
__device__ __forceinline__ float3 normalized(const float3 &v)
__device__ __host__ __forceinline__ bool computePairFeatures(const float3 &p1, const float3 &n1, const float3 &p2, const float3 &n2, float &f1, float &f2, float &f3, float &f4)
__device__ __host__ __forceinline__ void computeAlfaM(const float3 &model_reference_point, const float3 &model_reference_normal, const float3 &model_point, float &alpha_m)
__device__ __forceinline__ float dot(const float3 &v1, const float3 &v2)
__device__ __host__ __forceinline__ float norm(const float3 &v1, const float3 &v2)
__device__ __host__ __forceinline__ bool computeRGBPairFeatures(const float3 &p1, const float3 &n1, const int &colors1, const float3 &p2, const float3 &n2, const int &colors2, float &f1, float &f2, float &f3, float &f4, float &f5, float &f6, float &f7)
__device__ __host__ __forceinline__ void computeRGBPairFeatures_RGBOnly(const int &colors1, const int &colors2, float &f5, float &f6, float &f7)
__device__ __host__ __forceinline__ float3 cross(const float3 &v1, const float3 &v2)
__device__ __host__ __forceinline__ void AngleAxisf(float angle, const float3 &r, float3 &row1, float3 &row2, float3 &row3)