propane 3.4.0-java → 3.4.1-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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/extensions.xml +1 -2
  3. data/.travis.yml +2 -2
  4. data/CHANGELOG.md +2 -0
  5. data/README.md +12 -7
  6. data/Rakefile +2 -2
  7. data/lib/propane.rb +2 -2
  8. data/lib/propane/app.rb +18 -9
  9. data/lib/propane/helper_methods.rb +1 -1
  10. data/lib/propane/runner.rb +1 -1
  11. data/lib/propane/version.rb +1 -1
  12. data/library/color_group/color_group.rb +26 -0
  13. data/library/dxf/dxf.rb +4 -0
  14. data/library/net/net.rb +5 -0
  15. data/library/video_event/video_event.rb +2 -1
  16. data/pom.rb +3 -3
  17. data/pom.xml +3 -3
  18. data/propane.gemspec +1 -1
  19. data/src/main/java/japplemenubar/JAppleMenuBar.java +3 -3
  20. data/src/main/java/monkstone/ColorUtil.java +14 -0
  21. data/src/main/java/monkstone/MathToolModule.java +243 -194
  22. data/src/main/java/monkstone/filechooser/Chooser.java +1 -0
  23. data/src/main/java/monkstone/slider/WheelHandler.java +6 -5
  24. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +3 -2
  25. data/src/main/java/monkstone/videoevent/CaptureEvent.java +27 -0
  26. data/src/main/java/monkstone/videoevent/{VideoInterface.java → MovieEvent.java} +10 -26
  27. data/src/main/java/processing/awt/PSurfaceAWT.java +1 -1
  28. data/src/main/java/processing/core/PApplet.java +1236 -599
  29. data/src/main/java/processing/core/PGraphics.java +59 -59
  30. data/src/main/java/processing/core/PImage.java +528 -129
  31. data/src/main/java/processing/core/PShape.java +10 -10
  32. data/src/main/java/processing/core/PVector.java +2 -2
  33. data/src/main/java/processing/core/ThinkDifferent.java +5 -7
  34. data/src/main/java/processing/dxf/RawDXF.java +404 -0
  35. data/src/main/java/processing/net/Client.java +744 -0
  36. data/src/main/java/processing/net/Server.java +388 -0
  37. data/src/main/java/processing/opengl/FontTexture.java +19 -20
  38. data/src/main/java/processing/opengl/FrameBuffer.java +27 -17
  39. data/src/main/java/processing/opengl/LinePath.java +512 -508
  40. data/src/main/java/processing/opengl/PGL.java +3106 -3066
  41. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +4 -4
  42. data/src/main/java/processing/opengl/PShader.java +1442 -1341
  43. data/vendors/Rakefile +3 -27
  44. metadata +12 -25
  45. data/src/main/java/processing/core/util/image/ImageLoadFacade.java +0 -161
  46. data/src/main/java/processing/core/util/image/ImageSaveFacade.java +0 -169
  47. data/src/main/java/processing/core/util/image/constants/TifConstants.java +0 -45
  48. data/src/main/java/processing/core/util/image/load/AwtImageLoadStrategy.java +0 -80
  49. data/src/main/java/processing/core/util/image/load/Base64StringImageLoadStrategy.java +0 -73
  50. data/src/main/java/processing/core/util/image/load/FallbackImageLoadStrategy.java +0 -70
  51. data/src/main/java/processing/core/util/image/load/ImageIoImageLoadStrategy.java +0 -132
  52. data/src/main/java/processing/core/util/image/load/ImageLoadStrategy.java +0 -48
  53. data/src/main/java/processing/core/util/image/load/ImageLoadUtil.java +0 -45
  54. data/src/main/java/processing/core/util/image/load/TgaImageLoadStrategy.java +0 -255
  55. data/src/main/java/processing/core/util/image/load/TiffImageLoadStrategy.java +0 -98
  56. data/src/main/java/processing/core/util/image/save/ImageSaveStrategy.java +0 -49
  57. data/src/main/java/processing/core/util/image/save/ImageSaveUtil.java +0 -48
  58. data/src/main/java/processing/core/util/image/save/ImageWriterImageSaveStrategy.java +0 -179
  59. data/src/main/java/processing/core/util/image/save/SaveImageException.java +0 -41
  60. data/src/main/java/processing/core/util/image/save/TgaImageSaveStrategy.java +0 -198
  61. data/src/main/java/processing/core/util/image/save/TiffImageSaveStrategy.java +0 -91
  62. data/src/main/java/processing/core/util/image/save/TiffNakedFilenameImageSaveStrategy.java +0 -57
  63. data/src/main/java/processing/core/util/io/InputFactory.java +0 -285
  64. data/src/main/java/processing/core/util/io/PathUtil.java +0 -109
@@ -1,45 +0,0 @@
1
- /* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
-
3
- /*
4
- Part of the Processing project - http://processing.org
5
-
6
- Copyright (c) 2012-18 The Processing Foundation
7
- Copyright (c) 2004-12 Ben Fry and Casey Reas
8
- Copyright (c) 2001-04 Massachusetts Institute of Technology
9
-
10
- This library is free software; you can redistribute it and/or
11
- modify it under the terms of the GNU Lesser General Public
12
- License as published by the Free Software Foundation, version 2.1.
13
-
14
- This library is distributed in the hope that it will be useful,
15
- but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- Lesser General Public License for more details.
18
-
19
- You should have received a copy of the GNU Lesser General
20
- Public License along with this library; if not, write to the
21
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
22
- Boston, MA 02111-1307 USA
23
- */
24
-
25
- package processing.core.util.image.load;
26
-
27
-
28
- /**
29
- * Convenience functions for use while loading images.
30
- */
31
- public class ImageLoadUtil {
32
-
33
- /**
34
- * Determine if a file requires alpha channel checking.
35
- *
36
- * @param extension The file extension.
37
- * @return True if one needs to look for alpha channel and false otherwise.
38
- */
39
- public static boolean checkExtensionRequiresAlpha(String extension) {
40
- return extension.equals("gif") ||
41
- extension.equals("png") ||
42
- extension.equals("unknown");
43
- }
44
-
45
- }
@@ -1,255 +0,0 @@
1
- /* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
-
3
- /*
4
- Part of the Processing project - http://processing.org
5
-
6
- Copyright (c) 2012-18 The Processing Foundation
7
- Copyright (c) 2004-12 Ben Fry and Casey Reas
8
- Copyright (c) 2001-04 Massachusetts Institute of Technology
9
-
10
- This library is free software; you can redistribute it and/or
11
- modify it under the terms of the GNU Lesser General Public
12
- License as published by the Free Software Foundation, version 2.1.
13
-
14
- This library is distributed in the hope that it will be useful,
15
- but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- Lesser General Public License for more details.
18
-
19
- You should have received a copy of the GNU Lesser General
20
- Public License along with this library; if not, write to the
21
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
22
- Boston, MA 02111-1307 USA
23
- */
24
-
25
- package processing.core.util.image.load;
26
-
27
- import processing.core.PApplet;
28
- import processing.core.PConstants;
29
- import processing.core.PImage;
30
-
31
- import java.io.IOException;
32
- import java.io.InputStream;
33
-
34
-
35
- /**
36
- * Strategy for loading a RLE-compressed TGA image.
37
- */
38
- public class TgaImageLoadStrategy implements ImageLoadStrategy {
39
-
40
- @Override
41
- public PImage load(PApplet pApplet, String path, String extension) {
42
- try {
43
- PImage image = loadNoCatch(pApplet, path);
44
- return image;
45
- } catch (IOException e) {
46
- e.printStackTrace();
47
- return null;
48
- }
49
- }
50
-
51
- /**
52
- * Targa image loader for RLE-compressed TGA files which throws exceptions.
53
- * <p>
54
- * Rewritten for 0115 to read/write RLE-encoded targa images.
55
- * For 0125, non-RLE encoded images are now supported, along with
56
- * images whose y-order is reversed (which is standard for TGA files).
57
- * <p>
58
- * A version of this function is in MovieMaker.java. Any fixes here
59
- * should be applied over in MovieMaker as well.
60
- * <p>
61
- * Known issue with RLE encoding and odd behavior in some apps:
62
- * https://github.com/processing/processing/issues/2096
63
- * Please help!
64
- */
65
- private PImage loadNoCatch(PApplet pApplet, String filename) throws IOException {
66
- InputStream is = pApplet.createInput(filename);
67
- if (is == null) return null;
68
-
69
- byte header[] = new byte[18];
70
- int offset = 0;
71
- do {
72
- int count = is.read(header, offset, header.length - offset);
73
- if (count == -1) return null;
74
- offset += count;
75
- } while (offset < 18);
76
-
77
- /*
78
- header[2] image type code
79
- 2 (0x02) - Uncompressed, RGB images.
80
- 3 (0x03) - Uncompressed, black and white images.
81
- 10 (0x0A) - Run-length encoded RGB images.
82
- 11 (0x0B) - Compressed, black and white images. (grayscale?)
83
-
84
- header[16] is the bit depth (8, 24, 32)
85
-
86
- header[17] image descriptor (packed bits)
87
- 0x20 is 32 = origin upper-left
88
- 0x28 is 32 + 8 = origin upper-left + 32 bits
89
-
90
- 7 6 5 4 3 2 1 0
91
- 128 64 32 16 8 4 2 1
92
- */
93
-
94
- int format = 0;
95
-
96
- if (((header[2] == 3) || (header[2] == 11)) && // B&W, plus RLE or not
97
- (header[16] == 8) && // 8 bits
98
- ((header[17] == 0x8) || (header[17] == 0x28))) { // origin, 32 bit
99
- format = PConstants.ALPHA;
100
-
101
- } else if (((header[2] == 2) || (header[2] == 10)) && // RGB, RLE or not
102
- (header[16] == 24) && // 24 bits
103
- ((header[17] == 0x20) || (header[17] == 0))) { // origin
104
- format = PConstants.RGB;
105
-
106
- } else if (((header[2] == 2) || (header[2] == 10)) &&
107
- (header[16] == 32) &&
108
- ((header[17] == 0x8) || (header[17] == 0x28))) { // origin, 32
109
- format = PConstants.ARGB;
110
- }
111
-
112
- if (format == 0) {
113
- System.err.println("Unknown .tga file format for " + filename);
114
- //" (" + header[2] + " " +
115
- //(header[16] & 0xff) + " " +
116
- //hex(header[17], 2) + ")");
117
- return null;
118
- }
119
-
120
- int w = ((header[13] & 0xff) << 8) + (header[12] & 0xff);
121
- int h = ((header[15] & 0xff) << 8) + (header[14] & 0xff);
122
- PImage outgoing = pApplet.createImage(w, h, format);
123
-
124
- // where "reversed" means upper-left corner (normal for most of
125
- // the modernized world, but "reversed" for the tga spec)
126
- //boolean reversed = (header[17] & 0x20) != 0;
127
- // https://github.com/processing/processing/issues/1682
128
- boolean reversed = (header[17] & 0x20) == 0;
129
-
130
- if ((header[2] == 2) || (header[2] == 3)) { // not RLE encoded
131
- if (reversed) {
132
- int index = (h-1) * w;
133
- switch (format) {
134
- case PConstants.ALPHA:
135
- for (int y = h-1; y >= 0; y--) {
136
- for (int x = 0; x < w; x++) {
137
- outgoing.pixels[index + x] = is.read();
138
- }
139
- index -= w;
140
- }
141
- break;
142
- case PConstants.RGB:
143
- for (int y = h-1; y >= 0; y--) {
144
- for (int x = 0; x < w; x++) {
145
- outgoing.pixels[index + x] =
146
- is.read() | (is.read() << 8) | (is.read() << 16) |
147
- 0xff000000;
148
- }
149
- index -= w;
150
- }
151
- break;
152
- case PConstants.ARGB:
153
- for (int y = h-1; y >= 0; y--) {
154
- for (int x = 0; x < w; x++) {
155
- outgoing.pixels[index + x] =
156
- is.read() | (is.read() << 8) | (is.read() << 16) |
157
- (is.read() << 24);
158
- }
159
- index -= w;
160
- }
161
- }
162
- } else { // not reversed
163
- int count = w * h;
164
- switch (format) {
165
- case PConstants.ALPHA:
166
- for (int i = 0; i < count; i++) {
167
- outgoing.pixels[i] = is.read();
168
- }
169
- break;
170
- case PConstants.RGB:
171
- for (int i = 0; i < count; i++) {
172
- outgoing.pixels[i] =
173
- is.read() | (is.read() << 8) | (is.read() << 16) |
174
- 0xff000000;
175
- }
176
- break;
177
- case PConstants.ARGB:
178
- for (int i = 0; i < count; i++) {
179
- outgoing.pixels[i] =
180
- is.read() | (is.read() << 8) | (is.read() << 16) |
181
- (is.read() << 24);
182
- }
183
- break;
184
- }
185
- }
186
-
187
- } else { // header[2] is 10 or 11
188
- int index = 0;
189
- int px[] = outgoing.pixels;
190
-
191
- while (index < px.length) {
192
- int num = is.read();
193
- boolean isRLE = (num & 0x80) != 0;
194
- if (isRLE) {
195
- num -= 127; // (num & 0x7F) + 1
196
- int pixel = 0;
197
- switch (format) {
198
- case PConstants.ALPHA:
199
- pixel = is.read();
200
- break;
201
- case PConstants.RGB:
202
- pixel = 0xFF000000 |
203
- is.read() | (is.read() << 8) | (is.read() << 16);
204
- //(is.read() << 16) | (is.read() << 8) | is.read();
205
- break;
206
- case PConstants.ARGB:
207
- pixel = is.read() |
208
- (is.read() << 8) | (is.read() << 16) | (is.read() << 24);
209
- break;
210
- }
211
- for (int i = 0; i < num; i++) {
212
- px[index++] = pixel;
213
- if (index == px.length) break;
214
- }
215
- } else { // write up to 127 bytes as uncompressed
216
- num += 1;
217
- switch (format) {
218
- case PConstants.ALPHA:
219
- for (int i = 0; i < num; i++) {
220
- px[index++] = is.read();
221
- }
222
- break;
223
- case PConstants.RGB:
224
- for (int i = 0; i < num; i++) {
225
- px[index++] = 0xFF000000 |
226
- is.read() | (is.read() << 8) | (is.read() << 16);
227
- //(is.read() << 16) | (is.read() << 8) | is.read();
228
- }
229
- break;
230
- case PConstants.ARGB:
231
- for (int i = 0; i < num; i++) {
232
- px[index++] = is.read() | //(is.read() << 24) |
233
- (is.read() << 8) | (is.read() << 16) | (is.read() << 24);
234
- //(is.read() << 16) | (is.read() << 8) | is.read();
235
- }
236
- break;
237
- }
238
- }
239
- }
240
-
241
- if (!reversed) {
242
- int[] temp = new int[w];
243
- for (int y = 0; y < h/2; y++) {
244
- int z = (h-1) - y;
245
- System.arraycopy(px, y*w, temp, 0, w);
246
- System.arraycopy(px, z*w, px, y*w, w);
247
- System.arraycopy(temp, 0, px, z*w, w);
248
- }
249
- }
250
- }
251
- is.close();
252
- return outgoing;
253
- }
254
-
255
- }
@@ -1,98 +0,0 @@
1
- /* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
-
3
- /*
4
- Part of the Processing project - http://processing.org
5
-
6
- Copyright (c) 2012-18 The Processing Foundation
7
- Copyright (c) 2004-12 Ben Fry and Casey Reas
8
- Copyright (c) 2001-04 Massachusetts Institute of Technology
9
-
10
- This library is free software; you can redistribute it and/or
11
- modify it under the terms of the GNU Lesser General Public
12
- License as published by the Free Software Foundation, version 2.1.
13
-
14
- This library is distributed in the hope that it will be useful,
15
- but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- Lesser General Public License for more details.
18
-
19
- You should have received a copy of the GNU Lesser General
20
- Public License along with this library; if not, write to the
21
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
22
- Boston, MA 02111-1307 USA
23
- */
24
-
25
- package processing.core.util.image.load;
26
-
27
- import processing.core.PApplet;
28
- import processing.core.PConstants;
29
- import processing.core.PImage;
30
- import processing.core.util.image.constants.TifConstants;
31
-
32
-
33
- /**
34
- * Strategy for loading a tif image.
35
- */
36
- public class TiffImageLoadStrategy implements ImageLoadStrategy {
37
-
38
- @Override
39
- public PImage load(PApplet pApplet, String path, String extension) {
40
- byte bytes[] = pApplet.loadBytes(path);
41
- PImage image = (bytes == null) ? null : loadFromBytes(bytes);
42
- return image;
43
- }
44
-
45
- /**
46
- * Load the tif image from bytes.
47
- *
48
- * @param tiff The bytes of the tif image.
49
- * @return PImage created from the provided bytes.
50
- */
51
- private PImage loadFromBytes(byte[] tiff) {
52
- if ((tiff[42] != tiff[102]) || // width/height in both places
53
- (tiff[43] != tiff[103])) {
54
- System.err.println(TifConstants.TIFF_ERROR);
55
- return null;
56
- }
57
-
58
- int width =
59
- ((tiff[30] & 0xff) << 8) | (tiff[31] & 0xff);
60
- int height =
61
- ((tiff[42] & 0xff) << 8) | (tiff[43] & 0xff);
62
-
63
- int count =
64
- ((tiff[114] & 0xff) << 24) |
65
- ((tiff[115] & 0xff) << 16) |
66
- ((tiff[116] & 0xff) << 8) |
67
- (tiff[117] & 0xff);
68
- if (count != width * height * 3) {
69
- System.err.println(TifConstants.TIFF_ERROR + " (" + width + ", " + height +")");
70
- return null;
71
- }
72
-
73
- // check the rest of the header
74
- for (int i = 0; i < TifConstants.TIFF_HEADER.length; i++) {
75
- if ((i == 30) || (i == 31) || (i == 42) || (i == 43) ||
76
- (i == 102) || (i == 103) ||
77
- (i == 114) || (i == 115) || (i == 116) || (i == 117)) continue;
78
-
79
- if (tiff[i] != TifConstants.TIFF_HEADER[i]) {
80
- System.err.println(TifConstants.TIFF_ERROR + " (" + i + ")");
81
- return null;
82
- }
83
- }
84
-
85
- PImage outgoing = new PImage(width, height, PConstants.RGB);
86
- int index = 768;
87
- count /= 3;
88
- for (int i = 0; i < count; i++) {
89
- outgoing.pixels[i] =
90
- 0xFF000000 |
91
- (tiff[index++] & 0xff) << 16 |
92
- (tiff[index++] & 0xff) << 8 |
93
- (tiff[index++] & 0xff);
94
- }
95
- return outgoing;
96
- }
97
-
98
- }
@@ -1,49 +0,0 @@
1
- /* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
-
3
- /*
4
- Part of the Processing project - http://processing.org
5
-
6
- Copyright (c) 2012-18 The Processing Foundation
7
- Copyright (c) 2004-12 Ben Fry and Casey Reas
8
- Copyright (c) 2001-04 Massachusetts Institute of Technology
9
-
10
- This library is free software; you can redistribute it and/or
11
- modify it under the terms of the GNU Lesser General Public
12
- License as published by the Free Software Foundation, version 2.1.
13
-
14
- This library is distributed in the hope that it will be useful,
15
- but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- Lesser General Public License for more details.
18
-
19
- You should have received a copy of the GNU Lesser General
20
- Public License along with this library; if not, write to the
21
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
22
- Boston, MA 02111-1307 USA
23
- */
24
-
25
- package processing.core.util.image.save;
26
-
27
- import java.io.IOException;
28
-
29
-
30
- /**
31
- * Interface for strategies that can save images to different formats or via different methods.
32
- */
33
- public interface ImageSaveStrategy {
34
-
35
- /**
36
- * Save an image.
37
- *
38
- * @param pixels The raw pixel values (described by format) to be saved.
39
- * @param pixelWidth The width of the image in pixels.
40
- * @param pixelHeight The height of the image in pixels.
41
- * @param format The format as described in PConstants like PConstants.RGB.
42
- * @param filename The path to which the image should be written.
43
- * @return True if writting succeeded and false otherwise.
44
- * @throws IOException Thrown if the file writing encountered an unexpected error.
45
- */
46
- boolean save(int[] pixels, int pixelWidth, int pixelHeight, int format,
47
- String filename) throws IOException;
48
-
49
- }