diff --git a/candy/src/processing/candy/SVG.java b/candy/src/processing/candy/SVG.java
index 1c7d05117..eb2ba2482 100755
--- a/candy/src/processing/candy/SVG.java
+++ b/candy/src/processing/candy/SVG.java
@@ -126,7 +126,7 @@ import processing.xml.*;
*
Patterns
* Embedded images
*
- *
+ *
* For those interested, the SVG specification can be found
* here.
*/
@@ -262,6 +262,8 @@ public class SVG {
} else if (text.endsWith("cm")) {
return PApplet.parseFloat(text.substring(0, len)) * 35.43307f;
} else if (text.endsWith("in")) {
+ return PApplet.parseFloat(text.substring(0, len)) * 90;
+ } else if (text.endsWith("px")) {
return PApplet.parseFloat(text.substring(0, len));
} else {
return PApplet.parseFloat(text);
@@ -549,10 +551,10 @@ public class SVG {
float opacity;
-
+
public BaseObject(BaseObject parent, XMLElement properties) {
-
- if (parent == null) {
+
+ if (parent == null) {
// set values to their defaults according to the SVG spec
stroke = false;
strokeColor = 0xff000000;
@@ -562,18 +564,18 @@ public class SVG {
strokeGradient = null;
strokeGradientPaint = null;
strokeName = null;
-
+
fill = true;
fillColor = 0xff000000;
fillGradient = null;
fillGradientPaint = null;
fillName = null;
-
+
//hasTransform = false;
//transformation = null; //new float[] { 1, 0, 0, 1, 0, 0 };
-
+
opacity = 1;
-
+
} else {
stroke = parent.stroke;
strokeColor = parent.strokeColor;
@@ -583,19 +585,19 @@ public class SVG {
strokeGradient = parent.strokeGradient;
strokeGradientPaint = parent.strokeGradientPaint;
strokeName = parent.strokeName;
-
+
fill = parent.fill;
fillColor = parent.fillColor;
fillGradient = parent.fillGradient;
fillGradientPaint = parent.fillGradientPaint;
fillName = parent.fillName;
-
+
//hasTransform = parent.hasTransform;
//transformation = parent.transformation;
-
+
opacity = parent.opacity;
}
-
+
element = properties;
id = properties.getStringAttribute("id");
@@ -611,7 +613,7 @@ public class SVG {
getTransformation(properties);
}
-
+
private void getTransformation(XMLElement properties) {
String transform = properties.getStringAttribute("transform");
if (transform != null) {
@@ -624,7 +626,7 @@ public class SVG {
for (int i = 0; i < transformation.length; i++) {
this.transformation[i] = Float.valueOf(tf[i]).floatValue();
}
-
+
// Hacky code to get rotation working
// Done through the powers of trial and error [mchang]
float t[] = this.transformation;
@@ -664,12 +666,12 @@ public class SVG {
int opacityMask = ((int) (opacity * 255)) << 24;
if (properties.hasAttribute("stroke")) {
- String strokeText = properties.getStringAttribute("stroke");
+ String strokeText = properties.getStringAttribute("stroke");
if (strokeText.equals("none")) {
stroke = false;
} else if (strokeText.startsWith("#")) {
stroke = true;
- strokeColor = opacityMask |
+ strokeColor = opacityMask |
(Integer.parseInt(strokeText.substring(1), 16)) & 0xFFFFFF;
} else if (strokeText.startsWith("rgb")) {
stroke = true;
@@ -685,7 +687,7 @@ public class SVG {
}
}
}
-
+
if (properties.hasAttribute("stroke-width")) {
// if NaN (i.e. if it's 'inherit') then default back to the inherit setting
strokeWeight = properties.getFloatAttribute("stroke-width", strokeWeight);
@@ -695,13 +697,13 @@ public class SVG {
String linejoin = properties.getStringAttribute("stroke-linejoin");
if (linejoin.equals("inherit")) {
// do nothing, will inherit automatically
-
+
} else if (linejoin.equals("miter")) {
strokeJoin = PConstants.MITER;
} else if (linejoin.equals("round")) {
strokeJoin = PConstants.ROUND;
-
+
} else if (linejoin.equals("bevel")) {
strokeJoin = PConstants.BEVEL;
}
@@ -711,19 +713,19 @@ public class SVG {
String linecap = properties.getStringAttribute("stroke-linecap");
if (linecap.equals("inherit")) {
// do nothing, will inherit automatically
-
+
} else if (linecap.equals("butt")) {
strokeCap = PConstants.SQUARE;
} else if (linecap.equals("round")) {
strokeCap = PConstants.ROUND;
-
+
} else if (linecap.equals("square")) {
strokeCap = PConstants.PROJECT;
}
}
-
+
// fill defaults to black (though stroke defaults to "none")
// http://www.w3.org/TR/SVG/painting.html#FillProperties
if (properties.hasAttribute("fill")) {
@@ -764,7 +766,7 @@ public class SVG {
return (values[0] << 16) | (values[1] << 8) | (values[2]);
}
-
+
protected Paint calcGradientPaint(Gradient gradient) {
if (gradient instanceof LinearGradient) {
LinearGradient grad = (LinearGradient) gradient;
diff --git a/todo.txt b/todo.txt
index 4e1096615..e0cafb929 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1,7 +1,14 @@
0134 pde
+X fix problem with fractional px sizes and adobe cs3
+X http://dev.processing.org/bugs/show_bug.cgi?id=667
+
_ deal with opengl applet export changes
+_ problems with serial on leopard
+_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Electronics;action=display;num=1193459849
+_ add notes about expand() and objects to the reference
+
_ fix syntax highlighting of focusGained and others
_ http://dev.processing.org/bugs/show_bug.cgi?id=659
_ verify (and document) public access members of PApplet
@@ -32,7 +39,7 @@ _ if someone has monaco disabled in font book, the app won't start
_ http://dev.processing.org/bugs/show_bug.cgi?id=562
_ color selector not drawing properly
_ http://dev.processing.org/bugs/show_bug.cgi?id=656
-_ color selector broken on vista
+_ color selector broken on vista (no colors at all)
_ http://dev.processing.org/bugs/show_bug.cgi?id=584
_ can't get documents/prefs folder on vista