picrate 0.3.0-java → 0.4.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/CHANGELOG.md +1 -2
- data/README.md +1 -1
- data/Rakefile +2 -2
- data/lib/picrate.rb +1 -0
- data/lib/picrate/app.rb +4 -4
- data/lib/picrate/helper_methods.rb +0 -4
- data/lib/picrate/version.rb +1 -1
- data/library/color_group/color_group.rb +27 -0
- data/picrate.gemspec +1 -1
- data/pom.rb +5 -5
- data/pom.xml +5 -5
- data/src/main/java/monkstone/ColorUtil.java +57 -32
- data/src/main/java/processing/awt/PShapeJava2D.java +33 -9
- data/src/main/java/processing/awt/PSurfaceAWT.java +169 -76
- data/src/main/java/processing/core/PApplet.java +15921 -13981
- data/src/main/java/processing/core/PConstants.java +981 -475
- data/src/main/java/processing/core/PFont.java +202 -50
- data/src/main/java/processing/core/PGraphics.java +8470 -7323
- data/src/main/java/processing/core/PImage.java +212 -42
- data/src/main/java/processing/core/PMatrix.java +160 -21
- data/src/main/java/processing/core/PMatrix2D.java +178 -18
- data/src/main/java/processing/core/PMatrix3D.java +324 -48
- data/src/main/java/processing/core/PShape.java +42 -20
- data/src/main/java/processing/core/PShapeOBJ.java +91 -16
- data/src/main/java/processing/core/PShapeSVG.java +253 -53
- data/src/main/java/processing/core/PStyle.java +179 -34
- data/src/main/java/processing/core/PSurface.java +94 -13
- data/src/main/java/processing/core/PSurfaceNone.java +140 -35
- data/src/main/java/processing/core/PVector.java +87 -10
- data/src/main/java/processing/data/JSONObject.java +2 -2
- data/src/main/java/processing/event/Event.java +69 -86
- data/src/main/java/processing/event/MouseEvent.java +102 -102
- data/src/main/java/processing/opengl/PJOGL.java +3 -0
- data/test/color_group_test.rb +33 -0
- data/vendors/Rakefile +1 -1
- metadata +7 -4
@@ -99,7 +99,11 @@ public class PImage implements PConstants, Cloneable {
|
|
99
99
|
|
100
100
|
/** Actual dimensions of pixels array, taking into account the 2x setting. */
|
101
101
|
public int pixelWidth;
|
102
|
-
|
102
|
+
|
103
|
+
/**
|
104
|
+
*
|
105
|
+
*/
|
106
|
+
public int pixelHeight;
|
103
107
|
|
104
108
|
/**
|
105
109
|
* ( begin auto-generated from PImage_width.xml )
|
@@ -137,7 +141,26 @@ public class PImage implements PConstants, Cloneable {
|
|
137
141
|
|
138
142
|
/** modified portion of the image */
|
139
143
|
protected boolean modified;
|
140
|
-
|
144
|
+
|
145
|
+
/**
|
146
|
+
*
|
147
|
+
*/
|
148
|
+
protected int mx1,
|
149
|
+
|
150
|
+
/**
|
151
|
+
*
|
152
|
+
*/
|
153
|
+
my1,
|
154
|
+
|
155
|
+
/**
|
156
|
+
*
|
157
|
+
*/
|
158
|
+
mx2,
|
159
|
+
|
160
|
+
/**
|
161
|
+
*
|
162
|
+
*/
|
163
|
+
my2;
|
141
164
|
|
142
165
|
/** Loaded pixels flag */
|
143
166
|
public boolean loaded = false;
|
@@ -166,10 +189,26 @@ public class PImage implements PConstants, Cloneable {
|
|
166
189
|
private int[][] blurMult;
|
167
190
|
|
168
191
|
// colour component bitmasks (moved from PConstants in 2.0b7)
|
192
|
+
|
193
|
+
/**
|
194
|
+
*
|
195
|
+
*/
|
169
196
|
public static final int ALPHA_MASK = 0xff000000;
|
170
|
-
|
171
|
-
|
172
|
-
|
197
|
+
|
198
|
+
/**
|
199
|
+
*
|
200
|
+
*/
|
201
|
+
public static final int RED_MASK = 0x00ff0000;
|
202
|
+
|
203
|
+
/**
|
204
|
+
*
|
205
|
+
*/
|
206
|
+
public static final int GREEN_MASK = 0x0000ff00;
|
207
|
+
|
208
|
+
/**
|
209
|
+
*
|
210
|
+
*/
|
211
|
+
public static final int BLUE_MASK = 0x000000ff;
|
173
212
|
|
174
213
|
|
175
214
|
//////////////////////////////////////////////////////////////
|
@@ -227,6 +266,8 @@ public class PImage implements PConstants, Cloneable {
|
|
227
266
|
|
228
267
|
|
229
268
|
/**
|
269
|
+
* @param width
|
270
|
+
* @param height
|
230
271
|
* @nowebref
|
231
272
|
* @param format Either RGB, ARGB, ALPHA (grayscale alpha channel)
|
232
273
|
*/
|
@@ -234,14 +275,23 @@ public class PImage implements PConstants, Cloneable {
|
|
234
275
|
init(width, height, format, 1);
|
235
276
|
}
|
236
277
|
|
237
|
-
|
238
|
-
|
278
|
+
/**
|
279
|
+
*
|
280
|
+
* @param width
|
281
|
+
* @param height
|
282
|
+
* @param format
|
283
|
+
* @param factor
|
284
|
+
*/
|
285
|
+
public PImage(int width, int height, int format, int factor) {
|
239
286
|
init(width, height, format, factor);
|
240
287
|
}
|
241
288
|
|
242
289
|
|
243
290
|
/**
|
244
291
|
* Do not remove, see notes in the other variant.
|
292
|
+
* @param width
|
293
|
+
* @param height
|
294
|
+
* @param format
|
245
295
|
*/
|
246
296
|
public void init(int width, int height, int format) { // ignore
|
247
297
|
init(width, height, format, 1);
|
@@ -254,6 +304,10 @@ public class PImage implements PConstants, Cloneable {
|
|
254
304
|
* Used by Capture and Movie classes (and perhaps others),
|
255
305
|
* because the width/height will not be known when super() is called.
|
256
306
|
* (Leave this public so that other libraries can do the same.)
|
307
|
+
* @param width
|
308
|
+
* @param factor
|
309
|
+
* @param height
|
310
|
+
* @param format
|
257
311
|
*/
|
258
312
|
public void init(int width, int height, int format, int factor) { // ignore
|
259
313
|
this.width = width;
|
@@ -346,6 +400,7 @@ public class PImage implements PConstants, Cloneable {
|
|
346
400
|
* Use the getNative() method instead, which allows library interfaces to be
|
347
401
|
* written in a cross-platform fashion for desktop, Android, and others.
|
348
402
|
* This is still included for PGraphics objects, which may need the image.
|
403
|
+
* @return
|
349
404
|
*/
|
350
405
|
public Image getImage() { // ignore
|
351
406
|
return (Image) getNative();
|
@@ -354,6 +409,7 @@ public class PImage implements PConstants, Cloneable {
|
|
354
409
|
|
355
410
|
/**
|
356
411
|
* Returns a native BufferedImage from this PImage.
|
412
|
+
* @return
|
357
413
|
*/
|
358
414
|
public Object getNative() { // ignore
|
359
415
|
loadPixels();
|
@@ -370,13 +426,20 @@ public class PImage implements PConstants, Cloneable {
|
|
370
426
|
|
371
427
|
// MARKING IMAGE AS MODIFIED / FOR USE w/ GET/SET
|
372
428
|
|
429
|
+
/**
|
430
|
+
*
|
431
|
+
* @return
|
432
|
+
*/
|
433
|
+
|
373
434
|
|
374
435
|
public boolean isModified() { // ignore
|
375
436
|
return modified;
|
376
437
|
}
|
377
438
|
|
378
|
-
|
379
|
-
|
439
|
+
/**
|
440
|
+
*
|
441
|
+
*/
|
442
|
+
public void setModified() { // ignore
|
380
443
|
modified = true;
|
381
444
|
mx1 = 0;
|
382
445
|
my1 = 0;
|
@@ -384,28 +447,43 @@ public class PImage implements PConstants, Cloneable {
|
|
384
447
|
my2 = pixelHeight;
|
385
448
|
}
|
386
449
|
|
387
|
-
|
388
|
-
|
450
|
+
/**
|
451
|
+
*
|
452
|
+
* @param m
|
453
|
+
*/
|
454
|
+
public void setModified(boolean m) { // ignore
|
389
455
|
modified = m;
|
390
456
|
}
|
391
457
|
|
392
|
-
|
393
|
-
|
458
|
+
/**
|
459
|
+
*
|
460
|
+
* @return
|
461
|
+
*/
|
462
|
+
public int getModifiedX1() { // ignore
|
394
463
|
return mx1;
|
395
464
|
}
|
396
465
|
|
397
|
-
|
398
|
-
|
466
|
+
/**
|
467
|
+
*
|
468
|
+
* @return
|
469
|
+
*/
|
470
|
+
public int getModifiedX2() { // ignore
|
399
471
|
return mx2;
|
400
472
|
}
|
401
473
|
|
402
|
-
|
403
|
-
|
474
|
+
/**
|
475
|
+
*
|
476
|
+
* @return
|
477
|
+
*/
|
478
|
+
public int getModifiedY1() { // ignore
|
404
479
|
return my1;
|
405
480
|
}
|
406
481
|
|
407
|
-
|
408
|
-
|
482
|
+
/**
|
483
|
+
*
|
484
|
+
* @return
|
485
|
+
*/
|
486
|
+
public int getModifiedY2() { // ignore
|
409
487
|
return my2;
|
410
488
|
}
|
411
489
|
|
@@ -442,8 +520,10 @@ public class PImage implements PConstants, Cloneable {
|
|
442
520
|
setLoaded();
|
443
521
|
}
|
444
522
|
|
445
|
-
|
446
|
-
|
523
|
+
/**
|
524
|
+
*
|
525
|
+
*/
|
526
|
+
public void updatePixels() { // ignore
|
447
527
|
updatePixels(0, 0, pixelWidth, pixelHeight);
|
448
528
|
}
|
449
529
|
|
@@ -516,6 +596,8 @@ public class PImage implements PConstants, Cloneable {
|
|
516
596
|
* override of Object.clone(). We recommend using get() instead,
|
517
597
|
* because it prevents you from needing to catch the
|
518
598
|
* CloneNotSupportedException, and from doing a cast from the result.
|
599
|
+
* @return
|
600
|
+
* @throws java.lang.CloneNotSupportedException
|
519
601
|
*/
|
520
602
|
@Override
|
521
603
|
public Object clone() throws CloneNotSupportedException { // ignore
|
@@ -652,18 +734,28 @@ public class PImage implements PConstants, Cloneable {
|
|
652
734
|
|
653
735
|
// MARKING IMAGE AS LOADED / FOR USE IN RENDERERS
|
654
736
|
|
737
|
+
/**
|
738
|
+
*
|
739
|
+
* @return
|
740
|
+
*/
|
741
|
+
|
655
742
|
|
656
743
|
public boolean isLoaded() { // ignore
|
657
744
|
return loaded;
|
658
745
|
}
|
659
746
|
|
660
|
-
|
661
|
-
|
747
|
+
/**
|
748
|
+
*
|
749
|
+
*/
|
750
|
+
public void setLoaded() { // ignore
|
662
751
|
loaded = true;
|
663
752
|
}
|
664
753
|
|
665
|
-
|
666
|
-
|
754
|
+
/**
|
755
|
+
*
|
756
|
+
* @param l
|
757
|
+
*/
|
758
|
+
public void setLoaded(boolean l) { // ignore
|
667
759
|
loaded = l;
|
668
760
|
}
|
669
761
|
|
@@ -715,6 +807,7 @@ public class PImage implements PConstants, Cloneable {
|
|
715
807
|
* type it is. If you want things to be more efficient, access the
|
716
808
|
* pixels[] array directly.
|
717
809
|
*
|
810
|
+
* @return
|
718
811
|
* @webref image:pixels
|
719
812
|
* @brief Reads the color of any pixel or grabs a rectangle of pixels
|
720
813
|
* @usage web_application
|
@@ -742,8 +835,11 @@ public class PImage implements PConstants, Cloneable {
|
|
742
835
|
|
743
836
|
|
744
837
|
/**
|
838
|
+
* @param x
|
839
|
+
* @param y
|
745
840
|
* @param w width of pixel rectangle to get
|
746
841
|
* @param h height of pixel rectangle to get
|
842
|
+
* @return
|
747
843
|
*/
|
748
844
|
public PImage get(int x, int y, int w, int h) {
|
749
845
|
int targetX = 0;
|
@@ -800,6 +896,7 @@ public class PImage implements PConstants, Cloneable {
|
|
800
896
|
/**
|
801
897
|
* Returns a copy of this PImage. Equivalent to get(0, 0, width, height).
|
802
898
|
* Deprecated, just use copy() instead.
|
899
|
+
* @return
|
803
900
|
*/
|
804
901
|
public PImage get() {
|
805
902
|
// Formerly this used clone(), which caused memory problems.
|
@@ -807,8 +904,11 @@ public class PImage implements PConstants, Cloneable {
|
|
807
904
|
return get(0, 0, pixelWidth, pixelHeight);
|
808
905
|
}
|
809
906
|
|
810
|
-
|
811
|
-
|
907
|
+
/**
|
908
|
+
*
|
909
|
+
* @return
|
910
|
+
*/
|
911
|
+
public PImage copy() {
|
812
912
|
return get(0, 0, pixelWidth, pixelHeight);
|
813
913
|
}
|
814
914
|
|
@@ -818,6 +918,13 @@ public class PImage implements PConstants, Cloneable {
|
|
818
918
|
* has already been properly cropped to a valid region. That is, x/y/w/h
|
819
919
|
* are guaranteed to be inside the image space, so the implementation can
|
820
920
|
* use the fastest possible pixel copying method.
|
921
|
+
* @param sourceX
|
922
|
+
* @param sourceY
|
923
|
+
* @param sourceWidth
|
924
|
+
* @param target
|
925
|
+
* @param sourceHeight
|
926
|
+
* @param targetX
|
927
|
+
* @param targetY
|
821
928
|
*/
|
822
929
|
protected void getImpl(int sourceX, int sourceY,
|
823
930
|
int sourceWidth, int sourceHeight,
|
@@ -876,7 +983,9 @@ public class PImage implements PConstants, Cloneable {
|
|
876
983
|
* No variations are employed, meaning that any scale, tint, or imageMode
|
877
984
|
* settings will be ignored.
|
878
985
|
*
|
986
|
+
* @param x
|
879
987
|
* @param img image to copy into the original image
|
988
|
+
* @param y
|
880
989
|
*/
|
881
990
|
public void set(int x, int y, PImage img) {
|
882
991
|
int sx = 0;
|
@@ -911,6 +1020,13 @@ public class PImage implements PConstants, Cloneable {
|
|
911
1020
|
/**
|
912
1021
|
* Internal function to actually handle setting a block of pixels that
|
913
1022
|
* has already been properly cropped from the image to a valid region.
|
1023
|
+
* @param sourceImage
|
1024
|
+
* @param sourceX
|
1025
|
+
* @param targetY
|
1026
|
+
* @param sourceHeight
|
1027
|
+
* @param sourceY
|
1028
|
+
* @param sourceWidth
|
1029
|
+
* @param targetX
|
914
1030
|
*/
|
915
1031
|
protected void setImpl(PImage sourceImage,
|
916
1032
|
int sourceX, int sourceY,
|
@@ -1000,6 +1116,11 @@ public class PImage implements PConstants, Cloneable {
|
|
1000
1116
|
|
1001
1117
|
// IMAGE FILTERS
|
1002
1118
|
|
1119
|
+
/**
|
1120
|
+
*
|
1121
|
+
* @param kind
|
1122
|
+
*/
|
1123
|
+
|
1003
1124
|
|
1004
1125
|
public void filter(int kind) {
|
1005
1126
|
loadPixels();
|
@@ -1208,6 +1329,7 @@ public class PImage implements PConstants, Cloneable {
|
|
1208
1329
|
* bigger speed gains for larger radii (~30%)
|
1209
1330
|
* added support for various image types (ALPHA, RGB, ARGB)
|
1210
1331
|
* [toxi 050728]
|
1332
|
+
* @param r
|
1211
1333
|
*/
|
1212
1334
|
protected void buildBlurKernel(float r) {
|
1213
1335
|
int radius = (int) (r * 3.5f);
|
@@ -1235,8 +1357,11 @@ public class PImage implements PConstants, Cloneable {
|
|
1235
1357
|
}
|
1236
1358
|
}
|
1237
1359
|
|
1238
|
-
|
1239
|
-
|
1360
|
+
/**
|
1361
|
+
*
|
1362
|
+
* @param r
|
1363
|
+
*/
|
1364
|
+
protected void blurAlpha(float r) {
|
1240
1365
|
int sum, cb;
|
1241
1366
|
int read, ri, ym, ymi, bk0;
|
1242
1367
|
int b2[] = new int[pixels.length];
|
@@ -1306,8 +1431,11 @@ public class PImage implements PConstants, Cloneable {
|
|
1306
1431
|
}
|
1307
1432
|
}
|
1308
1433
|
|
1309
|
-
|
1310
|
-
|
1434
|
+
/**
|
1435
|
+
*
|
1436
|
+
* @param r
|
1437
|
+
*/
|
1438
|
+
protected void blurRGB(float r) {
|
1311
1439
|
int sum, cr, cg, cb; //, k;
|
1312
1440
|
int /*pixel,*/ read, ri, /*roff,*/ ym, ymi, /*riw,*/ bk0;
|
1313
1441
|
int r2[] = new int[pixels.length];
|
@@ -1388,8 +1516,11 @@ public class PImage implements PConstants, Cloneable {
|
|
1388
1516
|
}
|
1389
1517
|
}
|
1390
1518
|
|
1391
|
-
|
1392
|
-
|
1519
|
+
/**
|
1520
|
+
*
|
1521
|
+
* @param r
|
1522
|
+
*/
|
1523
|
+
protected void blurARGB(float r) {
|
1393
1524
|
int sum, cr, cg, cb, ca;
|
1394
1525
|
int /*pixel,*/ read, ri, /*roff,*/ ym, ymi, /*riw,*/ bk0;
|
1395
1526
|
int wh = pixels.length;
|
@@ -1548,8 +1679,10 @@ public class PImage implements PConstants, Cloneable {
|
|
1548
1679
|
System.arraycopy(outgoing, 0, pixels, 0, maxIndex);
|
1549
1680
|
}
|
1550
1681
|
|
1551
|
-
|
1552
|
-
|
1682
|
+
/**
|
1683
|
+
*
|
1684
|
+
*/
|
1685
|
+
protected void erode() { // formerly dilate(true)
|
1553
1686
|
int index = 0;
|
1554
1687
|
int maxIndex = pixels.length;
|
1555
1688
|
int[] outgoing = new int[maxIndex];
|
@@ -1659,6 +1792,14 @@ public class PImage implements PConstants, Cloneable {
|
|
1659
1792
|
|
1660
1793
|
/**
|
1661
1794
|
* @param src an image variable referring to the source image.
|
1795
|
+
* @param sx
|
1796
|
+
* @param sy
|
1797
|
+
* @param dh
|
1798
|
+
* @param sw
|
1799
|
+
* @param dx
|
1800
|
+
* @param sh
|
1801
|
+
* @param dy
|
1802
|
+
* @param dw
|
1662
1803
|
*/
|
1663
1804
|
public void copy(PImage src,
|
1664
1805
|
int sx, int sy, int sw, int sh,
|
@@ -1744,6 +1885,7 @@ public class PImage implements PConstants, Cloneable {
|
|
1744
1885
|
* are preferrable, and the difference is insignificant for applications
|
1745
1886
|
* built with Processing.</P>
|
1746
1887
|
*
|
1888
|
+
* @return
|
1747
1889
|
* @webref color:creating_reading
|
1748
1890
|
* @usage web_application
|
1749
1891
|
* @param c1 the first color to blend
|
@@ -1779,8 +1921,19 @@ public class PImage implements PConstants, Cloneable {
|
|
1779
1921
|
return 0;
|
1780
1922
|
}
|
1781
1923
|
|
1782
|
-
|
1783
|
-
|
1924
|
+
/**
|
1925
|
+
*
|
1926
|
+
* @param sx
|
1927
|
+
* @param sy
|
1928
|
+
* @param sw
|
1929
|
+
* @param sh
|
1930
|
+
* @param dx
|
1931
|
+
* @param dy
|
1932
|
+
* @param dw
|
1933
|
+
* @param dh
|
1934
|
+
* @param mode
|
1935
|
+
*/
|
1936
|
+
public void blend(int sx, int sy, int sw, int sh,
|
1784
1937
|
int dx, int dy, int dw, int dh, int mode) {
|
1785
1938
|
blend(this, sx, sy, sw, sh, dx, dy, dw, dh, mode);
|
1786
1939
|
}
|
@@ -2961,7 +3114,12 @@ int testFunction(int dst, int src) {
|
|
2961
3114
|
static final String TIFF_ERROR =
|
2962
3115
|
"Error: Processing can only read its own TIFF files.";
|
2963
3116
|
|
2964
|
-
|
3117
|
+
/**
|
3118
|
+
*
|
3119
|
+
* @param tiff
|
3120
|
+
* @return
|
3121
|
+
*/
|
3122
|
+
static protected PImage loadTIFF(byte tiff[]) {
|
2965
3123
|
if ((tiff[42] != tiff[102]) || // width/height in both places
|
2966
3124
|
(tiff[43] != tiff[103])) {
|
2967
3125
|
System.err.println(TIFF_ERROR);
|
@@ -3008,8 +3166,12 @@ int testFunction(int dst, int src) {
|
|
3008
3166
|
return outgoing;
|
3009
3167
|
}
|
3010
3168
|
|
3011
|
-
|
3012
|
-
|
3169
|
+
/**
|
3170
|
+
*
|
3171
|
+
* @param output
|
3172
|
+
* @return
|
3173
|
+
*/
|
3174
|
+
protected boolean saveTIFF(OutputStream output) {
|
3013
3175
|
// shutting off the warning, people can figure this out themselves
|
3014
3176
|
/*
|
3015
3177
|
if (format != RGB) {
|
@@ -3067,6 +3229,8 @@ int testFunction(int dst, int src) {
|
|
3067
3229
|
* </p>
|
3068
3230
|
* Contributed by toxi 8-10 May 2005, based on this RLE
|
3069
3231
|
* <A HREF="http://www.wotsit.org/download.asp?f=tga">specification</A>
|
3232
|
+
* @param output
|
3233
|
+
* @return
|
3070
3234
|
*/
|
3071
3235
|
protected boolean saveTGA(OutputStream output) {
|
3072
3236
|
byte header[] = new byte[18];
|
@@ -3209,6 +3373,9 @@ int testFunction(int dst, int src) {
|
|
3209
3373
|
* Various formats are supported, typically jpeg, png, bmp, and wbmp.
|
3210
3374
|
* To get a list of the supported formats for writing, use: <BR>
|
3211
3375
|
* <TT>println(javax.imageio.ImageIO.getReaderFormatNames())</TT>
|
3376
|
+
* @param path
|
3377
|
+
* @return
|
3378
|
+
* @throws java.io.IOException
|
3212
3379
|
*/
|
3213
3380
|
protected boolean saveImageIO(String path) throws IOException {
|
3214
3381
|
try {
|
@@ -3322,8 +3489,10 @@ int testFunction(int dst, int src) {
|
|
3322
3489
|
return null;
|
3323
3490
|
}
|
3324
3491
|
|
3325
|
-
|
3326
|
-
|
3492
|
+
/**
|
3493
|
+
*
|
3494
|
+
*/
|
3495
|
+
protected String[] saveImageFormats;
|
3327
3496
|
|
3328
3497
|
/**
|
3329
3498
|
* ( begin auto-generated from PImage_save.xml )
|
@@ -3366,6 +3535,7 @@ int testFunction(int dst, int src) {
|
|
3366
3535
|
* require a black and white image. Basic testing produced a zero-length
|
3367
3536
|
* file with no error.
|
3368
3537
|
*
|
3538
|
+
* @return
|
3369
3539
|
* @webref pimage:method
|
3370
3540
|
* @brief Saves the image to a TIFF, TARGA, PNG, or JPEG file
|
3371
3541
|
* @usage application
|