The spica renderer
homogeneous.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_HOMOGENEOUS_H_
6 #define _SPICA_HOMOGENEOUS_H_
7 
8 #include "core/common.h"
9 #include "core/cobject.h"
10 #include "core/medium.h"
11 
12 namespace spica {
13 
14 class SPICA_EXPORTS HomogeneousMedium : public Medium {
15 public:
16  HomogeneousMedium(const Spectrum& sigmaAbsorb,
17  const Spectrum& sigmaScatter,
18  double scale, double g);
19 
20  explicit HomogeneousMedium(RenderParams &params);
21 
22  Spectrum Tr(const Ray& ray, Sampler& sampler) const override;
23  Spectrum sample(const Ray& ray, Sampler& sampler, MemoryArena& arena,
24  MediumInteraction* mi) const override;
25 
26 private:
27  const Spectrum sigmaAbsorb_, sigmaScatter_, sigmaExt_;
28  const double g_;
29 };
30 
31 SPICA_EXPORT_PLUGIN(HomogeneousMedium, "Homogeneous medium");
32 
33 } // namespace spica
34 
35 #endif // _SPICA_HOMOGENEOUS_H_
Random sampler class.
Definition: sampler.h:24
RGB spectrum.
Definition: spectrum.h:18
Ray class.
Definition: ray.h:24
Definition: renderparams.h:27
Definition: interaction.h:126
Definition: medium.h:19
Definition: homogeneous.h:14