picrate 2.3.0-java → 2.5.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -1
- data/Gemfile +1 -1
- data/README.md +2 -2
- data/Rakefile +1 -1
- data/docs/.gitignore +1 -0
- data/docs/_classes/{app_render → gfx_render}/app_render.md +5 -5
- data/docs/_methods/{noise_mode.md → noise_modes.md} +9 -21
- data/docs/_posts/2018-05-06-install_jruby.md +5 -5
- data/docs/_posts/2019-11-11-getting_started_buster.md +1 -1
- data/lib/picrate/app.rb +3 -7
- data/lib/picrate/native_folder.rb +1 -1
- data/lib/picrate/version.rb +1 -1
- data/lib/{picrate-2.3.0.jar → picrate-2.5.0.jar} +0 -0
- data/{lib → library/pdf}/itextpdf-5.5.13.2.jar +0 -0
- data/library/pdf/pdf.rb +1 -0
- data/library/svg/batik-all-1.14.jar +0 -0
- data/library/svg/svg.rb +7 -0
- data/picrate.gemspec +4 -3
- data/pom.rb +19 -10
- data/pom.xml +19 -6
- data/src/main/java/monkstone/FastNoiseModuleJava.java +127 -0
- data/src/main/java/monkstone/PicrateLibrary.java +2 -0
- data/src/main/java/monkstone/SmoothNoiseModuleJava.java +127 -0
- data/src/main/java/monkstone/noise/OpenSimplex2F.java +62 -29
- data/src/main/java/monkstone/noise/OpenSimplex2S.java +1138 -1106
- data/src/main/java/monkstone/vecmath/GfxRender.java +10 -11
- data/src/main/java/monkstone/vecmath/JRender.java +7 -7
- data/src/main/java/monkstone/vecmath/ShapeRender.java +3 -4
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +28 -40
- data/src/main/java/monkstone/vecmath/vec3/Vec3.java +30 -45
- data/src/main/java/processing/awt/PImageAWT.java +1 -1
- data/src/main/java/processing/awt/ShimAWT.java +1 -1
- data/src/main/java/processing/core/PApplet.java +1 -92
- data/src/main/java/processing/core/PImage.java +14 -14
- data/src/main/java/processing/opengl/PShader.java +0 -6
- data/src/main/java/processing/pdf/PGraphicsPDF.java +61 -139
- data/src/main/java/processing/svg/PGraphicsSVG.java +378 -0
- data/test/noise_test.rb +17 -0
- data/test/respond_to_test.rb +0 -1
- data/test/test_helper.rb +1 -1
- data/vendors/Rakefile +1 -1
- metadata +21 -32
- data/src/main/java/japplemenubar/JAppleMenuBar.java +0 -96
- data/src/main/java/japplemenubar/libjAppleMenuBar.jnilib +0 -0
- data/src/main/java/monkstone/complex/JComplex.java +0 -252
- data/src/main/java/monkstone/noise/FastTerrain.java +0 -874
- data/src/main/java/monkstone/noise/Noise.java +0 -90
- data/src/main/java/monkstone/noise/NoiseGenerator.java +0 -75
- data/src/main/java/monkstone/noise/NoiseMode.java +0 -28
- data/src/main/java/monkstone/noise/SmoothTerrain.java +0 -1099
- data/src/main/java/monkstone/vecmath/AppRender.java +0 -88
- data/src/main/java/monkstone/vecmath/package-info.java +0 -20
- data/src/main/java/monkstone/vecmath/vec2/package-info.java +0 -6
- data/src/main/java/monkstone/vecmath/vec3/package-info.java +0 -6
@@ -1,90 +0,0 @@
|
|
1
|
-
package monkstone.noise;
|
2
|
-
|
3
|
-
/*
|
4
|
-
* Copyright (c) 2021 Martin Prout
|
5
|
-
*
|
6
|
-
* This library is free software; you can redistribute it and/or
|
7
|
-
* modify it under the terms of the GNU General Public
|
8
|
-
* License as published by the Free Software Foundation; either
|
9
|
-
* version 3.0 of the License, or (at your option) any later version.
|
10
|
-
*
|
11
|
-
* http://creativecommons.org/licenses/LGPL/2.1/
|
12
|
-
*
|
13
|
-
* This library is distributed in the hope that it will be useful,
|
14
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
16
|
-
* Lesser General Public License for more details.
|
17
|
-
*
|
18
|
-
* You should have received a copy of the GNU General Public
|
19
|
-
* License along with this library; if not, write to the Free Software
|
20
|
-
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
-
*/
|
22
|
-
public interface Noise {
|
23
|
-
|
24
|
-
/**
|
25
|
-
*
|
26
|
-
* @param x
|
27
|
-
* @return
|
28
|
-
*/
|
29
|
-
default float noise(float x) {
|
30
|
-
return noise(x, 0);
|
31
|
-
}
|
32
|
-
|
33
|
-
/**
|
34
|
-
*
|
35
|
-
* @param x
|
36
|
-
* @param y
|
37
|
-
* @return
|
38
|
-
*/
|
39
|
-
default float noise(float x, float y) {
|
40
|
-
return noise(x, y, 0);
|
41
|
-
}
|
42
|
-
|
43
|
-
/**
|
44
|
-
* <p>
|
45
|
-
* Returns the Perlin noise value at specified coordinates. Perlin noise is
|
46
|
-
* a random sequence generator producing a more natural ordered, harmonic
|
47
|
-
* succession of numbers compared to the standard <b>random()</b> function.
|
48
|
-
* It was invented by Ken Perlin in the 1980s and been used since in
|
49
|
-
* graphical applications to produce procedural textures, natural motion,
|
50
|
-
* shapes, terrains etc. The main difference to the
|
51
|
-
* <b>random()</b> function is that Perlin noise is defined in an infinite
|
52
|
-
* n-dimensional space where each pair of coordinates corresponds to a fixed
|
53
|
-
* semi-random value (fixed only for the lifespan of the program). The
|
54
|
-
* resulting value will always be between 0.0 and 1.0. Processing can
|
55
|
-
* compute 1D, 2D and 3D noise, depending on the number of coordinates
|
56
|
-
* given. The noise value can be animated by moving through the noise space
|
57
|
-
* as demonstrated in the example above. The 2nd and 3rd dimension can also
|
58
|
-
* be interpreted as time.The actual noise is structured similar to an audio
|
59
|
-
* signal, in respect to the function's use of frequencies. Similar to the
|
60
|
-
* concept of harmonics in physics, perlin noise is computed over several
|
61
|
-
* octaves which are added together for the final result. Another way to
|
62
|
-
* adjust the character of the resulting sequence is the scale of the input
|
63
|
-
* coordinates. As the function works within an infinite space the value of
|
64
|
-
* the coordinates doesn't matter as such, only the distance between
|
65
|
-
* successive coordinates does (eg. when using <b>noise()</b> within a
|
66
|
-
* loop). As a general rule the smaller the difference between coordinates,
|
67
|
-
* the smoother the resulting noise sequence will be. Steps of 0.005-0.03
|
68
|
-
* work best for most applications, but this will differ depending on use.
|
69
|
-
* <p>
|
70
|
-
* @param x x-coordinate in noise space
|
71
|
-
* @param y y-coordinate in noise space
|
72
|
-
* @param z z-coordinate in noise space
|
73
|
-
* @return
|
74
|
-
*/
|
75
|
-
float noise(float x, float y, float z);
|
76
|
-
|
77
|
-
float noise(float x, float y, float z, float w);
|
78
|
-
|
79
|
-
void noiseMode(NoiseMode mode);
|
80
|
-
|
81
|
-
/**
|
82
|
-
* Sets the seed value for <b>noise()</b>.By default, <b>noise()</b>
|
83
|
-
* produces different results each time the program is run. Set the
|
84
|
-
* <b>value</b> parameter to a constant to return the same pseudo-random
|
85
|
-
* numbers each time the software is run.
|
86
|
-
*
|
87
|
-
* @param seed
|
88
|
-
*/
|
89
|
-
void noiseSeed(long seed);
|
90
|
-
}
|
@@ -1,75 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* To change this license header, choose License Headers in Project Properties.
|
3
|
-
* To change this template file, choose Tools | Templates
|
4
|
-
* and open the template in the editor.
|
5
|
-
*/
|
6
|
-
package monkstone.noise;
|
7
|
-
|
8
|
-
/**
|
9
|
-
*
|
10
|
-
* @author Martin Prout
|
11
|
-
*/
|
12
|
-
public class NoiseGenerator implements Noise {
|
13
|
-
|
14
|
-
private Noise implementation;
|
15
|
-
private NoiseMode mode;
|
16
|
-
private Long seed;
|
17
|
-
|
18
|
-
public NoiseGenerator() {
|
19
|
-
seed = System.currentTimeMillis();
|
20
|
-
this.implementation = new OpenSimplex2F(seed);
|
21
|
-
this.mode = NoiseMode.DEFAULT;
|
22
|
-
}
|
23
|
-
|
24
|
-
@Override
|
25
|
-
public void noiseMode(NoiseMode mode) {
|
26
|
-
switch (mode) {
|
27
|
-
case DEFAULT:
|
28
|
-
if (this.mode != NoiseMode.DEFAULT) {
|
29
|
-
this.implementation = new OpenSimplex2F(seed);
|
30
|
-
this.mode = NoiseMode.DEFAULT;
|
31
|
-
}
|
32
|
-
break;
|
33
|
-
case OPEN_SMOOTH:
|
34
|
-
if (this.mode != NoiseMode.OPEN_SMOOTH) {
|
35
|
-
this.implementation = new OpenSimplex2S(seed);
|
36
|
-
this.mode = NoiseMode.OPEN_SMOOTH;
|
37
|
-
break;
|
38
|
-
}
|
39
|
-
case SMOOTH_TERRAIN:
|
40
|
-
if (this.mode != NoiseMode.SMOOTH_TERRAIN) {
|
41
|
-
this.implementation = new SmoothTerrain(seed);
|
42
|
-
this.mode = NoiseMode.SMOOTH_TERRAIN;
|
43
|
-
}
|
44
|
-
break;
|
45
|
-
case FAST_TERRAIN:
|
46
|
-
if (this.mode != NoiseMode.FAST_TERRAIN) {
|
47
|
-
this.implementation = new FastTerrain(seed);
|
48
|
-
this.mode = NoiseMode.FAST_TERRAIN;
|
49
|
-
}
|
50
|
-
break;
|
51
|
-
default:
|
52
|
-
this.implementation = new OpenSimplex2F(seed);
|
53
|
-
this.mode = NoiseMode.DEFAULT;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
|
57
|
-
public NoiseMode noiseMode() {
|
58
|
-
return this.mode;
|
59
|
-
}
|
60
|
-
|
61
|
-
@Override
|
62
|
-
public float noise(float x, float y, float z) {
|
63
|
-
return implementation.noise(x, y, z);
|
64
|
-
}
|
65
|
-
|
66
|
-
@Override
|
67
|
-
public float noise(float x, float y, float z, float w) {
|
68
|
-
return implementation.noise(x, y, z, w);
|
69
|
-
}
|
70
|
-
|
71
|
-
@Override
|
72
|
-
public void noiseSeed(long seed) {
|
73
|
-
this.seed = seed;
|
74
|
-
}
|
75
|
-
}
|
@@ -1,28 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* To change this license header, choose License Headers in Project Properties.
|
3
|
-
* To change this template file, choose Tools | Templates
|
4
|
-
* and open the template in the editor.
|
5
|
-
*/
|
6
|
-
package monkstone.noise;
|
7
|
-
|
8
|
-
/**
|
9
|
-
*
|
10
|
-
* @author tux
|
11
|
-
*/
|
12
|
-
public enum NoiseMode {
|
13
|
-
DEFAULT("Fast OpenSimplex2"),
|
14
|
-
FAST_TERRAIN("Fast Terrain"),
|
15
|
-
SMOOTH_TERRAIN("Smooth Terrain"),
|
16
|
-
OPEN_SMOOTH("Smooth OpenSimplex2");
|
17
|
-
|
18
|
-
private final String description;
|
19
|
-
|
20
|
-
NoiseMode(String description) {
|
21
|
-
this.description = description;
|
22
|
-
}
|
23
|
-
|
24
|
-
public String description() {
|
25
|
-
return description;
|
26
|
-
}
|
27
|
-
|
28
|
-
}
|