The spica renderer
Main Page
Modules
Classes
Files
File List
sources
core
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
19
class
PhaseFunction
{
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
26
class
HenyeyGreenstein
:
public
PhaseFunction
{
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_
spica::PhaseFunction
Definition:
phase.h:19
spica::Vector3_< double >
spica::HenyeyGreenstein
Definition:
phase.h:26
spica::Point2_< double >
Generated by
1.8.6