Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
BsdfQueryContext.h
Go to the documentation of this file.
1#pragma once
2
5#include "Core/LTA/enums.h"
6
7namespace ph
8{
9
13{
14 // TODO: make this able to init query for multiple elementals or
15 // based on surface phenomenon (which can produce a phenomenon/bsdfQuery iterator for surface optics to consume)
16public:
20
21 BsdfQueryContext() = default;
23 explicit BsdfQueryContext(lta::ESidednessPolicy sidednessPolicy);
24
29};
30
31// In-header Implementations:
32
35{
36 this->elemental = elemental;
37}
38
44
46 const SurfaceElemental elemental,
47 const lta::ETransport transport,
48 const lta::ESidednessPolicy sidednessPolicy)
49
50 : elemental(elemental)
51 , transport(transport)
52 , sidedness(sidednessPolicy)
53{}
54
55}// end namespace ph
The environment a BSDF query is performed under.
Definition BsdfQueryContext.h:13
lta::SidednessAgreement sidedness
Definition BsdfQueryContext.h:19
lta::ETransport transport
Definition BsdfQueryContext.h:18
SurfaceElemental elemental
Definition BsdfQueryContext.h:17
BsdfQueryContext()=default
Definition SidednessAgreement.h:32
ESidednessPolicy
Definition SidednessAgreement.h:17
ETransport
Type of the transported quantity.
Definition enums.h:32
The root for all renderer implementations.
Definition EEngineProject.h:6
int SurfaceElemental
Definition surface_optics_fwd.h:30
constexpr SurfaceElemental ALL_SURFACE_ELEMENTALS
Definition surface_optics_fwd.h:58