propane 3.8.0-java → 3.9.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -0
- data/README.md +2 -2
- data/Rakefile +1 -0
- data/lib/propane/app.rb +3 -2
- data/lib/propane/version.rb +1 -1
- data/library/pdf/pdf.rb +7 -0
- data/library/svg/svg.rb +7 -0
- data/pom.rb +24 -2
- data/pom.xml +40 -1
- data/propane.gemspec +3 -1
- data/src/main/java/monkstone/noise/FastTerrain.java +874 -0
- data/src/main/java/monkstone/noise/Noise.java +0 -26
- data/src/main/java/monkstone/noise/NoiseGenerator.java +35 -23
- data/src/main/java/monkstone/noise/NoiseMode.java +15 -2
- data/src/main/java/monkstone/noise/OpenSimplex2F.java +881 -0
- data/src/main/java/monkstone/noise/OpenSimplex2S.java +1106 -0
- data/src/main/java/monkstone/noise/SmoothTerrain.java +1099 -0
- data/src/main/java/processing/core/PApplet.java +106 -127
- data/src/main/java/processing/core/PGraphics.java +116 -109
- data/src/main/java/processing/pdf/PGraphicsPDF.java +581 -0
- data/src/main/java/processing/svg/PGraphicsSVG.java +378 -0
- data/vendors/Rakefile +1 -1
- metadata +14 -6
- data/src/main/java/monkstone/noise/SimplexNoise.java +0 -470
- data/src/main/java/monkstone/noise/ValueNoise.java +0 -170
@@ -1,170 +0,0 @@
|
|
1
|
-
package monkstone.noise;
|
2
|
-
import java.util.Random;
|
3
|
-
import monkstone.fastmath.DegLutTables;
|
4
|
-
import processing.core.PConstants;
|
5
|
-
|
6
|
-
public class ValueNoise implements Noise {
|
7
|
-
|
8
|
-
//////////////////////////////////////////////////////////////
|
9
|
-
// PROCESSING NOISE, rewritten by cfloutier to change the way cosinus is computed
|
10
|
-
// [toxi 040903]
|
11
|
-
// octaves and amplitude amount per octave are now user controlled
|
12
|
-
// via the noiseDetail() function.
|
13
|
-
// [toxi 030902]
|
14
|
-
// cleaned up code and now using bagel's cosine table to speed up
|
15
|
-
// [toxi 030901]
|
16
|
-
// implementation by the german demo group farbrausch
|
17
|
-
// as used in their demo "art": http://www.farb-rausch.de/fr010src.zip
|
18
|
-
static final int PERLIN_YWRAPB = 4;
|
19
|
-
static final int PERLIN_YWRAP = 1 << PERLIN_YWRAPB;
|
20
|
-
static final int PERLIN_ZWRAPB = 8;
|
21
|
-
static final int PERLIN_ZWRAP = 1 << PERLIN_ZWRAPB;
|
22
|
-
static final int PERLIN_SIZE = 4095;
|
23
|
-
|
24
|
-
int perlin_octaves = 4; // default to medium smooth
|
25
|
-
float perlin_amp_falloff = 0.5f; // 50% reduction/octave
|
26
|
-
int perlin_PI;
|
27
|
-
static final int PERLIN_TWOPI = 65536;
|
28
|
-
|
29
|
-
//float[] perlin_cosTable;
|
30
|
-
float[] perlin;
|
31
|
-
|
32
|
-
Random perlinRandom;
|
33
|
-
|
34
|
-
@Override
|
35
|
-
public float noise(float x) {
|
36
|
-
return noise(x, 0f, 0f);
|
37
|
-
}
|
38
|
-
|
39
|
-
@Override
|
40
|
-
public float noise(float x, float y) {
|
41
|
-
return noise(x, y, 0f);
|
42
|
-
}
|
43
|
-
|
44
|
-
private float noise_fsc(float i) {
|
45
|
-
float cosvalue = DegLutTables.cos(i * PConstants.PI);
|
46
|
-
return 0.5f * (1.0f - cosvalue);
|
47
|
-
}
|
48
|
-
|
49
|
-
/**
|
50
|
-
*
|
51
|
-
* @param x
|
52
|
-
* @param y
|
53
|
-
* @param z
|
54
|
-
* @return
|
55
|
-
*/
|
56
|
-
@Override
|
57
|
-
public float noise(float x, float y, float z) {
|
58
|
-
if (perlin == null) {
|
59
|
-
if (perlinRandom == null) {
|
60
|
-
perlinRandom = new Random();
|
61
|
-
}
|
62
|
-
perlin = new float[PERLIN_SIZE + 1];
|
63
|
-
for (int i = 0; i < PERLIN_SIZE + 1; i++) {
|
64
|
-
perlin[i] = perlinRandom.nextFloat();
|
65
|
-
}
|
66
|
-
}
|
67
|
-
|
68
|
-
if (x < 0) {
|
69
|
-
x = -x;
|
70
|
-
}
|
71
|
-
if (y < 0) {
|
72
|
-
y = -y;
|
73
|
-
}
|
74
|
-
if (z < 0) {
|
75
|
-
z = -z;
|
76
|
-
}
|
77
|
-
|
78
|
-
int xi = (int) x, yi = (int) y, zi = (int) z;
|
79
|
-
float xf = x - xi;
|
80
|
-
float yf = y - yi;
|
81
|
-
float zf = z - zi;
|
82
|
-
float rxf, ryf;
|
83
|
-
|
84
|
-
float r = 0;
|
85
|
-
float ampl = 0.5f;
|
86
|
-
|
87
|
-
float n1, n2, n3;
|
88
|
-
|
89
|
-
for (int i = 0; i < perlin_octaves; i++) {
|
90
|
-
int of = xi + (yi << PERLIN_YWRAPB) + (zi << PERLIN_ZWRAPB);
|
91
|
-
|
92
|
-
rxf = noise_fsc(xf);
|
93
|
-
ryf = noise_fsc(yf);
|
94
|
-
|
95
|
-
n1 = perlin[of & PERLIN_SIZE];
|
96
|
-
n1 += rxf * (perlin[(of + 1) & PERLIN_SIZE] - n1);
|
97
|
-
n2 = perlin[(of + PERLIN_YWRAP) & PERLIN_SIZE];
|
98
|
-
n2 += rxf * (perlin[(of + PERLIN_YWRAP + 1) & PERLIN_SIZE] - n2);
|
99
|
-
n1 += ryf * (n2 - n1);
|
100
|
-
|
101
|
-
of += PERLIN_ZWRAP;
|
102
|
-
n2 = perlin[of & PERLIN_SIZE];
|
103
|
-
n2 += rxf * (perlin[(of + 1) & PERLIN_SIZE] - n2);
|
104
|
-
n3 = perlin[(of + PERLIN_YWRAP) & PERLIN_SIZE];
|
105
|
-
n3 += rxf * (perlin[(of + PERLIN_YWRAP + 1) & PERLIN_SIZE] - n3);
|
106
|
-
n2 += ryf * (n3 - n2);
|
107
|
-
|
108
|
-
n1 += noise_fsc(zf) * (n2 - n1);
|
109
|
-
|
110
|
-
r += n1 * ampl;
|
111
|
-
ampl *= perlin_amp_falloff;
|
112
|
-
xi <<= 1;
|
113
|
-
xf *= 2;
|
114
|
-
yi <<= 1;
|
115
|
-
yf *= 2;
|
116
|
-
zi <<= 1;
|
117
|
-
zf *= 2;
|
118
|
-
|
119
|
-
if (xf >= 1.0f) {
|
120
|
-
xi++;
|
121
|
-
xf--;
|
122
|
-
}
|
123
|
-
if (yf >= 1.0f) {
|
124
|
-
yi++;
|
125
|
-
yf--;
|
126
|
-
}
|
127
|
-
if (zf >= 1.0f) {
|
128
|
-
zi++;
|
129
|
-
zf--;
|
130
|
-
}
|
131
|
-
}
|
132
|
-
return r;
|
133
|
-
}
|
134
|
-
|
135
|
-
@Override
|
136
|
-
public void noiseMode(NoiseMode mode) {
|
137
|
-
|
138
|
-
}
|
139
|
-
|
140
|
-
@Override
|
141
|
-
public void noiseDetail(int lod) {
|
142
|
-
if (lod > 0) {
|
143
|
-
perlin_octaves = lod;
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
|
-
@Override
|
148
|
-
public void noiseDetail(int lod, float falloff) {
|
149
|
-
if (lod > 0) {
|
150
|
-
perlin_octaves = lod;
|
151
|
-
}
|
152
|
-
if (falloff > 0) {
|
153
|
-
perlin_amp_falloff = falloff;
|
154
|
-
}
|
155
|
-
}
|
156
|
-
|
157
|
-
@Override
|
158
|
-
public void noiseSeed(long seed) {
|
159
|
-
if (perlinRandom == null) {
|
160
|
-
perlinRandom = new Random();
|
161
|
-
}
|
162
|
-
perlinRandom.setSeed(seed);
|
163
|
-
perlin = null;
|
164
|
-
}
|
165
|
-
|
166
|
-
@Override
|
167
|
-
public float noise(float x, float y, float z, float w) {
|
168
|
-
throw new UnsupportedOperationException("Not supported yet.");
|
169
|
-
}
|
170
|
-
}
|