propane 3.4.2-java → 3.5.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/wrapper/MavenWrapperDownloader.java +1 -1
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +5 -1
  5. data/Gemfile +2 -0
  6. data/README.md +15 -3
  7. data/Rakefile +9 -10
  8. data/bin/propane +3 -1
  9. data/lib/propane.rb +2 -1
  10. data/lib/propane/app.rb +2 -1
  11. data/lib/propane/creators/sketch_class.rb +7 -1
  12. data/lib/propane/creators/sketch_factory.rb +4 -2
  13. data/lib/propane/creators/sketch_writer.rb +1 -0
  14. data/lib/propane/helper_methods.rb +22 -22
  15. data/lib/propane/helpers/numeric.rb +2 -0
  16. data/lib/propane/helpers/version_error.rb +1 -0
  17. data/lib/propane/library.rb +5 -1
  18. data/lib/propane/library_loader.rb +2 -0
  19. data/lib/propane/native_folder.rb +10 -9
  20. data/lib/propane/native_loader.rb +3 -0
  21. data/lib/propane/runner.rb +11 -5
  22. data/lib/propane/version.rb +2 -1
  23. data/library/boids/boids.rb +21 -11
  24. data/library/color_group/color_group.rb +2 -0
  25. data/library/control_panel/control_panel.rb +8 -5
  26. data/library/dxf/dxf.rb +2 -0
  27. data/library/file_chooser/chooser.rb +10 -9
  28. data/library/file_chooser/file_chooser.rb +10 -9
  29. data/library/library_proxy/library_proxy.rb +2 -0
  30. data/library/net/net.rb +2 -0
  31. data/library/simplex_noise/simplex_noise.rb +2 -0
  32. data/library/slider/slider.rb +23 -22
  33. data/library/vector_utils/vector_utils.rb +4 -0
  34. data/library/video_event/video_event.rb +2 -0
  35. data/pom.rb +46 -45
  36. data/pom.xml +4 -4
  37. data/propane.gemspec +8 -7
  38. data/src/main/java/monkstone/ColorUtil.java +1 -3
  39. data/src/main/java/monkstone/MathToolModule.java +1 -1
  40. data/src/main/java/monkstone/PropaneLibrary.java +2 -2
  41. data/src/main/java/monkstone/fastmath/Deglut.java +1 -1
  42. data/src/main/java/monkstone/filechooser/Chooser.java +1 -1
  43. data/src/main/java/monkstone/noise/SimplexNoise.java +2 -2
  44. data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
  45. data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
  46. data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +1 -1
  47. data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
  48. data/src/main/java/monkstone/slider/SliderBar.java +1 -1
  49. data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
  50. data/src/main/java/monkstone/slider/WheelHandler.java +1 -1
  51. data/src/main/java/monkstone/vecmath/package-info.java +1 -1
  52. data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
  53. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -2
  54. data/src/main/java/monkstone/videoevent/CaptureEvent.java +1 -1
  55. data/src/main/java/monkstone/videoevent/MovieEvent.java +1 -1
  56. data/src/main/java/monkstone/videoevent/package-info.java +1 -1
  57. data/src/main/java/processing/awt/PGraphicsJava2D.java +788 -283
  58. data/src/main/java/processing/awt/PImageAWT.java +260 -0
  59. data/src/main/java/processing/awt/PShapeJava2D.java +56 -53
  60. data/src/main/java/processing/awt/PSurfaceAWT.java +309 -211
  61. data/src/main/java/processing/awt/ShimAWT.java +580 -0
  62. data/src/main/java/processing/core/PApplet.java +2877 -2098
  63. data/src/main/java/processing/core/PConstants.java +477 -447
  64. data/src/main/java/processing/core/PFont.java +930 -884
  65. data/src/main/java/processing/core/PGraphics.java +337 -309
  66. data/src/main/java/processing/core/PImage.java +1689 -1689
  67. data/src/main/java/processing/core/PMatrix.java +172 -159
  68. data/src/main/java/processing/core/PMatrix2D.java +456 -410
  69. data/src/main/java/processing/core/PMatrix3D.java +755 -735
  70. data/src/main/java/processing/core/PShape.java +2910 -2656
  71. data/src/main/java/processing/core/PShapeOBJ.java +97 -94
  72. data/src/main/java/processing/core/PShapeSVG.java +1656 -1462
  73. data/src/main/java/processing/core/PStyle.java +40 -37
  74. data/src/main/java/processing/core/PSurface.java +134 -97
  75. data/src/main/java/processing/core/PSurfaceNone.java +292 -218
  76. data/src/main/java/processing/core/PVector.java +991 -966
  77. data/src/main/java/processing/core/ThinkDifferent.java +12 -8
  78. data/src/main/java/processing/data/DoubleDict.java +756 -710
  79. data/src/main/java/processing/data/DoubleList.java +749 -696
  80. data/src/main/java/processing/data/FloatDict.java +748 -702
  81. data/src/main/java/processing/data/FloatList.java +751 -697
  82. data/src/main/java/processing/data/IntDict.java +720 -673
  83. data/src/main/java/processing/data/IntList.java +699 -633
  84. data/src/main/java/processing/data/JSONArray.java +931 -873
  85. data/src/main/java/processing/data/JSONObject.java +1262 -1165
  86. data/src/main/java/processing/data/JSONTokener.java +351 -341
  87. data/src/main/java/processing/data/LongDict.java +710 -663
  88. data/src/main/java/processing/data/LongList.java +701 -635
  89. data/src/main/java/processing/data/Sort.java +37 -41
  90. data/src/main/java/processing/data/StringDict.java +525 -486
  91. data/src/main/java/processing/data/StringList.java +626 -580
  92. data/src/main/java/processing/data/Table.java +3693 -3513
  93. data/src/main/java/processing/data/TableRow.java +182 -183
  94. data/src/main/java/processing/data/XML.java +954 -880
  95. data/src/main/java/processing/event/Event.java +87 -67
  96. data/src/main/java/processing/event/KeyEvent.java +48 -41
  97. data/src/main/java/processing/event/MouseEvent.java +87 -113
  98. data/src/main/java/processing/event/TouchEvent.java +10 -6
  99. data/src/main/java/processing/javafx/PSurfaceFX.java +26 -0
  100. data/src/main/java/processing/net/Client.java +20 -20
  101. data/src/main/java/processing/net/Server.java +9 -9
  102. data/src/main/java/processing/opengl/FontTexture.java +286 -266
  103. data/src/main/java/processing/opengl/FrameBuffer.java +390 -376
  104. data/src/main/java/processing/opengl/LinePath.java +130 -91
  105. data/src/main/java/processing/opengl/LineStroker.java +593 -582
  106. data/src/main/java/processing/opengl/PGL.java +645 -579
  107. data/src/main/java/processing/opengl/PGraphics2D.java +408 -315
  108. data/src/main/java/processing/opengl/PGraphics3D.java +107 -72
  109. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +12287 -12030
  110. data/src/main/java/processing/opengl/PJOGL.java +1743 -1672
  111. data/src/main/java/processing/opengl/PShader.java +345 -416
  112. data/src/main/java/processing/opengl/PShapeOpenGL.java +4601 -4543
  113. data/src/main/java/processing/opengl/PSurfaceJOGL.java +1113 -1029
  114. data/src/main/java/processing/opengl/Texture.java +1489 -1401
  115. data/src/main/java/processing/opengl/VertexBuffer.java +57 -55
  116. data/test/create_test.rb +21 -20
  117. data/test/deglut_spec_test.rb +4 -2
  118. data/test/helper_methods_test.rb +49 -20
  119. data/test/math_tool_test.rb +39 -32
  120. data/test/native_folder.rb +47 -0
  121. data/test/respond_to_test.rb +3 -2
  122. data/test/sketches/key_event.rb +2 -2
  123. data/test/sketches/library/my_library/my_library.rb +3 -0
  124. data/test/test_helper.rb +2 -0
  125. data/test/vecmath_spec_test.rb +35 -22
  126. data/vendors/Rakefile +28 -22
  127. metadata +13 -13
  128. data/src/main/java/processing/opengl/shaders/LightVert-brcm.glsl +0 -154
  129. data/src/main/java/processing/opengl/shaders/LightVert-vc4.glsl +0 -154
  130. data/src/main/java/processing/opengl/shaders/TexLightVert-brcm.glsl +0 -160
  131. data/src/main/java/processing/opengl/shaders/TexLightVert-vc4.glsl +0 -160
@@ -30,9 +30,11 @@ import java.awt.Color;
30
30
 
31
31
  // Used for the 'image' object that's been here forever
32
32
  import java.awt.Font;
33
+ import java.awt.FontFormatException;
33
34
  import java.awt.Image;
34
35
 
35
36
  import java.io.File;
37
+ import java.io.IOException;
36
38
  import java.io.InputStream;
37
39
  import java.util.Map;
38
40
  import java.util.HashMap;
@@ -61,7 +63,7 @@ import processing.opengl.PShader;
61
63
  * methods for this class are extensive. For a complete list, visit the <a
62
64
  * href="http://processing.googlecode.com/svn/trunk/processing/build/javadoc/core/">developer's reference.</a>
63
65
  *
64
- * ( end auto-generated )
66
+ *
65
67
  *
66
68
  * <h3>Advanced</h3>
67
69
  * Main graphics and rendering context, as well as the base API implementation.
@@ -107,7 +109,7 @@ import processing.opengl.PShader;
107
109
  * instance, imageImpl() handles drawing an image whose x/y/w/h and u/v coords
108
110
  * have been specified, and screen placement (independent of imageMode) has
109
111
  * been determined. There's no point in all renderers implementing the
110
- * <tt>if (imageMode == BLAH)</tt> placement/sizing logic, so that's handled
112
+ * <code>if (imageMode == BLAH)</code> placement/sizing logic, so that's handled
111
113
  * by PGraphics, which then calls imageImpl() once all that is figured out.
112
114
  *
113
115
  * <h2>His brother PImage</h2>
@@ -134,7 +136,7 @@ import processing.opengl.PShader;
134
136
  *
135
137
  * <h2>What's in the PGraphics documentation, what ain't</h2>
136
138
  * Some things are noted here, some things are not. For public API, always
137
- * refer to the <a href="http://processing.org/reference">reference</A>
139
+ * refer to the <a href="http://processing.org/reference">reference</a>
138
140
  * on Processing.org for proper explanations. <b>No attempt has been made to
139
141
  * keep the javadoc up to date or complete.</b> It's an enormous task for
140
142
  * which we simply do not have the time. That is, it's not something that
@@ -570,7 +572,7 @@ public class PGraphics extends PImage implements PConstants {
570
572
 
571
573
  // vertices
572
574
  public static final int DEFAULT_VERTICES = 512;
573
- protected float vertices[][] =
575
+ protected float[][] vertices =
574
576
  new float[DEFAULT_VERTICES][VERTEX_FIELD_COUNT];
575
577
  protected int vertexCount; // total number of vertices
576
578
 
@@ -605,7 +607,7 @@ public class PGraphics extends PImage implements PConstants {
605
607
 
606
608
  // spline vertices
607
609
 
608
- protected float curveVertices[][];
610
+ protected float[][] curveVertices;
609
611
  protected int curveVertexCount;
610
612
 
611
613
  // ........................................................
@@ -618,8 +620,8 @@ public class PGraphics extends PImage implements PConstants {
618
620
  // [toxi 031031]
619
621
  // changed table's precision to 0.5 degree steps
620
622
  // introduced new vars for more flexible code
621
- static final protected float sinLUT[];
622
- static final protected float cosLUT[];
623
+ static final protected float[] sinLUT;
624
+ static final protected float[] cosLUT;
623
625
  static final protected float SINCOS_PRECISION = 0.5f;
624
626
  static final protected int SINCOS_LENGTH = (int) (360f / SINCOS_PRECISION);
625
627
  static {
@@ -702,7 +704,9 @@ public class PGraphics extends PImage implements PConstants {
702
704
 
703
705
  // [toxi031031] new & faster sphere code w/ support flexible resolutions
704
706
  // will be set by sphereDetail() or 1st call to sphere()
705
- protected float sphereX[], sphereY[], sphereZ[];
707
+ protected float[] sphereX;
708
+ protected float[] sphereY;
709
+ protected float[] sphereZ;
706
710
 
707
711
  /// Number of U steps (aka "theta") around longitudinally spanning 2*pi
708
712
  public int sphereDetailU = 0;
@@ -891,7 +895,7 @@ public class PGraphics extends PImage implements PConstants {
891
895
  * Sets the default properties for a PGraphics object. It should be called
892
896
  * before anything is drawn into the object.
893
897
  *
894
- * ( end auto-generated )
898
+ *
895
899
  * <h3>Advanced</h3>
896
900
  * When creating your own PGraphics, you should call this before
897
901
  * drawing anything.
@@ -908,7 +912,7 @@ public class PGraphics extends PImage implements PConstants {
908
912
  *
909
913
  * Finalizes the rendering of a PGraphics object so that it can be shown on screen.
910
914
  *
911
- * ( end auto-generated )
915
+ *
912
916
  * <h3>Advanced</h3>
913
917
  *
914
918
  * When creating your own PGraphics, you should call this when
@@ -1152,7 +1156,7 @@ public class PGraphics extends PImage implements PConstants {
1152
1156
  * prevents the double negatives, and also reinforces which hints can be
1153
1157
  * enabled or disabled.
1154
1158
  *
1155
- * ( end auto-generated )
1159
+ *
1156
1160
  *
1157
1161
  * @webref rendering
1158
1162
  * @param which name of the hint to be enabled or disabled
@@ -1220,7 +1224,7 @@ public class PGraphics extends PImage implements PConstants {
1220
1224
  * <b>strokeJoin()</b> cannot be changed while inside a
1221
1225
  * <b>beginShape()</b>/<b>endShape()</b> block with any renderer.
1222
1226
  *
1223
- * ( end auto-generated )
1227
+ *
1224
1228
  * @webref shape:vertex
1225
1229
  * @param kind Either POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, or QUAD_STRIP
1226
1230
  * @see PShape
@@ -1253,7 +1257,7 @@ public class PGraphics extends PImage implements PConstants {
1253
1257
  * imperfect, this is a better option when you want more control. This
1254
1258
  * function is identical to glNormal3f() in OpenGL.
1255
1259
  *
1256
- * ( end auto-generated )
1260
+ *
1257
1261
  * @webref lights_camera:lights
1258
1262
  * @param nx x direction
1259
1263
  * @param ny y direction
@@ -1322,7 +1326,7 @@ public class PGraphics extends PImage implements PConstants {
1322
1326
  * the points (0,0) (0,100) (100,200) (0,200). The same mapping in
1323
1327
  * NORMAL_SPACE is (0,0) (0,1) (1,1) (0,1).
1324
1328
  *
1325
- * ( end auto-generated )
1329
+ *
1326
1330
  * @webref image:textures
1327
1331
  * @param mode either IMAGE or NORMAL
1328
1332
  * @see PGraphics#texture(PImage)
@@ -1362,7 +1366,7 @@ public class PGraphics extends PImage implements PConstants {
1362
1366
  * When textures are in use, the fill color is ignored. Instead, use tint()
1363
1367
  * to specify the color of the texture as it is applied to the shape.
1364
1368
  *
1365
- * ( end auto-generated )
1369
+ *
1366
1370
  * @webref image:textures
1367
1371
  * @param image reference to a PImage object
1368
1372
  * @see PGraphics#textureMode(int)
@@ -1388,7 +1392,7 @@ public class PGraphics extends PImage implements PConstants {
1388
1392
 
1389
1393
  protected void vertexCheck() {
1390
1394
  if (vertexCount == vertices.length) {
1391
- float temp[][] = new float[vertexCount << 1][VERTEX_FIELD_COUNT];
1395
+ float[][] temp = new float[vertexCount << 1][VERTEX_FIELD_COUNT];
1392
1396
  System.arraycopy(vertices, 0, temp, 0, vertexCount);
1393
1397
  vertices = temp;
1394
1398
  }
@@ -1480,7 +1484,7 @@ public class PGraphics extends PImage implements PConstants {
1480
1484
  // http://dev.processing.org/bugs/show_bug.cgi?id=444
1481
1485
  if (shape == POLYGON) {
1482
1486
  if (vertexCount > 0) {
1483
- float pvertex[] = vertices[vertexCount-1];
1487
+ float[] pvertex = vertices[vertexCount-1];
1484
1488
  if ((Math.abs(pvertex[X] - x) < EPSILON) &&
1485
1489
  (Math.abs(pvertex[Y] - y) < EPSILON) &&
1486
1490
  (Math.abs(pvertex[Z] - z) < EPSILON)) {
@@ -1617,7 +1621,7 @@ public class PGraphics extends PImage implements PConstants {
1617
1621
  * <b>v</b> are specified in relation to the image's size in pixels, but
1618
1622
  * this relation can be changed with <b>textureMode()</b>.
1619
1623
  *
1620
- * ( end auto-generated )
1624
+ *
1621
1625
  * @webref shape:vertex
1622
1626
  * @param x x-coordinate of the vertex
1623
1627
  * @param y y-coordinate of the vertex
@@ -1718,7 +1722,7 @@ public class PGraphics extends PImage implements PConstants {
1718
1722
  * as the value for the MODE parameter to close the shape (to connect the
1719
1723
  * beginning and the end).
1720
1724
  *
1721
- * ( end auto-generated )
1725
+ *
1722
1726
  * @webref shape:vertex
1723
1727
  * @param mode use CLOSE to close the shape
1724
1728
  * @see PShape
@@ -1886,7 +1890,7 @@ public class PGraphics extends PImage implements PConstants {
1886
1890
  *
1887
1891
  * This is a new reference entry for Processing 2.0. It will be updated shortly.
1888
1892
  *
1889
- * ( end auto-generated )
1893
+ *
1890
1894
  *
1891
1895
  * @webref rendering:shaders
1892
1896
  * @param fragFilename name of fragment shader file
@@ -1911,7 +1915,7 @@ public class PGraphics extends PImage implements PConstants {
1911
1915
  *
1912
1916
  * This is a new reference entry for Processing 2.0. It will be updated shortly.
1913
1917
  *
1914
- * ( end auto-generated )
1918
+ *
1915
1919
  *
1916
1920
  * @webref rendering:shaders
1917
1921
  * @param shader name of shader file
@@ -1934,7 +1938,7 @@ public class PGraphics extends PImage implements PConstants {
1934
1938
  *
1935
1939
  * This is a new reference entry for Processing 2.0. It will be updated shortly.
1936
1940
  *
1937
- * ( end auto-generated )
1941
+ *
1938
1942
  *
1939
1943
  * @webref rendering:shaders
1940
1944
  */
@@ -1971,7 +1975,7 @@ public class PGraphics extends PImage implements PConstants {
1971
1975
  * by the parameters. The boundaries are drawn based on the state
1972
1976
  * of the <b>imageMode()</b> fuction, either CORNER, CORNERS, or CENTER.
1973
1977
  *
1974
- * ( end auto-generated )
1978
+ *
1975
1979
  *
1976
1980
  * @webref rendering
1977
1981
  * @param a x-coordinate of the rectangle, by default
@@ -2022,7 +2026,7 @@ public class PGraphics extends PImage implements PConstants {
2022
2026
  *
2023
2027
  * Disables the clipping previously started by the <b>clip()</b> function.
2024
2028
  *
2025
- * ( end auto-generated )
2029
+ *
2026
2030
  *
2027
2031
  * @webref rendering
2028
2032
  */
@@ -2041,7 +2045,7 @@ public class PGraphics extends PImage implements PConstants {
2041
2045
  *
2042
2046
  * This is a new reference entry for Processing 2.0. It will be updated shortly.
2043
2047
  *
2044
- * ( end auto-generated )
2048
+ *
2045
2049
  *
2046
2050
  * @webref rendering
2047
2051
  * @param mode the blending mode to use
@@ -2123,7 +2127,7 @@ public class PGraphics extends PImage implements PConstants {
2123
2127
  * 3D version requires rendering with P3D (see the Environment reference
2124
2128
  * for more information).
2125
2129
  *
2126
- * ( end auto-generated )
2130
+ *
2127
2131
  * @webref shape:vertex
2128
2132
  * @param x2 the x-coordinate of the 1st control point
2129
2133
  * @param y2 the y-coordinate of the 1st control point
@@ -2256,7 +2260,7 @@ public class PGraphics extends PImage implements PConstants {
2256
2260
  * version requires rendering with P3D (see the Environment reference for
2257
2261
  * more information).
2258
2262
  *
2259
- * ( end auto-generated )
2263
+ *
2260
2264
  *
2261
2265
  * @webref shape:vertex
2262
2266
  * @param x the x-coordinate of the vertex
@@ -2407,7 +2411,7 @@ public class PGraphics extends PImage implements PConstants {
2407
2411
  * requires the P3D parameter in combination with <b>size()</b> as shown in
2408
2412
  * the above example.
2409
2413
  *
2410
- * ( end auto-generated )
2414
+ *
2411
2415
  *
2412
2416
  * @webref shape:2d_primitives
2413
2417
  * @param x x-coordinate of the point
@@ -2442,7 +2446,7 @@ public class PGraphics extends PImage implements PConstants {
2442
2446
  * Drawing this shape in 3D with the <b>z</b> parameter requires the P3D
2443
2447
  * parameter in combination with <b>size()</b> as shown in the above example.
2444
2448
  *
2445
- * ( end auto-generated )
2449
+ *
2446
2450
  * @webref shape:2d_primitives
2447
2451
  * @param x1 x-coordinate of the first point
2448
2452
  * @param y1 y-coordinate of the first point
@@ -2479,7 +2483,7 @@ public class PGraphics extends PImage implements PConstants {
2479
2483
  * arguments specify the first point, the middle two arguments specify the
2480
2484
  * second point, and the last two arguments specify the third point.
2481
2485
  *
2482
- * ( end auto-generated )
2486
+ *
2483
2487
  * @webref shape:2d_primitives
2484
2488
  * @param x1 x-coordinate of the first point
2485
2489
  * @param y1 y-coordinate of the first point
@@ -2508,7 +2512,7 @@ public class PGraphics extends PImage implements PConstants {
2508
2512
  * vertex and the subsequent pairs should proceed clockwise or
2509
2513
  * counter-clockwise around the defined shape.
2510
2514
  *
2511
- * ( end auto-generated )
2515
+ *
2512
2516
  * @webref shape:2d_primitives
2513
2517
  * @param x1 x-coordinate of the first corner
2514
2518
  * @param y1 y-coordinate of the first corner
@@ -2554,7 +2558,7 @@ public class PGraphics extends PImage implements PConstants {
2554
2558
  * sensitive language. Note: In version 125, the mode named CENTER_RADIUS
2555
2559
  * was shortened to RADIUS.
2556
2560
  *
2557
- * ( end auto-generated )
2561
+ *
2558
2562
  * @webref shape:attributes
2559
2563
  * @param mode either CORNER, CORNERS, CENTER, or RADIUS
2560
2564
  * @see PGraphics#rect(float, float, float, float)
@@ -2573,7 +2577,7 @@ public class PGraphics extends PImage implements PConstants {
2573
2577
  * fourth sets the height. These parameters may be changed with the
2574
2578
  * <b>rectMode()</b> function.
2575
2579
  *
2576
- * ( end auto-generated )
2580
+ *
2577
2581
  *
2578
2582
  * @webref shape:2d_primitives
2579
2583
  * @param a x-coordinate of the rectangle by default
@@ -2732,14 +2736,14 @@ public class PGraphics extends PImage implements PConstants {
2732
2736
  /**
2733
2737
  * ( begin auto-generated from square.xml )
2734
2738
  *
2735
- * Draws a square to the screen. A square is a four-sided shape with
2736
- * every angle at ninety degrees and each side is the same length.
2737
- * By default, the first two parameters set the location of the
2738
- * upper-left corner, the third sets the width and height. The way
2739
- * these parameters are interpreted, however, may be changed with the
2739
+ * Draws a square to the screen. A square is a four-sided shape with
2740
+ * every angle at ninety degrees and each side is the same length.
2741
+ * By default, the first two parameters set the location of the
2742
+ * upper-left corner, the third sets the width and height. The way
2743
+ * these parameters are interpreted, however, may be changed with the
2740
2744
  * <b>rectMode()</b> function.
2741
2745
  *
2742
- * ( end auto-generated )
2746
+ *
2743
2747
  *
2744
2748
  * @webref shape:2d_primitives
2745
2749
  * @param x x-coordinate of the rectangle by default
@@ -2773,7 +2777,7 @@ public class PGraphics extends PImage implements PConstants {
2773
2777
  * ellipse's bounding box. The parameter must be written in ALL CAPS
2774
2778
  * because Processing is a case-sensitive language.
2775
2779
  *
2776
- * ( end auto-generated )
2780
+ *
2777
2781
  * @webref shape:attributes
2778
2782
  * @param mode either CENTER, RADIUS, CORNER, or CORNERS
2779
2783
  * @see PApplet#ellipse(float, float, float, float)
@@ -2792,7 +2796,7 @@ public class PGraphics extends PImage implements PConstants {
2792
2796
  * the location, the third sets the width, and the fourth sets the height.
2793
2797
  * The origin may be changed with the <b>ellipseMode()</b> function.
2794
2798
  *
2795
- * ( end auto-generated )
2799
+ *
2796
2800
  * @webref shape:2d_primitives
2797
2801
  * @param a x-coordinate of the ellipse
2798
2802
  * @param b y-coordinate of the ellipse
@@ -2807,19 +2811,23 @@ public class PGraphics extends PImage implements PConstants {
2807
2811
  float w = c;
2808
2812
  float h = d;
2809
2813
 
2810
- if (ellipseMode == CORNERS) {
2811
- w = c - a;
2812
- h = d - b;
2813
-
2814
- } else if (ellipseMode == RADIUS) {
2815
- x = a - c;
2816
- y = b - d;
2817
- w = c * 2;
2818
- h = d * 2;
2819
-
2820
- } else if (ellipseMode == DIAMETER) {
2821
- x = a - c/2f;
2822
- y = b - d/2f;
2814
+ switch (ellipseMode) {
2815
+ case CORNERS:
2816
+ w = c - a;
2817
+ h = d - b;
2818
+ break;
2819
+ case RADIUS:
2820
+ x = a - c;
2821
+ y = b - d;
2822
+ w = c * 2;
2823
+ h = d * 2;
2824
+ break;
2825
+ case DIAMETER:
2826
+ x = a - c/2f;
2827
+ y = b - d/2f;
2828
+ break;
2829
+ default:
2830
+ break;
2823
2831
  }
2824
2832
 
2825
2833
  if (w < 0) { // undo negative width
@@ -2849,7 +2857,7 @@ public class PGraphics extends PImage implements PConstants {
2849
2857
  * with the <b>ellipseMode()</b> function. The <b>start</b> and <b>stop</b>
2850
2858
  * parameters specify the angles at which to draw the arc.
2851
2859
  *
2852
- * ( end auto-generated )
2860
+ *
2853
2861
  * @webref shape:2d_primitives
2854
2862
  * @param a x-coordinate of the arc's ellipse
2855
2863
  * @param b y-coordinate of the arc's ellipse
@@ -2877,19 +2885,23 @@ public class PGraphics extends PImage implements PConstants {
2877
2885
  float w = c;
2878
2886
  float h = d;
2879
2887
 
2880
- if (ellipseMode == CORNERS) {
2881
- w = c - a;
2882
- h = d - b;
2883
-
2884
- } else if (ellipseMode == RADIUS) {
2885
- x = a - c;
2886
- y = b - d;
2887
- w = c * 2;
2888
- h = d * 2;
2889
-
2890
- } else if (ellipseMode == CENTER) {
2891
- x = a - c/2f;
2892
- y = b - d/2f;
2888
+ switch (ellipseMode) {
2889
+ case CORNERS:
2890
+ w = c - a;
2891
+ h = d - b;
2892
+ break;
2893
+ case RADIUS:
2894
+ x = a - c;
2895
+ y = b - d;
2896
+ w = c * 2;
2897
+ h = d * 2;
2898
+ break;
2899
+ case CENTER:
2900
+ x = a - c/2f;
2901
+ y = b - d/2f;
2902
+ break;
2903
+ default:
2904
+ break;
2893
2905
  }
2894
2906
 
2895
2907
  // make sure the loop will exit before starting while
@@ -2931,12 +2943,12 @@ public class PGraphics extends PImage implements PConstants {
2931
2943
  /**
2932
2944
  * ( begin auto-generated from circle.xml )
2933
2945
  *
2934
- * Draws a circle to the screen. By default, the first two parameters
2935
- * set the location of the center, and the third sets the shape's width
2936
- * and height. The origin may be changed with the <b>ellipseMode()</b>
2946
+ * Draws a circle to the screen. By default, the first two parameters
2947
+ * set the location of the center, and the third sets the shape's width
2948
+ * and height. The origin may be changed with the <b>ellipseMode()</b>
2937
2949
  * function.
2938
2950
  *
2939
- * ( end auto-generated )
2951
+ *
2940
2952
  * @webref shape:2d_primitives
2941
2953
  * @param x x-coordinate of the ellipse
2942
2954
  * @param y y-coordinate of the ellipse
@@ -2959,7 +2971,7 @@ public class PGraphics extends PImage implements PConstants {
2959
2971
  * A box is an extruded rectangle. A box with equal dimension on all sides
2960
2972
  * is a cube.
2961
2973
  *
2962
- * ( end auto-generated )
2974
+ *
2963
2975
  *
2964
2976
  * @webref shape:3d_primitives
2965
2977
  * @param size dimension of the box in all dimensions (creates a cube)
@@ -3052,7 +3064,7 @@ public class PGraphics extends PImage implements PConstants {
3052
3064
  * and vertical resolution independently, use the version of the functions
3053
3065
  * with two parameters.
3054
3066
  *
3055
- * ( end auto-generated )
3067
+ *
3056
3068
  *
3057
3069
  * <h3>Advanced</h3>
3058
3070
  * Code for sphereDetail() submitted by toxi [031031].
@@ -3118,7 +3130,7 @@ public class PGraphics extends PImage implements PConstants {
3118
3130
  *
3119
3131
  * A sphere is a hollow ball made from tessellated triangles.
3120
3132
  *
3121
- * ( end auto-generated )
3133
+ *
3122
3134
  *
3123
3135
  * <h3>Advanced</h3>
3124
3136
  * <P>
@@ -3225,7 +3237,7 @@ public class PGraphics extends PImage implements PConstants {
3225
3237
  * second time with the y coordinates to get the location of a bezier curve
3226
3238
  * at t.
3227
3239
  *
3228
- * ( end auto-generated )
3240
+ *
3229
3241
  *
3230
3242
  * <h3>Advanced</h3>
3231
3243
  * For instance, to convert the following example:<PRE>
@@ -3269,7 +3281,7 @@ public class PGraphics extends PImage implements PConstants {
3269
3281
  * definition of <a href="http://en.wikipedia.org/wiki/Tangent"
3270
3282
  * target="new"><em>tangent</em> on Wikipedia</a>.
3271
3283
  *
3272
- * ( end auto-generated )
3284
+ *
3273
3285
  *
3274
3286
  * <h3>Advanced</h3>
3275
3287
  * Code submitted by Dave Bollinger (davol) for release 0136.
@@ -3312,7 +3324,7 @@ public class PGraphics extends PImage implements PConstants {
3312
3324
  * This function is only useful when using the P3D renderer as the default
3313
3325
  * P2D renderer does not use this information.
3314
3326
  *
3315
- * ( end auto-generated )
3327
+ *
3316
3328
  *
3317
3329
  * @webref shape:curves
3318
3330
  * @param detail resolution of the curves
@@ -3360,7 +3372,7 @@ public class PGraphics extends PImage implements PConstants {
3360
3372
  * Bezier. Using the 3D version requires rendering with P3D (see the
3361
3373
  * Environment reference for more information).
3362
3374
  *
3363
- * ( end auto-generated )
3375
+ *
3364
3376
  *
3365
3377
  * <h3>Advanced</h3>
3366
3378
  * Draw a cubic bezier curve. The first and last points are
@@ -3424,17 +3436,17 @@ public class PGraphics extends PImage implements PConstants {
3424
3436
  * ( begin auto-generated from curvePoint.xml )
3425
3437
  *
3426
3438
  * Evalutes the curve at point t for points a, b, c, d. The parameter t
3427
- * varies between 0 and 1, a and d are points on the curve, and b and c are
3428
- * the control points. This can be done once with the x coordinates and a
3439
+ * varies between 0 and 1, a and d are the control points, and b and c are
3440
+ * the points on the curve. This can be done once with the x coordinates and a
3429
3441
  * second time with the y coordinates to get the location of a curve at t.
3430
3442
  *
3431
- * ( end auto-generated )
3443
+ *
3432
3444
  *
3433
3445
  * @webref shape:curves
3434
- * @param a coordinate of first point on the curve
3435
- * @param b coordinate of second point on the curve
3436
- * @param c coordinate of third point on the curve
3437
- * @param d coordinate of fourth point on the curve
3446
+ * @param a coordinate of first control point
3447
+ * @param b coordinate of first point on the curve
3448
+ * @param c coordinate of second point on the curve
3449
+ * @param d coordinate of second control point
3438
3450
  * @param t value between 0 and 1
3439
3451
  * @see PGraphics#curve(float, float, float, float, float, float, float, float, float, float, float, float)
3440
3452
  * @see PGraphics#curveVertex(float, float)
@@ -3460,9 +3472,9 @@ public class PGraphics extends PImage implements PConstants {
3460
3472
  *
3461
3473
  * Calculates the tangent of a point on a curve. There's a good definition
3462
3474
  * of <em><a href="http://en.wikipedia.org/wiki/Tangent"
3463
- * target="new">tangent</em> on Wikipedia</a>.
3475
+ * target="new">tangent on Wikipedia</a></em>.
3464
3476
  *
3465
- * ( end auto-generated )
3477
+ *
3466
3478
  *
3467
3479
  * <h3>Advanced</h3>
3468
3480
  * Code thanks to Dave Bollinger (Bug #715)
@@ -3500,7 +3512,7 @@ public class PGraphics extends PImage implements PConstants {
3500
3512
  * This function is only useful when using the P3D renderer as the default
3501
3513
  * P2D renderer does not use this information.
3502
3514
  *
3503
- * ( end auto-generated )
3515
+ *
3504
3516
  *
3505
3517
  * @webref shape:curves
3506
3518
  * @param detail resolution of the curves
@@ -3525,7 +3537,7 @@ public class PGraphics extends PImage implements PConstants {
3525
3537
  * within the range -5.0 and 5.0 will deform the curves but will leave them
3526
3538
  * recognizable and as values increase in magnitude, they will continue to deform.
3527
3539
  *
3528
- * ( end auto-generated )
3540
+ *
3529
3541
  *
3530
3542
  * @webref shape:curves
3531
3543
  * @param tightness amount of deformation from the original vertices
@@ -3604,7 +3616,7 @@ public class PGraphics extends PImage implements PConstants {
3604
3616
  * implementation of Catmull-Rom splines. Using the 3D version requires
3605
3617
  * rendering with P3D (see the Environment reference for more information).
3606
3618
  *
3607
- * ( end auto-generated )
3619
+ *
3608
3620
  *
3609
3621
  * <h3>Advanced</h3>
3610
3622
  * As of revision 0070, this function no longer doubles the first
@@ -3751,7 +3763,7 @@ public class PGraphics extends PImage implements PConstants {
3751
3763
  * The parameter to <b>imageMode()</b> must be written in ALL CAPS because
3752
3764
  * Processing is a case-sensitive language.
3753
3765
  *
3754
- * ( end auto-generated )
3766
+ *
3755
3767
  *
3756
3768
  * @webref image:loading_displaying
3757
3769
  * @param mode either CORNER, CORNERS, or CENTER
@@ -3791,7 +3803,7 @@ public class PGraphics extends PImage implements PConstants {
3791
3803
  * The color of an image may be modified with the <b>tint()</b> function.
3792
3804
  * This function will maintain transparency for GIF and PNG images.
3793
3805
  *
3794
- * ( end auto-generated )
3806
+ *
3795
3807
  *
3796
3808
  * <h3>Advanced</h3>
3797
3809
  * Starting with release 0124, when using the default (JAVA2D) renderer,
@@ -3850,40 +3862,37 @@ public class PGraphics extends PImage implements PConstants {
3850
3862
  // loadImageAsync() sets width and height to -1 when loading fails.
3851
3863
  if (img.width == -1 || img.height == -1) return;
3852
3864
 
3853
- if (imageMode == CORNER) {
3854
- if (c < 0) { // reset a negative width
3855
- a += c; c = -c;
3856
- }
3857
- if (d < 0) { // reset a negative height
3858
- b += d; d = -d;
3859
- }
3860
-
3861
- imageImpl(img,
3862
- a, b, a + c, b + d,
3863
- u1, v1, u2, v2);
3864
-
3865
- } else if (imageMode == CORNERS) {
3866
- if (c < a) { // reverse because x2 < x1
3867
- float temp = a; a = c; c = temp;
3868
- }
3869
- if (d < b) { // reverse because y2 < y1
3870
- float temp = b; b = d; d = temp;
3871
- }
3872
-
3873
- imageImpl(img,
3874
- a, b, c, d,
3875
- u1, v1, u2, v2);
3876
-
3877
- } else if (imageMode == CENTER) {
3878
- // c and d are width/height
3879
- if (c < 0) c = -c;
3880
- if (d < 0) d = -d;
3881
- float x1 = a - c/2;
3882
- float y1 = b - d/2;
3883
-
3884
- imageImpl(img,
3885
- x1, y1, x1 + c, y1 + d,
3886
- u1, v1, u2, v2);
3865
+ switch (imageMode) {
3866
+ case CORNER:
3867
+ if (c < 0) { // reset a negative width
3868
+ a += c; c = -c;
3869
+ } if (d < 0) { // reset a negative height
3870
+ b += d; d = -d;
3871
+ } imageImpl(img,
3872
+ a, b, a + c, b + d,
3873
+ u1, v1, u2, v2);
3874
+ break;
3875
+ case CORNERS:
3876
+ if (c < a) { // reverse because x2 < x1
3877
+ float temp = a; a = c; c = temp;
3878
+ } if (d < b) { // reverse because y2 < y1
3879
+ float temp = b; b = d; d = temp;
3880
+ } imageImpl(img,
3881
+ a, b, c, d,
3882
+ u1, v1, u2, v2);
3883
+ break;
3884
+ case CENTER:
3885
+ // c and d are width/height
3886
+ if (c < 0) c = -c;
3887
+ if (d < 0) d = -d;
3888
+ float x1 = a - c/2;
3889
+ float y1 = b - d/2;
3890
+ imageImpl(img,
3891
+ x1, y1, x1 + c, y1 + d,
3892
+ u1, v1, u2, v2);
3893
+ break;
3894
+ default:
3895
+ break;
3887
3896
  }
3888
3897
  }
3889
3898
 
@@ -3969,7 +3978,7 @@ public class PGraphics extends PImage implements PConstants {
3969
3978
  * and height. The parameter must be written in "ALL CAPS" because
3970
3979
  * Processing is a case sensitive language.
3971
3980
  *
3972
- * ( end auto-generated )
3981
+ *
3973
3982
  *
3974
3983
  * @webref shape:loading_displaying
3975
3984
  * @param mode either CORNER, CORNERS, CENTER
@@ -4016,11 +4025,11 @@ public class PGraphics extends PImage implements PConstants {
4016
4025
  * to <b>shapeMode(CORNERS)</b>, for example, will change the width and
4017
4026
  * height parameters to define the x and y values of the opposite corner of
4018
4027
  * the shape.
4019
-
4028
+ *
4020
4029
  * Note complex shapes may draw awkwardly with P3D. This renderer does not
4021
4030
  * yet support shapes that have holes or complicated breaks.
4022
4031
  *
4023
- * ( end auto-generated )
4032
+ *
4024
4033
  *
4025
4034
  * @webref shape:loading_displaying
4026
4035
  * @param shape the shape to display
@@ -4069,22 +4078,26 @@ public class PGraphics extends PImage implements PConstants {
4069
4078
 
4070
4079
  pushMatrix();
4071
4080
 
4072
- if (shapeMode == CENTER) {
4073
- // x and y are center, c and d refer to a diameter
4074
- translate(a - c/2f, b - d/2f);
4075
- scale(c / shape.getWidth(), d / shape.getHeight());
4076
-
4077
- } else if (shapeMode == CORNER) {
4078
- translate(a, b);
4079
- scale(c / shape.getWidth(), d / shape.getHeight());
4080
-
4081
- } else if (shapeMode == CORNERS) {
4082
- // c and d are x2/y2, make them into width/height
4083
- c -= a;
4084
- d -= b;
4085
- // then same as above
4086
- translate(a, b);
4087
- scale(c / shape.getWidth(), d / shape.getHeight());
4081
+ switch (shapeMode) {
4082
+ case CENTER:
4083
+ // x and y are center, c and d refer to a diameter
4084
+ translate(a - c/2f, b - d/2f);
4085
+ scale(c / shape.getWidth(), d / shape.getHeight());
4086
+ break;
4087
+ case CORNER:
4088
+ translate(a, b);
4089
+ scale(c / shape.getWidth(), d / shape.getHeight());
4090
+ break;
4091
+ case CORNERS:
4092
+ // c and d are x2/y2, make them into width/height
4093
+ c -= a;
4094
+ d -= b;
4095
+ // then same as above
4096
+ translate(a, b);
4097
+ scale(c / shape.getWidth(), d / shape.getHeight());
4098
+ break;
4099
+ default:
4100
+ break;
4088
4101
  }
4089
4102
  shape.draw(this);
4090
4103
 
@@ -4137,9 +4150,8 @@ public class PGraphics extends PImage implements PConstants {
4137
4150
  }
4138
4151
  return createFont(baseFont, size, smooth, charset, stream != null);
4139
4152
 
4140
- } catch (Exception e) {
4153
+ } catch (FontFormatException | IOException e) {
4141
4154
  System.err.println("Problem with createFont(\"" + name + "\")");
4142
- e.printStackTrace();
4143
4155
  return null;
4144
4156
  }
4145
4157
  }
@@ -4186,7 +4198,7 @@ public class PGraphics extends PImage implements PConstants {
4186
4198
  * <b>textAscent()</b> or <b>textDescent()</b> so that the hack works even
4187
4199
  * if you change the size of the font.
4188
4200
  *
4189
- * ( end auto-generated )
4201
+ *
4190
4202
  *
4191
4203
  * @webref typography:attributes
4192
4204
  * @param alignX horizontal alignment, either LEFT, CENTER, or RIGHT
@@ -4212,7 +4224,7 @@ public class PGraphics extends PImage implements PConstants {
4212
4224
  * example, adding the <b>textAscent()</b> and <b>textDescent()</b> values
4213
4225
  * will give you the total height of the line.
4214
4226
  *
4215
- * ( end auto-generated )
4227
+ *
4216
4228
  *
4217
4229
  * @webref typography:metrics
4218
4230
  * @see PGraphics#textDescent()
@@ -4233,7 +4245,7 @@ public class PGraphics extends PImage implements PConstants {
4233
4245
  * baseline. For example, adding the <b>textAscent()</b> and
4234
4246
  * <b>textDescent()</b> values will give you the total height of the line.
4235
4247
  *
4236
- * ( end auto-generated )
4248
+ *
4237
4249
  *
4238
4250
  * @webref typography:metrics
4239
4251
  * @see PGraphics#textAscent()
@@ -4254,18 +4266,18 @@ public class PGraphics extends PImage implements PConstants {
4254
4266
  * used. This font will be used in all subsequent calls to the
4255
4267
  * <b>text()</b> function. If no <b>size</b> parameter is input, the font
4256
4268
  * will appear at its original size (the size it was created at with the
4257
- * "Create Font..." tool) until it is changed with <b>textSize()</b>. <br
4258
- * /> Because fonts are usually bitmaped, you should create fonts at
4269
+ * "Create Font..." tool) until it is changed with <b>textSize()</b>.
4270
+ * Because fonts are usually bitmaped, you should create fonts at
4259
4271
  * the sizes that will be used most commonly. Using <b>textFont()</b>
4260
- * without the size parameter will result in the cleanest-looking text. <br
4261
- * /> With the default (JAVA2D) and PDF renderers, it's also possible
4272
+ * without the size parameter will result in the cleanest-looking text.
4273
+ * With the default (JAVA2D) and PDF renderers, it's also possible
4262
4274
  * to enable the use of native fonts via the command
4263
4275
  * <b>hint(ENABLE_NATIVE_FONTS)</b>. This will produce vector text in
4264
4276
  * JAVA2D sketches and PDF output in cases where the vector data is
4265
4277
  * available: when the font is still installed, or the font is created via
4266
4278
  * the <b>createFont()</b> function (rather than the Create Font tool).
4267
4279
  *
4268
- * ( end auto-generated )
4280
+ *
4269
4281
  *
4270
4282
  * @webref typography:loading_displaying
4271
4283
  * @param which any variable of the type PFont
@@ -4352,7 +4364,7 @@ public class PGraphics extends PImage implements PConstants {
4352
4364
  * Sets the spacing between lines of text in units of pixels. This setting
4353
4365
  * will be used in all subsequent calls to the <b>text()</b> function.
4354
4366
  *
4355
- * ( end auto-generated )
4367
+ *
4356
4368
  *
4357
4369
  * @webref typography:attributes
4358
4370
  * @param leading the size in pixels for spacing between lines
@@ -4388,7 +4400,7 @@ public class PGraphics extends PImage implements PConstants {
4388
4400
  * not currently optimized for <b>P3D</b>, so if recording shape data, use
4389
4401
  * <b>textMode(MODEL)</b> until you're ready to capture the geometry with <b>beginRaw()</b>.
4390
4402
  *
4391
- * ( end auto-generated )
4403
+ *
4392
4404
  *
4393
4405
  * @webref typography:attributes
4394
4406
  * @param mode either MODEL or SHAPE
@@ -4434,7 +4446,7 @@ public class PGraphics extends PImage implements PConstants {
4434
4446
  * Sets the current font size. This size will be used in all subsequent
4435
4447
  * calls to the <b>text()</b> function. Font size is measured in units of pixels.
4436
4448
  *
4437
- * ( end auto-generated )
4449
+ *
4438
4450
  *
4439
4451
  * @webref typography:attributes
4440
4452
  * @param size the size of the letters in units of pixels
@@ -4498,7 +4510,7 @@ public class PGraphics extends PImage implements PConstants {
4498
4510
  *
4499
4511
  * Calculates and returns the width of any character or text string.
4500
4512
  *
4501
- * ( end auto-generated )
4513
+ *
4502
4514
  *
4503
4515
  * @webref typography:attributes
4504
4516
  * @param str the String of characters to measure
@@ -4551,7 +4563,7 @@ public class PGraphics extends PImage implements PConstants {
4551
4563
  * Unlike the previous version that was inside PFont, this will
4552
4564
  * return the size not of a 1 pixel font, but the actual current size.
4553
4565
  */
4554
- protected float textWidthImpl(char buffer[], int start, int stop) {
4566
+ protected float textWidthImpl(char[] buffer, int start, int stop) {
4555
4567
  float wide = 0;
4556
4568
  for (int i = start; i < stop; i++) {
4557
4569
  // could add kerning here, but it just ain't implemented
@@ -4575,13 +4587,13 @@ public class PGraphics extends PImage implements PConstants {
4575
4587
  * with the <b>fill()</b> function. The text displays in relation to the
4576
4588
  * <b>textAlign()</b> function, which gives the option to draw to the left,
4577
4589
  * right, and center of the coordinates.
4578
-
4590
+ *
4579
4591
  * The <b>x2</b> and <b>y2</b> parameters define a rectangular area to
4580
4592
  * display within and may only be used with string data. For text drawn
4581
4593
  * inside a rectangle, the coordinates are interpreted based on the current
4582
4594
  * <b>rectMode()</b> setting.
4583
4595
  *
4584
- * ( end auto-generated )
4596
+ *
4585
4597
  *
4586
4598
  * @webref typography:loading_displaying
4587
4599
  * @param c the alphanumeric character to be displayed
@@ -4683,21 +4695,27 @@ public class PGraphics extends PImage implements PConstants {
4683
4695
  high += textLeading;
4684
4696
  }
4685
4697
  }
4686
- if (textAlignY == CENTER) {
4687
- // for a single line, this adds half the textAscent to y
4688
- // for multiple lines, subtract half the additional height
4689
- //y += (textAscent() - textDescent() - high)/2;
4690
- y += (textAscent() - high)/2;
4691
- } else if (textAlignY == TOP) {
4692
- // for a single line, need to add textAscent to y
4693
- // for multiple lines, no different
4694
- y += textAscent();
4695
- } else if (textAlignY == BOTTOM) {
4696
- // for a single line, this is just offset by the descent
4697
- // for multiple lines, subtract leading for each line
4698
- y -= textDescent() + high;
4699
- //} else if (textAlignY == BASELINE) {
4700
- // do nothing
4698
+ switch (textAlignY) {
4699
+ case CENTER:
4700
+ // for a single line, this adds half the textAscent to y
4701
+ // for multiple lines, subtract half the additional height
4702
+ //y += (textAscent() - textDescent() - high)/2;
4703
+ y += (textAscent() - high)/2;
4704
+ break;
4705
+ case TOP:
4706
+ // for a single line, need to add textAscent to y
4707
+ // for multiple lines, no different
4708
+ y += textAscent();
4709
+ break;
4710
+ case BOTTOM:
4711
+ // for a single line, this is just offset by the descent
4712
+ // for multiple lines, subtract leading for each line
4713
+ y -= textDescent() + high;
4714
+ //} else if (textAlignY == BASELINE) {
4715
+ // do nothing
4716
+ break;
4717
+ default:
4718
+ break;
4701
4719
  }
4702
4720
 
4703
4721
  // int start = 0;
@@ -4848,27 +4866,33 @@ public class PGraphics extends PImage implements PConstants {
4848
4866
  int lineFitCount = 1 + PApplet.floor((boxHeight - topAndBottom) / textLeading);
4849
4867
  int lineCount = Math.min(textBreakCount, lineFitCount);
4850
4868
 
4851
- if (textAlignY == CENTER) {
4852
- float lineHigh = textAscent() + textLeading * (lineCount - 1);
4853
- float y = y1 + textAscent() + (boxHeight - lineHigh) / 2;
4854
- for (int i = 0; i < lineCount; i++) {
4855
- textLineAlignImpl(textBuffer, textBreakStart[i], textBreakStop[i], lineX, y);
4856
- y += textLeading;
4857
- }
4858
-
4859
- } else if (textAlignY == BOTTOM) {
4860
- float y = y2 - textDescent() - textLeading * (lineCount - 1);
4861
- for (int i = 0; i < lineCount; i++) {
4862
- textLineAlignImpl(textBuffer, textBreakStart[i], textBreakStop[i], lineX, y);
4863
- y += textLeading;
4864
- }
4865
-
4866
- } else { // TOP or BASELINE just go to the default
4867
- float y = y1 + textAscent();
4868
- for (int i = 0; i < lineCount; i++) {
4869
- textLineAlignImpl(textBuffer, textBreakStart[i], textBreakStop[i], lineX, y);
4870
- y += textLeading;
4871
- }
4869
+ switch (textAlignY) {
4870
+ case CENTER:
4871
+ {
4872
+ float lineHigh = textAscent() + textLeading * (lineCount - 1);
4873
+ float y = y1 + textAscent() + (boxHeight - lineHigh) / 2;
4874
+ for (int i = 0; i < lineCount; i++) {
4875
+ textLineAlignImpl(textBuffer, textBreakStart[i], textBreakStop[i], lineX, y);
4876
+ y += textLeading;
4877
+ } break;
4878
+ }
4879
+ case BOTTOM:
4880
+ {
4881
+ float y = y2 - textDescent() - textLeading * (lineCount - 1);
4882
+ for (int i = 0; i < lineCount; i++) {
4883
+ textLineAlignImpl(textBuffer, textBreakStart[i], textBreakStop[i], lineX, y);
4884
+ y += textLeading;
4885
+ } break;
4886
+ }
4887
+ default:
4888
+ {
4889
+ // TOP or BASELINE just go to the default
4890
+ float y = y1 + textAscent();
4891
+ for (int i = 0; i < lineCount; i++) {
4892
+ textLineAlignImpl(textBuffer, textBreakStart[i], textBreakStop[i], lineX, y);
4893
+ y += textLeading;
4894
+ } break;
4895
+ }
4872
4896
  }
4873
4897
  }
4874
4898
 
@@ -5019,7 +5043,7 @@ public class PGraphics extends PImage implements PConstants {
5019
5043
  * Handles placement of a text line, then calls textLineImpl
5020
5044
  * to actually render at the specific point.
5021
5045
  */
5022
- protected void textLineAlignImpl(char buffer[], int start, int stop,
5046
+ protected void textLineAlignImpl(char[] buffer, int start, int stop,
5023
5047
  float x, float y) {
5024
5048
  if (textAlign == CENTER) {
5025
5049
  x -= textWidthImpl(buffer, start, stop) / 2f;
@@ -5035,7 +5059,7 @@ public class PGraphics extends PImage implements PConstants {
5035
5059
  /**
5036
5060
  * Implementation of actual drawing for a line of text.
5037
5061
  */
5038
- protected void textLineImpl(char buffer[], int start, int stop,
5062
+ protected void textLineImpl(char[] buffer, int start, int stop,
5039
5063
  float x, float y) {
5040
5064
  for (int index = start; index < stop; index++) {
5041
5065
  textCharImpl(buffer[index], x, y);
@@ -5167,31 +5191,31 @@ public class PGraphics extends PImage implements PConstants {
5167
5191
  /**
5168
5192
  * ( begin auto-generated from push.xml )
5169
5193
  *
5170
- * The <b>push()</b> function saves the current drawing style
5171
- * settings and transformations, while <b>pop()</b> restores these
5172
- * settings. Note that these functions are always used together.
5173
- * They allow you to change the style and transformation settings
5174
- * and later return to what you had. When a new state is started
5175
- * with push(), it builds on the current style and transform
5194
+ * The <b>push()</b> function saves the current drawing style
5195
+ * settings and transformations, while <b>pop()</b> restores these
5196
+ * settings. Note that these functions are always used together.
5197
+ * They allow you to change the style and transformation settings
5198
+ * and later return to what you had. When a new state is started
5199
+ * with push(), it builds on the current style and transform
5176
5200
  * information.
5177
5201
  *
5178
- * <b>push()</b> stores information related to the current
5179
- * transformation state and style settings controlled by the
5180
- * following functions: <b>rotate()</b>, <b>translate()</b>,
5181
- * <b>scale()</b>, <b>fill()</b>, <b>stroke()</b>, <b>tint()</b>,
5182
- * <b>strokeWeight()</b>, <b>strokeCap()</b>, <b>strokeJoin()</b>,
5183
- * <b>imageMode()</b>, <b>rectMode()</b>, <b>ellipseMode()</b>,
5184
- * <b>colorMode()</b>, <b>textAlign()</b>, <b>textFont()</b>,
5202
+ * <b>push()</b> stores information related to the current
5203
+ * transformation state and style settings controlled by the
5204
+ * following functions: <b>rotate()</b>, <b>translate()</b>,
5205
+ * <b>scale()</b>, <b>fill()</b>, <b>stroke()</b>, <b>tint()</b>,
5206
+ * <b>strokeWeight()</b>, <b>strokeCap()</b>, <b>strokeJoin()</b>,
5207
+ * <b>imageMode()</b>, <b>rectMode()</b>, <b>ellipseMode()</b>,
5208
+ * <b>colorMode()</b>, <b>textAlign()</b>, <b>textFont()</b>,
5185
5209
  * <b>textMode()</b>, <b>textSize()</b>, <b>textLeading()</b>.
5186
5210
  *
5187
- * The <b>push()</b> and <b>pop()</b> functions were added with
5188
- * Processing 3.5. They can be used in place of <b>pushMatrix()</b>,
5189
- * <b>popMatrix()</b>, <b>pushStyles()</b>, and <b>popStyles()</b>.
5190
- * The difference is that push() and pop() control both the
5191
- * transformations (rotate, scale, translate) and the drawing styles
5211
+ * The <b>push()</b> and <b>pop()</b> functions were added with
5212
+ * Processing 3.5. They can be used in place of <b>pushMatrix()</b>,
5213
+ * <b>popMatrix()</b>, <b>pushStyles()</b>, and <b>popStyles()</b>.
5214
+ * The difference is that push() and pop() control both the
5215
+ * transformations (rotate, scale, translate) and the drawing styles
5192
5216
  * at the same time.
5193
5217
  *
5194
- * ( end auto-generated )
5218
+ *
5195
5219
  *
5196
5220
  * @webref structure
5197
5221
  * @see PGraphics#pop()
@@ -5204,31 +5228,31 @@ public class PGraphics extends PImage implements PConstants {
5204
5228
  /**
5205
5229
  * ( begin auto-generated from pop.xml )
5206
5230
  *
5207
- * The <b>pop()</b> function restores the previous drawing style
5208
- * settings and transformations after <b>push()</b> has changed them.
5209
- * Note that these functions are always used together. They allow
5210
- * you to change the style and transformation settings and later
5211
- * return to what you had. When a new state is started with push(),
5231
+ * The <b>pop()</b> function restores the previous drawing style
5232
+ * settings and transformations after <b>push()</b> has changed them.
5233
+ * Note that these functions are always used together. They allow
5234
+ * you to change the style and transformation settings and later
5235
+ * return to what you had. When a new state is started with push(),
5212
5236
  * it builds on the current style and transform information.
5213
5237
  *
5214
5238
  *
5215
- * <b>push()</b> stores information related to the current
5216
- * transformation state and style settings controlled by the
5217
- * following functions: <b>rotate()</b>, <b>translate()</b>,
5218
- * <b>scale()</b>, <b>fill()</b>, <b>stroke()</b>, <b>tint()</b>,
5219
- * <b>strokeWeight()</b>, <b>strokeCap()</b>, <b>strokeJoin()</b>,
5220
- * <b>imageMode()</b>, <b>rectMode()</b>, <b>ellipseMode()</b>,
5221
- * <b>colorMode()</b>, <b>textAlign()</b>, <b>textFont()</b>,
5239
+ * <b>push()</b> stores information related to the current
5240
+ * transformation state and style settings controlled by the
5241
+ * following functions: <b>rotate()</b>, <b>translate()</b>,
5242
+ * <b>scale()</b>, <b>fill()</b>, <b>stroke()</b>, <b>tint()</b>,
5243
+ * <b>strokeWeight()</b>, <b>strokeCap()</b>, <b>strokeJoin()</b>,
5244
+ * <b>imageMode()</b>, <b>rectMode()</b>, <b>ellipseMode()</b>,
5245
+ * <b>colorMode()</b>, <b>textAlign()</b>, <b>textFont()</b>,
5222
5246
  * <b>textMode()</b>, <b>textSize()</b>, <b>textLeading()</b>.
5223
5247
  *
5224
- * The <b>push()</b> and <b>pop()</b> functions were added with
5225
- * Processing 3.5. They can be used in place of <b>pushMatrix()</b>,
5226
- * <b>popMatrix()</b>, <b>pushStyles()</b>, and <b>popStyles()</b>.
5227
- * The difference is that push() and pop() control both the
5228
- * transformations (rotate, scale, translate) and the drawing styles
5248
+ * The <b>push()</b> and <b>pop()</b> functions were added with
5249
+ * Processing 3.5. They can be used in place of <b>pushMatrix()</b>,
5250
+ * <b>popMatrix()</b>, <b>pushStyles()</b>, and <b>popStyles()</b>.
5251
+ * The difference is that push() and pop() control both the
5252
+ * transformations (rotate, scale, translate) and the drawing styles
5229
5253
  * at the same time.
5230
5254
  *
5231
- * ( end auto-generated )
5255
+ *
5232
5256
  *
5233
5257
  * @webref structure
5234
5258
  * @see PGraphics#push()
@@ -5257,7 +5281,7 @@ public class PGraphics extends PImage implements PConstants {
5257
5281
  * the other transformation functions and may be embedded to control the
5258
5282
  * scope of the transformations.
5259
5283
  *
5260
- * ( end auto-generated )
5284
+ *
5261
5285
  *
5262
5286
  * @webref transform
5263
5287
  * @see PGraphics#popMatrix()
@@ -5284,7 +5308,7 @@ public class PGraphics extends PImage implements PConstants {
5284
5308
  * in conjuction with the other transformation functions and may be
5285
5309
  * embedded to control the scope of the transformations.
5286
5310
  *
5287
- * ( end auto-generated )
5311
+ *
5288
5312
  *
5289
5313
  * @webref transform
5290
5314
  * @see PGraphics#pushMatrix()
@@ -5316,7 +5340,7 @@ public class PGraphics extends PImage implements PConstants {
5316
5340
  * transformation is reset when the loop begins again. This function can be
5317
5341
  * further controlled by the <b>pushMatrix()</b> and <b>popMatrix()</b>.
5318
5342
  *
5319
- * ( end auto-generated )
5343
+ *
5320
5344
  *
5321
5345
  * @webref transform
5322
5346
  * @param x left/right translation
@@ -5361,7 +5385,7 @@ public class PGraphics extends PImage implements PConstants {
5361
5385
  * matrix by a rotation matrix. This function can be further controlled by
5362
5386
  * the <b>pushMatrix()</b> and <b>popMatrix()</b>.
5363
5387
  *
5364
- * ( end auto-generated )
5388
+ *
5365
5389
  *
5366
5390
  * @webref transform
5367
5391
  * @param angle angle of rotation specified in radians
@@ -5394,7 +5418,7 @@ public class PGraphics extends PImage implements PConstants {
5394
5418
  * This function requires using P3D as a third parameter to <b>size()</b>
5395
5419
  * as shown in the example above.
5396
5420
  *
5397
- * ( end auto-generated )
5421
+ *
5398
5422
  *
5399
5423
  * @webref transform
5400
5424
  * @param angle angle of rotation specified in radians
@@ -5427,7 +5451,7 @@ public class PGraphics extends PImage implements PConstants {
5427
5451
  * This function requires using P3D as a third parameter to <b>size()</b>
5428
5452
  * as shown in the examples above.
5429
5453
  *
5430
- * ( end auto-generated )
5454
+ *
5431
5455
  *
5432
5456
  * @webref transform
5433
5457
  * @param angle angle of rotation specified in radians
@@ -5460,7 +5484,7 @@ public class PGraphics extends PImage implements PConstants {
5460
5484
  * This function requires using P3D as a third parameter to <b>size()</b>
5461
5485
  * as shown in the examples above.
5462
5486
  *
5463
- * ( end auto-generated )
5487
+ *
5464
5488
  *
5465
5489
  * @webref transform
5466
5490
  * @param angle angle of rotation specified in radians
@@ -5506,7 +5530,7 @@ public class PGraphics extends PImage implements PConstants {
5506
5530
  * parameter for <b>size()</b> as shown in the example above. This function
5507
5531
  * can be further controlled by <b>pushMatrix()</b> and <b>popMatrix()</b>.
5508
5532
  *
5509
- * ( end auto-generated )
5533
+ *
5510
5534
  *
5511
5535
  * @webref transform
5512
5536
  * @param s percentage to scale the object
@@ -5564,7 +5588,7 @@ public class PGraphics extends PImage implements PConstants {
5564
5588
  * matrix by a rotation matrix. This function can be further controlled by
5565
5589
  * the <b>pushMatrix()</b> and <b>popMatrix()</b> functions.
5566
5590
  *
5567
- * ( end auto-generated )
5591
+ *
5568
5592
  *
5569
5593
  * @webref transform
5570
5594
  * @param angle angle of shear specified in radians
@@ -5598,7 +5622,7 @@ public class PGraphics extends PImage implements PConstants {
5598
5622
  * matrix by a rotation matrix. This function can be further controlled by
5599
5623
  * the <b>pushMatrix()</b> and <b>popMatrix()</b> functions.
5600
5624
  *
5601
- * ( end auto-generated )
5625
+ *
5602
5626
  *
5603
5627
  * @webref transform
5604
5628
  * @param angle angle of shear specified in radians
@@ -5625,7 +5649,7 @@ public class PGraphics extends PImage implements PConstants {
5625
5649
  * Replaces the current matrix with the identity matrix. The equivalent
5626
5650
  * function in OpenGL is glLoadIdentity().
5627
5651
  *
5628
- * ( end auto-generated )
5652
+ *
5629
5653
  *
5630
5654
  * @webref transform
5631
5655
  * @see PGraphics#pushMatrix()
@@ -5645,7 +5669,7 @@ public class PGraphics extends PImage implements PConstants {
5645
5669
  * inverse of the transform, so avoid it whenever possible. The equivalent
5646
5670
  * function in OpenGL is glMultMatrix().
5647
5671
  *
5648
- * ( end auto-generated )
5672
+ *
5649
5673
  *
5650
5674
  * @webref transform
5651
5675
  * @source
@@ -5776,7 +5800,7 @@ public class PGraphics extends PImage implements PConstants {
5776
5800
  * Prints the current matrix to the Console (the text window at the bottom
5777
5801
  * of Processing).
5778
5802
  *
5779
- * ( end auto-generated )
5803
+ *
5780
5804
  *
5781
5805
  * @webref transform
5782
5806
  * @see PGraphics#pushMatrix()
@@ -5799,21 +5823,21 @@ public class PGraphics extends PImage implements PConstants {
5799
5823
  * The <b>beginCamera()</b> and <b>endCamera()</b> functions enable
5800
5824
  * advanced customization of the camera space. The functions are useful if
5801
5825
  * you want to more control over camera movement, however for most users,
5802
- * the <b>camera()</b> function will be sufficient..containsThe camera
5826
+ * the <b>camera()</b> function will be sufficient.The camera
5803
5827
  * functions will replace any transformations (such as <b>rotate()</b> or
5804
5828
  * <b>translate()</b>) that occur before them in <b>draw()</b>, but they
5805
5829
  * will not automatically replace the camera transform itself. For this
5806
5830
  * reason, camera functions should be placed at the beginning of
5807
5831
  * <b>draw()</b> (so that transformations happen afterwards), and the
5808
5832
  * <b>camera()</b> function can be used after <b>beginCamera()</b> if you
5809
- * want to reset the camera before applying transformations.<br
5810
- * />This function sets the matrix mode to the camera matrix so calls such
5833
+ * want to reset the camera before applying transformations.
5834
+ This function sets the matrix mode to the camera matrix so calls such
5811
5835
  * as <b>translate()</b>, <b>rotate()</b>, applyMatrix() and resetMatrix()
5812
5836
  * affect the camera. <b>beginCamera()</b> should always be used with a
5813
5837
  * following <b>endCamera()</b> and pairs of <b>beginCamera()</b> and
5814
5838
  * <b>endCamera()</b> cannot be nested.
5815
5839
  *
5816
- * ( end auto-generated )
5840
+ *
5817
5841
  *
5818
5842
  * @webref lights_camera:camera
5819
5843
  * @see PGraphics#camera()
@@ -5834,7 +5858,7 @@ public class PGraphics extends PImage implements PConstants {
5834
5858
  * advanced customization of the camera space. Please see the reference for
5835
5859
  * <b>beginCamera()</b> for a description of how the functions are used.
5836
5860
  *
5837
- * ( end auto-generated )
5861
+ *
5838
5862
  *
5839
5863
  * @webref lights_camera:camera
5840
5864
  * @see PGraphics#beginCamera()
@@ -5857,7 +5881,7 @@ public class PGraphics extends PImage implements PConstants {
5857
5881
  * 180.0), width/2.0, height/2.0, 0, 0, 1, 0)</b>. This function is similar
5858
5882
  * to <b>gluLookAt()</b> in OpenGL, but it first clears the current camera settings.
5859
5883
  *
5860
- * ( end auto-generated )
5884
+ *
5861
5885
  *
5862
5886
  * @webref lights_camera:camera
5863
5887
  * @see PGraphics#beginCamera()
@@ -5891,7 +5915,7 @@ public class PGraphics extends PImage implements PConstants {
5891
5915
  * Prints the current camera matrix to the Console (the text window at the
5892
5916
  * bottom of Processing).
5893
5917
  *
5894
- * ( end auto-generated )
5918
+ *
5895
5919
  * @webref lights_camera:camera
5896
5920
  * @see PGraphics#camera(float, float, float, float, float, float, float, float, float)
5897
5921
  */
@@ -5917,7 +5941,7 @@ public class PGraphics extends PImage implements PConstants {
5917
5941
  * parameters are given, the default is used: ortho(0, width, 0, height,
5918
5942
  * -10, 10).
5919
5943
  *
5920
- * ( end auto-generated )
5944
+ *
5921
5945
  *
5922
5946
  * @webref lights_camera:camera
5923
5947
  */
@@ -5960,7 +5984,7 @@ public class PGraphics extends PImage implements PConstants {
5960
5984
  * default values are: perspective(PI/3.0, width/height, cameraZ/10.0,
5961
5985
  * cameraZ*10.0) where cameraZ is ((height/2.0) / tan(PI*60.0/360.0));
5962
5986
  *
5963
- * ( end auto-generated )
5987
+ *
5964
5988
  *
5965
5989
  * @webref lights_camera:camera
5966
5990
  */
@@ -5985,7 +6009,7 @@ public class PGraphics extends PImage implements PConstants {
5985
6009
  * glFrustum, except it wipes out the current perspective matrix rather
5986
6010
  * than muliplying itself with it.
5987
6011
  *
5988
- * ( end auto-generated )
6012
+ *
5989
6013
  *
5990
6014
  * @webref lights_camera:camera
5991
6015
  * @param left left coordinate of the clipping plane
@@ -6011,7 +6035,7 @@ public class PGraphics extends PImage implements PConstants {
6011
6035
  * Prints the current projection matrix to the Console (the text window at
6012
6036
  * the bottom of Processing).
6013
6037
  *
6014
- * ( end auto-generated )
6038
+ *
6015
6039
  *
6016
6040
  * @webref lights_camera:camera
6017
6041
  * @see PGraphics#camera(float, float, float, float, float, float, float, float, float)
@@ -6033,7 +6057,7 @@ public class PGraphics extends PImage implements PConstants {
6033
6057
  * Takes a three-dimensional X, Y, Z position and returns the X value for
6034
6058
  * where it will appear on a (two-dimensional) screen.
6035
6059
  *
6036
- * ( end auto-generated )
6060
+ *
6037
6061
  *
6038
6062
  * @webref lights_camera:coordinates
6039
6063
  * @param x 3D x-coordinate to be mapped
@@ -6053,7 +6077,7 @@ public class PGraphics extends PImage implements PConstants {
6053
6077
  * Takes a three-dimensional X, Y, Z position and returns the Y value for
6054
6078
  * where it will appear on a (two-dimensional) screen.
6055
6079
  *
6056
- * ( end auto-generated )
6080
+ *
6057
6081
  *
6058
6082
  * @webref lights_camera:coordinates
6059
6083
  * @param x 3D x-coordinate to be mapped
@@ -6092,7 +6116,7 @@ public class PGraphics extends PImage implements PConstants {
6092
6116
  * Takes a three-dimensional X, Y, Z position and returns the Z value for
6093
6117
  * where it will appear on a (two-dimensional) screen.
6094
6118
  *
6095
- * ( end auto-generated )
6119
+ *
6096
6120
  *
6097
6121
  * @webref lights_camera:coordinates
6098
6122
  * @param x 3D x-coordinate to be mapped
@@ -6123,7 +6147,7 @@ public class PGraphics extends PImage implements PConstants {
6123
6147
  * (x, y, z) coordinate returned by the model functions is used to place
6124
6148
  * another box in the same location.
6125
6149
  *
6126
- * ( end auto-generated )
6150
+ *
6127
6151
  *
6128
6152
  * @webref lights_camera:coordinates
6129
6153
  * @param x 3D x-coordinate to be mapped
@@ -6154,7 +6178,7 @@ public class PGraphics extends PImage implements PConstants {
6154
6178
  * (x, y, z) coordinate returned by the model functions is used to place
6155
6179
  * another box in the same location.
6156
6180
  *
6157
- * ( end auto-generated )
6181
+ *
6158
6182
  *
6159
6183
  * @webref lights_camera:coordinates
6160
6184
  * @param x 3D x-coordinate to be mapped
@@ -6185,7 +6209,7 @@ public class PGraphics extends PImage implements PConstants {
6185
6209
  * (x, y, z) coordinate returned by the model functions is used to place
6186
6210
  * another box in the same location.
6187
6211
  *
6188
- * ( end auto-generated )
6212
+ *
6189
6213
  *
6190
6214
  * @webref lights_camera:coordinates
6191
6215
  * @param x 3D x-coordinate to be mapped
@@ -6215,7 +6239,7 @@ public class PGraphics extends PImage implements PConstants {
6215
6239
  * <b>pushStyle()</b>, it builds on the current style information. The
6216
6240
  * <b>pushStyle()</b> and <b>popStyle()</b> functions can be embedded to
6217
6241
  * provide more control (see the second example above for a demonstration.)
6218
-
6242
+ *
6219
6243
  * The style information controlled by the following functions are included
6220
6244
  * in the style:
6221
6245
  * fill(), stroke(), tint(), strokeWeight(), strokeCap(), strokeJoin(),
@@ -6223,7 +6247,7 @@ public class PGraphics extends PImage implements PConstants {
6223
6247
  * textAlign(), textFont(), textMode(), textSize(), textLeading(),
6224
6248
  * emissive(), specular(), shininess(), ambient()
6225
6249
  *
6226
- * ( end auto-generated )
6250
+ *
6227
6251
  *
6228
6252
  * @webref structure
6229
6253
  * @see PGraphics#popStyle()
@@ -6250,7 +6274,7 @@ public class PGraphics extends PImage implements PConstants {
6250
6274
  * <b>pushStyle()</b> and <b>popStyle()</b> functions can be embedded to
6251
6275
  * provide more control (see the second example above for a demonstration.)
6252
6276
  *
6253
- * ( end auto-generated )
6277
+ *
6254
6278
  *
6255
6279
  * @webref structure
6256
6280
  * @see PGraphics#pushStyle()
@@ -6418,7 +6442,7 @@ public class PGraphics extends PImage implements PConstants {
6418
6442
  * operating system's OpenGL implementation. For instance, the thickness
6419
6443
  * may not go higher than 10 pixels.
6420
6444
  *
6421
- * ( end auto-generated )
6445
+ *
6422
6446
  *
6423
6447
  * @webref shape:attributes
6424
6448
  * @param weight the weight (in pixels) of the stroke
@@ -6443,7 +6467,7 @@ public class PGraphics extends PImage implements PConstants {
6443
6467
  * Issue 123</a>). More information about the renderers can be found in the
6444
6468
  * <b>size()</b> reference.
6445
6469
  *
6446
- * ( end auto-generated )
6470
+ *
6447
6471
  *
6448
6472
  * @webref shape:attributes
6449
6473
  * @param join either MITER, BEVEL, ROUND
@@ -6467,7 +6491,7 @@ public class PGraphics extends PImage implements PConstants {
6467
6491
  * Issue 123</a>). More information about the renderers can be found in the
6468
6492
  * <b>size()</b> reference.
6469
6493
  *
6470
- * ( end auto-generated )
6494
+ *
6471
6495
  *
6472
6496
  * @webref shape:attributes
6473
6497
  * @param cap either SQUARE, PROJECT, or ROUND
@@ -6493,7 +6517,7 @@ public class PGraphics extends PImage implements PConstants {
6493
6517
  * Disables drawing the stroke (outline). If both <b>noStroke()</b> and
6494
6518
  * <b>noFill()</b> are called, nothing will be drawn to the screen.
6495
6519
  *
6496
- * ( end auto-generated )
6520
+ *
6497
6521
  *
6498
6522
  * @webref color:setting
6499
6523
  * @see PGraphics#stroke(int, float)
@@ -6525,7 +6549,7 @@ public class PGraphics extends PImage implements PConstants {
6525
6549
  * current maximum value as specified by <b>colorMode()</b>. The default
6526
6550
  * maximum value is 255.
6527
6551
  *
6528
- * ( end auto-generated )
6552
+ *
6529
6553
  *
6530
6554
  * @param rgb color value in hexadecimal notation
6531
6555
  * @see PGraphics#noStroke()
@@ -6613,7 +6637,7 @@ public class PGraphics extends PImage implements PConstants {
6613
6637
  * Removes the current fill value for displaying images and reverts to
6614
6638
  * displaying images with their original hues.
6615
6639
  *
6616
- * ( end auto-generated )
6640
+ *
6617
6641
  *
6618
6642
  * @webref image:loading_displaying
6619
6643
  * @usage web_application
@@ -6651,7 +6675,7 @@ public class PGraphics extends PImage implements PConstants {
6651
6675
  * The <b>tint()</b> function is also used to control the coloring of
6652
6676
  * textures in 3D.
6653
6677
  *
6654
- * ( end auto-generated )
6678
+ *
6655
6679
  *
6656
6680
  * @webref image:loading_displaying
6657
6681
  * @usage web_application
@@ -6732,7 +6756,7 @@ public class PGraphics extends PImage implements PConstants {
6732
6756
  * Disables filling geometry. If both <b>noStroke()</b> and <b>noFill()</b>
6733
6757
  * are called, nothing will be drawn to the screen.
6734
6758
  *
6735
- * ( end auto-generated )
6759
+ *
6736
6760
  *
6737
6761
  * @webref color:setting
6738
6762
  * @usage web_application
@@ -6768,7 +6792,7 @@ public class PGraphics extends PImage implements PConstants {
6768
6792
  *
6769
6793
  * To change the color of an image (or a texture), use tint().
6770
6794
  *
6771
- * ( end auto-generated )
6795
+ *
6772
6796
  *
6773
6797
  * @webref color:setting
6774
6798
  * @usage web_application
@@ -6857,7 +6881,7 @@ public class PGraphics extends PImage implements PConstants {
6857
6881
  * reflect. Used in combination with <b>emissive()</b>, <b>specular()</b>,
6858
6882
  * and <b>shininess()</b> in setting the material properties of shapes.
6859
6883
  *
6860
- * ( end auto-generated )
6884
+ *
6861
6885
  *
6862
6886
  * @webref lights_camera:material_properties
6863
6887
  * @usage web_application
@@ -6915,7 +6939,7 @@ public class PGraphics extends PImage implements PConstants {
6915
6939
  * with <b>emissive()</b>, <b>ambient()</b>, and <b>shininess()</b> in
6916
6940
  * setting the material properties of shapes.
6917
6941
  *
6918
- * ( end auto-generated )
6942
+ *
6919
6943
  *
6920
6944
  * @webref lights_camera:material_properties
6921
6945
  * @usage web_application
@@ -6940,6 +6964,8 @@ public class PGraphics extends PImage implements PConstants {
6940
6964
 
6941
6965
  /**
6942
6966
  * gray number specifying value between white and black
6967
+ *
6968
+ * @param gray value between black and white, by default 0 to 255
6943
6969
  */
6944
6970
  public void specular(float gray) {
6945
6971
  colorCalc(gray);
@@ -6973,7 +6999,7 @@ public class PGraphics extends PImage implements PConstants {
6973
6999
  * with <b>ambient()</b>, <b>specular()</b>, and <b>emissive()</b> in
6974
7000
  * setting the material properties of shapes.
6975
7001
  *
6976
- * ( end auto-generated )
7002
+ *
6977
7003
  *
6978
7004
  * @webref lights_camera:material_properties
6979
7005
  * @usage web_application
@@ -6994,7 +7020,7 @@ public class PGraphics extends PImage implements PConstants {
6994
7020
  * <b>specular()</b>, and <b>shininess()</b> in setting the material
6995
7021
  * properties of shapes.
6996
7022
  *
6997
- * ( end auto-generated )
7023
+ *
6998
7024
  *
6999
7025
  * @webref lights_camera:material_properties
7000
7026
  * @usage web_application
@@ -7017,6 +7043,8 @@ public class PGraphics extends PImage implements PConstants {
7017
7043
 
7018
7044
  /**
7019
7045
  * gray number specifying value between white and black
7046
+ *
7047
+ * @param gray value between black and white, by default 0 to 255
7020
7048
  */
7021
7049
  public void emissive(float gray) {
7022
7050
  colorCalc(gray);
@@ -7062,7 +7090,7 @@ public class PGraphics extends PImage implements PConstants {
7062
7090
  * looping program will cause them to only have an effect the first time
7063
7091
  * through the loop.
7064
7092
  *
7065
- * ( end auto-generated )
7093
+ *
7066
7094
  *
7067
7095
  * @webref lights_camera:lights
7068
7096
  * @usage web_application
@@ -7084,7 +7112,7 @@ public class PGraphics extends PImage implements PConstants {
7084
7112
  * lighting so that 2D geometry (which does not require lighting) can be
7085
7113
  * drawn after a set of lighted 3D geometry.
7086
7114
  *
7087
- * ( end auto-generated )
7115
+ *
7088
7116
  *
7089
7117
  * @webref lights_camera:lights
7090
7118
  * @usage web_application
@@ -7106,7 +7134,7 @@ public class PGraphics extends PImage implements PConstants {
7106
7134
  * have an effect the first time through the loop. The effect of the
7107
7135
  * parameters is determined by the current color mode.
7108
7136
  *
7109
- * ( end auto-generated )
7137
+ *
7110
7138
  *
7111
7139
  * @webref lights_camera:lights
7112
7140
  * @usage web_application
@@ -7147,7 +7175,7 @@ public class PGraphics extends PImage implements PConstants {
7147
7175
  * direction the light is facing. For example, setting <b>ny</b> to -1 will
7148
7176
  * cause the geometry to be lit from below (the light is facing directly upward).
7149
7177
  *
7150
- * ( end auto-generated )
7178
+ *
7151
7179
  *
7152
7180
  * @webref lights_camera:lights
7153
7181
  * @usage web_application
@@ -7178,7 +7206,7 @@ public class PGraphics extends PImage implements PConstants {
7178
7206
  * mode. The <b>x</b>, <b>y</b>, and <b>z</b> parameters set the position
7179
7207
  * of the light.
7180
7208
  *
7181
- * ( end auto-generated )
7209
+ *
7182
7210
  *
7183
7211
  * @webref lights_camera:lights
7184
7212
  * @usage web_application
@@ -7211,7 +7239,7 @@ public class PGraphics extends PImage implements PConstants {
7211
7239
  * direction or light. The <b>angle</b> parameter affects angle of the
7212
7240
  * spotlight cone.
7213
7241
  *
7214
- * ( end auto-generated )
7242
+ *
7215
7243
  *
7216
7244
  * @webref lights_camera:lights
7217
7245
  * @usage web_application
@@ -7243,9 +7271,9 @@ public class PGraphics extends PImage implements PConstants {
7243
7271
  *
7244
7272
  * Sets the falloff rates for point lights, spot lights, and ambient
7245
7273
  * lights. The parameters are used to determine the falloff with the
7246
- * following equation:.containsd = distance from light position to
7274
+ * following equation:d = distance from light position to
7247
7275
  * vertex positionfalloff = 1 / (CONSTANT + d * LINEAR + (d*d) *
7248
- * QUADRATIC).containsLike <b>fill()</b>, it affects only the elements
7276
+ * QUADRATIC)Like <b>fill()</b>, it affects only the elements
7249
7277
  * which are created after it in the code. The default value if
7250
7278
  * <b>LightFalloff(1.0, 0.0, 0.0)</b>. Thinking about an ambient light with
7251
7279
  * a falloff can be tricky. It is used, for example, if you wanted a region
@@ -7254,7 +7282,7 @@ public class PGraphics extends PImage implements PConstants {
7254
7282
  * and falloff. You can think of it as a point light that doesn't care
7255
7283
  * which direction a surface is facing.
7256
7284
  *
7257
- * ( end auto-generated )
7285
+ *
7258
7286
  *
7259
7287
  * @webref lights_camera:lights
7260
7288
  * @usage web_application
@@ -7282,7 +7310,7 @@ public class PGraphics extends PImage implements PConstants {
7282
7310
  * specular material qualities set through the <b>specular()</b> and
7283
7311
  * <b>shininess()</b> functions.
7284
7312
  *
7285
- * ( end auto-generated )
7313
+ *
7286
7314
  *
7287
7315
  * @webref lights_camera:lights
7288
7316
  * @usage web_application
@@ -7323,7 +7351,7 @@ public class PGraphics extends PImage implements PConstants {
7323
7351
  * It is not possible to use transparency (alpha) in background colors with
7324
7352
  * the main drawing surface, however they will work properly with <b>createGraphics()</b>.
7325
7353
  *
7326
- * ( end auto-generated )
7354
+ *
7327
7355
  *
7328
7356
  * <h3>Advanced</h3>
7329
7357
  * <p>Clear the background with a color that includes an alpha value. This can
@@ -7543,7 +7571,7 @@ public class PGraphics extends PImage implements PConstants {
7543
7571
  * are specified between 0 and 1. The limits for defining colors are
7544
7572
  * altered by setting the parameters range1, range2, range3, and range 4.
7545
7573
  *
7546
- * ( end auto-generated )
7574
+ *
7547
7575
  *
7548
7576
  * @webref color:setting
7549
7577
  * @usage web_application
@@ -7881,7 +7909,7 @@ public class PGraphics extends PImage implements PConstants {
7881
7909
  *
7882
7910
  * Extracts the alpha value from a color.
7883
7911
  *
7884
- * ( end auto-generated )
7912
+ *
7885
7913
  * @webref color:creating_reading
7886
7914
  * @usage web_application
7887
7915
  * @param rgb any value of the color datatype
@@ -7904,15 +7932,15 @@ public class PGraphics extends PImage implements PConstants {
7904
7932
  *
7905
7933
  * Extracts the red value from a color, scaled to match current
7906
7934
  * <b>colorMode()</b>. This value is always returned as a float so be
7907
- * careful not to assign it to an int value..containsThe red() function
7935
+ * careful not to assign it to an int value.The red() function
7908
7936
  * is easy to use and undestand, but is slower than another technique. To
7909
7937
  * achieve the same results when working in <b>colorMode(RGB, 255)</b>, but
7910
7938
  * with greater speed, use the &gt;&gt; (right shift) operator with a bit
7911
- * mask. For example, the following two lines of code are equivalent:<br
7912
- * /><pre>float r1 = red(myColor);float r2 = myColor &gt;&gt; 16
7939
+ * mask. For example, the following two lines of code are equivalent:
7940
+ <pre>float r1 = red(myColor);float r2 = myColor &gt;&gt; 16
7913
7941
  * &amp; 0xFF;</pre>
7914
7942
  *
7915
- * ( end auto-generated )
7943
+ *
7916
7944
  *
7917
7945
  * @webref color:creating_reading
7918
7946
  * @usage web_application
@@ -7937,7 +7965,7 @@ public class PGraphics extends PImage implements PConstants {
7937
7965
  *
7938
7966
  * Extracts the green value from a color, scaled to match current
7939
7967
  * <b>colorMode()</b>. This value is always returned as a float so be
7940
- * careful not to assign it to an int value..containsThe <b>green()</b>
7968
+ * careful not to assign it to an int value.The <b>green()</b>
7941
7969
  * function is easy to use and undestand, but is slower than another
7942
7970
  * technique. To achieve the same results when working in <b>colorMode(RGB,
7943
7971
  * 255)</b>, but with greater speed, use the &gt;&gt; (right shift)
@@ -7945,7 +7973,7 @@ public class PGraphics extends PImage implements PConstants {
7945
7973
  * are equivalent:<pre>float r1 = green(myColor);float r2 =
7946
7974
  * myColor &gt;&gt; 8 &amp; 0xFF;</pre>
7947
7975
  *
7948
- * ( end auto-generated )
7976
+ *
7949
7977
  *
7950
7978
  * @webref color:creating_reading
7951
7979
  * @usage web_application
@@ -7970,7 +7998,7 @@ public class PGraphics extends PImage implements PConstants {
7970
7998
  *
7971
7999
  * Extracts the blue value from a color, scaled to match current
7972
8000
  * <b>colorMode()</b>. This value is always returned as a float so be
7973
- * careful not to assign it to an int value..containsThe <b>blue()</b>
8001
+ * careful not to assign it to an int value.The <b>blue()</b>
7974
8002
  * function is easy to use and undestand, but is slower than another
7975
8003
  * technique. To achieve the same results when working in <b>colorMode(RGB,
7976
8004
  * 255)</b>, but with greater speed, use a bit mask to remove the other
@@ -7978,7 +8006,7 @@ public class PGraphics extends PImage implements PConstants {
7978
8006
  * equivalent:<pre>float r1 = blue(myColor);float r2 = myColor
7979
8007
  * &amp; 0xFF;</pre>
7980
8008
  *
7981
- * ( end auto-generated )
8009
+ *
7982
8010
  *
7983
8011
  * @webref color:creating_reading
7984
8012
  * @usage web_application
@@ -8003,7 +8031,7 @@ public class PGraphics extends PImage implements PConstants {
8003
8031
  *
8004
8032
  * Extracts the hue value from a color.
8005
8033
  *
8006
- * ( end auto-generated )
8034
+ *
8007
8035
  * @webref color:creating_reading
8008
8036
  * @usage web_application
8009
8037
  * @param rgb any value of the color datatype
@@ -8029,7 +8057,7 @@ public class PGraphics extends PImage implements PConstants {
8029
8057
  *
8030
8058
  * Extracts the saturation value from a color.
8031
8059
  *
8032
- * ( end auto-generated )
8060
+ *
8033
8061
  * @webref color:creating_reading
8034
8062
  * @usage web_application
8035
8063
  * @param rgb any value of the color datatype
@@ -8055,7 +8083,7 @@ public class PGraphics extends PImage implements PConstants {
8055
8083
  *
8056
8084
  * Extracts the brightness value from a color.
8057
8085
  *
8058
- * ( end auto-generated )
8086
+ *
8059
8087
  *
8060
8088
  * @webref color:creating_reading
8061
8089
  * @usage web_application
@@ -8093,7 +8121,7 @@ public class PGraphics extends PImage implements PConstants {
8093
8121
  * values where 0.0 equal to the first point, 0.1 is very near the first
8094
8122
  * point, 0.5 is half-way in between, etc.
8095
8123
  *
8096
- * ( end auto-generated )
8124
+ *
8097
8125
  *
8098
8126
  * @webref color:creating_reading
8099
8127
  * @usage web_application