propane 3.11.0-java → 4.0.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/extensions.xml +1 -1
  3. data/CHANGELOG.md +2 -0
  4. data/README.md +5 -5
  5. data/Rakefile +1 -1
  6. data/lib/propane/app.rb +2 -2
  7. data/lib/propane/version.rb +1 -1
  8. data/lib/propane-4.0.0.jar +0 -0
  9. data/library/slider/slider.rb +1 -1
  10. data/pom.rb +8 -8
  11. data/pom.xml +8 -8
  12. data/propane.gemspec +3 -3
  13. data/src/main/java/monkstone/ColorUtil.java +1 -1
  14. data/src/main/java/monkstone/MathToolModule.java +1 -1
  15. data/src/main/java/monkstone/PropaneLibrary.java +1 -1
  16. data/src/main/java/monkstone/fastmath/DegLutTables.java +10 -11
  17. data/src/main/java/monkstone/fastmath/Deglut.java +1 -1
  18. data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
  19. data/src/main/java/monkstone/noise/LICENSE +121 -0
  20. data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
  21. data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
  22. data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +1 -1
  23. data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
  24. data/src/main/java/monkstone/slider/SliderBar.java +1 -1
  25. data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
  26. data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
  27. data/src/main/java/monkstone/vecmath/package-info.java +1 -1
  28. data/src/main/java/monkstone/vecmath/vec2/Vec2.java +92 -68
  29. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -1
  30. data/src/main/java/monkstone/videoevent/CaptureEvent.java +1 -1
  31. data/src/main/java/monkstone/videoevent/MovieEvent.java +1 -1
  32. data/src/main/java/monkstone/videoevent/package-info.java +1 -1
  33. data/src/main/java/processing/awt/PGraphicsJava2D.java +0 -1
  34. data/src/main/java/processing/awt/PImageAWT.java +2 -4
  35. data/src/main/java/processing/core/PApplet.java +4 -4
  36. data/src/main/java/processing/core/PImage.java +3025 -3047
  37. data/src/main/java/processing/core/PMatrix.java +5 -2
  38. data/src/main/java/processing/data/DoubleDict.java +72 -43
  39. data/src/main/java/processing/data/DoubleList.java +6 -2
  40. data/src/main/java/processing/data/FloatDict.java +744 -756
  41. data/src/main/java/processing/data/FloatList.java +68 -26
  42. data/src/main/java/processing/data/IntDict.java +72 -45
  43. data/src/main/java/processing/data/IntList.java +63 -26
  44. data/src/main/java/processing/data/JSONArray.java +892 -931
  45. data/src/main/java/processing/data/JSONObject.java +1169 -1262
  46. data/src/main/java/processing/data/JSONTokener.java +30 -49
  47. data/src/main/java/processing/data/LongDict.java +699 -712
  48. data/src/main/java/processing/data/LongList.java +676 -700
  49. data/src/main/java/processing/data/Sort.java +1 -0
  50. data/src/main/java/processing/data/Table.java +4040 -3661
  51. data/src/main/java/processing/data/TableRow.java +16 -0
  52. data/src/main/java/processing/data/XML.java +1041 -956
  53. data/src/main/java/processing/event/TouchEvent.java +1 -1
  54. data/src/main/java/processing/opengl/FontTexture.java +2 -2
  55. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +15 -18
  56. data/src/main/java/processing/opengl/PJOGL.java +2 -2
  57. data/src/main/java/processing/opengl/PShapeOpenGL.java +23 -24
  58. data/test/vecmath_spec_test.rb +14 -3
  59. data/vendors/Rakefile +1 -1
  60. metadata +9 -8
  61. data/lib/propane-3.11.0.jar +0 -0
@@ -1,7 +1,7 @@
1
1
  package monkstone.vecmath.vec2;
2
2
 
3
3
  /*
4
- * Copyright (c) 2015-20 Martin Prout
4
+ * Copyright (c) 2015-22 Martin Prout
5
5
  *
6
6
  * This library is free software; you can redistribute it and/or
7
7
  * modify it under the terms of the GNU Lesser General Public
@@ -21,6 +21,7 @@ package monkstone.vecmath.vec2;
21
21
  *
22
22
  * fastAtan2 algorithm from https://github.com/libgdx/libgdx (Apache 2.0 license)
23
23
  */
24
+ import java.util.logging.Logger;
24
25
  import org.jruby.Ruby;
25
26
  import org.jruby.RubyArray;
26
27
  import org.jruby.RubyClass;
@@ -44,7 +45,6 @@ public final class Vec2 extends RubyObject {
44
45
 
45
46
  static final double EPSILON = 9.999999747378752e-05; // matches processing.org EPSILON
46
47
  private static final long serialVersionUID = -2950154560223211646L;
47
-
48
48
  private double jx = 0;
49
49
  private double jy = 0;
50
50
 
@@ -91,17 +91,15 @@ public final class Vec2 extends RubyObject {
91
91
  void init(ThreadContext context, IRubyObject... args) {
92
92
  int count = args.length;
93
93
  if (count == 2) {
94
- jx = args[0] instanceof RubyFloat ? ((RubyFloat) args[0]).getValue() : ((RubyFixnum) args[0]).getDoubleValue();
95
- jy = args[1] instanceof RubyFloat ? ((RubyFloat) args[1]).getValue() : ((RubyFixnum) args[1]).getDoubleValue();
94
+ jx = jvalue(args[0]);
95
+ jy = jvalue(args[1]);
96
96
  } // allow ruby ducktyping in constructor
97
97
  if (count == 1) {
98
98
  if (!(args[0].respondsTo("x"))) {
99
99
  throw context.runtime.newTypeError(args[0].getType() + " doesn't respond_to :x & :y");
100
100
  }
101
- jx = args[0].callMethod(context, "x") instanceof RubyFloat
102
- ? ((RubyFloat) args[0].callMethod(context, "x")).getValue() : ((RubyFixnum) args[0].callMethod(context, "x")).getDoubleValue();
103
- jy = args[0].callMethod(context, "y") instanceof RubyFloat
104
- ? ((RubyFloat) args[0].callMethod(context, "y")).getValue() : ((RubyFixnum) args[0].callMethod(context, "y")).getDoubleValue();
101
+ jx = jvalue(args[0].callMethod(context, "x"));
102
+ jy = jvalue(args[0].callMethod(context, "y"));
105
103
  }
106
104
  }
107
105
 
@@ -137,13 +135,14 @@ public final class Vec2 extends RubyObject {
137
135
 
138
136
  public IRubyObject aref(ThreadContext context, IRubyObject key) {
139
137
  Ruby runtime = context.runtime;
140
- if (key instanceof RubySymbol) {
141
- if (key == RubySymbol.newSymbol(runtime, "x")) {
138
+ if (key instanceof RubySymbol rubySymbol) {
139
+ if (rubySymbol.equals(RubySymbol.newSymbol(runtime, "x"))) {
142
140
  return runtime.newFloat(jx);
143
- } else if (key == RubySymbol.newSymbol(runtime, "y")) {
141
+ }
142
+ if (rubySymbol.equals(RubySymbol.newSymbol(runtime, "y"))) {
144
143
  return runtime.newFloat(jy);
145
144
  } else {
146
- throw runtime.newIndexError("invalid key");
145
+ throw runtime.newIndexError("unknown key");
147
146
  }
148
147
  } else {
149
148
  throw runtime.newIndexError("invalid key");
@@ -160,13 +159,13 @@ public final class Vec2 extends RubyObject {
160
159
 
161
160
  public IRubyObject aset(ThreadContext context, IRubyObject key, IRubyObject value) {
162
161
  Ruby runtime = context.runtime;
163
- if (key instanceof RubySymbol) {
164
- if (key == RubySymbol.newSymbol(runtime, "x")) {
165
- jx = value instanceof RubyFloat
166
- ? ((RubyFloat) value).getValue() : ((RubyFixnum) value).getDoubleValue();
167
- } else if (key == RubySymbol.newSymbol(runtime, "y")) {
168
- jy = value instanceof RubyFloat
169
- ? ((RubyFloat) value).getValue() : ((RubyFixnum) value).getDoubleValue();
162
+ if (key instanceof RubySymbol rubySymbol) {
163
+ if (rubySymbol.equals(RubySymbol.newSymbol(runtime, "x"))) {
164
+ jx = jvalue(value);
165
+ } else if (rubySymbol.equals(RubySymbol.newSymbol(runtime, "y"))) {
166
+ jy = jvalue(value);
167
+ } else {
168
+ throw runtime.newIndexError("unknown key");
170
169
  }
171
170
  } else {
172
171
  throw runtime.newIndexError("invalid key");
@@ -183,11 +182,7 @@ public final class Vec2 extends RubyObject {
183
182
  @JRubyMethod(name = "x=")
184
183
 
185
184
  public IRubyObject setX(ThreadContext context, IRubyObject other) {
186
- if (other instanceof RubyFloat) {
187
- jx = ((RubyFloat) other).getValue();
188
- } else {
189
- jx = ((RubyFixnum) other).getDoubleValue();
190
- }
185
+ jx = jvalue(other);
191
186
  return other;
192
187
  }
193
188
 
@@ -200,11 +195,7 @@ public final class Vec2 extends RubyObject {
200
195
  @JRubyMethod(name = "y=")
201
196
 
202
197
  public IRubyObject setY(ThreadContext context, IRubyObject other) {
203
- if (other instanceof RubyFloat) {
204
- jy = ((RubyFloat) other).getValue();
205
- } else {
206
- jy = ((RubyFixnum) other).getDoubleValue();
207
- }
198
+ jy = jvalue(other);
208
199
  return other;
209
200
  }
210
201
 
@@ -219,28 +210,36 @@ public final class Vec2 extends RubyObject {
219
210
  public IRubyObject dist(ThreadContext context, IRubyObject other) {
220
211
  Vec2 b = null;
221
212
  Ruby runtime = context.runtime;
222
- if (other instanceof Vec2) {
223
- b = (Vec2) other.toJava(Vec2.class);
213
+ if (other instanceof Vec2 vec) {
214
+ b = vec.toJava(Vec2.class);
224
215
  } else {
225
216
  throw runtime.newTypeError("argument should be Vec2D");
226
217
  }
227
218
  double result = Math.hypot(jx - b.jx, jy - b.jy);
228
219
  return runtime.newFloat(result);
229
220
  }
221
+
222
+ @Deprecated
223
+ @JRubyMethod(name = "cross", required = 1)
224
+ public IRubyObject cross(ThreadContext context, IRubyObject other) {
225
+ Logger log = Logger.getGlobal();
226
+ log.warning("prefer ^ operator");
227
+ return op_wedge(context, other);
228
+ }
230
229
 
231
230
  /**
232
231
  *
233
232
  * @param context ThreadContext
234
233
  * @param other IRubyObject
235
- * @return cross product IRubyObject
234
+ * @return wedge product IRubyObject
236
235
  */
237
- @JRubyMethod(name = "cross", required = 1)
236
+ @JRubyMethod(name = "^", required = 1)
238
237
 
239
- public IRubyObject cross(ThreadContext context, IRubyObject other) {
238
+ public IRubyObject op_wedge(ThreadContext context, IRubyObject other) {
240
239
  Vec2 b = null;
241
240
  Ruby runtime = context.runtime;
242
- if (other instanceof Vec2) {
243
- b = (Vec2) other.toJava(Vec2.class);
241
+ if (other instanceof Vec2 vec) {
242
+ b = vec.toJava(Vec2.class);
244
243
  } else {
245
244
  throw runtime.newTypeError("argument should be Vec2D");
246
245
  }
@@ -258,8 +257,8 @@ public final class Vec2 extends RubyObject {
258
257
  public IRubyObject dot(ThreadContext context, IRubyObject other) {
259
258
  Vec2 b = null;
260
259
  Ruby runtime = context.runtime;
261
- if (other instanceof Vec2) {
262
- b = (Vec2) other.toJava(Vec2.class);
260
+ if (other instanceof Vec2 vec) {
261
+ b = vec.toJava(Vec2.class);
263
262
  } else {
264
263
  throw runtime.newTypeError("argument should be Vec2D");
265
264
  }
@@ -277,8 +276,8 @@ public final class Vec2 extends RubyObject {
277
276
  public IRubyObject op_plus(ThreadContext context, IRubyObject other) {
278
277
  Vec2 b = null;
279
278
  Ruby runtime = context.runtime;
280
- if (other instanceof Vec2) {
281
- b = (Vec2) other.toJava(Vec2.class);
279
+ if (other instanceof Vec2 vec) {
280
+ b = vec.toJava(Vec2.class);
282
281
  } else {
283
282
  throw runtime.newTypeError("argument should be Vec2D");
284
283
  }
@@ -298,8 +297,8 @@ public final class Vec2 extends RubyObject {
298
297
  public IRubyObject op_minus(ThreadContext context, IRubyObject other) {
299
298
  Vec2 b = null;
300
299
  Ruby runtime = context.runtime;
301
- if (other instanceof Vec2) {
302
- b = (Vec2) other.toJava(Vec2.class);
300
+ if (other instanceof Vec2 vec) {
301
+ b = vec.toJava(Vec2.class);
303
302
  } else {
304
303
  throw runtime.newTypeError("argument should be Vec2D");
305
304
  }
@@ -308,6 +307,38 @@ public final class Vec2 extends RubyObject {
308
307
  runtime.newFloat(jy - b.jy)});
309
308
  }
310
309
 
310
+ /**
311
+ * Utility method
312
+ *
313
+ * @param obj
314
+ * @return scalar value of object or unity (preempts poss division by zero)
315
+ */
316
+ private static double jscalar(IRubyObject obj) {
317
+ if (obj instanceof RubyFloat rubyFloat) {
318
+ return rubyFloat.getValue();
319
+ }
320
+ if (obj instanceof RubyFixnum rubyFixnum) {
321
+ return rubyFixnum.getDoubleValue();
322
+ }
323
+ return 1.0;
324
+ }
325
+
326
+ /**
327
+ * Utility method
328
+ *
329
+ * @param obj
330
+ * @return parse float value of object or zero
331
+ */
332
+ private static double jvalue(IRubyObject obj) {
333
+ if (obj instanceof RubyFloat rubyFloat) {
334
+ return rubyFloat.getValue();
335
+ }
336
+ if (obj instanceof RubyFixnum rubyFixnum) {
337
+ return rubyFixnum.getDoubleValue();
338
+ }
339
+ return 0;
340
+ }
341
+
311
342
  /**
312
343
  *
313
344
  * @param context ThreadContext
@@ -318,8 +349,7 @@ public final class Vec2 extends RubyObject {
318
349
 
319
350
  public IRubyObject op_mul(ThreadContext context, IRubyObject other) {
320
351
  Ruby runtime = context.runtime;
321
- double scalar = other instanceof RubyFloat
322
- ? ((RubyFloat) other).getValue() : ((RubyFixnum) other).getDoubleValue();
352
+ double scalar = jscalar(other);
323
353
  return Vec2.rbNew(context, this.getMetaClass(),
324
354
  new IRubyObject[]{runtime.newFloat(jx * scalar),
325
355
  runtime.newFloat(jy * scalar)});
@@ -335,8 +365,7 @@ public final class Vec2 extends RubyObject {
335
365
 
336
366
  public IRubyObject op_div(ThreadContext context, IRubyObject other) {
337
367
  Ruby runtime = context.runtime;
338
- double scalar = other instanceof RubyFloat
339
- ? ((RubyFloat) other).getValue() : ((RubyFixnum) other).getDoubleValue();
368
+ double scalar = jscalar(other);
340
369
  if (Math.abs(scalar) < Vec2.EPSILON) {
341
370
  return this;
342
371
  }
@@ -401,7 +430,7 @@ public final class Vec2 extends RubyObject {
401
430
  public IRubyObject set_mag(ThreadContext context, IRubyObject scalar, Block block) {
402
431
  double new_mag = scalar.toJava(Double.class);
403
432
  if (block.isGiven() && !block.yield(context, scalar).toJava(Boolean.class)) {
404
- return this;
433
+ return this;
405
434
  }
406
435
  double current = 0;
407
436
  if (Math.abs(jx) > EPSILON && Math.abs(jy) > EPSILON) {
@@ -487,8 +516,7 @@ public final class Vec2 extends RubyObject {
487
516
  @JRubyMethod(name = "from_angle", meta = true)
488
517
  public static IRubyObject from_angle(ThreadContext context, IRubyObject klazz, IRubyObject scalar) {
489
518
  Ruby runtime = context.runtime;
490
- double angle = scalar instanceof RubyFloat
491
- ? ((RubyFloat) scalar).getValue() : ((RubyFixnum) scalar).getDoubleValue();
519
+ double angle = jvalue(scalar);
492
520
  return Vec2.rbNew(context, klazz, new IRubyObject[]{
493
521
  runtime.newFloat(Math.cos(angle)),
494
522
  runtime.newFloat(Math.sin(angle))});
@@ -518,8 +546,7 @@ public final class Vec2 extends RubyObject {
518
546
  */
519
547
  @JRubyMethod(name = "rotate!")
520
548
  public IRubyObject rotate_bang(ThreadContext context, IRubyObject scalar) {
521
- double theta = scalar instanceof RubyFloat
522
- ? ((RubyFloat) scalar).getValue() : ((RubyFixnum) scalar).getDoubleValue();
549
+ double theta = jvalue(scalar);
523
550
  double x = jx * Math.cos(theta) - jy * Math.sin(theta);
524
551
  double y = jx * Math.sin(theta) + jy * Math.cos(theta);
525
552
  jx = x;
@@ -536,8 +563,7 @@ public final class Vec2 extends RubyObject {
536
563
  @JRubyMethod(name = "rotate")
537
564
  public IRubyObject rotate(ThreadContext context, IRubyObject scalar) {
538
565
  Ruby runtime = context.runtime;
539
- double theta = scalar instanceof RubyFloat
540
- ? ((RubyFloat) scalar).getValue() : ((RubyFixnum) scalar).getDoubleValue();
566
+ double theta = jvalue(scalar);
541
567
  IRubyObject[] ary = new IRubyObject[]{
542
568
  runtime.newFloat(jx * Math.cos(theta) - jy * Math.sin(theta)),
543
569
  runtime.newFloat(jx * Math.sin(theta) + jy * Math.cos(theta))};
@@ -557,8 +583,7 @@ public final class Vec2 extends RubyObject {
557
583
  throw runtime.newSyntaxError("Check syntax");
558
584
  }
559
585
  Vec2 vec = (Vec2) args[0].toJava(Vec2.class);
560
- double scalar = args[1] instanceof RubyFloat
561
- ? ((RubyFloat) args[1]).getValue() : ((RubyFixnum) args[1]).getDoubleValue();
586
+ double scalar = jvalue(args[1]);
562
587
  assert scalar >= 0 && scalar < 1.0 :
563
588
  "Lerp value " + scalar + " out of range 0..1.0";
564
589
  return Vec2.rbNew(context, this.getMetaClass(), new IRubyObject[]{
@@ -579,8 +604,7 @@ public final class Vec2 extends RubyObject {
579
604
  throw runtime.newSyntaxError("Check syntax");
580
605
  }
581
606
  Vec2 vec = (Vec2) args[0].toJava(Vec2.class);
582
- double scalar = args[1] instanceof RubyFloat
583
- ? ((RubyFloat) args[1]).getValue() : ((RubyFixnum) args[1]).getDoubleValue();
607
+ double scalar = jvalue(args[1]);
584
608
  assert scalar >= 0 && scalar < 1.0 :
585
609
  "Lerp value " + scalar + " out of range 0..1.0";
586
610
  jx += (vec.jx - jx) * scalar;
@@ -599,8 +623,8 @@ public final class Vec2 extends RubyObject {
599
623
  public IRubyObject angleBetween(ThreadContext context, IRubyObject other) {
600
624
  Vec2 vec = null;
601
625
  Ruby runtime = context.runtime;
602
- if (other instanceof Vec2) {
603
- vec = (Vec2) other.toJava(Vec2.class);
626
+ if (other instanceof Vec2 vector) {
627
+ vec = vector.toJava(Vec2.class);
604
628
  } else {
605
629
  throw runtime.newTypeError("argument should be Vec2D");
606
630
  }
@@ -618,8 +642,8 @@ public final class Vec2 extends RubyObject {
618
642
  public IRubyObject fastAngleBetween(ThreadContext context, IRubyObject other) {
619
643
  Vec2 vec = null;
620
644
  Ruby runtime = context.runtime;
621
- if (other instanceof Vec2) {
622
- vec = (Vec2) other.toJava(Vec2.class);
645
+ if (other instanceof Vec2 vector) {
646
+ vec = vector.toJava(Vec2.class);
623
647
  } else {
624
648
  throw runtime.newTypeError("argument should be Vec2D");
625
649
  }
@@ -740,8 +764,8 @@ public final class Vec2 extends RubyObject {
740
764
  if (obj == this) {
741
765
  return true;
742
766
  }
743
- if (obj instanceof Vec2) {
744
- final Vec2 other = (Vec2) obj;
767
+ if (obj instanceof Vec2 vec2) {
768
+ final Vec2 other = vec2;
745
769
  return Double.compare(jx, (Double) other.jx) == 0
746
770
  && Double.compare(jy, (Double) other.jy) == 0;
747
771
  }
@@ -760,8 +784,8 @@ public final class Vec2 extends RubyObject {
760
784
  if (other == this) {
761
785
  return runtime.newBoolean(true);
762
786
  }
763
- if (other instanceof Vec2) {
764
- Vec2 v = (Vec2) other.toJava(Vec2.class);
787
+ if (other instanceof Vec2 vector) {
788
+ Vec2 v = vector.toJava(Vec2.class);
765
789
  if (Double.compare(jx, (Double) v.jx) == 0
766
790
  && Double.compare(jy, (Double) v.jy) == 0) {
767
791
  return runtime.newBoolean(true);
@@ -784,12 +808,12 @@ public final class Vec2 extends RubyObject {
784
808
  if (other == this) {
785
809
  return runtime.newBoolean(true);
786
810
  }
787
- if (other instanceof Vec2) {
788
- Vec2 v = (Vec2) other.toJava(Vec2.class);
811
+ if (other instanceof Vec2 vector) {
812
+ Vec2 v = vector.toJava(Vec2.class);
789
813
  double diff = jx - v.jx;
790
814
  if ((diff < 0 ? -diff : diff) > Vec2.EPSILON) {
791
815
  return runtime.newBoolean(false);
792
- }
816
+ }
793
817
  diff = jy - v.jy;
794
818
  return runtime.newBoolean((diff < 0 ? -diff : diff) < Vec2.EPSILON);
795
819
  }
@@ -1,7 +1,7 @@
1
1
  package monkstone.vecmath.vec3;
2
2
 
3
3
  /*
4
- * Copyright (c) 2015-20 Martin Prout
4
+ * Copyright (c) 2015-22 Martin Prout
5
5
  *
6
6
  * This library is free software; you can redistribute it and/or
7
7
  * modify it under the terms of the GNU Lesser General Public
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2015-20 Martin Prout
2
+ * Copyright (c) 2015-22 Martin Prout
3
3
  *
4
4
  * This library is free software; you can redistribute it and/or
5
5
  * modify it under the terms of the GNU Lesser General Public
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2015-20 Martin Prout
2
+ * Copyright (c) 2015-22 Martin Prout
3
3
  *
4
4
  * This library is free software; you can redistribute it and/or
5
5
  * modify it under the terms of the GNU Lesser General Public
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2015-20 Martin Prout
2
+ * Copyright (c) 2015-22 Martin Prout
3
3
  *
4
4
  * This library is free software; you can redistribute it and/or
5
5
  * modify it under the terms of the GNU Lesser General Public
@@ -31,7 +31,6 @@ import java.awt.image.*;
31
31
  import java.util.Arrays;
32
32
  import java.util.HashMap;
33
33
  import java.util.Map;
34
-
35
34
  import processing.core.*;
36
35
 
37
36
 
@@ -35,7 +35,6 @@ import java.io.BufferedOutputStream;
35
35
  import java.io.File;
36
36
  import java.io.IOException;
37
37
  import java.util.Iterator;
38
-
39
38
  import javax.imageio.IIOImage;
40
39
  import javax.imageio.ImageIO;
41
40
  import javax.imageio.ImageTypeSpecifier;
@@ -44,7 +43,6 @@ import javax.imageio.ImageWriter;
44
43
  import javax.imageio.metadata.IIOInvalidTreeException;
45
44
  import javax.imageio.metadata.IIOMetadata;
46
45
  import javax.imageio.metadata.IIOMetadataNode;
47
-
48
46
  import processing.core.PApplet;
49
47
  import processing.core.PImage;
50
48
 
@@ -108,8 +106,8 @@ public class PImageAWT extends PImage {
108
106
 
109
107
  /**
110
108
  * Use the getNative() method instead, which allows library interfaces to be
111
- * written in a cross-platform fashion for desktop, Android, and others.
112
- * This is still included for PGraphics objects, which may need the image.
109
+ * written in a cross-platform fashion for desktop, Android, and others.This is still included for PGraphics objects, which may need the image.
110
+ * @return
113
111
  */
114
112
  public Image getImage() { // ignore
115
113
  return (Image) getNative();
@@ -3,7 +3,7 @@
3
3
  /*
4
4
  Part of the Processing project - http://processing.org
5
5
 
6
- Copyright (c) 2012-20 The Processing Foundation
6
+ Copyright (c) 2012-22 The Processing Foundation
7
7
  Copyright (c) 2004-12 Ben Fry and Casey Reas
8
8
  Copyright (c) 2001-04 Massachusetts Institute of Technology
9
9
 
@@ -2118,7 +2118,7 @@ public class PApplet implements PConstants {
2118
2118
  /**
2119
2119
  * Create default renderer, likely to be resized, but needed for surface
2120
2120
  * init.
2121
- * @return
2121
+ * @return
2122
2122
  */
2123
2123
  protected PGraphics createPrimaryGraphics() {
2124
2124
  return makeGraphics(sketchWidth(), sketchHeight(),
@@ -2146,7 +2146,7 @@ public class PApplet implements PConstants {
2146
2146
  * to the parent PApplet is included, which makes save() work without
2147
2147
  * needing an absolute path.
2148
2148
  *
2149
- * @return
2149
+ * @return
2150
2150
  * @webref image
2151
2151
  * @param w width in pixels
2152
2152
  * @param h height in pixels
@@ -3224,7 +3224,7 @@ public class PApplet implements PConstants {
3224
3224
  *
3225
3225
  * ( end auto-generated )
3226
3226
  *
3227
- * @return
3227
+ * @return
3228
3228
  * @webref input:files
3229
3229
  * @param args arguments to the launcher, eg. a filename.
3230
3230
  * @usage Application