29 #ifndef OCL_ICP_SBS_HPP
30 #define OCL_ICP_SBS_HPP
33 #include <CLUtils.hpp>
35 #include <eigen3/Eigen/Dense>
39 class CLEnvGL :
public clutils::CLEnv
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 ICPSBS (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;
89 #endif // OCL_ICP_SBS_HPP
CLEnvGL(GLuint *glPC4DBuffer, GLuint *glRGBABuffer, int width, int height)
Initializes the OpenCL environment.
Definition: ocl_icp_reg.cpp:47
Performs the ICP iterations.
Definition: ocl_icp_sbs.hpp:59
Declares classes that organize the execution of OpenCL kernels.
ICPSBS(GLuint *glPC4DBuffer, GLuint *glRGBABuffer)
Definition: ocl_icp_sbs.cpp:80
Interface class for the getLMs kernel.
Definition: algorithms.hpp:312
void init(std::vector< cl_float8 > pc8d1, std::vector< cl_float8 > pc8d2)
Initializes the OpenGL buffers.
Definition: ocl_icp_sbs.cpp:133
std::vector< cl_float8 > pc8d2(n)
std::vector< cl_float8 > pc8d1(n)
void step()
Performs one ICP iteration and transforms the moving point cloud.
Definition: ocl_icp_sbs.cpp:167
Creates an OpenCL environment with CL-GL interoperability.
Definition: ocl_icp_reg.hpp:39