propane 3.6.0-java → 3.10.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/.mvn/extensions.xml +1 -1
- data/.travis.yml +1 -1
- data/CHANGELOG.md +5 -1
- data/README.md +6 -13
- data/Rakefile +7 -6
- data/lib/java/japplemenubar/JAppleMenuBar.java +88 -0
- data/lib/java/japplemenubar/libjAppleMenuBar.jnilib +0 -0
- data/lib/java/monkstone/ColorUtil.java +127 -0
- data/lib/java/monkstone/MathToolModule.java +287 -0
- data/lib/java/monkstone/PropaneLibrary.java +46 -0
- data/lib/java/monkstone/core/LibraryProxy.java +136 -0
- data/lib/java/monkstone/fastmath/DegLutTables.java +111 -0
- data/lib/java/monkstone/fastmath/Deglut.java +71 -0
- data/lib/java/monkstone/fastmath/package-info.java +6 -0
- data/lib/java/monkstone/filechooser/Chooser.java +39 -0
- data/lib/java/monkstone/noise/FastTerrain.java +874 -0
- data/lib/java/monkstone/noise/Noise.java +90 -0
- data/lib/java/monkstone/noise/NoiseGenerator.java +75 -0
- data/lib/java/monkstone/noise/NoiseMode.java +28 -0
- data/lib/java/monkstone/noise/OpenSimplex2F.java +881 -0
- data/lib/java/monkstone/noise/OpenSimplex2S.java +1106 -0
- data/lib/java/monkstone/noise/SmoothTerrain.java +1099 -0
- data/lib/java/monkstone/slider/CustomHorizontalSlider.java +164 -0
- data/lib/java/monkstone/slider/CustomVerticalSlider.java +178 -0
- data/lib/java/monkstone/slider/SimpleHorizontalSlider.java +145 -0
- data/lib/java/monkstone/slider/SimpleSlider.java +166 -0
- data/lib/java/monkstone/slider/SimpleVerticalSlider.java +157 -0
- data/lib/java/monkstone/slider/Slider.java +61 -0
- data/lib/java/monkstone/slider/SliderBar.java +245 -0
- data/lib/java/monkstone/slider/SliderGroup.java +56 -0
- data/lib/java/monkstone/slider/WheelHandler.java +35 -0
- data/lib/java/monkstone/vecmath/GfxRender.java +86 -0
- data/lib/java/monkstone/vecmath/JRender.java +56 -0
- data/lib/java/monkstone/vecmath/ShapeRender.java +87 -0
- data/lib/java/monkstone/vecmath/package-info.java +20 -0
- data/lib/java/monkstone/vecmath/vec2/Vec2.java +802 -0
- data/lib/java/monkstone/vecmath/vec2/package-info.java +6 -0
- data/lib/java/monkstone/vecmath/vec3/Vec3.java +727 -0
- data/lib/java/monkstone/vecmath/vec3/package-info.java +6 -0
- data/lib/java/monkstone/videoevent/CaptureEvent.java +27 -0
- data/lib/java/monkstone/videoevent/MovieEvent.java +32 -0
- data/lib/java/monkstone/videoevent/package-info.java +20 -0
- data/lib/java/processing/awt/PGraphicsJava2D.java +3040 -0
- data/lib/java/processing/awt/PImageAWT.java +377 -0
- data/lib/java/processing/awt/PShapeJava2D.java +387 -0
- data/lib/java/processing/awt/PSurfaceAWT.java +1581 -0
- data/lib/java/processing/awt/ShimAWT.java +581 -0
- data/lib/java/processing/core/PApplet.java +15156 -0
- data/lib/java/processing/core/PConstants.java +523 -0
- data/lib/java/processing/core/PFont.java +1126 -0
- data/lib/java/processing/core/PGraphics.java +8600 -0
- data/lib/java/processing/core/PImage.java +3377 -0
- data/lib/java/processing/core/PMatrix.java +208 -0
- data/lib/java/processing/core/PMatrix2D.java +562 -0
- data/lib/java/processing/core/PMatrix3D.java +890 -0
- data/lib/java/processing/core/PShape.java +3561 -0
- data/lib/java/processing/core/PShapeOBJ.java +483 -0
- data/lib/java/processing/core/PShapeSVG.java +2016 -0
- data/lib/java/processing/core/PStyle.java +63 -0
- data/lib/java/processing/core/PSurface.java +198 -0
- data/lib/java/processing/core/PSurfaceNone.java +431 -0
- data/lib/java/processing/core/PVector.java +1066 -0
- data/lib/java/processing/core/ThinkDifferent.java +115 -0
- data/lib/java/processing/data/DoubleDict.java +850 -0
- data/lib/java/processing/data/DoubleList.java +928 -0
- data/lib/java/processing/data/FloatDict.java +847 -0
- data/lib/java/processing/data/FloatList.java +936 -0
- data/lib/java/processing/data/IntDict.java +807 -0
- data/lib/java/processing/data/IntList.java +936 -0
- data/lib/java/processing/data/JSONArray.java +1260 -0
- data/lib/java/processing/data/JSONObject.java +2282 -0
- data/lib/java/processing/data/JSONTokener.java +435 -0
- data/lib/java/processing/data/LongDict.java +802 -0
- data/lib/java/processing/data/LongList.java +937 -0
- data/lib/java/processing/data/Sort.java +46 -0
- data/lib/java/processing/data/StringDict.java +613 -0
- data/lib/java/processing/data/StringList.java +800 -0
- data/lib/java/processing/data/Table.java +4936 -0
- data/lib/java/processing/data/TableRow.java +198 -0
- data/lib/java/processing/data/XML.java +1156 -0
- data/lib/java/processing/dxf/RawDXF.java +404 -0
- data/lib/java/processing/event/Event.java +125 -0
- data/lib/java/processing/event/KeyEvent.java +70 -0
- data/lib/java/processing/event/MouseEvent.java +114 -0
- data/lib/java/processing/event/TouchEvent.java +57 -0
- data/lib/java/processing/javafx/PGraphicsFX2D.java +32 -0
- data/lib/java/processing/javafx/PSurfaceFX.java +173 -0
- data/lib/java/processing/net/Client.java +744 -0
- data/lib/java/processing/net/Server.java +388 -0
- data/lib/java/processing/opengl/FontTexture.java +378 -0
- data/lib/java/processing/opengl/FrameBuffer.java +513 -0
- data/lib/java/processing/opengl/LinePath.java +627 -0
- data/lib/java/processing/opengl/LineStroker.java +681 -0
- data/lib/java/processing/opengl/PGL.java +3483 -0
- data/lib/java/processing/opengl/PGraphics2D.java +615 -0
- data/lib/java/processing/opengl/PGraphics3D.java +281 -0
- data/lib/java/processing/opengl/PGraphicsOpenGL.java +13753 -0
- data/lib/java/processing/opengl/PJOGL.java +2008 -0
- data/lib/java/processing/opengl/PShader.java +1484 -0
- data/lib/java/processing/opengl/PShapeOpenGL.java +5269 -0
- data/lib/java/processing/opengl/PSurfaceJOGL.java +1385 -0
- data/lib/java/processing/opengl/Texture.java +1696 -0
- data/lib/java/processing/opengl/VertexBuffer.java +88 -0
- data/lib/java/processing/opengl/cursors/arrow.png +0 -0
- data/lib/java/processing/opengl/cursors/cross.png +0 -0
- data/lib/java/processing/opengl/cursors/hand.png +0 -0
- data/lib/java/processing/opengl/cursors/license.txt +27 -0
- data/lib/java/processing/opengl/cursors/move.png +0 -0
- data/lib/java/processing/opengl/cursors/text.png +0 -0
- data/lib/java/processing/opengl/cursors/wait.png +0 -0
- data/lib/java/processing/opengl/shaders/ColorFrag.glsl +32 -0
- data/lib/java/processing/opengl/shaders/ColorVert.glsl +34 -0
- data/lib/java/processing/opengl/shaders/LightFrag.glsl +33 -0
- data/lib/java/processing/opengl/shaders/LightVert.glsl +151 -0
- data/lib/java/processing/opengl/shaders/LineFrag.glsl +32 -0
- data/lib/java/processing/opengl/shaders/LineVert.glsl +100 -0
- data/lib/java/processing/opengl/shaders/MaskFrag.glsl +40 -0
- data/lib/java/processing/opengl/shaders/PointFrag.glsl +32 -0
- data/lib/java/processing/opengl/shaders/PointVert.glsl +56 -0
- data/lib/java/processing/opengl/shaders/TexFrag.glsl +37 -0
- data/lib/java/processing/opengl/shaders/TexLightFrag.glsl +37 -0
- data/lib/java/processing/opengl/shaders/TexLightVert.glsl +157 -0
- data/lib/java/processing/opengl/shaders/TexVert.glsl +38 -0
- data/lib/java/processing/pdf/PGraphicsPDF.java +581 -0
- data/lib/java/processing/svg/PGraphicsSVG.java +378 -0
- data/lib/propane/app.rb +9 -10
- data/lib/propane/runner.rb +10 -12
- data/lib/propane/version.rb +1 -1
- data/library/pdf/pdf.rb +7 -0
- data/library/svg/svg.rb +7 -0
- data/mvnw +3 -3
- data/mvnw.cmd +2 -2
- data/pom.rb +30 -3
- data/pom.xml +54 -3
- data/propane.gemspec +7 -3
- data/src/main/java/monkstone/FastNoiseModuleJava.java +127 -0
- data/src/main/java/monkstone/MathToolModule.java +30 -30
- data/src/main/java/monkstone/PropaneLibrary.java +2 -0
- data/src/main/java/monkstone/SmoothNoiseModuleJava.java +127 -0
- data/src/main/java/monkstone/fastmath/DegLutTables.java +111 -0
- data/src/main/java/monkstone/fastmath/Deglut.java +6 -56
- data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
- data/src/main/java/monkstone/noise/OpenSimplex2F.java +813 -0
- data/src/main/java/monkstone/noise/OpenSimplex2S.java +1138 -0
- data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
- data/src/main/java/monkstone/vecmath/JRender.java +6 -6
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +20 -19
- data/src/main/java/monkstone/vecmath/vec3/Vec3.java +12 -12
- data/src/main/java/processing/awt/PGraphicsJava2D.java +11 -3
- data/src/main/java/processing/core/PApplet.java +13242 -13374
- data/src/main/java/processing/core/PConstants.java +155 -163
- data/src/main/java/processing/core/PGraphics.java +118 -111
- data/src/main/java/processing/opengl/PJOGL.java +6 -5
- data/src/main/java/processing/pdf/PGraphicsPDF.java +581 -0
- data/src/main/java/processing/svg/PGraphicsSVG.java +378 -0
- data/test/deglut_spec_test.rb +2 -2
- data/vendors/Rakefile +1 -1
- metadata +146 -17
- data/library/simplex_noise/simplex_noise.rb +0 -5
- data/src/main/java/monkstone/noise/SimplexNoise.java +0 -436
@@ -0,0 +1,378 @@
|
|
1
|
+
/*
|
2
|
+
Part of the Processing project - http://processing.org
|
3
|
+
|
4
|
+
Copyright (c) 2013-2015 The Processing Foundation
|
5
|
+
Copyright (c) 2012 Ben Fry and Casey Reas
|
6
|
+
|
7
|
+
This library is free software; you can redistribute it and/or
|
8
|
+
modify it under the terms of the GNU Lesser General Public
|
9
|
+
License version 2.1 as published by the Free Software Foundation.
|
10
|
+
|
11
|
+
This library 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 GNU
|
14
|
+
Lesser General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU Lesser General
|
17
|
+
Public License along with this library; if not, write to the
|
18
|
+
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
19
|
+
Boston, MA 02111-1307 USA
|
20
|
+
*/
|
21
|
+
package processing.svg;
|
22
|
+
|
23
|
+
import java.awt.Dimension;
|
24
|
+
import java.io.BufferedWriter;
|
25
|
+
import java.io.File;
|
26
|
+
import java.io.FileNotFoundException;
|
27
|
+
import java.io.FileOutputStream;
|
28
|
+
import java.io.IOException;
|
29
|
+
import java.io.OutputStream;
|
30
|
+
import java.io.OutputStreamWriter;
|
31
|
+
import java.io.PrintWriter;
|
32
|
+
import java.io.Writer;
|
33
|
+
import java.nio.charset.StandardCharsets;
|
34
|
+
import java.util.logging.Level;
|
35
|
+
import java.util.logging.Logger;
|
36
|
+
import org.apache.batik.dom.GenericDOMImplementation;
|
37
|
+
import org.apache.batik.svggen.SVGGraphics2D;
|
38
|
+
import org.apache.batik.svggen.SVGGraphics2DIOException;
|
39
|
+
import org.w3c.dom.DOMImplementation;
|
40
|
+
import org.w3c.dom.Document;
|
41
|
+
import processing.awt.PGraphicsJava2D;
|
42
|
+
import processing.core.PImage;
|
43
|
+
import processing.core.PSurface;
|
44
|
+
import processing.core.PSurfaceNone;
|
45
|
+
|
46
|
+
public class PGraphicsSVG extends PGraphicsJava2D {
|
47
|
+
|
48
|
+
/**
|
49
|
+
* File being written, if it's a file.
|
50
|
+
*/
|
51
|
+
protected File file;
|
52
|
+
/**
|
53
|
+
* OutputStream being written to, if using an OutputStream.
|
54
|
+
*/
|
55
|
+
protected OutputStream output;
|
56
|
+
|
57
|
+
// protected Writer writer;
|
58
|
+
public PGraphicsSVG() {
|
59
|
+
}
|
60
|
+
|
61
|
+
@Override
|
62
|
+
public void setPath(String path) {
|
63
|
+
this.path = path;
|
64
|
+
if (path != null) {
|
65
|
+
file = new File(path);
|
66
|
+
if (!file.isAbsolute()) {
|
67
|
+
file = null;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
if (file == null) {
|
71
|
+
throw new RuntimeException("PGraphicsSVG requires an absolute path "
|
72
|
+
+ "for the location of the output file.");
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Set the library to write to an output stream instead of a file.
|
78
|
+
*
|
79
|
+
* @param output
|
80
|
+
*/
|
81
|
+
public void setOutput(OutputStream output) {
|
82
|
+
this.output = output;
|
83
|
+
}
|
84
|
+
|
85
|
+
@Override
|
86
|
+
public PSurface createSurface() {
|
87
|
+
return surface = new PSurfaceNone(this);
|
88
|
+
}
|
89
|
+
|
90
|
+
@Override
|
91
|
+
protected void defaultSettings() { // ignore
|
92
|
+
super.defaultSettings();
|
93
|
+
textMode = SHAPE;
|
94
|
+
}
|
95
|
+
|
96
|
+
@Override
|
97
|
+
public void beginDraw() {
|
98
|
+
DOMImplementation domImpl
|
99
|
+
= GenericDOMImplementation.getDOMImplementation();
|
100
|
+
|
101
|
+
// Create an instance of org.w3c.dom.Document.
|
102
|
+
String ns = "http://www.w3.org/2000/svg";
|
103
|
+
Document document = domImpl.createDocument(ns, "svg", null);
|
104
|
+
|
105
|
+
// Create an instance of the SVG Generator.
|
106
|
+
g2 = new SVGGraphics2D(document);
|
107
|
+
((SVGGraphics2D) g2).setSVGCanvasSize(new Dimension(width, height));
|
108
|
+
|
109
|
+
// Done with our work, let's check on defaults and the rest
|
110
|
+
//super.beginDraw();
|
111
|
+
// Can't call super.beginDraw() because it'll nuke our g2
|
112
|
+
checkSettings();
|
113
|
+
resetMatrix(); // reset model matrix
|
114
|
+
vertexCount = 0;
|
115
|
+
|
116
|
+
// Also need to push the matrix since the matrix doesn't reset on each run
|
117
|
+
// http://dev.processing.org/bugs/show_bug.cgi?id=1227
|
118
|
+
pushMatrix();
|
119
|
+
}
|
120
|
+
|
121
|
+
@Override
|
122
|
+
public void endDraw() {
|
123
|
+
Writer writer;
|
124
|
+
// Also need to pop the matrix since the matrix doesn't reset on each run
|
125
|
+
// http://dev.processing.org/bugs/show_bug.cgi?id=1227
|
126
|
+
popMatrix();
|
127
|
+
// Figure out where the output goes. If the sketch is calling setOutput()
|
128
|
+
// inside draw(), then that OutputStream will be used, otherwise the
|
129
|
+
// path for rendering is expected to have ### inside it so that the frame
|
130
|
+
// can be inserted, because SVG doesn't support multiple pages.
|
131
|
+
if (output == null) {
|
132
|
+
if (path == null) {
|
133
|
+
throw new RuntimeException("setOutput() or setPath() must be "
|
134
|
+
+ "used with the SVG renderer");
|
135
|
+
} else {
|
136
|
+
// insert the frame number and create intermediate directories
|
137
|
+
File save = parent.saveFile(parent.insertFrame(path));
|
138
|
+
try {
|
139
|
+
output = new FileOutputStream(save);
|
140
|
+
} catch (FileNotFoundException e) {
|
141
|
+
throw new RuntimeException(e);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|
145
|
+
// This needs to be overridden so that the endDraw() from PGraphicsJava2D
|
146
|
+
// is not inherited (it calls loadPixels).
|
147
|
+
// http://dev.processing.org/bugs/show_bug.cgi?id=1169
|
148
|
+
// Finally, stream out SVG to the standard output using UTF-8 encoding.
|
149
|
+
boolean useCSS = true; // we want to use CSS style attributes
|
150
|
+
writer = new PrintWriter(
|
151
|
+
new BufferedWriter(
|
152
|
+
new OutputStreamWriter(output, StandardCharsets.UTF_8)
|
153
|
+
)
|
154
|
+
);
|
155
|
+
try {
|
156
|
+
((SVGGraphics2D) g2).stream(writer, useCSS);
|
157
|
+
} catch (SVGGraphics2DIOException e) {
|
158
|
+
}
|
159
|
+
try {
|
160
|
+
writer.flush();
|
161
|
+
writer.close();
|
162
|
+
} catch (IOException e) {
|
163
|
+
} finally {
|
164
|
+
output = null;
|
165
|
+
}
|
166
|
+
try {
|
167
|
+
writer.close();
|
168
|
+
} catch (IOException ex) {
|
169
|
+
Logger.getLogger(PGraphicsSVG.class.getName()).log(Level.SEVERE, null, ex);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
// nothing to be done in dispose(), since essentially disposed on each frame
|
174
|
+
@Override
|
175
|
+
public void dispose() {
|
176
|
+
}
|
177
|
+
|
178
|
+
/**
|
179
|
+
* Don't open a window for this renderer, it won't be used.
|
180
|
+
*
|
181
|
+
* @return
|
182
|
+
*/
|
183
|
+
@Override
|
184
|
+
public boolean displayable() {
|
185
|
+
return false;
|
186
|
+
}
|
187
|
+
|
188
|
+
@Override
|
189
|
+
public void loadPixels() {
|
190
|
+
nope("loadPixels");
|
191
|
+
}
|
192
|
+
|
193
|
+
@Override
|
194
|
+
public void updatePixels() {
|
195
|
+
nope("updatePixels");
|
196
|
+
}
|
197
|
+
|
198
|
+
@Override
|
199
|
+
public void updatePixels(int x, int y, int c, int d) {
|
200
|
+
nope("updatePixels");
|
201
|
+
}
|
202
|
+
|
203
|
+
//
|
204
|
+
@Override
|
205
|
+
public int get(int x, int y) {
|
206
|
+
nope("get");
|
207
|
+
return 0; // not reached
|
208
|
+
}
|
209
|
+
|
210
|
+
@Override
|
211
|
+
public PImage get(int x, int y, int c, int d) {
|
212
|
+
nope("get");
|
213
|
+
return null; // not reached
|
214
|
+
}
|
215
|
+
|
216
|
+
@Override
|
217
|
+
public PImage get() {
|
218
|
+
nope("get");
|
219
|
+
return null; // not reached
|
220
|
+
}
|
221
|
+
|
222
|
+
@Override
|
223
|
+
public void set(int x, int y, int argb) {
|
224
|
+
nope("set");
|
225
|
+
}
|
226
|
+
|
227
|
+
@Override
|
228
|
+
public void set(int x, int y, PImage image) {
|
229
|
+
nope("set");
|
230
|
+
}
|
231
|
+
|
232
|
+
//
|
233
|
+
@Override
|
234
|
+
public void mask(int alpha[]) {
|
235
|
+
nope("mask");
|
236
|
+
}
|
237
|
+
|
238
|
+
@Override
|
239
|
+
public void mask(PImage alpha) {
|
240
|
+
nope("mask");
|
241
|
+
}
|
242
|
+
|
243
|
+
//
|
244
|
+
@Override
|
245
|
+
public void filter(int kind) {
|
246
|
+
nope("filter");
|
247
|
+
}
|
248
|
+
|
249
|
+
@Override
|
250
|
+
public void filter(int kind, float param) {
|
251
|
+
nope("filter");
|
252
|
+
}
|
253
|
+
|
254
|
+
//
|
255
|
+
@Override
|
256
|
+
public void copy(int sx1, int sy1, int sx2, int sy2,
|
257
|
+
int dx1, int dy1, int dx2, int dy2) {
|
258
|
+
nope("copy");
|
259
|
+
}
|
260
|
+
|
261
|
+
@Override
|
262
|
+
public void copy(PImage src,
|
263
|
+
int sx1, int sy1, int sx2, int sy2,
|
264
|
+
int dx1, int dy1, int dx2, int dy2) {
|
265
|
+
nope("copy");
|
266
|
+
}
|
267
|
+
|
268
|
+
//
|
269
|
+
public void blend(int sx, int sy, int dx, int dy, int mode) {
|
270
|
+
nope("blend");
|
271
|
+
}
|
272
|
+
|
273
|
+
public void blend(PImage src,
|
274
|
+
int sx, int sy, int dx, int dy, int mode) {
|
275
|
+
nope("blend");
|
276
|
+
}
|
277
|
+
|
278
|
+
@Override
|
279
|
+
public void blend(int sx1, int sy1, int sx2, int sy2,
|
280
|
+
int dx1, int dy1, int dx2, int dy2, int mode) {
|
281
|
+
nope("blend");
|
282
|
+
}
|
283
|
+
|
284
|
+
@Override
|
285
|
+
public void blend(PImage src,
|
286
|
+
int sx1, int sy1, int sx2, int sy2,
|
287
|
+
int dx1, int dy1, int dx2, int dy2, int mode) {
|
288
|
+
nope("blend");
|
289
|
+
}
|
290
|
+
|
291
|
+
//
|
292
|
+
@Override
|
293
|
+
public boolean save(String filename) {
|
294
|
+
nope("save");
|
295
|
+
return false;
|
296
|
+
}
|
297
|
+
|
298
|
+
//////////////////////////////////////////////////////////////
|
299
|
+
// /**
|
300
|
+
// * Add a directory that should be searched for font data.
|
301
|
+
// * <br/>
|
302
|
+
// * On Mac OS X, the following directories are added by default:
|
303
|
+
// * <UL>
|
304
|
+
// * <LI>/System/Library/Fonts
|
305
|
+
// * <LI>/Library/Fonts
|
306
|
+
// * <LI>~/Library/Fonts
|
307
|
+
// * </UL>
|
308
|
+
// * On Windows, all drive letters are searched for WINDOWS\Fonts
|
309
|
+
// * or WINNT\Fonts, any that exists is added.
|
310
|
+
// * <br/><br/>
|
311
|
+
// * On Linux or any other platform, you'll need to add the
|
312
|
+
// * directories by hand. (If there are actual standards here that we
|
313
|
+
// * can use as a starting point, please file a bug to make a note of it)
|
314
|
+
// */
|
315
|
+
// public void addFonts(String directory) {
|
316
|
+
// mapper.insertDirectory(directory);
|
317
|
+
// }
|
318
|
+
// /**
|
319
|
+
// * Check whether the specified font can be used with the PDF library.
|
320
|
+
// * @param name name of the font
|
321
|
+
// * @return true if it's ok
|
322
|
+
// */
|
323
|
+
// protected void checkFont() {
|
324
|
+
// Font awtFont = textFont.getFont();
|
325
|
+
// if (awtFont == null) { // always need a native font or reference to it
|
326
|
+
// throw new RuntimeException("Use createFont() instead of loadFont() " +
|
327
|
+
// "when drawing text using the PDF library.");
|
328
|
+
// } else if (textMode != SHAPE) {
|
329
|
+
// if (textFont.isStream()) {
|
330
|
+
// throw new RuntimeException("Use textMode(SHAPE) with PDF when loading " +
|
331
|
+
// ".ttf and .otf files with createFont().");
|
332
|
+
// } else if (mapper.getAliases().get(textFont.getName()) == null) {
|
333
|
+
// //System.out.println("alias for " + name + " = " + mapper.getAliases().get(name));
|
334
|
+
//// System.err.println("Use PGraphicsPDF.listFonts() to get a list of " +
|
335
|
+
//// "fonts that can be used with PDF.");
|
336
|
+
//// throw new RuntimeException("The font “" + textFont.getName() + "” " +
|
337
|
+
//// "cannot be used with PDF Export.");
|
338
|
+
// if (textFont.getName().equals("Lucida Sans")) {
|
339
|
+
// throw new RuntimeException("Use textMode(SHAPE) with the default " +
|
340
|
+
// "font when exporting to PDF.");
|
341
|
+
// } else {
|
342
|
+
// throw new RuntimeException("Use textMode(SHAPE) with " +
|
343
|
+
// "“" + textFont.getName() + "” " +
|
344
|
+
// "when exporting to PDF.");
|
345
|
+
// }
|
346
|
+
// }
|
347
|
+
// }
|
348
|
+
// }
|
349
|
+
// /**
|
350
|
+
// * List the fonts known to the PDF renderer. This is like PFont.list(),
|
351
|
+
// * however not all those fonts are available by default.
|
352
|
+
// */
|
353
|
+
// static public String[] listFonts() {
|
354
|
+
// if (fontList == null) {
|
355
|
+
// HashMap<?, ?> map = getMapper().getAliases();
|
356
|
+
//// Set entries = map.entrySet();
|
357
|
+
//// fontList = new String[entries.size()];
|
358
|
+
// fontList = new String[map.size()];
|
359
|
+
// int count = 0;
|
360
|
+
// for (Object entry : map.entrySet()) {
|
361
|
+
// fontList[count++] = (String) ((Map.Entry) entry).getKey();
|
362
|
+
// }
|
363
|
+
//// Iterator it = entries.iterator();
|
364
|
+
//// int count = 0;
|
365
|
+
//// while (it.hasNext()) {
|
366
|
+
//// Map.Entry entry = (Map.Entry) it.next();
|
367
|
+
//// //System.out.println(entry.getKey() + "-->" + entry.getValue());
|
368
|
+
//// fontList[count++] = (String) entry.getKey();
|
369
|
+
//// }
|
370
|
+
// fontList = PApplet.sort(fontList);
|
371
|
+
// }
|
372
|
+
// return fontList;
|
373
|
+
// }
|
374
|
+
//////////////////////////////////////////////////////////////
|
375
|
+
protected void nope(String function) {
|
376
|
+
throw new RuntimeException("No " + function + "() for PGraphicsSVG");
|
377
|
+
}
|
378
|
+
}
|
data/lib/propane/app.rb
CHANGED
@@ -16,6 +16,10 @@ module Propane
|
|
16
16
|
java_import 'monkstone.vecmath.ShapeRender'
|
17
17
|
end
|
18
18
|
|
19
|
+
# module NoiseModule
|
20
|
+
# java_import 'monkstone.noise.NoiseMode'
|
21
|
+
# end
|
22
|
+
|
19
23
|
# This class is the base class the user should inherit from when making
|
20
24
|
# their own sketch.
|
21
25
|
#
|
@@ -55,6 +59,7 @@ module Propane
|
|
55
59
|
include Math
|
56
60
|
include MathTool
|
57
61
|
include Render
|
62
|
+
include FastNoise
|
58
63
|
# Alias some methods for familiarity for Shoes coders.
|
59
64
|
alias oval ellipse
|
60
65
|
alias stroke_width stroke_weight
|
@@ -114,7 +119,7 @@ module Propane
|
|
114
119
|
|
115
120
|
def initialize(options = {}, arguments = [])
|
116
121
|
# Guard against invalid input.
|
117
|
-
proxy_java_fields
|
122
|
+
proxy_java_fields # see helper_methods
|
118
123
|
raise TypeError unless options.is_a? Hash
|
119
124
|
raise TypeError unless arguments.is_a? Array
|
120
125
|
|
@@ -153,19 +158,13 @@ module Propane
|
|
153
158
|
|
154
159
|
def import_opengl
|
155
160
|
# Include processing opengl classes that we'd like to use:
|
156
|
-
%w[FontTexture FrameBuffer LinePath LineStroker PGL
|
157
|
-
|
158
|
-
PShapeOpenGL Texture].each do |klass|
|
161
|
+
%w[FontTexture FrameBuffer LinePath LineStroker PGL PGraphics2D
|
162
|
+
PGraphics3D PGraphicsOpenGL PJOGL PShader PSurfaceJOGL
|
163
|
+
VertexBuffer PShapeOpenGL Texture].each do |klass|
|
159
164
|
java_import "processing.opengl.#{klass}"
|
160
165
|
end
|
161
166
|
end
|
162
167
|
|
163
|
-
def proxy_java_fields
|
164
|
-
fields = %w[sketchPath key frameRate mousePressed keyPressed]
|
165
|
-
methods = fields.map { |field| java_class.declared_field(field) }
|
166
|
-
@declared_fields = Hash[fields.zip(methods)]
|
167
|
-
end
|
168
|
-
|
169
168
|
# When certain special methods get added to the sketch, we need to let
|
170
169
|
# Processing call them by their expected Java names.
|
171
170
|
def method_added(method_name) #:nodoc:
|
data/lib/propane/runner.rb
CHANGED
@@ -69,31 +69,29 @@ module Propane
|
|
69
69
|
SketchWriter.new(File.basename(filename, '.rb'), argc).write
|
70
70
|
end
|
71
71
|
|
72
|
-
def show_version
|
73
|
-
v_format = "Propane version %s\nJRuby version %s"
|
74
|
-
puts format(v_format, Propane::VERSION, JRUBY_VERSION)
|
75
|
-
end
|
76
|
-
|
77
72
|
def show_version
|
78
73
|
require 'erb'
|
79
74
|
require_relative 'helpers/version_error'
|
80
75
|
raise JDKVersionError if ENV_JAVA['java.specification.version'] < '11'
|
81
76
|
|
82
|
-
template = ERB.new <<-
|
77
|
+
template = ERB.new <<-VERSION
|
83
78
|
propane version <%= Propane::VERSION %>
|
84
79
|
JRuby version <%= JRUBY_VERSION %>
|
85
|
-
|
80
|
+
VERSION
|
86
81
|
puts template.result(binding)
|
87
82
|
end
|
88
83
|
|
89
84
|
def install(library)
|
85
|
+
library ||= 'new'
|
90
86
|
choice = library.downcase
|
91
|
-
|
92
|
-
|
93
|
-
|
87
|
+
case choice
|
88
|
+
when /samples|sound|video/
|
89
|
+
system "cd #{PROPANE_ROOT}/vendors && rake download_and_copy_#{choice}"
|
90
|
+
when /new/
|
91
|
+
system "cd #{PROPANE_ROOT}/vendors && rake download_and_copy_samples"
|
92
|
+
else
|
93
|
+
warn format('No installer for %<lib>s', lib: choice)
|
94
94
|
end
|
95
|
-
|
96
|
-
system "cd #{PROPANE_ROOT}/vendors && rake download_and_copy_#{choice}"
|
97
95
|
end
|
98
96
|
end
|
99
97
|
# class Runner
|