38#ifndef PCL_GPU_DEVICE_RODRIGUES_HPP_
39#define PCL_GPU_DEVICE_RODRIGUES_HPP_
41#include <pcl/gpu/utils/device/vector_math.hpp>
52 row1.x =
cosA; row1.y = 0.f; row1.z = 0.f;
53 row2.x = 0.f; row2.y =
cosA; row2.z = 0.f;
56 row1.y += -r.z *
sinA; row1.z += r.y *
sinA;
57 row2.x += r.z *
sinA; row2.z += -r.x *
sinA;
60 row1.x += r.x * r.x * (1 -
cosA); row1.y += r.x * r.y * (1 -
cosA); row1.z += r.x * r.z * (1 -
cosA);
61 row2.x += r.y * r.x * (1 -
cosA); row2.y += r.y * r.y * (1 -
cosA); row2.z += r.y * r.z * (1 -
cosA);
Iterator class for point clouds with or without given indices.
__device__ __host__ __forceinline__ float norm(const float3 &v1, const float3 &v2)
__device__ __host__ __forceinline__ void Rodrigues(const float3 &rvec, float3 &row1, float3 &row2, float3 &row3)
__device__ __host__ __forceinline__ void AngleAxisf(float angle, const float3 &r, float3 &row1, float3 &row2, float3 &row3)