noise: move lerp into noise namespace

This commit is contained in:
Danny Robson 2015-05-18 14:42:28 +10:00
parent e525c34134
commit 912228f87b
7 changed files with 31 additions and 29 deletions

View File

@ -100,8 +100,6 @@ UTIL_FILES = \
json/schema.hpp \
json/tree.cpp \
json/tree.hpp \
lerp.cpp \
lerp.hpp \
log.cpp \
log.hpp \
log.ipp \
@ -132,6 +130,8 @@ UTIL_FILES = \
noise/basis.hpp \
noise/fractal.cpp \
noise/fractal.hpp \
noise/lerp.cpp \
noise/lerp.hpp \
noise/lut.cpp \
noise/lut.hpp \
options.cpp \

View File

@ -132,9 +132,9 @@ value<L>::eval (double x, double y) const {
//-----------------------------------------------------------------------------
namespace util {
namespace noise {
template struct value<lerp::linear>;
template struct value<lerp::cubic>;
template struct value<lerp::quintic>;
template struct value<util::lerp::linear>;
template struct value<util::lerp::cubic>;
template struct value<util::lerp::quintic>;
}
}
@ -196,9 +196,9 @@ gradient<L>::eval (double x, double y) const {
//-----------------------------------------------------------------------------
namespace util {
namespace noise {
template struct gradient<lerp::linear>;
template struct gradient<lerp::cubic>;
template struct gradient<lerp::quintic>;
template struct gradient<util::lerp::linear>;
template struct gradient<util::lerp::cubic>;
template struct gradient<util::lerp::quintic>;
}
}

View File

@ -18,7 +18,7 @@
#define __UTIL_NOISE_BASIS_HPP
#include <cstdlib>
#include "../lerp.hpp"
#include "lerp.hpp"
#include "../range.hpp"
namespace util {

View File

@ -91,10 +91,10 @@ util::noise::fbm<B>::eval (double x, double y) const {
//-----------------------------------------------------------------------------
template struct util::noise::fbm<util::noise::cellular>;
template struct util::noise::fbm<util::noise::gradient<lerp::linear>>;
template struct util::noise::fbm<util::noise::gradient<lerp::quintic>>;
template struct util::noise::fbm<util::noise::value<lerp::linear>>;
template struct util::noise::fbm<util::noise::value<lerp::quintic>>;
template struct util::noise::fbm<util::noise::gradient<util::lerp::linear>>;
template struct util::noise::fbm<util::noise::gradient<util::lerp::quintic>>;
template struct util::noise::fbm<util::noise::value<util::lerp::linear>>;
template struct util::noise::fbm<util::noise::value<util::lerp::quintic>>;
///////////////////////////////////////////////////////////////////////////////
@ -157,8 +157,8 @@ util::noise::musgrave<B>::eval (double x, double y) const {
//-----------------------------------------------------------------------------
template struct util::noise::musgrave<util::noise::cellular>;
template struct util::noise::musgrave<util::noise::gradient<lerp::linear>>;
template struct util::noise::musgrave<util::noise::gradient<lerp::quintic>>;
template struct util::noise::musgrave<util::noise::value<lerp::linear>>;
template struct util::noise::musgrave<util::noise::value<lerp::quintic>>;
template struct util::noise::musgrave<util::noise::gradient<util::lerp::linear>>;
template struct util::noise::musgrave<util::noise::gradient<util::lerp::quintic>>;
template struct util::noise::musgrave<util::noise::value<util::lerp::linear>>;
template struct util::noise::musgrave<util::noise::value<util::lerp::quintic>>;

View File

@ -24,19 +24,19 @@
//-----------------------------------------------------------------------------
double
lerp::sigmoid (double val) {
util::lerp::sigmoid (double val) {
return -1.0 + 2.0 / (1.0 + exp (-2.0 * val));
}
//-----------------------------------------------------------------------------
double lerp::trunc (double a, double, double)
double util::lerp::trunc (double a, double, double)
{ return a; }
//-----------------------------------------------------------------------------
double
lerp::linear (double a, double b, double weight) {
util::lerp::linear (double a, double b, double weight) {
CHECK (weight >= 0.0 && weight <= 1.0);
return a * (1.0 - weight) + b * weight;
}
@ -44,7 +44,7 @@ lerp::linear (double a, double b, double weight) {
//-----------------------------------------------------------------------------
double
lerp::cosine (double a, double b, double weight) {
util::lerp::cosine (double a, double b, double weight) {
CHECK (weight >= 0.0 && weight <= 1.0);
double t = (1.0 - cos (weight * PI<double>)) * 0.5;
@ -54,7 +54,7 @@ lerp::cosine (double a, double b, double weight) {
//-----------------------------------------------------------------------------
double
lerp::cubic (double a, double b, double weight) {
util::lerp::cubic (double a, double b, double weight) {
CHECK (weight >= 0.0 && weight <= 1.0);
double t = weight * weight * (3.0 - 2.0 * weight);
return a * (1.0 - t) + b * t;
@ -63,7 +63,7 @@ lerp::cubic (double a, double b, double weight) {
//-----------------------------------------------------------------------------
double
lerp::quintic (double a, double b, double weight) {
util::lerp::quintic (double a, double b, double weight) {
CHECK (weight >= 0.0 && weight <= 1.0);
double t = weight * weight * weight * (weight * (weight * 6.0 - 15.0) + 10.0);
return a * (1.0 - t) + b * t;

View File

@ -14,10 +14,10 @@
* Copyright 2011 Danny Robson <danny@nerdcruft.net>
*/
#ifndef __UTIL_LERP_HPP
#define __UTIL_LERP_HPP
#ifndef __UTIL_NOISE_LERP_HPP
#define __UTIL_NOISE_LERP_HPP
namespace lerp {
namespace util { namespace lerp {
double sigmoid (double val);
double linear (double a, double b, double weight);
@ -25,6 +25,6 @@ namespace lerp {
double cubic (double a, double b, double weight);
double quintic (double a, double b, double weight);
double trunc (double a, double b, double weight);
}
} }
#endif

View File

@ -1,6 +1,6 @@
#include "image.hpp"
#include "noise.hpp"
#include "lerp.hpp"
#include "noise/lerp.hpp"
int
main (void)
@ -11,7 +11,9 @@ main (void)
//using basis_t = util::noise::gradient<lerp_t>;
//using noise_t = util::noise::fbm<basis_t>;
using noise_t = util::noise::fbm<util::noise::gradient<lerp::quintic>>;
//using noise_t = util::noise::fbm<util::noise::gradient<util::lerp::quintic>>;
//using noise_t = util::noise::musgrave<util::noise::gradient<util::lerp::quintic>>;
using noise_t = util::noise::fbm<util::noise::cellular>;
util::noise::fill (img, noise_t {});