diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java
index 2a10182b2..61c0f02d2 100644
--- a/core/src/processing/core/PApplet.java
+++ b/core/src/processing/core/PApplet.java
@@ -9995,13 +9995,6 @@ public class PApplet extends Applet
}
- /** This feature is in testing, do not use or rely upon its implementation */
- public void breakShape() {
- if (recorder != null) recorder.breakShape();
- g.breakShape();
- }
-
-
public void beginContour() {
if (recorder != null) recorder.beginContour();
g.beginContour();
diff --git a/core/src/processing/core/PConstants.java b/core/src/processing/core/PConstants.java
index 961124a25..11b6cb976 100644
--- a/core/src/processing/core/PConstants.java
+++ b/core/src/processing/core/PConstants.java
@@ -273,7 +273,7 @@ public interface PConstants {
static final int ARGB = 2; // image
static final int HSB = 3; // color
static final int ALPHA = 4; // image
- static final int CMYK = 5; // image & color (someday)
+// static final int CMYK = 5; // image & color (someday)
// image file types
@@ -347,39 +347,38 @@ public interface PConstants {
// the low four bits set the variety,
// higher bits set the specific shape type
- //static final int GROUP = (1 << 2);
+ static final int GROUP = 1; // createShape()
- static final int POINT = 2; // shared with light (!)
- static final int POINTS = 2;
+ static final int POINT = 2; // primitive
+ static final int POINTS = 3; // vertices
- static final int LINE = 4;
- static final int LINES = 4;
+ static final int LINE = 4; // primitive
+ static final int LINES = 5; // beginShape(), createShape()
+ static final int LINE_STRIP = 50; // beginShape()
+ static final int LINE_LOOP = 51;
- static final int TRIANGLE = 8;
- static final int TRIANGLES = 9;
- static final int TRIANGLE_STRIP = 10;
- static final int TRIANGLE_FAN = 11;
+ static final int TRIANGLE = 8; // primitive
+ static final int TRIANGLES = 9; // vertices
+ static final int TRIANGLE_STRIP = 10; // vertices
+ static final int TRIANGLE_FAN = 11; // vertices
- static final int QUAD = 16;
- static final int QUADS = 16;
- static final int QUAD_STRIP = 17;
+ static final int QUAD = 16; // primitive
+ static final int QUADS = 17; // vertices
+ static final int QUAD_STRIP = 18; // vertices
- static final int POLYGON = 20;
- static final int PATH = 21;
+ static final int POLYGON = 20; // in the end, probably cannot
+ static final int PATH = 21; // separate these two
- static final int RECT = 30;
- static final int ELLIPSE = 31;
- static final int ARC = 32;
+ static final int RECT = 30; // primitive
+ static final int ELLIPSE = 31; // primitive
+ static final int ARC = 32; // primitive
- static final int SPHERE = 40;
- static final int BOX = 41;
+ static final int SPHERE = 40; // primitive
+ static final int BOX = 41; // primitive
- static public final int LINE_STRIP = 50;
- static public final int LINE_LOOP = 51;
- static public final int POINT_SPRITES = 52;
-
- static public final int NON_STROKED_SHAPE = 60;
- static public final int STROKED_SHAPE = 61;
+// static public final int POINT_SPRITES = 52;
+// static public final int NON_STROKED_SHAPE = 60;
+// static public final int STROKED_SHAPE = 61;
// shape closing modes
@@ -396,8 +395,6 @@ public interface PConstants {
static final int CORNERS = 1;
/** Draw mode from the center, and using the radius */
static final int RADIUS = 2;
- /** @deprecated Use RADIUS instead. */
- static final int CENTER_RADIUS = 2;
/**
* Draw from the center, using second pair of values as the diameter.
* Formerly called CENTER_DIAMETER in alpha releases.
@@ -408,8 +405,6 @@ public interface PConstants {
* using second pair of values as the diameter.
*/
static final int DIAMETER = 3;
- /** @deprecated Use DIAMETER instead. */
- static final int CENTER_DIAMETER = 3;
// vertically alignment modes for text
@@ -426,8 +421,6 @@ public interface PConstants {
/** texture coordinates in 0..1 range */
static final int NORMAL = 1;
- /** @deprecated use NORMAL instead */
- static final int NORMALIZED = 1;
/** texture coordinates based on image width/height */
static final int IMAGE = 2;
@@ -479,6 +472,7 @@ public interface PConstants {
public static final int LINEAR = 0;
public static final int QUADRATIC = 1;
+
// PShape3D
/** Static usage mode for PShape3D (vertices won't be updated after creation). */
diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java
index ecdf86ec5..d7db66261 100644
--- a/core/src/processing/core/PGraphics.java
+++ b/core/src/processing/core/PGraphics.java
@@ -1384,11 +1384,11 @@ public class PGraphics extends PImage implements PConstants {
}
- /** This feature is in testing, do not use or rely upon its implementation */
- public void breakShape() {
- showWarning("This renderer cannot currently handle concave shapes, " +
- "or shapes with holes.");
- }
+// /** This feature is in testing, do not use or rely upon its implementation */
+// public void breakShape() {
+// showWarning("This renderer cannot currently handle concave shapes, " +
+// "or shapes with holes.");
+// }
public void beginContour() {
@@ -5711,6 +5711,7 @@ public class PGraphics extends PImage implements PConstants {
strokeFromCalc();
}
+
/**
* @param alpha opacity of the stroke
*/
@@ -5728,24 +5729,27 @@ public class PGraphics extends PImage implements PConstants {
strokeFromCalc();
}
+
public void stroke(float gray, float alpha) {
colorCalc(gray, alpha);
strokeFromCalc();
}
+
/**
- * @param x red or hue value (depending on current color mode)
- * @param y green or saturation value (depending on current color mode)
- * @param z blue or brightness value (depending on current color mode)
+ * @param v1 red or hue value (depending on current color mode)
+ * @param v2 green or saturation value (depending on current color mode)
+ * @param v3 blue or brightness value (depending on current color mode)
* @webref color:setting
*/
- public void stroke(float x, float y, float z) {
- colorCalc(x, y, z);
+ public void stroke(float v1, float v2, float v3) {
+ colorCalc(v1, v2, v3);
strokeFromCalc();
}
- public void stroke(float x, float y, float z, float alpha) {
- colorCalc(x, y, z, alpha);
+
+ public void stroke(float v1, float v2, float v3, float alpha) {
+ colorCalc(v1, v2, v3, alpha);
strokeFromCalc();
}
@@ -5854,21 +5858,21 @@ public class PGraphics extends PImage implements PConstants {
}
/**
- * @param x red or hue value (depending on current color mode)
- * @param y green or saturation value (depending on current color mode)
- * @param z blue or brightness value (depending on current color mode)
+ * @param v1 red or hue value (depending on current color mode)
+ * @param v2 green or saturation value (depending on current color mode)
+ * @param v3 blue or brightness value (depending on current color mode)
*/
- public void tint(float x, float y, float z) {
- colorCalc(x, y, z);
+ public void tint(float v1, float v2, float v3) {
+ colorCalc(v1, v2, v3);
tintFromCalc();
}
/**
- * @param z opacity of the image
+ * @param v3 opacity of the image
*/
- public void tint(float x, float y, float z, float a) {
- colorCalc(x, y, z, a);
+ public void tint(float v1, float v2, float v3, float a) {
+ colorCalc(v1, v2, v3, a);
tintFromCalc();
}
@@ -5974,13 +5978,13 @@ public class PGraphics extends PImage implements PConstants {
}
/**
- * @param x red or hue value (depending on current color mode)
- * @param y green or saturation value (depending on current color mode)
- * @param z blue or brightness value (depending on current color mode)
+ * @param v1 red or hue value (depending on current color mode)
+ * @param v2 green or saturation value (depending on current color mode)
+ * @param v3 blue or brightness value (depending on current color mode)
*/
- public void fill(float x, float y, float z) {
- colorCalc(x, y, z);
+ public void fill(float v1, float v2, float v3) {
+ colorCalc(v1, v2, v3);
fillFromCalc();
}
@@ -5988,8 +5992,8 @@ public class PGraphics extends PImage implements PConstants {
/**
* @param a opacity of the fill
*/
- public void fill(float x, float y, float z, float a) {
- colorCalc(x, y, z, a);
+ public void fill(float v1, float v2, float v3, float a) {
+ colorCalc(v1, v2, v3, a);
fillFromCalc();
}
@@ -6453,16 +6457,16 @@ public class PGraphics extends PImage implements PConstants {
*
* @webref lights_camera:lights
* @usage web_application
- * @param x red or hue value (depending on current color mode)
- * @param y green or saturation value (depending on current color mode)
- * @param z blue or brightness value (depending on current color mode)
+ * @param v1 red or hue value (depending on current color mode)
+ * @param v2 green or saturation value (depending on current color mode)
+ * @param v3 blue or brightness value (depending on current color mode)
* @see PGraphics#specular(float, float, float)
* @see PGraphics#lights()
* @see PGraphics#ambientLight(float, float, float, float, float, float)
* @see PGraphics#pointLight(float, float, float, float, float, float)
* @see PGraphics#spotLight(float, float, float, float, float, float, float, float, float, float, float)
*/
- public void lightSpecular(float x, float y, float z) {
+ public void lightSpecular(float v1, float v2, float v3) {
showMethodWarning("lightSpecular");
}
@@ -6572,12 +6576,12 @@ public class PGraphics extends PImage implements PConstants {
/**
- * @param x red or hue value (depending on the current color mode)
- * @param y green or saturation value (depending on the current color mode)
- * @param z blue or brightness value (depending on the current color mode)
+ * @param v1 red or hue value (depending on the current color mode)
+ * @param v2 green or saturation value (depending on the current color mode)
+ * @param v3 blue or brightness value (depending on the current color mode)
*/
- public void background(float x, float y, float z) {
- colorCalc(x, y, z);
+ public void background(float v1, float v2, float v3) {
+ colorCalc(v1, v2, v3);
backgroundFromCalc();
// backgroundImpl();
}
@@ -6586,7 +6590,7 @@ public class PGraphics extends PImage implements PConstants {
/**
* @param a opacity of the background
*/
- public void background(float x, float y, float z, float a) {
+ public void background(float v1, float v2, float v3, float a) {
// if (format == RGB) {
// background(x, y, z); // don't allow people to set alpha
//
@@ -6595,7 +6599,7 @@ public class PGraphics extends PImage implements PConstants {
// backgroundFromCalc();
// backgroundImpl();
// }
- colorCalc(x, y, z, a);
+ colorCalc(v1, v2, v3, a);
backgroundFromCalc();
}
@@ -6723,6 +6727,7 @@ public class PGraphics extends PImage implements PConstants {
colorMode(mode, colorModeX, colorModeY, colorModeZ, colorModeA);
}
+
/**
* @param max range for all color elements
*/
@@ -6732,29 +6737,30 @@ public class PGraphics extends PImage implements PConstants {
/**
- * @param maxX range for the red or hue depending on the current color mode
- * @param maxY range for the green or saturation depending on the current color mode
- * @param maxZ range for the blue or brightness depending on the current color mode
+ * @param max1 range for the red or hue depending on the current color mode
+ * @param max2 range for the green or saturation depending on the current color mode
+ * @param max3 range for the blue or brightness depending on the current color mode
*/
- public void colorMode(int mode, float maxX, float maxY, float maxZ) {
- colorMode(mode, maxX, maxY, maxZ, colorModeA);
+ public void colorMode(int mode, float max1, float max2, float max3) {
+ colorMode(mode, max1, max2, max3, colorModeA);
}
-/**
- * @param maxA range for the alpha
- */
+
+ /**
+ * @param maxA range for the alpha
+ */
public void colorMode(int mode,
- float maxX, float maxY, float maxZ, float maxA) {
+ float max1, float max2, float max3, float maxA) {
colorMode = mode;
- colorModeX = maxX; // still needs to be set for hsb
- colorModeY = maxY;
- colorModeZ = maxZ;
+ colorModeX = max1; // still needs to be set for hsb
+ colorModeY = max2;
+ colorModeZ = max3;
colorModeA = maxA;
// if color max values are all 1, then no need to scale
colorModeScale =
- ((maxA != 1) || (maxX != maxY) || (maxY != maxZ) || (maxZ != maxA));
+ ((maxA != 1) || (max1 != max2) || (max2 != max3) || (max3 != maxA));
// if color is rgb/0..255 this will make it easier for the
// red() green() etc functions
@@ -7009,43 +7015,26 @@ public class PGraphics extends PImage implements PConstants {
}
- public final int color(int x, int y, int z) { // ignore
-// if (colorModeDefault) {
-// // bounds checking to make sure the numbers aren't to high or low
-// if (x > 255) x = 255; else if (x < 0) x = 0;
-// if (y > 255) y = 255; else if (y < 0) y = 0;
-// if (z > 255) z = 255; else if (z < 0) z = 0;
-//
-// return 0xff000000 | (x << 16) | (y << 8) | z;
-// }
- colorCalc(x, y, z);
+ public final int color(int v1, int v2, int v3) { // ignore
+ colorCalc(v1, v2, v3);
return calcColor;
}
- public final int color(float x, float y, float z) { // ignore
- colorCalc(x, y, z);
+ public final int color(float v1, float v2, float v3) { // ignore
+ colorCalc(v1, v2, v3);
return calcColor;
}
- public final int color(int x, int y, int z, int a) { // ignore
-// if (colorModeDefault) {
-// // bounds checking to make sure the numbers aren't to high or low
-// if (a > 255) a = 255; else if (a < 0) a = 0;
-// if (x > 255) x = 255; else if (x < 0) x = 0;
-// if (y > 255) y = 255; else if (y < 0) y = 0;
-// if (z > 255) z = 255; else if (z < 0) z = 0;
-//
-// return (a << 24) | (x << 16) | (y << 8) | z;
-// }
- colorCalc(x, y, z, a);
+ public final int color(int v1, int v2, int v3, int a) { // ignore
+ colorCalc(v1, v2, v3, a);
return calcColor;
}
- public final int color(float x, float y, float z, float a) { // ignore
- colorCalc(x, y, z, a);
+ public final int color(float v1, float v2, float v3, float a) { // ignore
+ colorCalc(v1, v2, v3, a);
return calcColor;
}
diff --git a/core/src/processing/core/PGraphicsJava2D.java b/core/src/processing/core/PGraphicsJava2D.java
index ebca96123..798f5dc0a 100644
--- a/core/src/processing/core/PGraphicsJava2D.java
+++ b/core/src/processing/core/PGraphicsJava2D.java
@@ -391,11 +391,16 @@ public class PGraphicsJava2D extends PGraphics /*PGraphics2D*/ {
}
- public void breakShape() {
+ public void beginContour() {
breakShape = true;
}
+ public void endContour() {
+ // does nothing, just need the break in beginContour()
+ }
+
+
public void endShape(int mode) {
if (gpath != null) { // make sure something has been drawn
if (shape == POLYGON) {
diff --git a/core/src/processing/core/PImage.java b/core/src/processing/core/PImage.java
index 23c520b83..e1dd5127d 100644
--- a/core/src/processing/core/PImage.java
+++ b/core/src/processing/core/PImage.java
@@ -589,31 +589,31 @@ public class PImage implements PConstants, Cloneable {
* @webref pimage:method
* @brief Changes the size of an image to a new width and height
* @usage web_application
- * @param wide the resized image width
- * @param high the resized image height
+ * @param w the resized image width
+ * @param h the resized image height
* @see PImage#get(int, int, int, int)
*/
- public void resize(int wide, int high) { // ignore
+ public void resize(int w, int h) { // ignore
// Make sure that the pixels[] array is valid
loadPixels();
- if (wide <= 0 && high <= 0) {
+ if (w <= 0 && h <= 0) {
width = 0; // Gimme a break, don't waste my time
height = 0;
pixels = new int[0];
} else {
- if (wide == 0) { // Use height to determine relative size
- float diff = (float) high / (float) height;
- wide = (int) (width * diff);
- } else if (high == 0) { // Use the width to determine relative size
- float diff = (float) wide / (float) width;
- high = (int) (height * diff);
+ if (w == 0) { // Use height to determine relative size
+ float diff = (float) h / (float) height;
+ w = (int) (width * diff);
+ } else if (h == 0) { // Use the width to determine relative size
+ float diff = (float) w / (float) width;
+ h = (int) (height * diff);
}
- PImage temp = new PImage(wide, high, this.format);
- temp.copy(this, 0, 0, width, height, 0, 0, wide, high);
- this.width = wide;
- this.height = high;
+ PImage temp = new PImage(w, h, this.format);
+ temp.copy(this, 0, 0, width, height, 0, 0, w, h);
+ this.width = w;
+ this.height = h;
this.pixels = temp.pixels;
}
// Mark the pixels array as altered
@@ -796,13 +796,13 @@ public class PImage implements PConstants, Cloneable {
* No variations are employed, meaning that any scale, tint, or imageMode
* settings will be ignored.
*
- * @param src image to draw on screen
+ * @param image image to draw on screen
*/
- public void set(int x, int y, PImage src) {
+ public void set(int x, int y, PImage image) {
int sx = 0;
int sy = 0;
- int sw = src.width;
- int sh = src.height;
+ int sw = image.width;
+ int sh = image.height;
// if (imageMode == CENTER) {
// x -= src.width/2;
@@ -828,7 +828,7 @@ public class PImage implements PConstants, Cloneable {
// this could be nonexistant
if ((sw <= 0) || (sh <= 0)) return;
- setImpl(x, y, sx, sy, sw, sh, src);
+ setImpl(x, y, sx, sy, sw, sh, image);
}
diff --git a/core/src/processing/core/PShape.java b/core/src/processing/core/PShape.java
index a1a4e45e0..79e2025f9 100644
--- a/core/src/processing/core/PShape.java
+++ b/core/src/processing/core/PShape.java
@@ -29,18 +29,18 @@ import processing.core.PApplet;
/**
* ( begin auto-generated from PShape.xml )
- *
- * Datatype for storing shapes. Processing can currently load and display
- * SVG (Scalable Vector Graphics) shapes. Before a shape is used, it must
- * be loaded with the loadShape() function. The shape()
- * function is used to draw the shape to the display window. The
- * PShape object contain a group of methods, linked below, that can
- * operate on the shape data.
+ *
+ * Datatype for storing shapes. Processing can currently load and display
+ * SVG (Scalable Vector Graphics) shapes. Before a shape is used, it must
+ * be loaded with the loadShape() function. The shape()
+ * function is used to draw the shape to the display window. The
+ * PShape object contain a group of methods, linked below, that can
+ * operate on the shape data.
*
- * The loadShape() function supports SVG files created with Inkscape
- * and Adobe Illustrator. It is not a full SVG implementation, but offers
+ * The loadShape() function supports SVG files created with Inkscape
+ * and Adobe Illustrator. It is not a full SVG implementation, but offers
* some straightforward support for handling vector data.
- *
+ *
* ( end auto-generated )
*
Advanced
*
@@ -80,7 +80,7 @@ public class PShape implements PConstants {
protected String name;
protected HashMap nameTable;
-
+
/** Generic, only draws its child objects. */
static public final int GROUP = 0;
/** A line, ellipse, arc, image, etc. */
@@ -107,9 +107,9 @@ public class PShape implements PConstants {
//protected float height;
/**
* ( begin auto-generated from PShape_width.xml )
- *
+ *
* The width of the PShape document.
- *
+ *
* ( end auto-generated )
* @webref pshape:field
* @usage web_application
@@ -118,16 +118,16 @@ public class PShape implements PConstants {
public float width;
/**
* ( begin auto-generated from PShape_height.xml )
- *
+ *
* The height of the PShape document.
- *
+ *
* ( end auto-generated )
* @webref pshape:field
* @usage web_application
* @brief Shape document height
*/
public float height;
-
+
public float depth;
// set to false if the object is hidden in the layers palette
@@ -143,13 +143,13 @@ public class PShape implements PConstants {
protected int fillColor;
protected boolean tint;
- protected int tintColor;
-
- protected int ambientColor;
- protected int specularColor;
+ protected int tintColor;
+
+ protected int ambientColor;
+ protected int specularColor;
protected int emissiveColor;
- protected float shininess;
-
+ protected float shininess;
+
/** Temporary toggle for whether styles should be honored. */
protected boolean style = true;
@@ -163,11 +163,11 @@ public class PShape implements PConstants {
* two variables.
*/
protected float[][] vertices;
-
+
protected PShape parent;
protected int childCount;
- protected PShape[] children;
-
+ protected PShape[] children;
+
/** Array of VERTEX, BEZIER_VERTEX, and CURVE_VERTEX calls. */
protected int vertexCodeCount;
@@ -175,14 +175,14 @@ public class PShape implements PConstants {
/** True if this is a closed path. */
protected boolean close;
-
+
// ........................................................
// internal color for setting/calculating
protected float calcR, calcG, calcB, calcA;
protected int calcRi, calcGi, calcBi, calcAi;
protected int calcColor;
- protected boolean calcAlpha;
+ protected boolean calcAlpha;
/** The current colorMode */
public int colorMode; // = RGB;
@@ -204,10 +204,10 @@ public class PShape implements PConstants {
/** True if colorMode(RGB, 255) */
boolean colorModeDefault; // = true;
-
+
/** To mark the shape dirty upon changes in its geometry **/
public boolean modified;
-
+
// should this be called vertices (consistent with PGraphics internals)
// or does that hurt flexibility?
@@ -242,7 +242,7 @@ public class PShape implements PConstants {
// pivot point for transformations
// public float px;
// public float py;
-
+
public PShape() {
this.family = GROUP;
}
@@ -266,14 +266,14 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_isVisible.xml )
- *
- * Returns a boolean value "true" if the image is set to be visible,
+ *
+ * Returns a boolean value "true" if the image is set to be visible,
* "false" if not. This is modified with the setVisible() parameter.
*
- * The visibility of a shape is usually controlled by whatever program
- * created the SVG file. For instance, this parameter is controlled by
+ * The visibility of a shape is usually controlled by whatever program
+ * created the SVG file. For instance, this parameter is controlled by
* showing or hiding the shape in the layers palette in Adobe Illustrator.
- *
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -283,17 +283,17 @@ public class PShape implements PConstants {
return visible;
}
-
+
/**
* ( begin auto-generated from PShape_setVisible.xml )
- *
- * Sets the shape to be visible or invisible. This is determined by the
+ *
+ * Sets the shape to be visible or invisible. This is determined by the
* value of the visible parameter.
*
- * The visibility of a shape is usually controlled by whatever program
- * created the SVG file. For instance, this parameter is controlled by
+ * The visibility of a shape is usually controlled by whatever program
+ * created the SVG file. For instance, this parameter is controlled by
* showing or hiding the shape in the layers palette in Adobe Illustrator.
- *
+ *
* ( end auto-generated )
* @webref pshape:mathod
* @usage web_application
@@ -307,11 +307,11 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_disableStyle.xml )
- *
- * Disables the shape's style data and uses Processing's current styles.
- * Styles include attributes such as colors, stroke weight, and stroke
- * joints.
- *
+ *
+ * Disables the shape's style data and uses Processing's current styles.
+ * Styles include attributes such as colors, stroke weight, and stroke
+ * joints.
+ *
* ( end auto-generated )
* Advanced
* Overrides this shape's style information and uses PGraphics styles and
@@ -332,13 +332,13 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_enableStyle.xml )
- *
- * Enables the shape's style data and ignores Processing's current styles.
- * Styles include attributes such as colors, stroke weight, and stroke
- * joints.
- *
+ *
+ * Enables the shape's style data and ignores Processing's current styles.
+ * Styles include attributes such as colors, stroke weight, and stroke
+ * joints.
+ *
* ( end auto-generated )
- *
+ *
* @webref pshape:method
* @usage web_application
* @brief Enables the shape's style data and ignores the Processing styles
@@ -398,55 +398,55 @@ public class PShape implements PConstants {
public boolean is3D() {
return false;
}
-
-
- ///////////////////////////////////////////////////////////
-
+
+
+ ///////////////////////////////////////////////////////////
+
//
-
- // Drawing methods
-
+
+ // Drawing methods
+
public void texture(PImage tex) {
}
-
+
public void noTexture() {
- }
-
- public void solid(boolean solid) {
- }
-
- public void beginContour() {
- }
-
- public void endContour() {
- }
-
- public void vertex(float x, float y) {
}
- public void vertex(float x, float y, float u, float v) {
+ public void solid(boolean solid) {
}
-
+
+ public void beginContour() {
+ }
+
+ public void endContour() {
+ }
+
+ public void vertex(float x, float y) {
+ }
+
+ public void vertex(float x, float y, float u, float v) {
+ }
+
public void vertex(float x, float y, float z) {
}
public void vertex(float x, float y, float z, float u, float v) {
- }
-
+ }
+
public void normal(float nx, float ny, float nz) {
}
public void end() {
- }
+ }
+
+ public void end(int mode) {
+ }
- public void end(int mode) {
- }
-
//////////////////////////////////////////////////////////////
// STROKE CAP/JOIN/WEIGHT
-
+
public void strokeWeight(float weight) {
}
@@ -454,8 +454,8 @@ public class PShape implements PConstants {
}
public void strokeCap(int cap) {
- }
-
+ }
+
//////////////////////////////////////////////////////////////
// FILL COLOR
@@ -479,107 +479,107 @@ public class PShape implements PConstants {
}
public void fill(float x, float y, float z, float a) {
- }
-
+ }
+
//////////////////////////////////////////////////////////////
- // STROKE COLOR
-
+ // STROKE COLOR
+
public void noStroke() {
- }
-
+ }
+
public void stroke(int rgb) {
- }
-
+ }
+
public void stroke(int rgb, float alpha) {
}
-
+
public void stroke(float gray) {
}
-
+
public void stroke(float gray, float alpha) {
}
public void stroke(float x, float y, float z) {
}
-
+
public void stroke(float x, float y, float z, float alpha) {
}
-
+
//////////////////////////////////////////////////////////////
- // TINT COLOR
-
-
+ // TINT COLOR
+
+
public void noTint() {
- }
-
+ }
+
public void tint(int rgb) {
- }
-
+ }
+
public void tint(int rgb, float alpha) {
}
-
+
public void tint(float gray) {
}
-
+
public void tint(float gray, float alpha) {
}
public void tint(float x, float y, float z) {
}
-
- public void tint(float x, float y, float z, float alpha) {
- }
- ///////////////////////////////////////////////////////////
-
+ public void tint(float x, float y, float z, float alpha) {
+ }
+
+ ///////////////////////////////////////////////////////////
+
//
-
- // Bezier curves
-
-
+
+ // Bezier curves
+
+
public void bezierDetail(int detail) {
- }
-
+ }
+
public void bezierVertex(float x2, float y2,
float x3, float y3,
float x4, float y4) {
}
-
+
public void bezierVertex(float x2, float y2, float z2,
float x3, float y3, float z3,
float x4, float y4, float z4) {
}
-
+
public void quadraticVertex(float cx, float cy,
float x3, float y3) {
- }
-
+ }
+
public void quadraticVertex(float cx, float cy, float cz,
float x3, float y3, float z3) {
}
-
- ///////////////////////////////////////////////////////////
-
+
+ ///////////////////////////////////////////////////////////
+
//
-
+
// Catmull-Rom curves
public void curveDetail(int detail) {
}
-
+
public void curveTightness(float tightness) {
- }
-
+ }
+
public void curveVertex(float x, float y) {
- }
+ }
public void curveVertex(float x, float y, float z) {
}
-
-
-
+
+
+
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@@ -771,8 +771,8 @@ public class PShape implements PConstants {
protected void drawGeometry(PGraphics g) {
// get cache object using g.
-
-
+
+
g.beginShape(kind);
if (style) {
for (int i = 0; i < vertexCount; i++) {
@@ -852,6 +852,7 @@ public class PShape implements PConstants {
// http://dev.processing.org/bugs/show_bug.cgi?id=982
if (vertices == null) return;
+ boolean insideContour = false;
g.beginShape();
if (vertexCodeCount == 0) { // each point is a simple vertex
@@ -908,7 +909,11 @@ public class PShape implements PConstants {
index++;
case BREAK:
- g.breakShape();
+ if (insideContour) {
+ g.endContour();
+ }
+ g.beginContour();
+ insideContour = true;
}
}
} else { // drawing a 3D path
@@ -942,11 +947,18 @@ public class PShape implements PConstants {
index++;
case BREAK:
- g.breakShape();
+ if (insideContour) {
+ g.endContour();
+ }
+ g.beginContour();
+ insideContour = true;
}
}
}
}
+ if (insideContour) {
+ g.endContour();
+ }
g.endShape(close ? CLOSE : OPEN);
}
@@ -969,11 +981,11 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_getChild.xml )
- *
- * Extracts a child shape from a parent shape. Specify the name of the
- * shape with the target parameter. The shape is returned as a
+ *
+ * Extracts a child shape from a parent shape. Specify the name of the
+ * shape with the target parameter. The shape is returned as a
* PShape object, or null is returned if there is an error.
- *
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -1104,19 +1116,19 @@ public class PShape implements PConstants {
}
return -1;
}
-
-
- public void updateRoot(PShape root) {
+
+
+ public void updateRoot(PShape root) {
}
-
+
protected void modified() {
modified = true;
if (parent != null) {
parent.modified();
}
}
-
+
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
@@ -1149,20 +1161,20 @@ public class PShape implements PConstants {
public float getParam(int index) {
return params[index];
}
-
+
public void setParams(float[] source) {
if (params == null) {
- params = new float[source.length];
- }
+ params = new float[source.length];
+ }
if (source.length != params.length) {
PGraphics.showWarning("Wrong number of parameters");
return;
}
PApplet.arrayCopy(source, params);
- }
-
-
+ }
+
+
public int getVertexCount() {
return vertexCount;
}
@@ -1253,30 +1265,30 @@ public class PShape implements PConstants {
// these each call matrix.translate, etc
// if matrix is null when one is called,
// it is created and set to identity
-
+
public void center(float cx, float cy) {
-
+
}
-
+
public void center(float cx, float cy, float cz) {
-
+
}
/**
* ( begin auto-generated from PShape_translate.xml )
- *
- * Specifies an amount to displace the shape. The x parameter
- * specifies left/right translation, the y parameter specifies
- * up/down translation, and the z parameter specifies translations
- * toward/away from the screen. Subsequent calls to the method accumulates
- * the effect. For example, calling translate(50, 0) and then
- * translate(20, 0) is the same as translate(70, 0). This
- * transformation is applied directly to the shape, it's not refreshed each
- * time draw() is run.
+ *
+ * Specifies an amount to displace the shape. The x parameter
+ * specifies left/right translation, the y parameter specifies
+ * up/down translation, and the z parameter specifies translations
+ * toward/away from the screen. Subsequent calls to the method accumulates
+ * the effect. For example, calling translate(50, 0) and then
+ * translate(20, 0) is the same as translate(70, 0). This
+ * transformation is applied directly to the shape, it's not refreshed each
+ * time draw() is run.
*
- * Using this method with the z parameter requires using the P3D
- * parameter in combination with size.
- *
+ * Using this method with the z parameter requires using the P3D
+ * parameter in combination with size.
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -1299,21 +1311,21 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_rotateX.xml )
- *
- * Rotates a shape around the x-axis the amount specified by the
- * angle parameter. Angles should be specified in radians (values
+ *
+ * Rotates a shape around the x-axis the amount specified by the
+ * angle parameter. Angles should be specified in radians (values
* from 0 to TWO_PI) or converted to radians with the radians() method.
*
- * Shapes are always rotated around the upper-left corner of their bounding
- * box. Positive numbers rotate objects in a clockwise direction.
- * Subsequent calls to the method accumulates the effect. For example,
- * calling rotateX(HALF_PI) and then rotateX(HALF_PI) is the
- * same as rotateX(PI). This transformation is applied directly to
- * the shape, it's not refreshed each time draw() is run.
+ * Shapes are always rotated around the upper-left corner of their bounding
+ * box. Positive numbers rotate objects in a clockwise direction.
+ * Subsequent calls to the method accumulates the effect. For example,
+ * calling rotateX(HALF_PI) and then rotateX(HALF_PI) is the
+ * same as rotateX(PI). This transformation is applied directly to
+ * the shape, it's not refreshed each time draw() is run.
*
- * This method requires a 3D renderer. You need to use P3D as a third
+ * This method requires a 3D renderer. You need to use P3D as a third
* parameter for the size() function as shown in the example above.
- *
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -1326,23 +1338,23 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_rotateY.xml )
- *
- * Rotates a shape around the y-axis the amount specified by the
- * angle parameter. Angles should be specified in radians (values
+ *
+ * Rotates a shape around the y-axis the amount specified by the
+ * angle parameter. Angles should be specified in radians (values
* from 0 to TWO_PI) or converted to radians with the radians() method.
*
- * Shapes are always rotated around the upper-left corner of their bounding
- * box. Positive numbers rotate objects in a clockwise direction.
- * Subsequent calls to the method accumulates the effect. For example,
- * calling rotateY(HALF_PI) and then rotateY(HALF_PI) is the
- * same as rotateY(PI). This transformation is applied directly to
- * the shape, it's not refreshed each time draw() is run.
+ * Shapes are always rotated around the upper-left corner of their bounding
+ * box. Positive numbers rotate objects in a clockwise direction.
+ * Subsequent calls to the method accumulates the effect. For example,
+ * calling rotateY(HALF_PI) and then rotateY(HALF_PI) is the
+ * same as rotateY(PI). This transformation is applied directly to
+ * the shape, it's not refreshed each time draw() is run.
*
- * This method requires a 3D renderer. You need to use P3D as a third
+ * This method requires a 3D renderer. You need to use P3D as a third
* parameter for the size() function as shown in the example above.
- *
+ *
* ( end auto-generated )
- *
+ *
* @webref pshape:method
* @usage web_application
* @brief Rotates the shape around the y-axis
@@ -1358,21 +1370,21 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_rotateZ.xml )
- *
- * Rotates a shape around the z-axis the amount specified by the
- * angle parameter. Angles should be specified in radians (values
+ *
+ * Rotates a shape around the z-axis the amount specified by the
+ * angle parameter. Angles should be specified in radians (values
* from 0 to TWO_PI) or converted to radians with the radians() method.
*
- * Shapes are always rotated around the upper-left corner of their bounding
- * box. Positive numbers rotate objects in a clockwise direction.
- * Subsequent calls to the method accumulates the effect. For example,
- * calling rotateZ(HALF_PI) and then rotateZ(HALF_PI) is the
- * same as rotateZ(PI). This transformation is applied directly to
- * the shape, it's not refreshed each time draw() is run.
+ * Shapes are always rotated around the upper-left corner of their bounding
+ * box. Positive numbers rotate objects in a clockwise direction.
+ * Subsequent calls to the method accumulates the effect. For example,
+ * calling rotateZ(HALF_PI) and then rotateZ(HALF_PI) is the
+ * same as rotateZ(PI). This transformation is applied directly to
+ * the shape, it's not refreshed each time draw() is run.
*
- * This method requires a 3D renderer. You need to use P3D as a third
+ * This method requires a 3D renderer. You need to use P3D as a third
* parameter for the size() function as shown in the example above.
- *
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -1385,19 +1397,19 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_rotate.xml )
- *
- * Rotates a shape the amount specified by the angle parameter.
- * Angles should be specified in radians (values from 0 to TWO_PI) or
+ *
+ * Rotates a shape the amount specified by the angle parameter.
+ * Angles should be specified in radians (values from 0 to TWO_PI) or
* converted to radians with the radians() method.
*
- * Shapes are always rotated around the upper-left corner of their bounding
- * box. Positive numbers rotate objects in a clockwise direction.
- * Transformations apply to everything that happens after and subsequent
- * calls to the method accumulates the effect. For example, calling
- * rotate(HALF_PI) and then rotate(HALF_PI) is the same as
- * rotate(PI). This transformation is applied directly to the shape,
- * it's not refreshed each time draw() is run.
- *
+ * Shapes are always rotated around the upper-left corner of their bounding
+ * box. Positive numbers rotate objects in a clockwise direction.
+ * Transformations apply to everything that happens after and subsequent
+ * calls to the method accumulates the effect. For example, calling
+ * rotate(HALF_PI) and then rotate(HALF_PI) is the same as
+ * rotate(PI). This transformation is applied directly to the shape,
+ * it's not refreshed each time draw() is run.
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -1422,19 +1434,19 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_scale.xml )
- *
- * Increases or decreases the size of a shape by expanding and contracting
- * vertices. Shapes always scale from the relative origin of their bounding
- * box. Scale values are specified as decimal percentages. For example, the
- * method call scale(2.0) increases the dimension of a shape by
- * 200%. Subsequent calls to the method multiply the effect. For example,
- * calling scale(2.0) and then scale(1.5) is the same as
- * scale(3.0). This transformation is applied directly to the shape,
- * it's not refreshed each time draw() is run.
+ *
+ * Increases or decreases the size of a shape by expanding and contracting
+ * vertices. Shapes always scale from the relative origin of their bounding
+ * box. Scale values are specified as decimal percentages. For example, the
+ * method call scale(2.0) increases the dimension of a shape by
+ * 200%. Subsequent calls to the method multiply the effect. For example,
+ * calling scale(2.0) and then scale(1.5) is the same as
+ * scale(3.0). This transformation is applied directly to the shape,
+ * it's not refreshed each time draw() is run.
*
- * Using this method with the z parameter requires using the P3D
- * parameter in combination with size.
- *
+ * Using this method with the z parameter requires using the P3D
+ * parameter in combination with size.
+ *
* ( end auto-generated )
* @webref pshape:method
* @usage web_application
@@ -1467,10 +1479,10 @@ public class PShape implements PConstants {
/**
* ( begin auto-generated from PShape_resetMatrix.xml )
- *
- * Replaces the current matrix of a shape with the identity matrix. The
- * equivalent function in OpenGL is glLoadIdentity().
- *
+ *
+ * Replaces the current matrix of a shape with the identity matrix. The
+ * equivalent function in OpenGL is glLoadIdentity().
+ *
* ( end auto-generated )
* @webref pshape:method
* @brief Replaces the current matrix of a shape with the identity matrix
@@ -1576,7 +1588,7 @@ public class PShape implements PConstants {
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-
+
public void colorMode(int mode) {
colorMode(mode, colorModeX, colorModeY, colorModeZ, colorModeA);
}
@@ -1620,8 +1632,8 @@ public class PShape implements PConstants {
(colorModeA == 255) && (colorModeX == 255) &&
(colorModeY == 255) && (colorModeZ == 255);
}
-
-
+
+
protected void colorCalc(int rgb) {
if (((rgb & 0xff000000) == 0) && (rgb <= colorModeX)) {
colorCalc((float) rgb);
@@ -1746,5 +1758,5 @@ public class PShape implements PConstants {
calcB = calcBi / 255.0f;
calcAlpha = (calcAi != 255);
}
-
+
}
\ No newline at end of file
diff --git a/core/todo.txt b/core/todo.txt
index af7432ba8..971301a89 100644
--- a/core/todo.txt
+++ b/core/todo.txt
@@ -16,6 +16,8 @@ _ docs: P2D and P3D are now OpenGL variations
X add createGraphics() with no renderer param to point to JAVA2D
X also added to Android
_ add to docs
+X CENTER_RADIUS, CENTER_DIAMETER, NORMALIZED have been removed
+_ update changes Wiki
andres
A polygon shapes without fill slowdown render progressively