29 #ifndef OCL_ICP_SBS_HPP
30 #define OCL_ICP_SBS_HPP
33 #include <CLUtils.hpp>
35 #include <eigen3/Eigen/Dense>
43 CLEnvGL (GLuint *glPC4DBuffer, GLuint *glRGBABuffer,
int width,
int height);
47 void initGLMemObjects ();
49 GLuint *glPC4DBuffer, *glRGBABuffer;
58 template <cl_algo::ICP::ICPStepConfigT RC, cl_algo::ICP::ICPStepConfigW WC>
62 ICPReg (GLuint *glPC4DBuffer, GLuint *glRGBABuffer);
63 void init (std::vector<cl_float8>
pc8d1, std::vector<cl_float8>
pc8d2);
67 unsigned int width, height, n, m, r;
69 clutils::CLEnvInfo<1> infoRBC, infoICP;
71 cl::CommandQueue &queue;
73 GLuint *glPC4DBuffer, *glRGBABuffer;
74 cl_float blue[4], green[4], dummy[4];
75 std::vector<cl_float4> vBlue, vGreen, vDummy;
76 std::vector<cl::BufferGL> dBufferGL;
78 cl::size_t<3> src_origin_g, src_origin_c;
79 cl::size_t<3> dst_origin_1, dst_origin_2;
82 unsigned int max_iterations;
83 double angle_threshold;
84 double translation_threshold;
92 #endif // OCL_ICP_SBS_HPP
CLEnvGL(GLuint *glPC4DBuffer, GLuint *glRGBABuffer, int width, int height)
Initializes the OpenCL environment.
Definition: ocl_icp_reg.cpp:47
void init(std::vector< cl_float8 > pc8d1, std::vector< cl_float8 > pc8d2)
Initializes the OpenGL buffers.
Definition: ocl_icp_reg.cpp:131
Declares classes that organize the execution of OpenCL kernels.
Interface class for the getLMs kernel.
Definition: algorithms.hpp:312
Performs the ICP iterations.
Definition: ocl_icp_reg.hpp:59
ICPReg(GLuint *glPC4DBuffer, GLuint *glRGBABuffer)
Definition: ocl_icp_reg.cpp:80
std::vector< cl_float8 > pc8d2(n)
std::vector< cl_float8 > pc8d1(n)
Creates an OpenCL environment with CL-GL interoperability.
Definition: ocl_icp_reg.hpp:39
void registerPC()
Performs an ICP registration and transforms the moving point cloud.
Definition: ocl_icp_reg.cpp:165