diff --git a/core/src/processing/core/PShape.java b/core/src/processing/core/PShape.java index c26217adb..927f8f512 100644 --- a/core/src/processing/core/PShape.java +++ b/core/src/processing/core/PShape.java @@ -197,7 +197,8 @@ 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? @@ -389,7 +390,161 @@ public class PShape implements PConstants { public boolean is3D() { return false; } + + + /////////////////////////////////////////////////////////// + + // + + // 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 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) { + } + + ////////////////////////////////////////////////////////////// + + // STROKE CAP/JOIN/WEIGHT + + + public void strokeWeight(float weight) { + } + + public void strokeJoin(int join) { + } + + public void strokeCap(int cap) { + } + + ////////////////////////////////////////////////////////////// + + // FILL COLOR + + public void noFill() { + } + + public void fill(int rgb) { + } + + public void fill(int rgb, float alpha) { + } + + public void fill(float gray) { + } + + public void fill(float gray, float alpha) { + } + + public void fill(float x, float y, float z) { + } + + public void fill(float x, float y, float z, float a) { + } + + ////////////////////////////////////////////////////////////// + + // 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) { + } + + /////////////////////////////////////////////////////////// + + // + + // 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) { + } + + + // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @@ -915,13 +1070,11 @@ public class PShape implements PConstants { return -1; } - -// public PShape createGroup() { -// PShape group = new PShape(); -// group.kind = GROUP; -// addChild(group); -// return group; -// } + public void addShape(PShape child) { + } + + public void updateRoot(PShape root) { + } // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/java/libraries/opengl/examples/Retained/PolyRetain/PolyRetain.pde b/java/libraries/opengl/examples/Retained/PolyRetain/PolyRetain.pde index 54b260c06..80d06279b 100755 --- a/java/libraries/opengl/examples/Retained/PolyRetain/PolyRetain.pde +++ b/java/libraries/opengl/examples/Retained/PolyRetain/PolyRetain.pde @@ -1,6 +1,6 @@ size(100, 100, P3D); -PShape3D obj = (PShape3D)createShape(POLYGON); +PShape obj = createShape(POLYGON); obj.fill(0, 255, 0, 255); obj.stroke(0, 0, 255, 255); obj.strokeWeight(5); diff --git a/java/libraries/opengl/examples/Retained/Primitive/Primitive.pde b/java/libraries/opengl/examples/Retained/Primitive/Primitive.pde index 6d94fafda..03442c482 100644 --- a/java/libraries/opengl/examples/Retained/Primitive/Primitive.pde +++ b/java/libraries/opengl/examples/Retained/Primitive/Primitive.pde @@ -1,4 +1,4 @@ -PShape3D circle; +PShape circle; public void setup() { size(400, 400, P3D); @@ -7,7 +7,7 @@ public void setup() { fill(255, 0, 0); stroke(0, 0, 255); strokeWeight(3); - circle = (PShape3D) createShape(ELLIPSE, 0, 0, 100, 100); + circle = createShape(ELLIPSE, 0, 0, 100, 100); } public void draw () { @@ -18,7 +18,6 @@ public void draw () { circle.stroke(0, 0, map(mouseY, 0, height, 255, 0)); } - translate(mouseX, mouseY); shape(circle); } diff --git a/java/libraries/opengl/examples/Retained/Shape2_18/Shape2_18.pde b/java/libraries/opengl/examples/Retained/Shape2_18/Shape2_18.pde index 8403caa95..6327696de 100755 --- a/java/libraries/opengl/examples/Retained/Shape2_18/Shape2_18.pde +++ b/java/libraries/opengl/examples/Retained/Shape2_18/Shape2_18.pde @@ -1,7 +1,7 @@ size(100, 100, P3D); smooth(); -PShape3D obj = (PShape3D)createShape(); +PShape obj = createShape(); obj.noFill(); obj.stroke(0); obj.strokeWeight(1); diff --git a/java/libraries/opengl/src/processing/opengl/PShape3D.java b/java/libraries/opengl/src/processing/opengl/PShape3D.java index 9b60ba375..dad083e3c 100644 --- a/java/libraries/opengl/src/processing/opengl/PShape3D.java +++ b/java/libraries/opengl/src/processing/opengl/PShape3D.java @@ -294,6 +294,27 @@ public class PShape3D extends PShape { } } + public void addShape(PShape child) { + if (family == GROUP) { + super.addChild(child); + child.updateRoot(root); + root.modified = true; + modified = true; + child.modified = true; + } else { + PGraphics.showWarning("Cannot add child shape to non-group shape."); + } + } + + public void updateRoot(PShape root) { + this.root = (PShape3D) root; + if (family == GROUP) { + for (int i = 0; i < childCount; i++) { + PShape3D child = (PShape3D)children[i]; + child.updateRoot(root); + } + } + } protected void finalize() throws Throwable { try { @@ -1651,28 +1672,6 @@ public class PShape3D extends PShape { getGl().glBindBuffer(GL.GL_ARRAY_BUFFER, 0); } - public void addShape(PShape3D child) { - if (family == GROUP) { - super.addChild(child); - child.updateRoot(root); - root.modified = true; - modified = true; - child.modified = true; - } else { - PGraphics.showWarning("Cannot add child shape to non-group shape."); - } - } - - private void updateRoot(PShape3D root) { - this.root = root; - if (family == GROUP) { - for (int i = 0; i < childCount; i++) { - PShape3D child = (PShape3D)children[i]; - child.updateRoot(root); - } - } - } - ///////////////////////////////////////////////////////////