Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
IReceivedRayProcessor.h
Go to the documentation of this file.
1#pragma once
2
3#include "Math/math_fwd.h"
5
6#include <Common/primitive_type.h>
7
8namespace ph
9{
10
11class Ray;
12class SampleFlow;
13
15{
16public:
17 virtual ~IReceivedRayProcessor() = default;
18
19 virtual void process(
20 const math::Vector2D& rasterCoord,
21 const Ray& sensedRay,
22 const math::Spectrum& quantityWeight,
23 SampleFlow& sampleFlow) = 0;
24
25 virtual void onBatchStart(uint64 batchNumber);
26 virtual void onBatchFinish(uint64 batchNumber);
27};
28
29// In-header Implementations:
30
31inline void IReceivedRayProcessor::onBatchStart(const uint64 batchNumber)
32{}
33
34inline void IReceivedRayProcessor::onBatchFinish(const uint64 batchNumber)
35{}
36
37}// end namespace ph
Definition IReceivedRayProcessor.h:15
virtual void process(const math::Vector2D &rasterCoord, const Ray &sensedRay, const math::Spectrum &quantityWeight, SampleFlow &sampleFlow)=0
virtual void onBatchStart(uint64 batchNumber)
Definition IReceivedRayProcessor.h:31
virtual void onBatchFinish(uint64 batchNumber)
Definition IReceivedRayProcessor.h:34
virtual ~IReceivedRayProcessor()=default
Represents a ray in space.
Definition Ray.h:21
A sample with arbitrary dimensions with fine-grained sampling control.
Definition SampleFlow.h:19
Definition TTristimulusSpectrum.h:11
The root for all renderer implementations.
Definition EEngineProject.h:6