CLRaycaster: GPU OpenCL version of BVH Raycasting.  
 More...
#include <CLRaycaster.hpp>
|  | 
| bool | castRay (const Vector3f &origin, const Vector3f &direction, IntT &intersection) | 
|  | Overload functions ///.  More... 
 | 
|  | 
| void | castRays (const std::vector< Vector3f > &origins, const std::vector< Vector3f > &directions, std::vector< IntT > &intersections, std::vector< uint8_t > &hits) override | 
|  | Cast from multiple ray origin/direction pairs onto the mesh.  More... 
 | 
|  | 
| void | castRays (const Vector3f &origin, const std::vector< Vector3f > &directions, std::vector< IntT > &intersections, std::vector< uint8_t > &hits) override | 
|  | Cast a ray from single origin with multiple directions onto the mesh.  More... 
 | 
|  | 
|  | CLRaycaster (const MeshBufferPtr mesh, unsigned int stack_size=32) | 
|  | Constructor: Generate BVH tree on mesh, loads CL kernels.  More... 
 | 
|  | 
|  | BVHRaycaster (const MeshBufferPtr mesh, unsigned int stack_size=64) | 
|  | Constructor: Stores mesh as member.  More... 
 | 
|  | 
| virtual void | castRays (const std::vector< Vector3f > &origins, const std::vector< std::vector< Vector3f > > &directions, std::vector< std::vector< IntT > > &intersections, std::vector< std::vector< uint8_t > > &hits) | 
|  | Cast rays with multiples origins. Each origin has multiples directions.  More... 
 | 
|  | 
| virtual void | castRays (const Vector3f &origin, const std::vector< std::vector< Vector3f > > &directions, std::vector< std::vector< IntT > > &intersections, std::vector< std::vector< uint8_t > > &hits) | 
|  | Cast a ray from a single origin with multiple directions (in matrix form) onto the mesh.  More... 
 | 
|  | 
|  | RaycasterBase (const MeshBufferPtr mesh) | 
|  | Constructor: Stores mesh as member.  More... 
 | 
|  | 
template<typename IntT>
class lvr2::CLRaycaster< IntT >
CLRaycaster: GPU OpenCL version of BVH Raycasting. 
Definition at line 70 of file CLRaycaster.hpp.
◆ CLRaycaster()
Constructor: Generate BVH tree on mesh, loads CL kernels. 
 
 
◆ castRay()
Overload functions ///. 
Cast a single ray onto the mesh. Hint: Better not use it on GPU.
- Parameters
- 
  
    | [in] | origin | Ray origin |  | [in] | direction | Ray direction |  | [out] | intersection | User defined intersection output |  
 
- Returns
- true Intersection found 
- 
false Not intersection found 
Reimplemented from lvr2::BVHRaycaster< IntT >.
 
 
◆ castRays() [1/2]
template<typename IntT > 
  
  | 
        
          | void lvr2::CLRaycaster< IntT >::castRays | ( | const std::vector< Vector3f > & | origins, |  
          |  |  | const std::vector< Vector3f > & | directions, |  
          |  |  | std::vector< IntT > & | intersections, |  
          |  |  | std::vector< uint8_t > & | hits |  
          |  | ) |  |  |  | overridevirtual | 
 
Cast from multiple ray origin/direction pairs onto the mesh. 
- Parameters
- 
  
    | [in] | origin | Origin of the ray |  | [in] | directions | Directions of the ray |  | [out] | intersections | User defined intersections output |  | [out] | hits | Intersection found or not |  
 
Reimplemented from lvr2::RaycasterBase< IntT >.
 
 
◆ castRays() [2/2]
template<typename IntT > 
  
  | 
        
          | void lvr2::CLRaycaster< IntT >::castRays | ( | const Vector3f & | origin, |  
          |  |  | const std::vector< Vector3f > & | directions, |  
          |  |  | std::vector< IntT > & | intersections, |  
          |  |  | std::vector< uint8_t > & | hits |  
          |  | ) |  |  |  | overridevirtual | 
 
Cast a ray from single origin with multiple directions onto the mesh. 
- Parameters
- 
  
    | [in] | origin | Origin of the ray |  | [in] | directions | Directions of the ray |  | [out] | intersections | User defined intersections output |  | [out] | hits | Intersection found or not |  
 
Reimplemented from lvr2::RaycasterBase< IntT >.
 
 
◆ copyBVHToGPU()
◆ createKernel()
◆ getDeviceInformation()
◆ initOpenCL()
Initializes OpenCL related stuff. 
 
 
◆ initOpenCLBuffer()
template<typename IntT > 
  
  | 
        
          | void lvr2::CLRaycaster< IntT >::initOpenCLBuffer | ( | size_t | num_origins, |  
          |  |  | size_t | num_dirs |  
          |  | ) |  |  |  | private | 
 
 
◆ initOpenCLTreeBuffer()
◆ m_bvhIndicesOrTriListsBuffer
◆ m_bvhLimitsnBuffer
◆ m_bvhTriangleIntersectionDataBuffer
◆ m_bvhTriIdxListBuffer
◆ m_context
◆ m_device
◆ m_device_global_memory
◆ m_kernel_multi_multi
◆ m_kernel_one_multi
◆ m_kernel_one_one
◆ m_max_work_group_size
◆ m_mps
◆ m_platform
◆ m_program
◆ m_queue
◆ m_rayBuffer
◆ m_rayOriginBuffer
◆ m_resultBuffer
◆ m_threads_per_block
◆ m_warp_size
The documentation for this class was generated from the following file: