My Project
Main Page
Related Pages
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Enumerations
Pages
noise.h
Go to the documentation of this file.
1
/**************************************************************************/
2
/* Copyright 2009 Tim Day */
3
/* */
4
/* This file is part of Fracplanet */
5
/* */
6
/* Fracplanet is free software: you can redistribute it and/or modify */
7
/* it under the terms of the GNU General Public License as published by */
8
/* the Free Software Foundation, either version 3 of the License, or */
9
/* (at your option) any later version. */
10
/* */
11
/* Fracplanet is distributed in the hope that it will be useful, */
12
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
13
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
14
/* GNU General Public License for more details. */
15
/* */
16
/* You should have received a copy of the GNU General Public License */
17
/* along with Fracplanet. If not, see <http://www.gnu.org/licenses/>. */
18
/**************************************************************************/
19
24
#ifndef _noise_h_
25
#define _noise_h_
26
27
#include "
xyz.h
"
28
30
class
Noise
31
{
32
public
:
33
35
Noise
(uint seed);
36
38
~Noise
();
39
41
float
operator()
(
const
XYZ
& p)
const
;
42
43
protected
:
44
46
enum
{N=256};
47
48
int
_p[2*N+2];
49
XYZ
_g[2*N+2];
50
};
51
53
class
MultiscaleNoise
54
{
55
public
:
56
58
MultiscaleNoise
(uint seed,uint terms,
float
decay);
59
61
~MultiscaleNoise
();
62
64
float
operator()
(
const
XYZ
& p)
const
;
65
66
private
:
67
69
const
uint _terms;
70
72
boost::scoped_array<boost::scoped_ptr<const Noise> > _noise;
73
75
boost::scoped_array<float> _amplitude;
76
};
77
78
#endif
Generated on Sat Oct 5 2013 13:36:44 for My Project by
1.8.3.1