The spica renderer
sampler.h
1 
5 #ifdef _MSC_VER
6 #pragma once
7 #endif
8 
9 #ifndef _SPICA_SAMPLER_H_
10 #define _SPICA_SAMPLER_H_
11 
12 #include <memory>
13 
14 #include "core/common.h"
15 #include "core/cobject.h"
16 #include "core/uncopyable.h"
17 #include "core/point2d.h"
18 
19 namespace spica {
20 
24  class SPICA_EXPORTS Sampler : public CObject, Uncopyable {
25  public:
26  virtual ~Sampler() {}
27 
28  virtual double get1D() = 0;
29  virtual Point2d get2D() {
30  return Point2d{ get1D(), get1D() };
31  }
32 
33  virtual bool startNextSample() { return true; }
34  virtual void startPixel() { }
35 
36  virtual std::unique_ptr<Sampler> clone(unsigned int seed = 0) const = 0;
37  };
38 
39 } // namespace spica
40 
41 #endif // _SPICA_SAMPLER_H_
Random sampler class.
Definition: sampler.h:24
Definition: cobject.h:24
Interface class which forbids copy and assignment.
Definition: uncopyable.h:15