summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkitfox2007-04-13 03:42:00 +0200
committerkitfox2007-04-13 03:42:00 +0200
commit078afe2ba40282df0eab421f6711a654097988c5 (patch)
treecaaee86b01c0006aba01cbf089e5e2b882d2ea34
parentTest (diff)
downloadsvg-salamander-core-078afe2ba40282df0eab421f6711a654097988c5.tar.gz
svg-salamander-core-078afe2ba40282df0eab421f6711a654097988c5.tar.xz
svg-salamander-core-078afe2ba40282df0eab421f6711a654097988c5.zip
Added path definitions.
git-svn-id: https://svn.java.net/svn/svgsalamander~svn/trunk/svg-core@15 7dc7fa77-23fb-e6ad-8e2e-c86bd48ed22b
-rwxr-xr-xlib/library/ant.jarbin999966 -> 0 bytes
-rwxr-xr-xnbproject/project.xml4
-rwxr-xr-xsrc/main/java/com/kitfox/salamander/svg/DOMException.java35
-rw-r--r--src/main/java/com/kitfox/salamander/svg/SVGStyleElement.java35
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGAnimatedPathData.java53
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathElement.java203
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSeg.java114
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegClosePath.java19
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcAbs.java46
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcRel.java46
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicAbs.java42
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicRel.java42
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothAbs.java34
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothRel.java34
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticAbs.java34
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticRel.java34
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothAbs.java26
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothRel.java26
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoAbs.java26
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalAbs.java22
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalRel.java22
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoRel.java26
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalAbs.java22
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalRel.java22
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegList.java21
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoAbs.java26
-rw-r--r--src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoRel.java26
27 files changed, 1003 insertions, 37 deletions
diff --git a/lib/library/ant.jar b/lib/library/ant.jar
deleted file mode 100755
index 3a67607..0000000
--- a/lib/library/ant.jar
+++ /dev/null
Binary files differ
diff --git a/nbproject/project.xml b/nbproject/project.xml
index 5b57d8a..f4d9bc7 100755
--- a/nbproject/project.xml
+++ b/nbproject/project.xml
@@ -193,7 +193,7 @@
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/2">
<compilation-unit>
<package-root>src/main/java</package-root>
- <classpath mode="compile">lib/library/javacc.jar;lib/library/junit.jar;../../../../svn.apache.org/ant-core/lib/ant.jar</classpath>
+ <classpath mode="compile">lib/library/javacc.jar;lib/library/junit.jar</classpath>
<built-to>build/jar/svg-salamander-core.jar</built-to>
<source-level>1.5</source-level>
</compilation-unit>
@@ -204,7 +204,7 @@
<compilation-unit>
<package-root>src/test/java</package-root>
<unit-tests/>
- <classpath mode="compile">lib/library/javacc.jar;lib/library/junit.jar;build/jar/svg-salamander-core.jar;../../../../svn.apache.org/ant-core/lib/ant.jar</classpath>
+ <classpath mode="compile">lib/library/javacc.jar;lib/library/junit.jar;build/jar/svg-salamander-core.jar</classpath>
<source-level>1.5</source-level>
</compilation-unit>
<compilation-unit>
diff --git a/src/main/java/com/kitfox/salamander/svg/DOMException.java b/src/main/java/com/kitfox/salamander/svg/DOMException.java
deleted file mode 100755
index 06c4615..0000000
--- a/src/main/java/com/kitfox/salamander/svg/DOMException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * SVGException.java
- *
- * Created on April 12, 2007, 1:15 PM
- *
- * To change this template, choose Tools | Template Manager
- * and open the template in the editor.
- */
-
-package com.kitfox.salamander.svg;
-
-/**
- *
- * @author kitfox
- */
-public class DOMException extends java.lang.Exception
-{
-
- /**
- * Creates a new instance of <code>SVGException</code> without detail message.
- */
- public DOMException()
- {
- }
-
-
- /**
- * Constructs an instance of <code>SVGException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public DOMException(String msg)
- {
- super(msg);
- }
-}
diff --git a/src/main/java/com/kitfox/salamander/svg/SVGStyleElement.java b/src/main/java/com/kitfox/salamander/svg/SVGStyleElement.java
new file mode 100644
index 0000000..ed4141e
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/SVGStyleElement.java
@@ -0,0 +1,35 @@
+/*
+ * SVGStyleElement.java
+ *
+ * Created on April 12, 2007, 7:17 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg;
+
+/**
+ *
+ * The SVGStyleElement interface corresponds to the 'style' element.
+ * @author kitfox
+ */
+public interface SVGStyleElement
+{
+ /**
+ * Corresponds to attribute xml:space on the given element.
+ */
+ public DOMString getXmlspace();
+ /**
+ * Corresponds to attribute type on the given 'style' element.
+ */
+ public DOMString getType();
+ /**
+ * Corresponds to attribute media on the given 'style' element.
+ */
+ public DOMString getMedia();
+ /**
+ * Corresponds to attribute title on the given 'style' element.
+ */
+ public DOMString getTitle();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGAnimatedPathData.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGAnimatedPathData.java
new file mode 100644
index 0000000..b7363f9
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGAnimatedPathData.java
@@ -0,0 +1,53 @@
+/*
+ * SVGAnimatedPathData.java
+ *
+ * Created on April 12, 2007, 9:17 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ *
+ * The SVGAnimatedPathData interface supports elements which have a 'd' attribute which holds SVG path data, and supports the ability to animate that attribute.
+ *
+ * The SVGAnimatedPathData interface provides two lists to access and modify the base (i.e., static) contents of the d attribute:
+ *
+ * * DOM attribute pathSegList provides access to the static/base contents of the d attribute in a form which matches one-for-one with SVG's syntax.
+ * * DOM attribute normalizedPathSegList provides normalized access to the static/base contents of the d attribute where all path data commands are expressed in terms of the following subset of SVGPathSeg types: SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z).
+ *
+ * and two lists to access the current animated values of the d attribute:
+ *
+ * * DOM attribute animatedPathSegList provides access to the current animated contents of the d attribute in a form which matches one-for-one with SVG's syntax.
+ * * DOM attribute animatedNormalizedPathSegList provides normalized access to the current animated contents of the d attribute where all path data commands are expressed in terms of the following subset of SVGPathSeg types: SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z).
+ *
+ * Each of the two lists are always kept synchronized. Modifications to one list will immediately cause the corresponding list to be modified. Modifications to normalizedPathSegList might cause entries in pathSegList to be broken into a set of normalized path segments.
+ *
+ * Additionally, the 'd' attribute on the 'path' element accessed via the XML DOM (e.g., using the getAttribute() method call) will reflect any changes made to pathSegList or normalizedPathSegList.
+ * @author kitfox
+ */
+public interface SVGAnimatedPathData
+{
+ /**
+ * Provides access to the base (i.e., static) contents of the d attribute in a form which matches one-for-one with SVG's syntax. Thus, if the d attribute has an "absolute moveto (M)" and an "absolute arcto (A)" command, then pathSegList will have two entries: a SVG_PATHSEG_MOVETO_ABS and a SVG_PATHSEG_ARC_ABS.
+ */
+ public SVGPathSegList getPathSegList();
+ /**
+ *
+ *
+ * Provides access to the base (i.e., static) contents of the d attribute in a form where all path data commands are expressed in terms of the following subset of SVGPathSeg types: SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z). Thus, if the d attribute has an "absolute moveto (M)" and an "absolute arcto (A)" command, then pathSegList will have one SVG_PATHSEG_MOVETO_ABS entry followed by a series of SVG_PATHSEG_LINETO_ABS entries which approximate the arc. This alternate representation is available to provide a simpler interface to developers who would benefit from a more limited set of commands.
+ *
+ * The only valid SVGPathSeg types are SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z).
+ */
+ public SVGPathSegList getNormalizedPathSegList();
+ /**
+ * Provides access to the current animated contents of the d attribute in a form which matches one-for-one with SVG's syntax. If the given attribute or property is being animated, contains the current animated value of the attribute or property, and both the object itself and its contents are readonly. If the given attribute or property is not currently being animated, contains the same value as 'pathSegList'.
+ */
+ public SVGPathSegList getAnimatedPathSegList();
+ /**
+ * Provides access to the current animated contents of the d attribute in a form where all path data commands are expressed in terms of the following subset of SVGPathSeg types: SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z). If the given attribute or property is being animated, contains the current animated value of the attribute or property, and both the object itself and its contents are readonly. If the given attribute or property is not currently being animated, contains the same value as 'normalizedPathSegList'.
+ */
+ public SVGPathSegList getAnimatedNormalizedPathSegList();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathElement.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathElement.java
new file mode 100644
index 0000000..dce8ab3
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathElement.java
@@ -0,0 +1,203 @@
+/*
+ * SVGPathElement.java
+ *
+ * Created on April 12, 2007, 9:19 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+import com.kitfox.salamander.svg.basic.SVGElement;
+import com.kitfox.salamander.svg.basic.SVGExternalResourcesRequired;
+import com.kitfox.salamander.svg.basic.SVGLangSpace;
+import com.kitfox.salamander.svg.basic.SVGStylable;
+import com.kitfox.salamander.svg.basic.SVGTests;
+import com.kitfox.salamander.svg.basic.SVGTransformable;
+import org.w3c.dom.events.EventTarget;
+
+/**
+ *
+ * The SVGPathElement interface corresponds to the 'path' element.
+ * @author kitfox
+ */
+public interface SVGPathElement extends SVGElement, SVGTests, SVGLangSpace,
+ SVGExternalResourcesRequired, SVGStylable, SVGTransformable,
+ EventTarget, SVGAnimatedPathData
+{
+ /**
+ * Corresponds to attribute pathLength on the given 'path' element.
+ */
+ public SVGAnimatedNumber getPathLength();
+ /**
+ * Returns the user agent's computed value for the total length of the path using the user agent's distance-along-a-path algorithm, as a distance in the current user coordinate system.
+ * @return The total length of the path.
+ */
+ public float getTotalLength();
+ /**
+ * Returns the (x,y) coordinate in user space which is distance units along the path, utilizing the user agent's distance-along-a-path algorithm.
+ * @param distance The distance along the path, relative to the start of the path, as a distance in the current user coordinate system.
+ * @return The returned point in user space.
+ */
+ public SVGPoint getPointAtLength(float distance);
+ /**
+ * Returns the index into pathSegList which is distance units along the path, utilizing the user agent's distance-along-a-path algorithm.
+ * @param distance The distance along the path, relative to the start of the path, as a distance in the current user coordinate system.
+ * @return The index of the path segment, where the first path segment is number 0.
+ */
+ public int getPathSegAtLength(float distance);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegClosePath object.
+ * @return A stand-alone, parentless SVGPathSegClosePath object.
+ */
+ public SVGPathSegClosePath createSVGPathSegClosePath();
+ /**
+ * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegMovetoAbs object.
+ */
+ public SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(float x, float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegMovetoRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegMovetoRel object.
+ */
+ public SVGPathSegMovetoRel createSVGPathSegMovetoRel(float x, float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegLinetoAbs object.
+ */
+ public SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(float x, float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegLinetoRel object.
+ */
+ public SVGPathSegLinetoRel createSVGPathSegLinetoRel(float x, float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @param x1 The absolute X coordinate for the first control point.
+ * @param y1 The absolute Y coordinate for the first control point.
+ * @param x2 The absolute X coordinate for the second control point.
+ * @param y2 The absolute Y coordinate for the second control point.
+ * @return A stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
+ */
+ public SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(float x, float y, float x1, float y1, float x2, float y2);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @param x1 The relative X coordinate for the first control point.
+ * @param y1 The relative Y coordinate for the first control point.
+ * @param x2 The relative X coordinate for the second control point.
+ * @param y2 The relative Y coordinate for the second control point.
+ * @return A stand-alone, parentless SVGPathSegCurvetoCubicRel object.
+ */
+ public SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(float x, float y, float x1, float y1, float x2, float y2);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @param x1 The absolute X coordinate for the control point.
+ * @param y1 The absolute Y coordinate for the control point.
+ * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
+ */
+ public SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(float x, float y, float x1, float y1);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @param x1 The relative X coordinate for the control point.
+ * @param y1 The relative Y coordinate for the control point.
+ * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
+ */
+ public SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(float x, float y, float x1, float y1);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegArcAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @param r1 The x-axis radius for the ellipse (i.e., r1).
+ * @param r2 The y-axis radius for the ellipse (i.e., r2).
+ * @param angle The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system.
+ * @param largeArcFlag The value for the large-arc-flag parameter.
+ * @param sweepFlag The value for the sweep-flag parameter.
+ * @return A stand-alone, parentless SVGPathSegArcAbs object. A stand-alone, parentless SVGPathSegArcAbs object.
+ */
+ public SVGPathSegArcAbs createSVGPathSegArcAbs(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegArcRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @param r1 The x-axis radius for the ellipse (i.e., r1).
+ * @param r2 The y-axis radius for the ellipse (i.e., r2).
+ * @param angle The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system.
+ * @param largeArcFlag The value for the large-arc-flag parameter.
+ * @param sweepFlag The value for the sweep-flag parameter.
+ * @return A stand-alone, parentless SVGPathSegArcRel object.
+ */
+ public SVGPathSegArcRel createSVGPathSegArcRel(float x, float y, float r1, float r2, float angle, boolean largeArcFlag, boolean sweepFlag);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
+ */
+ public SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(float x);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
+ */
+ public SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(float x);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
+ */
+ public SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegLinetoVerticalRel object.
+ */
+ public SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @param x2 The absolute X coordinate for the second control point.
+ * @param y2 The absolute Y coordinate for the second control point.
+ * @return A stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
+ */
+ public SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(float x, float y, float x2, float y2);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @param x2 The relative X coordinate for the second control point.
+ * @param y2 The relative Y coordinate for the second control point.
+ * @return A stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
+ */
+ public SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(float x, float y, float x2, float y2);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs object.
+ * @param x The absolute X coordinate for the end point of this path segment.
+ * @param y The absolute Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs object.
+ */
+ public SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(float x, float y);
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel object.
+ * @param x The relative X coordinate for the end point of this path segment.
+ * @param y The relative Y coordinate for the end point of this path segment.
+ * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel object.
+ */
+ public SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(float x, float y);
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSeg.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSeg.java
new file mode 100644
index 0000000..fb9d64a
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSeg.java
@@ -0,0 +1,114 @@
+/*
+ * SVGPathSeg.java
+ *
+ * Created on April 12, 2007, 7:22 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+import com.kitfox.salamander.svg.DOMString;
+import com.kitfox.salamander.svg.basic.SVGDataType;
+
+/**
+ *
+ * The SVGPathSeg interface is a base interface that corresponds to a single command within a path data specification.
+ * @author kitfox
+ */
+public interface SVGPathSeg extends SVGDataType
+{
+ public static enum Type
+ {
+ /**
+ * The unit type is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
+ */
+ PATHSEG_UNKNOWN,
+ /**
+ * Corresponds to a "closepath" (z) path data command.
+ */
+ PATHSEG_CLOSEPATH,
+ /**
+ * Corresponds to an "absolute moveto" (M) path data command.
+ */
+ PATHSEG_MOVETO_ABS,
+ /**
+ * Corresponds to a "relative moveto" (m) path data command.
+ */
+ PATHSEG_MOVETO_REL,
+ /**
+ * Corresponds to an "absolute lineto" (L) path data command.
+ */
+ PATHSEG_LINETO_ABS,
+ /**
+ * Corresponds to a "relative lineto" (l) path data command.
+ */
+ PATHSEG_LINETO_REL,
+ /**
+ * Corresponds to an "absolute cubic Bézier curveto" (C) path data command.
+ */
+ PATHSEG_CURVETO_CUBIC_ABS,
+ /**
+ * Corresponds to a "relative cubic Bézier curveto" (c) path data command.
+ */
+ PATHSEG_CURVETO_CUBIC_REL,
+ /**
+ * Corresponds to an "absolute quadratic Bézier curveto" (Q) path data command.
+ */
+ PATHSEG_CURVETO_QUADRATIC_ABS,
+ /**
+ * Corresponds to a "relative quadratic Bézier curveto" (q) path data command.
+ */
+ PATHSEG_CURVETO_QUADRATIC_REL,
+ /**
+ * Corresponds to an "absolute arcto" (A) path data command.
+ */
+ PATHSEG_ARC_ABS,
+ /**
+ * Corresponds to a "relative arcto" (a) path data command.
+ */
+ PATHSEG_ARC_REL,
+ /**
+ * Corresponds to an "absolute horizontal lineto" (H) path data command.
+ */
+ PATHSEG_LINETO_HORIZONTAL_ABS,
+ /**
+ * Corresponds to a "relative horizontal lineto" (h) path data command.
+ */
+ PATHSEG_LINETO_HORIZONTAL_REL,
+ /**
+ * Corresponds to an "absolute vertical lineto" (V) path data command.
+ */
+ PATHSEG_LINETO_VERTICAL_ABS,
+ /**
+ * Corresponds to a "relative vertical lineto" (v) path data command.
+ */
+ PATHSEG_LINETO_VERTICAL_REL,
+ /**
+ * Corresponds to an "absolute smooth cubic curveto" (S) path data command.
+ */
+ PATHSEG_CURVETO_CUBIC_SMOOTH_ABS,
+ /**
+ * Corresponds to a "relative smooth cubic curveto" (s) path data command.
+ */
+ PATHSEG_CURVETO_CUBIC_SMOOTH_REL,
+ /**
+ * Corresponds to an "absolute smooth quadratic curveto" (T) path data command.
+ */
+ PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS,
+ /**
+ * Corresponds to a "relative smooth quadratic curveto" (t) path data command.
+ */
+ PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
+ };
+
+ /**
+ * The type of the path segment as specified by one of the constants specified above.
+ */
+ public Type getPathSegType();
+ /**
+ * The type of the path segment, specified by the corresponding one character command name.
+ */
+ public DOMString getPathSegTypeAsLetter();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegClosePath.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegClosePath.java
new file mode 100644
index 0000000..c059f10
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegClosePath.java
@@ -0,0 +1,19 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegClosePath interface corresponds to a "closepath" (z) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegClosePath extends SVGPathSeg
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcAbs.java
new file mode 100644
index 0000000..45aca3b
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcAbs.java
@@ -0,0 +1,46 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoCubicAbs interface corresponds to an "absolute cubic Bézier curveto" (C) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoArcAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The x-axis radius for the ellipse (i.e., r1).
+ */
+ public float getR1();
+ /**
+ * The y-axis radius for the ellipse (i.e., r2).
+ */
+ public float getR2();
+ /**
+ * The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system.
+ */
+ public float getAngle();
+ /**
+ * The value of the large-arc-flag parameter.
+ */
+ public boolean getLargeArcFlag();
+ /**
+ * The value of the sweep-flag parameter.
+ */
+ public boolean getSweepFlag();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcRel.java
new file mode 100644
index 0000000..4be6dae
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoArcRel.java
@@ -0,0 +1,46 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegArcRel interface corresponds to a "relative arcto" (a) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoArcRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The x-axis radius for the ellipse (i.e., r1).
+ */
+ public float getR1();
+ /**
+ * The y-axis radius for the ellipse (i.e., r2).
+ */
+ public float getR2();
+ /**
+ * The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system.
+ */
+ public float getAngle();
+ /**
+ * The value of the large-arc-flag parameter.
+ */
+ public boolean getLargeArcFlag();
+ /**
+ * The value of the sweep-flag parameter.
+ */
+ public boolean getSweepFlag();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicAbs.java
new file mode 100644
index 0000000..05f4a4f
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicAbs.java
@@ -0,0 +1,42 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoCubicAbs interface corresponds to an "absolute cubic Bézier curveto" (C) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoCubicAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The absolute X coordinate for the first control point.
+ */
+ public float getX1();
+ /**
+ * The absolute Y coordinate for the first control point.
+ */
+ public float getY1();
+ /**
+ * The absolute X coordinate for the second control point.
+ */
+ public float getX2();
+ /**
+ * The absolute Y coordinate for the second control point.
+ */
+ public float getY2();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicRel.java
new file mode 100644
index 0000000..e9059af
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicRel.java
@@ -0,0 +1,42 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoCubicRel interface corresponds to a "relative cubic Bézier curveto" (c) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoCubicRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The relative X coordinate for the first control point.
+ */
+ public float getX1();
+ /**
+ * The relative Y coordinate for the first control point.
+ */
+ public float getY1();
+ /**
+ * The relative X coordinate for the second control point.
+ */
+ public float getX2();
+ /**
+ * The relative Y coordinate for the second control point.
+ */
+ public float getY2();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothAbs.java
new file mode 100644
index 0000000..2e048ae
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothAbs.java
@@ -0,0 +1,34 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoCubicSmoothAbs interface corresponds to an "absolute smooth cubic curveto" (S) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The absolute X coordinate for the second control point.
+ */
+ public float getX2();
+ /**
+ * The absolute Y coordinate for the second control point.
+ */
+ public float getY2();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothRel.java
new file mode 100644
index 0000000..b246b5c
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoCubicSmoothRel.java
@@ -0,0 +1,34 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoCubicSmoothRel interface corresponds to a "relative smooth cubic curveto" (s) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The relative X coordinate for the second control point.
+ */
+ public float getX2();
+ /**
+ * The relative Y coordinate for the second control point.
+ */
+ public float getY2();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticAbs.java
new file mode 100644
index 0000000..aa13ec5
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticAbs.java
@@ -0,0 +1,34 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoQuadraticAbs interface corresponds to an "absolute quadratic Bézier curveto" (Q) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The absolute X coordinate for the control point.
+ */
+ public float getX1();
+ /**
+ * The absolute Y coordinate for the control point.
+ */
+ public float getY1();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticRel.java
new file mode 100644
index 0000000..3929dc8
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticRel.java
@@ -0,0 +1,34 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoQuadraticRel interface corresponds to a "relative quadratic Bézier curveto" (q) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+ /**
+ * The relative X coordinate for the control point.
+ */
+ public float getX1();
+ /**
+ * The relative Y coordinate for the control point.
+ */
+ public float getY1();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothAbs.java
new file mode 100644
index 0000000..490c84e
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothAbs.java
@@ -0,0 +1,26 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoQuadraticSmoothAbs interface corresponds to an "absolute smooth quadratic curveto" (T) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothRel.java
new file mode 100644
index 0000000..e0e81e6
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegCurvetoQuadraticSmoothRel.java
@@ -0,0 +1,26 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegCurvetoQuadraticSmoothRel interface corresponds to a "relative smooth quadratic curveto" (t) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoAbs.java
new file mode 100644
index 0000000..b39cce5
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoAbs.java
@@ -0,0 +1,26 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegLinetoAbs interface corresponds to an "absolute lineto" (L) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegLinetoAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalAbs.java
new file mode 100644
index 0000000..77e4b67
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalAbs.java
@@ -0,0 +1,22 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegLinetoHorizontalAbs interface corresponds to an "absolute horizontal lineto" (H) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalRel.java
new file mode 100644
index 0000000..5c632c9
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoHorizontalRel.java
@@ -0,0 +1,22 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegLinetoHorizontalRel interface corresponds to a "relative horizontal lineto" (h) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegLinetoHorizontalRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoRel.java
new file mode 100644
index 0000000..7dfb120
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoRel.java
@@ -0,0 +1,26 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegLinetoRel interface corresponds to an "relative lineto" (l) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegLinetoRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalAbs.java
new file mode 100644
index 0000000..3a64b95
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalAbs.java
@@ -0,0 +1,22 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegLinetoVerticalAbs interface corresponds to an "absolute vertical lineto" (V) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegLinetoVerticalAbs extends SVGPathSeg
+{
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalRel.java
new file mode 100644
index 0000000..e2af8af
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegLinetoVerticalRel.java
@@ -0,0 +1,22 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegLinetoVerticalRel interface corresponds to a "relative vertical lineto" (v) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegLinetoVerticalRel extends SVGPathSeg
+{
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegList.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegList.java
new file mode 100644
index 0000000..1171a06
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegList.java
@@ -0,0 +1,21 @@
+/*
+ * SVGPathSegList.java
+ *
+ * Created on April 12, 2007, 9:17 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+import com.kitfox.salamander.svg.basic.SVGList;
+
+/**
+ *
+ * @author kitfox
+ */
+public interface SVGPathSegList extends SVGList<SVGPathSeg>
+{
+
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoAbs.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoAbs.java
new file mode 100644
index 0000000..af75d59
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoAbs.java
@@ -0,0 +1,26 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegMovetoAbs interface corresponds to an "absolute moveto" (M) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegMovetoAbs extends SVGPathSeg
+{
+ /**
+ * The absolute X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The absolute Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}
diff --git a/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoRel.java b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoRel.java
new file mode 100644
index 0000000..2c79818
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/svg/paths/SVGPathSegMovetoRel.java
@@ -0,0 +1,26 @@
+/*
+ * SVGPathSegClosePath.java
+ *
+ * Created on April 12, 2007, 8:59 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.svg.paths;
+
+/**
+ * The SVGPathSegMovetoRel interface corresponds to an "relative moveto" (m) path data command.
+ * @author kitfox
+ */
+public interface SVGPathSegMovetoRel extends SVGPathSeg
+{
+ /**
+ * The relative X coordinate for the end point of this path segment.
+ */
+ public float getX();
+ /**
+ * The relative Y coordinate for the end point of this path segment.
+ */
+ public float getY();
+}