BBHLeaf struct

A lighter-weight version of SurfaceGroup for BBH leaf nodes that need to store multiple surfaces, but which don't need to store additional information like a transform or explicitly stored bounds.

Base classes

class Surface
This is the abstract superclass for all surfaces.

Public functions

auto intersect(const Ray3f& ray, HitInfo& hit) const -> bool override
Ray-Surface intersection test.
auto bounds() const -> Box3f override
Return the surface's world-space AABB.

Public variables

vector<shared_ptr<Surface>> surfaces
All children.

Function documentation

bool BBHLeaf::intersect(const Ray3f& ray, HitInfo& hit) const override

Ray-Surface intersection test.

Parameters
ray in A 3-dimensional ray data structure with minimum/maximum extent information
hit out A detailed intersection record, which will be filled by the intersection query
Returns True if an intersection was found

Intersect a ray against this surface and return detailed intersection information.