diff --git a/java/libraries/dxf/examples/SimpleExport/SimpleExport.pde b/java/libraries/dxf/examples/SimpleExport/SimpleExport.pde index 43c6c0dc35..554a99696c 100644 --- a/java/libraries/dxf/examples/SimpleExport/SimpleExport.pde +++ b/java/libraries/dxf/examples/SimpleExport/SimpleExport.pde @@ -7,7 +7,7 @@ import processing.dxf.*; -boolean record = false; +boolean isRecording = false; void setup() { size(400, 400, P3D); @@ -16,7 +16,7 @@ void setup() { } void draw() { - if (record == true) { + if (isRecording == true) { beginRaw(DXF, "output.dxf"); // Start recording to the file } lights(); @@ -34,15 +34,15 @@ void draw() { } } } - if (record == true) { + if (isRecording == true) { endRaw(); - record = false; // Stop recording to the file + isRecording = false; // Stop recording to the file } } void keyPressed() { if (key == 'R' || key == 'r') { // Press R to save the file - record = true; + isRecording = true; } } diff --git a/java/libraries/dxf/src/processing/dxf/RawDXF.java b/java/libraries/dxf/src/processing/dxf/RawDXF.java index 1a603e0053..d29ad45116 100644 --- a/java/libraries/dxf/src/processing/dxf/RawDXF.java +++ b/java/libraries/dxf/src/processing/dxf/RawDXF.java @@ -42,7 +42,7 @@ *
  * import processing.dxf.*;
  *
- * boolean record;
+ * boolean isRecording;
  *
  * void setup() {
  *   size(500, 500, P3D);
@@ -50,19 +50,19 @@
  *
  * void keyPressed() {
  *   // use a key press so that it doesn't make a million files
- *   if (key == 'r') record = true;
+ *   if (key == 'r') isRecording = true;
  * }
  *
  * void draw() {
- *   if (record) {
+ *   if (isRecording) {
  *     beginRaw(DXF, "output.dxf");
  *   }
  *
  *   // do all your drawing here
  *
- *   if (record) {
+ *   if (isRecording) {
  *     endRaw();
- *     record = false;
+ *     isRecording = false;
  *   }
  * }
  * 
@@ -70,7 +70,7 @@ *
  * import processing.dxf.*;
  *
- * boolean record;
+ * boolean isRecording;
  * RawDXF dxf;
  *
  * void setup() {
@@ -79,25 +79,25 @@
  *
  * void keyPressed() {
  *   // use a key press so that it doesn't make a million files
- *   if (key == 'r') record = true;
+ *   if (key == 'r') isRecording = true;
  * }
  *
  * void draw() {
- *   if (record) {
+ *   if (isRecording) {
  *     dxf = (RawDXF) createGraphics(width, height, DXF, "output.dxf");
  *     beginRaw(dxf);
  *   }
  *
  *   // do all your drawing here, and to set the layer, call:
- *   // if (record) {
+ *   // if (isRecording) {
  *   //   dxf.setLayer(num);
  *   // }
  *   // where 'num' is an integer.
  *   // the default is zero, or you can set it to whatever.
  *
- *   if (record) {
+ *   if (isRecording) {
  *     endRaw();
- *     record = false;
+ *     isRecording = false;
  *     dxf = null;
  *   }
  * }
diff --git a/java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde b/java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde
new file mode 100644
index 0000000000..a95031f46f
--- /dev/null
+++ b/java/libraries/svg/examples/NoScreenDisplay/NoScreenDisplay.pde
@@ -0,0 +1,23 @@
+/**
+ * SVG Export (No Screen Display)
+ * 
+ * This example draws a single frame to a SVG file and quits. 
+ * (Note that no display window will open; this helps when you're 
+ * trying to create massive SVG images that are far larger than 
+ * the screen size.)
+ */
+
+import processing.svg.*;
+
+void setup() {
+  size(400, 400, SVG, "filename.svg");
+}
+
+void draw() {
+  // Draw something good here
+  line(0, 0, width/2, height);
+
+  // Exit the program
+  println("Finished.");
+  exit();
+}
diff --git a/java/libraries/svg/examples/SingleFrameFromAnimation/SingleFrameFromAnimation.pde b/java/libraries/svg/examples/SingleFrameFromAnimation/SingleFrameFromAnimation.pde
new file mode 100644
index 0000000000..a8688ca52c
--- /dev/null
+++ b/java/libraries/svg/examples/SingleFrameFromAnimation/SingleFrameFromAnimation.pde
@@ -0,0 +1,36 @@
+/**
+ * Single Frame from an Animation (With Screen Display)
+ * 
+ * It's also possible to save one frame from a program with 
+ * moving elements. Create a boolean variable to turn the SVG 
+ * recording process on and off.
+ */
+
+import processing.svg.*;
+
+boolean isRecording;
+
+void setup() {
+  size(400, 400);
+}
+
+void draw() {
+  if (isRecording) {
+    // Note that #### will be replaced with the frame number. Fancy!
+    beginRecord(SVG, "frame-####.svg");
+  }
+
+  // Draw something good here
+  background(255);
+  line(mouseX, mouseY, width/2, height/2);
+
+  if (isRecording) {
+    endRecord();
+    isRecording = false;
+  }
+}
+
+// Use a mouse press so thousands of files aren't created
+void mousePressed() {
+  isRecording = true;
+}
diff --git a/java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde b/java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde
new file mode 100644
index 0000000000..25bb937ccc
--- /dev/null
+++ b/java/libraries/svg/examples/ThreeDGeometry/ThreeDGeometry.pde
@@ -0,0 +1,49 @@
+/**
+ * SVG Files from 3D Geometry (With Screen Display)
+ * 
+ * To create vectors from 3D data, use the beginRaw() and 
+ * endRaw() commands. These commands will grab the shape data 
+ * just before it is rendered to the screen. At this stage, 
+ * your entire scene is nothing but a long list of lines and 
+ * triangles. This means that a shape created with sphere() 
+ * method will be made up of hundreds of triangles, rather 
+ * than a single object.
+ * 
+ * When using beginRaw() and endRaw(), it's possible to write 
+ * to either a 2D or 3D renderer. For instance, beginRaw() 
+ * with the SVG library will write the geometry as flattened 
+ * triangles and lines.
+ */
+
+import processing.svg.*;
+
+boolean isRecording;
+
+void setup() {
+  size(500, 500, P3D);
+}
+
+void draw() {
+  if (isRecording) {
+    beginRaw(SVG, "output.svg");
+  }
+
+  // Do all your drawing here
+  background(204);
+  translate(width/2, height/2, -200);
+  rotateZ(0.2);
+  rotateY(mouseX/500.0);
+  box(200);
+
+  if (isRecording) {
+    endRaw();
+    isRecording = false;
+  }
+}
+
+// Hit 'r' to record a single frame
+void keyPressed() {
+  if (key == 'r') {
+    isRecording = true;
+  }
+}
diff --git a/java/libraries/svg/examples/UsingCreateGraphics/UsingCreateGraphics.pde b/java/libraries/svg/examples/UsingCreateGraphics/UsingCreateGraphics.pde
new file mode 100644
index 0000000000..ad7cf8377e
--- /dev/null
+++ b/java/libraries/svg/examples/UsingCreateGraphics/UsingCreateGraphics.pde
@@ -0,0 +1,17 @@
+/**
+ * Using createGraphics() to Create an SVG File
+ * 
+ * To write a SVG file using only the createGraphics() command, 
+ * rather than as part of a sketch, it's necessary to call 
+ * dispose() on the PGraphicsSVG object. This is the same as 
+ * calling exit(), but it won't quit the sketch.
+ */
+
+import processing.svg.*;
+
+PGraphics svg = createGraphics(300, 300, SVG, "output.svg");
+svg.beginDraw();
+svg.background(128, 0, 0);
+svg.line(50, 50, 250, 250);
+svg.dispose();
+svg.endDraw();
diff --git a/java/libraries/svg/examples/WithScreenDisplay/WithScreenDisplay.pde b/java/libraries/svg/examples/WithScreenDisplay/WithScreenDisplay.pde
new file mode 100644
index 0000000000..6f22b2f03c
--- /dev/null
+++ b/java/libraries/svg/examples/WithScreenDisplay/WithScreenDisplay.pde
@@ -0,0 +1,24 @@
+/**
+ * SVG Export (With Screen Display)
+ * 
+ * To draw to the screen while also saving an SVG, use the 
+ * beginRecord() and endRecord() functions. Unlike the PDF 
+ * renderer, the SVG renderer will only save the final frame 
+ * of a sequence. This is slower, but is useful when you need 
+ * to see what you're working on as it saves.
+ */
+
+import processing.svg.*;
+
+void setup() {
+  size(400, 400);
+  noLoop();
+  beginRecord(SVG, "filename.svg");
+}
+
+void draw() {
+  // Draw something good here
+  line(0, 0, width/2, height);
+
+  endRecord();
+}