Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
TIRayEstimator.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <string>
6#include <cstddef>
7
8namespace ph
9{
10
11class Ray;
12class Integrand;
13class SampleFlow;
14
15template<typename EstimationType>
17{
18public:
19 virtual ~TIRayEstimator() = default;
20
21 virtual void update(const Integrand& integrand) = 0;
22
23 virtual void estimate(
24 const Ray& ray,
25 const Integrand& integrand,
26 SampleFlow& sampleFlow,
27 TEstimationArray<EstimationType>& out_estimation) const = 0;
28
30 std::size_t attributeId,
31 std::size_t estimationIndex);
32
33 virtual std::string toString() const;
34};
35
36// In-header Implementations:
37
38template<typename EstimationType>
40 const std::size_t attributeId,
41 const std::size_t estimationIndex)
42{}
43
44template<typename EstimationType>
46{
47 return "Ray Estimator";
48}
49
50}// end namespace ph
Definition Integrand.h:12
Represents a ray in space.
Definition Ray.h:21
A sample with arbitrary dimensions with fine-grained sampling control.
Definition SampleFlow.h:19
Definition TEstimationArray.h:13
Definition TIRayEstimator.h:17
virtual void estimate(const Ray &ray, const Integrand &integrand, SampleFlow &sampleFlow, TEstimationArray< EstimationType > &out_estimation) const =0
virtual ~TIRayEstimator()=default
virtual void update(const Integrand &integrand)=0
virtual void mapAttributeToEstimation(std::size_t attributeId, std::size_t estimationIndex)
Definition TIRayEstimator.h:39
virtual std::string toString() const
Definition TIRayEstimator.h:45
The root for all renderer implementations.
Definition EEngineProject.h:6