Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
Integrand.h
Go to the documentation of this file.
1#pragma once
2
3#include <Common/assertion.h>
4
5namespace ph
6{
7
8class Scene;
9class Receiver;
10
11class Integrand final
12{
13public:
14 Integrand();
15 Integrand(const Scene* scene, const Receiver* receiver);
16
17 const Scene& getScene() const;
18 const Receiver& getReceiver() const;
19
20private:
21 const Scene* m_scene;
22 const Receiver* m_receiver;
23};
24
25// In-header Implementations:
26
28 m_scene (nullptr),
29 m_receiver(nullptr)
30{}
31
32inline Integrand::Integrand(const Scene* const scene, const Receiver* const receiver) :
33 m_scene (scene),
34 m_receiver(receiver)
35{
36 PH_ASSERT(scene);
37 PH_ASSERT(receiver);
38}
39
40inline const Scene& Integrand::getScene() const
41{
42 PH_ASSERT(m_scene);
43
44 return *m_scene;
45}
46
47inline const Receiver& Integrand::getReceiver() const
48{
49 PH_ASSERT(m_receiver);
50
51 return *m_receiver;
52}
53
54}// end namespace ph
Definition Integrand.h:12
const Scene & getScene() const
Definition Integrand.h:40
const Receiver & getReceiver() const
Definition Integrand.h:47
Integrand()
Definition Integrand.h:27
A target that can receive any physical quantity, typically electromagnetic energy....
Definition Receiver.h:22
A unified interface for accessing cooked content in a visual world.
Definition Scene.h:27
The root for all renderer implementations.
Definition EEngineProject.h:6