[postgis-commits] svn - r3824 - trunk/postgis
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Tue Mar 10 07:59:40 PDT 2009
Author: colivier
Date: 2009-03-10 07:59:39 -0700 (Tue, 10 Mar 2009)
New Revision: 3824
Modified:
trunk/postgis/lwgeom_svg.c
Log:
Add SVG L Command in absolute path according to BNF SVG Path. Add some forgotten geometry release.
Modified: trunk/postgis/lwgeom_svg.c
===================================================================
--- trunk/postgis/lwgeom_svg.c 2009-03-10 13:37:18 UTC (rev 3823)
+++ trunk/postgis/lwgeom_svg.c 2009-03-10 14:59:39 UTC (rev 3824)
@@ -14,6 +14,7 @@
* Originally written by: Klaus Förster <klaus at svg.cc>
* Refactored by: Olivier Courtin (Camptocamp)
*
+ * BNF SVG Path: <http://www.w3.org/TR/SVG/paths.html#PathDataBNF>
**********************************************************************/
@@ -285,7 +286,7 @@
for (i=0 ; i<insp->ngeometries ; i++) {
point = lwgeom_getpoint_inspected(insp, i);
size += assvg_point_size(point, relative, precision);
- /* lwpoint_release(point); */
+ if (point) lwpoint_release(point);
}
size += sizeof(" ") * --i; /* Arbitrary comma separator */
@@ -391,7 +392,7 @@
for (i=0 ; i<insp->ngeometries ; i++) {
poly = lwgeom_getpoly_inspected(insp, i);
size += assvg_polygon_size(poly, relative, precision);
- /* lwpoly_release(poly); */
+ if (poly) lwpoly_release(poly);
}
size += sizeof(" ") * --i; /* SVG whitespace Separator */
@@ -410,7 +411,7 @@
if (i) ptr += sprintf(ptr, " "); /* SVG whitespace Separator */
poly = lwgeom_getpoly_inspected(insp, i);
ptr += assvg_polygon_buf(poly, ptr, relative, precision);
- /* lwpoly_release(poly); */
+ if (poly) lwpoly_release(poly);
}
return (ptr-output);
@@ -646,9 +647,9 @@
/* SVG Y axis is reversed, an no need to transform 0 into -0 */
sprintf(y, "%.*f", precision, fabs(pt.y) ? pt.y * -1:pt.y);
trim_trailing_zeros(y);
- if (i) ptr += sprintf(ptr, " ");
+ if (i == 1) ptr += sprintf(ptr, " L ");
+ else if (i) ptr += sprintf(ptr, " ");
ptr += sprintf(ptr,"%s %s", x, y);
- /* FIXME Could we really omit SVG L after M start point ? */
}
return (ptr-output);
@@ -662,5 +663,5 @@
pointArray_svg_size(POINTARRAY *pa, int precision)
{
return (MAX_DIGS_DOUBLE + precision + sizeof(", "))
- * 2 * pa->npoints + sizeof("l ");
+ * 2 * pa->npoints + sizeof(" L ");
}
More information about the postgis-commits
mailing list