The spica renderer
conductor.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_MIRROR_H_
6 #define _SPICA_MIRROR_H_
7 
8 #include "core/core.hpp"
9 #include "core/common.h"
10 #include "core/spectrum.h"
11 #include "core/render.hpp"
12 #include "core/material.h"
13 
14 namespace spica {
15 
16 class SPICA_EXPORTS Conductor : public SurfaceMaterial {
17 public:
18  // Public methods
19  Conductor(const std::shared_ptr<Texture<Spectrum>> & eta,
20  const std::shared_ptr<Texture<Spectrum>> &k,
21  const std::shared_ptr<Texture<Spectrum>> &bump = nullptr);
22 
23  Conductor(RenderParams &params);
24 
25  void setScatterFuncs(SurfaceInteraction* intr,
26  MemoryArena& arena) const override;
27 
28 private:
29  // Private fields
30  std::shared_ptr<Texture<Spectrum>> eta_;
31  std::shared_ptr<Texture<Spectrum>> k_;
32  std::shared_ptr<Texture<Spectrum>> bumpMap_;
33 };
34 
35 SPICA_EXPORT_PLUGIN(Conductor, "Conductor surface");
36 
37 } // namespace spica
38 
39 #endif // _SPICA_MIRROR_H_
Definition: interaction.h:68
Definition: renderparams.h:27
Definition: material.h:17
Definition: conductor.h:16