ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::t::geometry::RaycastingScene::CPUImpl Struct Reference
Inheritance diagram for cloudViewer::t::geometry::RaycastingScene::CPUImpl:
Collaboration diagram for cloudViewer::t::geometry::RaycastingScene::CPUImpl:

Public Member Functions

void CastRays (const float *const rays, const size_t num_rays, float *t_hit, unsigned int *geometry_ids, unsigned int *primitive_ids, float *primitive_uvs, float *primitive_normals, const int nthreads, const bool line_intersection) override
 
void TestOcclusions (const float *const rays, const size_t num_rays, const float tnear, const float tfar, int8_t *occluded, const int nthreads) override
 
void CountIntersections (const float *const rays, const size_t num_rays, int *intersections, const int nthreads) override
 
void ListIntersections (const float *const rays, const size_t num_rays, const size_t num_intersections, int *cumsum, unsigned int *track_intersections, unsigned int *ray_ids, unsigned int *geometry_ids, unsigned int *primitive_ids, float *primitive_uvs, float *t_hit, const int nthreads) override
 
void ComputeClosestPoints (const float *const query_points, const size_t num_query_points, float *closest_points, unsigned int *geometry_ids, unsigned int *primitive_ids, float *primitive_uvs, float *primitive_normals, const int nthreads) override
 
void ArraySum (int *data_ptr, size_t num_elements, size_t &result) override
 
void ArrayPartialSum (int *input, int *output, size_t num_elements) override
 
void CopyArray (int *src, uint32_t *dst, size_t num_elements) override
 
- Public Member Functions inherited from cloudViewer::t::geometry::RaycastingScene::Impl
virtual ~Impl ()=default
 
void CommitScene ()
 

Public Attributes

const size_t BATCH_SIZE = 1024
 
- Public Attributes inherited from cloudViewer::t::geometry::RaycastingScene::Impl
RTCScene scene_
 
bool scene_committed_
 
RTCDevice device_
 
std::vector< GeometryPtr > geometry_ptrs_
 
core::Device tensor_device_
 
bool devprop_join_commit
 

Detailed Description

Definition at line 830 of file RaycastingScene.cpp.

Member Function Documentation

◆ ArrayPartialSum()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::ArrayPartialSum ( int *  input,
int *  output,
size_t  num_elements 
)
inlineoverridevirtual

◆ ArraySum()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::ArraySum ( int *  data_ptr,
size_t  num_elements,
size_t &  result 
)
inlineoverridevirtual

Implements cloudViewer::t::geometry::RaycastingScene::Impl.

Definition at line 1181 of file RaycastingScene.cpp.

References result.

◆ CastRays()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::CastRays ( const float *const  rays,
const size_t  num_rays,
float *  t_hit,
unsigned int *  geometry_ids,
unsigned int *  primitive_ids,
float *  primitive_uvs,
float *  primitive_normals,
const int  nthreads,
const bool  line_intersection 
)
inlineoverridevirtual

Implements cloudViewer::t::geometry::RaycastingScene::Impl.

Definition at line 834 of file RaycastingScene.cpp.

References infinity().

◆ ComputeClosestPoints()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::ComputeClosestPoints ( const float *const  query_points,
const size_t  num_query_points,
float *  closest_points,
unsigned int *  geometry_ids,
unsigned int *  primitive_ids,
float *  primitive_uvs,
float *  primitive_normals,
const int  nthreads 
)
inlineoverridevirtual

Implements cloudViewer::t::geometry::RaycastingScene::Impl.

Definition at line 1126 of file RaycastingScene.cpp.

References infinity(), and result.

◆ CopyArray()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::CopyArray ( int *  src,
uint32_t *  dst,
size_t  num_elements 
)
inlineoverridevirtual

Implements cloudViewer::t::geometry::RaycastingScene::Impl.

Definition at line 1192 of file RaycastingScene.cpp.

References copy.

◆ CountIntersections()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::CountIntersections ( const float *const  rays,
const size_t  num_rays,
int *  intersections,
const int  nthreads 
)
inlineoverridevirtual

◆ ListIntersections()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::ListIntersections ( const float *const  rays,
const size_t  num_rays,
const size_t  num_intersections,
int *  cumsum,
unsigned int *  track_intersections,
unsigned int *  ray_ids,
unsigned int *  geometry_ids,
unsigned int *  primitive_ids,
float *  primitive_uvs,
float *  t_hit,
const int  nthreads 
)
inlineoverridevirtual

◆ TestOcclusions()

void cloudViewer::t::geometry::RaycastingScene::CPUImpl::TestOcclusions ( const float *const  rays,
const size_t  num_rays,
const float  tnear,
const float  tfar,
int8_t *  occluded,
const int  nthreads 
)
inlineoverridevirtual

Implements cloudViewer::t::geometry::RaycastingScene::Impl.

Definition at line 919 of file RaycastingScene.cpp.

References context, and infinity().

Member Data Documentation

◆ BATCH_SIZE

const size_t cloudViewer::t::geometry::RaycastingScene::CPUImpl::BATCH_SIZE = 1024

Definition at line 832 of file RaycastingScene.cpp.


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