The spica renderer
phase.h
1 #ifdef _MSC_VER
2 #pragma once
3 #endif
4 
5 #ifndef _SPICA_PHASE_H_
6 #define _SPICA_PHASE_H_
7 
8 #include "core/core.hpp"
9 #include "core/common.h"
10 
11 namespace spica {
12 
13 namespace phase {
14 
15 SPICA_EXPORTS double hg(double cosTheta, double g);
16 
17 } // namespace phase
18 
20 public:
21  virtual double p(const Vector3d& wo, const Vector3d& wi) const = 0;
22  virtual double sample(const Vector3d& wo, Vector3d* wi,
23  const Point2d& rands) const = 0;
24 };
25 
27 public:
28  explicit HenyeyGreenstein(double g);
29  double p(const Vector3d& wo, const Vector3d& wi) const;
30  double sample(const Vector3d& wo, Vector3d* wi,
31  const Point2d& rands) const;
32 
33 private:
34  const double g_;
35 };
36 
37 } // namespace spica
38 
39 #endif // _SPICA_PHASE_H_
Definition: phase.h:19
Definition: phase.h:26