Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
TWideBvhIntersector.h
Go to the documentation of this file.
1#pragma once
2
6
7#include <Common/primitive_type.h>
8
9#include <cstddef>
10
11namespace ph
12{
13
18template<std::size_t N, typename Index>
20{
21public:
22 void update(TSpanView<const Intersectable*> intersectables) override;
23 bool isIntersecting(const Ray& ray, HitProbe& probe) const override;
24 math::AABB3D calcAABB() const override;
25
27
28private:
31};
32
33}// end namespace ph
34
Lightweight ray intersection testing and reporting object. If an intersection is found,...
Definition HitProbe.h:27
Definition Intersector.h:14
Represents a ray in space.
Definition Ray.h:21
Wide BVH acceleration structure supporting arbitrary branch factor.
Definition TWideBvhIntersector.h:20
bool isIntersecting(const Ray &ray, HitProbe &probe) const override
Determine whether a given ray hits the object.
Definition TWideBvhIntersector.ipp:27
void update(TSpanView< const Intersectable * > intersectables) override
Definition TWideBvhIntersector.ipp:20
math::AABB3D calcAABB() const override
Calculates Axis-Aligned Bounding Box (AABB) of itself.
Definition TWideBvhIntersector.ipp:55
void rebuildWithIntersectables(TSpanView< const Intersectable * > intersectables)
Definition TWideBvhIntersector.ipp:63
static TAABB3D makeEmpty()
Definition TAABB3D.ipp:15
Definition TLinearDepthFirstWideBvh.h:45
The root for all renderer implementations.
Definition EEngineProject.h:6
std::span< const T, EXTENT > TSpanView
Same as TSpan, except that the objects are const-qualified. Note that for pointer types,...
Definition TSpan.h:19