Image Component Library (ICL)
|
#include <PointCloudCreatorCL.h>
Public Member Functions | |
ICLGeom_API | PointCloudCreatorCL (utils::Size size, const utils::Array2D< Vec > &dirs) |
Constructor. | |
ICLGeom_API | ~PointCloudCreatorCL () |
Destructor. | |
ICLGeom_API void | setDirectionVectors (const utils::Array2D< Vec > &dirs) throw (utils::ICLException) |
updates the internally used direction vectors | |
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) | |
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) | |
ICLGeom_API bool | isCLReady () |
Returns the openCL status (true=openCL context ready, false=no openCL context available) | |
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 |
This class is used in PointCloudCreator for GPU-parallelized pointcloud creation
ICLGeom_API icl::geom::PointCloudCreatorCL::PointCloudCreatorCL | ( | utils::Size | size, |
const utils::Array2D< Vec > & | dirs | ||
) |
Constructor.
Constructs an object of this class.
size | size of the input core::depth image and output pointcloud |
dirs | view ray directions calculated in PointCloudCreator |
Destructor.
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)
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)
Returns the openCL status (true=openCL context ready, false=no openCL context available)
ICLGeom_API void icl::geom::PointCloudCreatorCL::setDirectionVectors | ( | const utils::Array2D< Vec > & | dirs | ) | throw (utils::ICLException) |
updates the internally used direction vectors
the underlying chip size must not change, otherwise, and exception is thrown
bool icl::geom::PointCloudCreatorCL::clReady [private] |
math::FixedColVector<float, 4>* icl::geom::PointCloudCreatorCL::rgbaData [private] |
float* icl::geom::PointCloudCreatorCL::xyzData [private] |