Optimized ray packet for streaming processing Organizes ray data in Structure-of-Arrays format for better memory access. More...
#include <CollisionDetection.h>
Public Member Functions | |
void | reserve (size_t capacity) |
Initialize packet with specified capacity. | |
void | addRay (const RayQuery &query) |
Add a ray to the packet. | |
void | clear () |
Clear all data. | |
std::vector< RayQuery > | toRayQueries () const |
Convert packet back to individual RayQuery objects. | |
size_t | getMemoryUsage () const |
Get memory usage of the packet. | |
Data Fields | |
std::vector< helios::vec3 > | origins |
Ray origin points (contiguous) | |
std::vector< helios::vec3 > | directions |
Ray direction vectors (contiguous) | |
std::vector< float > | max_distances |
Maximum ray distances (contiguous) | |
std::vector< std::vector< uint > > | target_UUIDs |
Target primitive UUIDs per ray. | |
std::vector< HitResult > | results |
Intersection results (output) | |
size_t | ray_count = 0 |
Number of rays in this packet. | |
Optimized ray packet for streaming processing Organizes ray data in Structure-of-Arrays format for better memory access.
Definition at line 141 of file CollisionDetection.h.
|
inline |
Add a ray to the packet.
Definition at line 169 of file CollisionDetection.h.
|
inline |
Clear all data.
Definition at line 181 of file CollisionDetection.h.
|
inline |
Get memory usage of the packet.
Definition at line 205 of file CollisionDetection.h.
|
inline |
Initialize packet with specified capacity.
Definition at line 158 of file CollisionDetection.h.
|
inline |
Convert packet back to individual RayQuery objects.
Definition at line 193 of file CollisionDetection.h.
std::vector<helios::vec3> CollisionDetection::RayPacket::directions |
Ray direction vectors (contiguous)
Definition at line 144 of file CollisionDetection.h.
std::vector<float> CollisionDetection::RayPacket::max_distances |
Maximum ray distances (contiguous)
Definition at line 145 of file CollisionDetection.h.
std::vector<helios::vec3> CollisionDetection::RayPacket::origins |
Ray origin points (contiguous)
Definition at line 143 of file CollisionDetection.h.
size_t CollisionDetection::RayPacket::ray_count = 0 |
Number of rays in this packet.
Definition at line 151 of file CollisionDetection.h.
std::vector<HitResult> CollisionDetection::RayPacket::results |
Intersection results (output)
Definition at line 149 of file CollisionDetection.h.
std::vector<std::vector<uint> > CollisionDetection::RayPacket::target_UUIDs |
Target primitive UUIDs per ray.
Definition at line 146 of file CollisionDetection.h.