Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
acceleration_structure_basics.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <Common/primitive_type.h>
6#include <Common/config.h>
7
8#include <concepts>
9#include <optional>
10#include <cstddef>
11
12#define PH_PROFILE_ACCELERATION_STRUCTURES (1 && PH_PROFILING)
13
14#if PH_PROFILE_ACCELERATION_STRUCTURES
15#include <Common/profiling.h>
16#endif
17
18namespace ph::math
19{
20
21template<typename TesterFunc, typename Item>
22concept CItemSegmentIntersectionTesterVanilla = requires (TesterFunc func, Item item)
23{
24 { func(item, TLineSegment<real>{}) } -> std::same_as<std::optional<real>>;
25};
26
27template<typename TesterFunc, typename Item>
29 TesterFunc func,
30 Item item,
31 TLineSegment<real> segment,
32 std::size_t itemIndex)
33{
34 { func(item, segment, itemIndex) } -> std::same_as<std::optional<real>>;
35};
36
37template<typename TesterFunc, typename Item>
41
42}// end namespace ph::math
Definition acceleration_structure_basics.h:38
Definition acceleration_structure_basics.h:22
Definition acceleration_structure_basics.h:28
Math functions and utilities.
Definition TransformInfo.h:10