Image Component Library (ICL)
Public Member Functions | Private Attributes | List of all members
icl::geom::PointCloudCreatorCL Class Reference

#include <PointCloudCreatorCL.h>

Public Member Functions

ICLGeom_API PointCloudCreatorCL (utils::Size size, const utils::Array2D< Vec > &dirs)
 Constructor. More...
 
ICLGeom_API ~PointCloudCreatorCL ()
 Destructor. More...
 
ICLGeom_API void setDirectionVectors (const utils::Array2D< Vec > &dirs)
 updates the internally used direction vectors More...
 
ICLGeom_API void create (bool NEEDS_RAW_TO_MM_MAPPING, const core::Img32f *depthValues, const Vec O, const int DEPTH_DIM, core::DataSegment< float, 3 > xyz, const utils::Array2D< Vec > &dirs, float depthScaling)
 Creates a uncolored pointcloud (called from PointCloudCreator) More...
 
ICLGeom_API void createRGB (bool NEEDS_RAW_TO_MM_MAPPING, const core::Img32f *depthValues, const Mat M, const Vec O, const unsigned int COLOR_W, const unsigned int COLOR_H, const int DEPTH_DIM, core::DataSegment< float, 3 > xyz, core::DataSegment< float, 4 > rgba, const core::Img8u *rgbIn, const utils::Array2D< Vec > &dirs, float depthScaling)
 Creates a RGBD-mapped pointcloud (called from PointCloudCreator) More...
 
ICLGeom_API bool isCLReady ()
 Returns the openCL status (true=openCL context ready, false=no openCL context available) More...
 

Private Attributes

bool clReady
 
utils::Size size
 
float * xyzData
 
math::FixedColVector< float, 4 > * rgbaData
 
utils::CLProgram program
 
utils::CLKernel kernelCreate
 
utils::CLKernel kernelCreateRGB
 
utils::CLBuffer depthValuesBuffer
 
utils::CLBuffer matrixBuffer
 
utils::CLBuffer xyzBuffer
 
utils::CLBuffer rgbaBuffer
 
utils::CLBuffer rInBuffer
 
utils::CLBuffer gInBuffer
 
utils::CLBuffer bInBuffer
 
utils::CLBuffer dirsBuffer
 

Detailed Description

This class is used in PointCloudCreator for GPU-parallelized pointcloud creation

Constructor & Destructor Documentation

◆ PointCloudCreatorCL()

ICLGeom_API icl::geom::PointCloudCreatorCL::PointCloudCreatorCL ( utils::Size  size,
const utils::Array2D< Vec > &  dirs 
)

Constructor.

Constructs an object of this class.

Parameters
sizesize of the input core::depth image and output pointcloud
dirsview ray directions calculated in PointCloudCreator

◆ ~PointCloudCreatorCL()

ICLGeom_API icl::geom::PointCloudCreatorCL::~PointCloudCreatorCL ( )

Destructor.

Member Function Documentation

◆ create()

ICLGeom_API void icl::geom::PointCloudCreatorCL::create ( bool  NEEDS_RAW_TO_MM_MAPPING,
const core::Img32f depthValues,
const Vec  O,
const int  DEPTH_DIM,
core::DataSegment< float, 3 >  xyz,
const utils::Array2D< Vec > &  dirs,
float  depthScaling 
)

Creates a uncolored pointcloud (called from PointCloudCreator)

◆ createRGB()

ICLGeom_API void icl::geom::PointCloudCreatorCL::createRGB ( bool  NEEDS_RAW_TO_MM_MAPPING,
const core::Img32f depthValues,
const Mat  M,
const Vec  O,
const unsigned int  COLOR_W,
const unsigned int  COLOR_H,
const int  DEPTH_DIM,
core::DataSegment< float, 3 >  xyz,
core::DataSegment< float, 4 >  rgba,
const core::Img8u rgbIn,
const utils::Array2D< Vec > &  dirs,
float  depthScaling 
)

Creates a RGBD-mapped pointcloud (called from PointCloudCreator)

◆ isCLReady()

ICLGeom_API bool icl::geom::PointCloudCreatorCL::isCLReady ( )

Returns the openCL status (true=openCL context ready, false=no openCL context available)

Returns
openCL context ready/unavailable

◆ setDirectionVectors()

ICLGeom_API void icl::geom::PointCloudCreatorCL::setDirectionVectors ( const utils::Array2D< Vec > &  dirs)

updates the internally used direction vectors

the underlying chip size must not change, otherwise, and exception is thrown

Member Data Documentation

◆ bInBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::bInBuffer
private

◆ clReady

bool icl::geom::PointCloudCreatorCL::clReady
private

◆ depthValuesBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::depthValuesBuffer
private

◆ dirsBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::dirsBuffer
private

◆ gInBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::gInBuffer
private

◆ kernelCreate

utils::CLKernel icl::geom::PointCloudCreatorCL::kernelCreate
private

◆ kernelCreateRGB

utils::CLKernel icl::geom::PointCloudCreatorCL::kernelCreateRGB
private

◆ matrixBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::matrixBuffer
private

◆ program

utils::CLProgram icl::geom::PointCloudCreatorCL::program
private

◆ rgbaBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::rgbaBuffer
private

◆ rgbaData

math::FixedColVector<float, 4>* icl::geom::PointCloudCreatorCL::rgbaData
private

◆ rInBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::rInBuffer
private

◆ size

utils::Size icl::geom::PointCloudCreatorCL::size
private

◆ xyzBuffer

utils::CLBuffer icl::geom::PointCloudCreatorCL::xyzBuffer
private

◆ xyzData

float* icl::geom::PointCloudCreatorCL::xyzData
private

The documentation for this class was generated from the following file: