<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>.gitignore</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,11 +1,10 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;classpath&gt;
 	&lt;classpathentry kind=&quot;src&quot; path=&quot;src&quot;/&gt;
-	&lt;classpathentry kind=&quot;src&quot; path=&quot;test&quot;/&gt;
 	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot;/&gt;
-	&lt;classpathentry kind=&quot;lib&quot; path=&quot;/Applications/Processing0135/lib/core.jar&quot;/&gt;
 	&lt;classpathentry kind=&quot;lib&quot; path=&quot;external/batikfont.jar&quot;/&gt;
-	&lt;classpathentry kind=&quot;lib&quot; path=&quot;/Applications/Processing0135/libraries/xml/library/xml.jar&quot;/&gt;
 	&lt;classpathentry kind=&quot;lib&quot; path=&quot;external/junit.jar&quot;/&gt;
+	&lt;classpathentry kind=&quot;var&quot; path=&quot;PROCESSING_PATH/lib/core.jar&quot;/&gt;
+	&lt;classpathentry kind=&quot;var&quot; path=&quot;PROCESSING_PATH/libraries/xml/library/xml.jar&quot;/&gt;
 	&lt;classpathentry kind=&quot;output&quot; path=&quot;bin&quot;/&gt;
 &lt;/classpath&gt;</diff>
      <filename>.classpath</filename>
    </modified>
    <modified>
      <diff>@@ -68,13 +68,11 @@ class FastRClip
   // -----------------
   // --- Constants ---
   // -----------------
-  private static final boolean DEBUG = false;
   
   // Maximum precision for floats
   private static final double GPC_EPSILON = 2.2204460492503131e-016;
   //private static final float GPC_EPSILON = 1.192092896e-07F;
-  //private static final float GPC_EPSILON = 1F;
-  private static final String GPC_VERSION = &quot;2.31&quot;;
+  static final String GPC_VERSION = &quot;2.31&quot;;
   
   private static final int LEFT  = 0;
   private static final int RIGHT = 1;
@@ -150,15 +148,13 @@ class FastRClip
     /* Build LMT */
     LmtTable lmt_table = new LmtTable();
     ScanBeamTreeEntries sbte = new ScanBeamTreeEntries();
-    EdgeTable s_heap = null;
-    EdgeTable c_heap = null;
     if (!subj.isEmpty())
       {
-        s_heap = build_lmt(lmt_table, sbte, subj, SUBJ, op);
+        build_lmt(lmt_table, sbte, subj, SUBJ, op);
       }
     if (!clip.isEmpty())
       {
-        c_heap = build_lmt(lmt_table, sbte, clip, CLIP, op);
+        build_lmt(lmt_table, sbte, clip, CLIP, op);
       }
     
     /* Return a NULL result if no contours contribute */
@@ -742,15 +738,13 @@ class FastRClip
     /* Build LMT */
     LmtTable lmt_table = new LmtTable();
     ScanBeamTreeEntries sbte = new ScanBeamTreeEntries();
-    EdgeTable s_heap = null;
-    EdgeTable c_heap = null;
     if (!subj.isEmpty())
       {
-        s_heap = build_lmt(lmt_table, sbte, subj, SUBJ, op);
+        build_lmt(lmt_table, sbte, subj, SUBJ, op);
       }
     if (!clip.isEmpty())
       {
-        c_heap = build_lmt(lmt_table, sbte, clip, CLIP, op);
+        build_lmt(lmt_table, sbte, clip, CLIP, op);
       }
     
     /* Return a NULL result if no contours contribute */
@@ -2185,7 +2179,7 @@ class FastRClip
   private static class BundleState
   {
     private String state;
-    private BundleState( String state ) { state = state; }
+    private BundleState( String state ) { this.state = state; }
     
     public static final BundleState UNBUNDLED   = new BundleState( &quot;UNBUNDLED&quot;   ); // Isolated edge not within a bundle
     public static final BundleState BUNDLE_HEAD = new BundleState( &quot;BUNDLE_HEAD&quot; ); // Bundle head node
@@ -2708,7 +2702,7 @@ class FastRClip
   // -------------
   // --- DEBUG ---
   // -------------
-  private static void print_sbt( float[] sbt )
+  static void print_sbt( float[] sbt )
   {
     System.out.println(&quot;&quot;);
     System.out.println(&quot;sbt.length=&quot;+sbt.length);</diff>
      <filename>src/geomerative/FastRClip.java</filename>
    </modified>
    <modified>
      <diff>@@ -72,8 +72,7 @@ class RClip
   // Maximum precision for floats
   private static final double GPC_EPSILON = 2.2204460492503131e-016 ;
   //private static final float GPC_EPSILON = 1.192092896e-07F;
-  //private static final float GPC_EPSILON = 1F;
-  private static final String GPC_VERSION = &quot;2.31&quot; ;
+  static final String GPC_VERSION = &quot;2.31&quot;;
   
   private static final int LEFT  = 0 ;
   private static final int RIGHT = 1 ;
@@ -265,11 +264,9 @@ class RClip
     /* Build LMT */
     LmtTable lmt_table = new LmtTable();
     ScanBeamTreeEntries sbte = new ScanBeamTreeEntries();
-    EdgeTable s_heap = null ;
-    EdgeTable c_heap = null ;
     if (!subj.isEmpty())
       {
-        s_heap = build_lmt(lmt_table, sbte, subj, SUBJ, op);
+        build_lmt(lmt_table, sbte, subj, SUBJ, op);
       }
     if( DEBUG )
       {
@@ -279,7 +276,7 @@ class RClip
       }
     if (!clip.isEmpty())
       {
-        c_heap = build_lmt(lmt_table, sbte, clip, CLIP, op);
+        build_lmt(lmt_table, sbte, clip, CLIP, op);
       }
     if( DEBUG )
       {
@@ -899,11 +896,9 @@ class RClip
     /* Build LMT */
     LmtTable lmt_table = new LmtTable();
     ScanBeamTreeEntries sbte = new ScanBeamTreeEntries();
-    EdgeTable s_heap = null ;
-    EdgeTable c_heap = null ;
     if (!subj.isEmpty())
       {
-        s_heap = build_lmt(lmt_table, sbte, subj, SUBJ, op);
+        build_lmt(lmt_table, sbte, subj, SUBJ, op);
       }
     if( DEBUG )
       {
@@ -913,7 +908,7 @@ class RClip
       }
     if (!clip.isEmpty())
       {
-        c_heap = build_lmt(lmt_table, sbte, clip, CLIP, op);
+        build_lmt(lmt_table, sbte, clip, CLIP, op);
       }
     if( DEBUG )
       {</diff>
      <filename>src/geomerative/RClip.java</filename>
    </modified>
    <modified>
      <diff>@@ -644,14 +644,13 @@ public class RCommand extends RGeomElem
    * @invisible
    * */
   public float getCurveLength(float t){
-    float arclength = 0F;
     
     /* limit the value of t between 0 and 1 */
     t = (t &gt; 1F) ? 1F : t;
     t = (t &lt; 0F) ? 0F : t;
     
     float dx, dy, dx2, dy2, t2;
-    float result;
+    
     switch(commandType){
     case LINETO:
       dx = endPoint.x - startPoint.x;
@@ -782,7 +781,7 @@ public class RCommand extends RGeomElem
    * @return RPoint[], the tangent vectors returned in an array.
    * */  
   public RCommand[] split(float t){
-    RCommand[] result;
+    
     switch(commandType)
       {
       case LINETO:
@@ -814,12 +813,12 @@ public class RCommand extends RGeomElem
       }
     }
 
-    RPoint[] controlPoints = this.getHandles();
+    RPoint[] ctrlPoints = this.getHandles();
 
     // Copy control points to triangle matrix
     for(int i = 0; i &lt;= 3; i++){
-      triangleMatrix[0][i].x = controlPoints[i].x;
-      triangleMatrix[0][i].y = controlPoints[i].y;
+      triangleMatrix[0][i].x = ctrlPoints[i].x;
+      triangleMatrix[0][i].y = ctrlPoints[i].y;
     }
     
     // Triangle computation
@@ -844,11 +843,11 @@ public class RCommand extends RGeomElem
       }
     }
     
-    RPoint[] controlPoints = this.getHandles();
+    RPoint[] ctrlPoints = this.getHandles();
 
     // Copy control points to triangle matrix
     for(int i = 0; i &lt;= 2; i++){
-      triangleMatrix[0][i] = controlPoints[i];
+      triangleMatrix[0][i] = ctrlPoints[i];
     }
     
     // Triangle computation
@@ -873,11 +872,11 @@ public class RCommand extends RGeomElem
       }
     }
 
-    RPoint[] controlPoints = this.getHandles();
+    RPoint[] ctrlPoints = this.getHandles();
 
     // Copy control points to triangle matrix
     for(int i = 0; i &lt;= 1; i++){
-      triangleMatrix[0][i] = controlPoints[i];
+      triangleMatrix[0][i] = ctrlPoints[i];
     }
     
     // Triangle computation
@@ -1154,7 +1153,6 @@ public class RCommand extends RGeomElem
     float dt = 1F/steps;
     
     float fx, fy, fdx, fdy;
-    float temp = dt * dt;
     
     fx = startPoint.x;
     fdx = (endPoint.x - startPoint.x) * dt;
@@ -1451,7 +1449,7 @@ public class RCommand extends RGeomElem
     if(steps &lt; 4) steps = 4;
     
     float dt = 1F/steps;
-    float untilPoint = RCommand.segmentAccOffset;
+
     
     float fx, fy, fdx, fdy, fddx, fddy, fdd_per_2x, fdd_per_2y, fix, fiy;
     float temp = dt * dt;</diff>
      <filename>src/geomerative/RCommand.java</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,7 @@
 
 package geomerative ;
 import processing.core.*;
+
 import java.util.List;
 
 /**
@@ -95,7 +96,7 @@ public class RContour extends RGeomElem
     for(int i=0;i&lt;numPoints;i++){
       g.vertex(points[i].x,points[i].y);
     }
-    g.endShape(closed ? RGeomerative.parent().CLOSE : RGeomerative.parent().OPEN);
+    g.endShape(closed ? PConstants.CLOSE : PConstants.OPEN);
     if(beforeFill)
       g.fill(g.fillColor);
   }
@@ -108,7 +109,7 @@ public class RContour extends RGeomElem
     for(int i=0;i&lt;numPoints;i++){
       g.vertex(points[i].x,points[i].y);
     }
-    g.endShape(closed ? RGeomerative.parent().CLOSE : RGeomerative.parent().OPEN);
+    g.endShape(closed ? PConstants.CLOSE : PConstants.OPEN);
     if(beforeFill)
       g.fill(g.g.fillColor);
   }
@@ -220,17 +221,17 @@ public class RContour extends RGeomElem
   }
   
   public RPoint getPoint(float t){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
 
   public RPoint getTangent(float t){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
   
   public RPoint[] getTangents(){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
   </diff>
      <filename>src/geomerative/RContour.java</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,6 @@
 
 package geomerative;
 import processing.core.*;
-import java.io.*;
 import java.awt.Toolkit;
 
 import org.apache.batik.svggen.font.*;</diff>
      <filename>src/geomerative/RFont.java</filename>
    </modified>
    <modified>
      <diff>@@ -347,12 +347,12 @@ public abstract class RGeomElem
 
   protected void setStyle(String styleString){
     //RGeomerative.parent().println(&quot;Style parsing: &quot; + styleString);
-    String[] styleTokens = RGeomerative.parent().splitTokens(styleString, &quot;;&quot;);
+    String[] styleTokens = PApplet.splitTokens(styleString, &quot;;&quot;);
     
     for(int i = 0; i &lt; styleTokens.length; i++){
-      String[] tokens = RGeomerative.parent().splitTokens(styleTokens[i], &quot;:&quot;);
+      String[] tokens = PApplet.splitTokens(styleTokens[i], &quot;:&quot;);
       
-      tokens[0] = RGeomerative.parent().trim(tokens[0]);
+      tokens[0] = PApplet.trim(tokens[0]);
       
       if(tokens[0].equals(&quot;fill&quot;)){
         setFill(tokens[1]);
@@ -379,7 +379,7 @@ public abstract class RGeomElem
         setAlpha(tokens[1]);
         
       }else{
-        RGeomerative.parent().println(&quot;Attribute '&quot; + tokens[0] + &quot;' not known.  Ignoring it.&quot;);
+        PApplet.println(&quot;Attribute '&quot; + tokens[0] + &quot;' not known.  Ignoring it.&quot;);
       }
     }
   }
@@ -438,9 +438,9 @@ public abstract class RGeomElem
   public void setStrokeWeight(String str){
     //RGeomerative.parent().println(&quot;  set strokeWeight by String: &quot; + str);
     if(str.endsWith(&quot;px&quot;)){
-      setStrokeWeight(RGeomerative.parent().parseFloat(str.substring(0, str.length() - 2)));
+      setStrokeWeight(PApplet.parseFloat(str.substring(0, str.length() - 2)));
     }else{
-      setStrokeWeight(RGeomerative.parent().parseFloat(str));
+      setStrokeWeight(PApplet.parseFloat(str));
     }
 
     
@@ -484,7 +484,7 @@ public abstract class RGeomElem
   }
 
   public void setStrokeAlpha(String str){
-    setStrokeAlpha((int)(RGeomerative.parent().parseFloat(str) * 255F));
+    setStrokeAlpha((int)(PApplet.parseFloat(str) * 255F));
   }
 
   public void setFillAlpha(int opacity){
@@ -494,7 +494,7 @@ public abstract class RGeomElem
 
   public void setFillAlpha(String str){
     //RGeomerative.parent().println(&quot;  set fillOpacity: &quot; + str);
-    setFillAlpha((int)(RGeomerative.parent().parseFloat(str) * 255F));
+    setFillAlpha((int)(PApplet.parseFloat(str) * 255F));
     //RGeomerative.parent().println(&quot;  fillColor after: &quot; + RGeomerative.parent().hex(fillColor));
   }  
 
@@ -525,7 +525,7 @@ public abstract class RGeomElem
 
   public void setAlpha(String str){
     //RGeomerative.parent().println(&quot;Setting string opacity: &quot; + str);
-    setAlpha(RGeomerative.parent().parseFloat(str));
+    setAlpha(PApplet.parseFloat(str));
   }
 
   public void setId(String str){
@@ -533,7 +533,7 @@ public abstract class RGeomElem
   }
 
   protected void calculateCurveLengths(){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
   }
 
   /**
@@ -573,13 +573,13 @@ public abstract class RGeomElem
   }
 
   private int getColor(String colorString){
-    colorString = RGeomerative.parent().trim(colorString);
+    colorString = PApplet.trim(colorString);
     
     if(colorString.startsWith(&quot;#&quot;)){
-      return RGeomerative.parent().unhex(&quot;FF&quot;+colorString.substring(1));
+      return PApplet.unhex(&quot;FF&quot;+colorString.substring(1));
     }else if(colorString.startsWith(&quot;rgb&quot;)){
-      String[] rgb = RGeomerative.parent().splitTokens(colorString, &quot;rgb( , )&quot;);
-      return (int)RGeomerative.parent().color(RGeomerative.parent().parseInt(rgb[0]), RGeomerative.parent().parseInt(rgb[1]), RGeomerative.parent().parseInt(rgb[2]));
+      String[] rgb = PApplet.splitTokens(colorString, &quot;rgb( , )&quot;);
+      return (int)RGeomerative.parent().color(PApplet.parseInt(rgb[0]), PApplet.parseInt(rgb[1]), PApplet.parseInt(rgb[2]));
     }else{
       if(colorString.equals(&quot;black&quot;)){
         return 0;</diff>
      <filename>src/geomerative/RGeomElem.java</filename>
    </modified>
    <modified>
      <diff>@@ -57,6 +57,8 @@ public class RGeomerative implements PConstants{
   static float adaptorLengthOffset = 0F;
 
   public static class LibraryNotInitializedException extends NullPointerException{
+    private static final long serialVersionUID = -3710605630786298671L;
+
     LibraryNotInitializedException(){
       super(&quot;Must call Geomerative.init(this); before using this library.&quot;);
     }
@@ -66,6 +68,10 @@ public class RGeomerative implements PConstants{
     parent = _parent;
     initialized = true;
   }
+  
+  public static boolean initialized() {
+    return initialized;
+  }
 
   protected static PApplet parent(){
     if(parent == null){</diff>
      <filename>src/geomerative/RGeomerative.java</filename>
    </modified>
    <modified>
      <diff>@@ -637,7 +637,6 @@ public class RGroup extends RGeomElem
     RContour c = this.getBounds();
     float xmin = c.points[0].x;
     float xmax = c.points[2].x;
-    float ymin = c.points[0].y;
     float ymax = c.points[2].y;
     
     int numElements = this.countElements();</diff>
      <filename>src/geomerative/RGroup.java</filename>
    </modified>
    <modified>
      <diff>@@ -19,6 +19,8 @@
 
 package geomerative ;
 
+import processing.core.PApplet;
+
 /**
  * RMatrix is a very simple interface for creating, holding 3x3 matrices with the most common 2D affine transformations such as translation, rotation, scaling and shearing.  We only have access to the first to rows of the matrix the last row is considered a constant 0, 0, 1 in order to have better performance.
  * @eexample RMatrix
@@ -81,19 +83,19 @@ public class RMatrix
   }
   
   public RMatrix(String transformationString){
-    String[] transfTokens = RGeomerative.parent().splitTokens(transformationString, &quot;)&quot;);
+    String[] transfTokens = PApplet.splitTokens(transformationString, &quot;)&quot;);
     
     // Loop through all transformations
     for(int i=0; i&lt;transfTokens.length; i++){
       // Check the transformation and the parameters
-      String[] transf = RGeomerative.parent().splitTokens(transfTokens[i], &quot;(&quot;);
-      String[] params = RGeomerative.parent().splitTokens(transf[1], &quot;, &quot;);
+      String[] transf = PApplet.splitTokens(transfTokens[i], &quot;(&quot;);
+      String[] params = PApplet.splitTokens(transf[1], &quot;, &quot;);
       float[] fparams = new float[params.length];
       for(int j=0; j&lt;params.length; j++){
-        fparams[j] = RGeomerative.parent().parseFloat(params[j]);
+        fparams[j] = PApplet.parseFloat(params[j]);
       }
       
-      transf[0] = RGeomerative.parent().trim(transf[0]);
+      transf[0] = PApplet.trim(transf[0]);
       
       if(transf[0].equals(&quot;translate&quot;)){
         if(params.length == 1){
@@ -105,10 +107,10 @@ public class RMatrix
         }
       }else if(transf[0].equals(&quot;rotate&quot;)){
         if(params.length == 1){
-          this.rotate(RGeomerative.parent().radians(fparams[0]));
+          this.rotate(PApplet.radians(fparams[0]));
           
         }else if(params.length == 3){
-          this.rotate(RGeomerative.parent().radians(fparams[0]), fparams[1], fparams[2]);
+          this.rotate(PApplet.radians(fparams[0]), fparams[1], fparams[2]);
           
         }
         
@@ -121,10 +123,10 @@ public class RMatrix
         }
         
       }else if(transf[0].equals(&quot;skewX&quot;)){
-        this.skewX(RGeomerative.parent().radians(fparams[0]));
+        this.skewX(PApplet.radians(fparams[0]));
         
       }else if(transf[0].equals(&quot;skewY&quot;)){
-        this.skewY(RGeomerative.parent().radians(fparams[0]));
+        this.skewY(PApplet.radians(fparams[0]));
         
       }else if(transf[0].equals(&quot;matrix&quot;)){
         this.apply(fparams[0], fparams[2], fparams[4], fparams[1], fparams[3], fparams[5]);</diff>
      <filename>src/geomerative/RMatrix.java</filename>
    </modified>
    <modified>
      <diff>@@ -150,7 +150,7 @@ public class RMesh extends RGeomElem
    */
   public void draw(PGraphics g){
     for(int i=0;i&lt;this.countStrips();i++){
-      g.beginShape(g.TRIANGLE_STRIP);
+      g.beginShape(PConstants.TRIANGLE_STRIP);
       if(this.texture != null)
         {
           g.texture(this.texture);
@@ -173,7 +173,7 @@ public class RMesh extends RGeomElem
             g.vertex(x, y);
           }
       }
-      g.endShape(g.CLOSE);
+      g.endShape(PConstants.CLOSE);
     }
     
     
@@ -181,7 +181,7 @@ public class RMesh extends RGeomElem
   
   public void draw(PApplet g){
     for(int i=0;i&lt;this.countStrips();i++){
-      g.beginShape(g.TRIANGLE_STRIP);
+      g.beginShape(PConstants.TRIANGLE_STRIP);
       if(this.texture != null)
         {
           g.texture(this.texture);
@@ -189,7 +189,7 @@ public class RMesh extends RGeomElem
       for(int j=0;j&lt;this.strips[i].vertices.length;j++){
         g.vertex(this.strips[i].vertices[j].x,this.strips[i].vertices[j].y);
       }
-      g.endShape(g.CLOSE);
+      g.endShape(PConstants.CLOSE);
     }
   }		
   
@@ -321,17 +321,17 @@ public class RMesh extends RGeomElem
   }
   
   public RPoint getPoint(float t){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
 
   public RPoint getTangent(float t){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
   
   public RPoint[] getTangents(){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
   </diff>
      <filename>src/geomerative/RMesh.java</filename>
    </modified>
    <modified>
      <diff>@@ -683,17 +683,17 @@ public class RPolygon extends RGeomElem
   }
 
   public RPoint getPoint(float t){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
 
   public RPoint getTangent(float t){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
   
   public RPoint[] getTangents(){
-    RGeomerative.parent().println(&quot;Feature not yet implemented for this class.&quot;);
+    PApplet.println(&quot;Feature not yet implemented for this class.&quot;);
     return null;
   }
 </diff>
      <filename>src/geomerative/RPolygon.java</filename>
    </modified>
    <modified>
      <diff>@@ -21,8 +21,6 @@ package geomerative;
 
 import processing.core.*;
 import processing.xml.*;
-import java.lang.*;
-import java.io.*;
 
 public class RSVG
 {    
@@ -121,7 +119,7 @@ public class RSVG
         // Do nothing normally we should make a hashmap 
         // to apply everytime they are called in the actual objects
       }else{
-        RGeomerative.parent().println(&quot;Element '&quot; + name + &quot;' not know. Ignoring it.&quot;);
+        PApplet.println(&quot;Element '&quot; + name + &quot;' not know. Ignoring it.&quot;);
       }
       
       // If the geometrical element has been correctly created
@@ -300,7 +298,7 @@ public class RSVG
           {
           case '-':
             if(charline[i-1] != 'e' &amp;&amp; charline[i-1] != 'E'){
-              charline=RGeomerative.parent().splice(charline,' ',i);
+              charline=PApplet.splice(charline,' ',i);
               i++;
             }
             break;
@@ -313,10 +311,10 @@ public class RSVG
           }
       }
     String formatted=new String(charline);
-    String tags[]=RGeomerative.parent().splitTokens(formatted,&quot;, &quot;);
+    String tags[]=PApplet.splitTokens(formatted,&quot;, &quot;);
     for(int i=0;i&lt;tags.length;i++){
-      float x = RGeomerative.parent().parseFloat(tags[i]);
-      float y = RGeomerative.parent().parseFloat(tags[i+1]);
+      float x = PApplet.parseFloat(tags[i]);
+      float y = PApplet.parseFloat(tags[i+1]);
       i++;
       if(first){
         poly.addMoveTo(x,y);
@@ -359,15 +357,15 @@ public class RSVG
           case 'h':
           case 'V':
           case 'v':
-            charline = RGeomerative.parent().splice(charline,' ',i);
+            charline = PApplet.splice(charline,' ',i);
             i ++;
-            charline = RGeomerative.parent().splice(charline,' ',i+1);
+            charline = PApplet.splice(charline,' ',i+1);
             i ++;      
             break;
             
           case '-':
             if(charline[i-1] != 'e' &amp;&amp; charline[i-1] != 'E'){
-              charline=RGeomerative.parent().splice(charline,' ',i);
+              charline=PApplet.splice(charline,' ',i);
               i++;
             }
             break;            
@@ -381,11 +379,11 @@ public class RSVG
           }
       }
     String formatted = new String(charline);
-    String[] tags = RGeomerative.parent().splitTokens(formatted);
+    String[] tags = PApplet.splitTokens(formatted);
 
-    //RGeomerative.parent().println(&quot;formatted: &quot; + formatted);
-    //RGeomerative.parent().println(&quot;tags: &quot;);
-    //RGeomerative.parent().println(tags);
+    //PApplet.println(&quot;formatted: &quot; + formatted);
+    //PApplet.println(&quot;tags: &quot;);
+    //PApplet.println(tags);
 
     //build points
     RPoint curp = new RPoint();
@@ -471,9 +469,9 @@ public class RSVG
   }  
 
   private int move(RShape shp, RPoint curp, RPoint relp, RPoint refp, RPoint strp, String[] tags, int i){
-    shp.addMoveTo(RGeomerative.parent().parseFloat(tags[i])+relp.x, RGeomerative.parent().parseFloat(tags[i+1])+relp.y);
+    shp.addMoveTo(PApplet.parseFloat(tags[i])+relp.x, PApplet.parseFloat(tags[i+1])+relp.y);
 
-    curp.setLocation(RGeomerative.parent().parseFloat(tags[i])+relp.x, RGeomerative.parent().parseFloat(tags[i+1])+relp.y);
+    curp.setLocation(PApplet.parseFloat(tags[i])+relp.x, PApplet.parseFloat(tags[i+1])+relp.y);
     refp.setLocation(curp.x,curp.y);
     strp.setLocation(curp.x,curp.y);
     //relp.setLocation(0F, 0F);
@@ -481,41 +479,41 @@ public class RSVG
   }
 
   private int curve(RShape shp, RPoint curp, RPoint relp, RPoint refp, RPoint strp, String[] tags, int i){
-    shp.addBezierTo(RGeomerative.parent().parseFloat(tags[i])+relp.x, RGeomerative.parent().parseFloat(tags[i+1])+relp.y, RGeomerative.parent().parseFloat(tags[i+2])+relp.x, RGeomerative.parent().parseFloat(tags[i+3])+relp.y, RGeomerative.parent().parseFloat(tags[i+4])+relp.x, RGeomerative.parent().parseFloat(tags[i+5])+relp.y);
+    shp.addBezierTo(PApplet.parseFloat(tags[i])+relp.x, PApplet.parseFloat(tags[i+1])+relp.y, PApplet.parseFloat(tags[i+2])+relp.x, PApplet.parseFloat(tags[i+3])+relp.y, PApplet.parseFloat(tags[i+4])+relp.x, PApplet.parseFloat(tags[i+5])+relp.y);
 
-    curp.setLocation(RGeomerative.parent().parseFloat(tags[i+4])+relp.x, RGeomerative.parent().parseFloat(tags[i+5])+relp.y);
-    refp.setLocation(2.0f*curp.x-(RGeomerative.parent().parseFloat(tags[i+2])+relp.x), 2.0f*curp.y-(RGeomerative.parent().parseFloat(tags[i+3])+relp.y));
+    curp.setLocation(PApplet.parseFloat(tags[i+4])+relp.x, PApplet.parseFloat(tags[i+5])+relp.y);
+    refp.setLocation(2.0f*curp.x-(PApplet.parseFloat(tags[i+2])+relp.x), 2.0f*curp.y-(PApplet.parseFloat(tags[i+3])+relp.y));
     return i + 5;
   }
 
   private int smooth(RShape shp, RPoint curp, RPoint relp, RPoint refp, RPoint strp, String[] tags, int i){
-    shp.addBezierTo(refp.x, refp.y, RGeomerative.parent().parseFloat(tags[i])+relp.x, RGeomerative.parent().parseFloat(tags[i+1])+relp.y, RGeomerative.parent().parseFloat(tags[i+2])+relp.x, RGeomerative.parent().parseFloat(tags[i+3])+relp.y);
+    shp.addBezierTo(refp.x, refp.y, PApplet.parseFloat(tags[i])+relp.x, PApplet.parseFloat(tags[i+1])+relp.y, PApplet.parseFloat(tags[i+2])+relp.x, PApplet.parseFloat(tags[i+3])+relp.y);
 
-    curp.setLocation(RGeomerative.parent().parseFloat(tags[i+2])+relp.x, RGeomerative.parent().parseFloat(tags[i+3])+relp.y);
-    refp.setLocation(2.0f*curp.x-(RGeomerative.parent().parseFloat(tags[i])+relp.x), 2.0f*curp.y-(RGeomerative.parent().parseFloat(tags[i+1])+relp.y));
+    curp.setLocation(PApplet.parseFloat(tags[i+2])+relp.x, PApplet.parseFloat(tags[i+3])+relp.y);
+    refp.setLocation(2.0f*curp.x-(PApplet.parseFloat(tags[i])+relp.x), 2.0f*curp.y-(PApplet.parseFloat(tags[i+1])+relp.y));
     return i + 3;
   }
 
   private int line(RShape shp, RPoint curp, RPoint relp, RPoint refp, RPoint strp, String[] tags, int i){
-    shp.addLineTo(RGeomerative.parent().parseFloat(tags[i])+relp.x, RGeomerative.parent().parseFloat(tags[i+1])+relp.y);
+    shp.addLineTo(PApplet.parseFloat(tags[i])+relp.x, PApplet.parseFloat(tags[i+1])+relp.y);
 
-    curp.setLocation(RGeomerative.parent().parseFloat(tags[i])+relp.x, RGeomerative.parent().parseFloat(tags[i+1])+relp.y);
+    curp.setLocation(PApplet.parseFloat(tags[i])+relp.x, PApplet.parseFloat(tags[i+1])+relp.y);
     refp.setLocation(curp.x, curp.y);
     return i + 1;        
   }
 
   private int horizontal(RShape shp, RPoint curp, RPoint relp, RPoint refp, RPoint strp, String[] tags, int i){
-    shp.addLineTo(RGeomerative.parent().parseFloat(tags[i])+relp.x, curp.y);
+    shp.addLineTo(PApplet.parseFloat(tags[i])+relp.x, curp.y);
 
-    curp.setLocation(RGeomerative.parent().parseFloat(tags[i])+relp.x, curp.y);
+    curp.setLocation(PApplet.parseFloat(tags[i])+relp.x, curp.y);
     refp.setLocation(curp.x, curp.y);
     return i;
   }
 
   private int vertical(RShape shp, RPoint curp, RPoint relp, RPoint refp, RPoint strp, String[] tags, int i){
-    shp.addLineTo(curp.x, RGeomerative.parent().parseFloat(tags[i])+relp.y);
+    shp.addLineTo(curp.x, PApplet.parseFloat(tags[i])+relp.y);
 
-    curp.setLocation(curp.x, RGeomerative.parent().parseFloat(tags[i])+relp.y);
+    curp.setLocation(curp.x, PApplet.parseFloat(tags[i])+relp.y);
     refp.setLocation(curp.x, curp.y);
     return i;
   }</diff>
      <filename>src/geomerative/RSVG.java</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,6 @@
 
 package geomerative ;
 import processing.core.*;
-import java.lang.reflect.Method;
 
 /**
  * RShape is a reduced interface for creating, holding and drawing complex Shapes. Shapes are groups of one or more subshapes (RSubshape).  Shapes can be selfintersecting and can contain holes.  This interface also allows you to transform shapes into polygons by segmenting the curves forming the shape.
@@ -682,8 +681,6 @@ public class RShape extends RGeomElem
     RContour c = this.getBounds();
     float xmin = c.points[0].x;
     float xmax = c.points[2].x;
-    float ymin = c.points[0].y;
-    float ymax = c.points[2].y;
     
     switch(RGeomerative.adaptorType){
     case RGeomerative.BYPOINT:
@@ -838,12 +835,6 @@ public class RShape extends RGeomElem
   }
   
   
-  /**
-   * Remove all of the subshapes.  Creates an empty shape.
-   */
-  private void clear(){
-    this.subshapes = null;
-  }
   
   private void append(RSubshape nextsubshape)
   {
@@ -925,7 +916,9 @@ public class RShape extends RGeomElem
 
         // Restore the fill state and stroke state and color
         if(fillBefore){
-          g.fill(g.fillColor);
+          g.fill(fillColorBefore);
+        } else {
+          g.noFill();
         }
         g.strokeWeight(strokeWeightBefore);
         g.stroke(strokeColorBefore);
@@ -1067,7 +1060,7 @@ public class RShape extends RGeomElem
           }
 
         }
-        g.endShape(closed ? RGeomerative.parent().CLOSE : RGeomerative.parent().OPEN);
+        g.endShape(closed ? PConstants.CLOSE : PConstants.OPEN);
 
         if(!RGeomerative.ignoreStyles){
           restoreContext(g);
@@ -1113,7 +1106,7 @@ public class RShape extends RGeomElem
           }
 
         }
-        g.endShape(closed ? RGeomerative.parent().CLOSE : RGeomerative.parent().OPEN);
+        g.endShape(closed ? PConstants.CLOSE : PConstants.OPEN);
 
         if(!RGeomerative.ignoreStyles){
           restoreContext(g);</diff>
      <filename>src/geomerative/RShape.java</filename>
    </modified>
    <modified>
      <diff>@@ -83,7 +83,7 @@ public class RStrip
    */
   public void draw(PGraphics g){
     int numVertices = countVertices();
-    g.beginShape(g.TRIANGLE_STRIP);
+    g.beginShape(PConstants.TRIANGLE_STRIP);
     for(int i=0;i&lt;numVertices;i++){
       g.vertex(vertices[i].x,vertices[i].y);
     }</diff>
      <filename>src/geomerative/RStrip.java</filename>
    </modified>
    <modified>
      <diff>@@ -423,7 +423,7 @@ public class RSubshape extends RGeomElem
    * @param g PGraphics, the graphics object on which to draw the subshape
    */
   public void draw(PGraphics g){
-    int numCommands = countCommands();
+    countCommands();
     
     // By default always draw with an adaptative segmentator
     int lastSegmentator = RCommand.segmentType;
@@ -439,14 +439,14 @@ public class RSubshape extends RGeomElem
     for(int i=0;i&lt;points.length;i++){
       g.vertex(points[i].x,points[i].y);
     }
-    g.endShape(closed ? RGeomerative.parent().CLOSE : RGeomerative.parent().OPEN);
+    g.endShape(closed ? PConstants.CLOSE : PConstants.OPEN);
     
     // Restore the user set segmentator
     RCommand.setSegmentator(lastSegmentator);
   }
   
   public void draw(PApplet g){
-    int numCommands = countCommands();
+    countCommands();
     
     // By default always draw with an adaptative segmentator
     int lastSegmentator = RCommand.segmentType;
@@ -461,7 +461,7 @@ public class RSubshape extends RGeomElem
     for(int i=0;i&lt;points.length;i++){
       g.vertex(points[i].x,points[i].y);
     }
-    g.endShape(closed ? RGeomerative.parent().CLOSE : RGeomerative.parent().OPEN);
+    g.endShape(closed ? PConstants.CLOSE : PConstants.OPEN);
     
     // Restore the user set segmentator
     RCommand.setSegmentator(lastSegmentator);</diff>
      <filename>src/geomerative/RSubshape.java</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ public class HelloSplittingShapesTest extends TestCase
     }
     
     public void testOldMeshing() {
-      RGeomerative.useFastClip = true;
+      RGeomerative.useFastClip = false;
       RMesh mesh = RClip.polygonToMesh(poly);
       assertNotNull(mesh);
     }</diff>
      <filename>test/geomerative/HelloSplittingShapesTest.java</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b5f91bf59ab35f498695c30ba10f0d6861bc74e4</id>
    </parent>
  </parents>
  <author>
    <name>Mark Luffel</name>
    <email>markluffel@gmail.com</email>
  </author>
  <url>http://github.com/markluffel/geomerative/commit/3c2ee862aa2d13e16bd1b31cd042f09741cceb33</url>
  <id>3c2ee862aa2d13e16bd1b31cd042f09741cceb33</id>
  <committed-date>2008-07-27T14:04:59-07:00</committed-date>
  <authored-date>2008-07-27T14:04:59-07:00</authored-date>
  <message>removing warnings that Eclipse gave, mainly non-static access to static methods/variables, and unused variables</message>
  <tree>5718dcae5831bafb5ac5431cff239e701315dba2</tree>
  <committer>
    <name>Mark Luffel</name>
    <email>markluffel@gmail.com</email>
  </committer>
</commit>
