Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
VolumeDistanceSample.h
Go to the documentation of this file.
1#pragma once
2
3#include "Math/TVector3.h"
5#include "Core/SurfaceHit.h"
6
7#include <Common/primitive_type.h>
8
9namespace ph
10{
11
13{
14public:
15 class Input final
16 {
17 public:
20 real maxDist;
21
22 inline void set(const SurfaceHit& X, const math::Vector3R& L, const real maxDist)
23 {
24 this->X = X;
25 this->L = L;
26 this->maxDist = maxDist;
27 }
28 };
29
30 class Output final
31 {
32 public:
33 real dist;
35 };
36
37 inline bool isMaxDistReached() const
38 {
39 return outputs.dist >= inputs.maxDist;
40 }
41
42public:
45};
46
47}// end namespace ph
General information about a ray-surface intersection event.
Definition SurfaceHit.h:59
Definition VolumeDistanceSample.h:16
real maxDist
Definition VolumeDistanceSample.h:20
SurfaceHit X
Definition VolumeDistanceSample.h:18
math::Vector3R L
Definition VolumeDistanceSample.h:19
void set(const SurfaceHit &X, const math::Vector3R &L, const real maxDist)
Definition VolumeDistanceSample.h:22
Definition VolumeDistanceSample.h:31
real dist
Definition VolumeDistanceSample.h:33
math::Spectrum pdfAppliedWeight
Definition VolumeDistanceSample.h:34
Definition VolumeDistanceSample.h:13
Input inputs
Definition VolumeDistanceSample.h:43
bool isMaxDistReached() const
Definition VolumeDistanceSample.h:37
Output outputs
Definition VolumeDistanceSample.h:44
Definition TTristimulusSpectrum.h:11
The root for all renderer implementations.
Definition EEngineProject.h:6