summaryrefslogtreecommitdiffstats
path: root/src/libavoid/polyutil.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-01-16 02:36:01 +0000
committermental <mental@users.sourceforge.net>2006-01-16 02:36:01 +0000
commit179fa413b047bede6e32109e2ce82437c5fb8d34 (patch)
treea5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/libavoid/polyutil.cpp
downloadinkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz
inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/libavoid/polyutil.cpp')
-rw-r--r--src/libavoid/polyutil.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/libavoid/polyutil.cpp b/src/libavoid/polyutil.cpp
new file mode 100644
index 000000000..6ece50e63
--- /dev/null
+++ b/src/libavoid/polyutil.cpp
@@ -0,0 +1,86 @@
+/*
+ * vim: ts=4 sw=4 et tw=0 wm=0
+ *
+ * libavoid - Fast, Incremental, Object-avoiding Line Router
+ * Copyright (C) 2004-2005 Michael Wybrow <mjwybrow@users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+*/
+
+
+#include "libavoid/shape.h"
+
+namespace Avoid {
+
+
+Polygn newPoly(int size)
+{
+ Polygn newpoly;
+
+ newpoly.pn = size;
+ newpoly.ps = (Point *) calloc(size, sizeof(Point));
+ if (!newpoly.ps)
+ {
+ fprintf(stderr,
+ "Error: Unable to allocate Point array in Avoid::newPoly\n");
+ abort();
+ }
+ return newpoly;
+}
+
+
+Polygn copyPoly(Polygn poly)
+{
+ Polygn newpoly = newPoly(poly.pn);
+
+ newpoly.id = poly.id;
+ for (int i = 0; i < poly.pn; i++)
+ {
+ newpoly.ps[i] = poly.ps[i];
+ }
+ return newpoly;
+}
+
+
+Polygn copyPoly(ShapeRef *shape)
+{
+ Polygn poly = shape->poly();
+ Polygn newpoly = newPoly(poly.pn);
+
+ newpoly.id = poly.id;
+ for (int i = 0; i < poly.pn; i++)
+ {
+ newpoly.ps[i] = poly.ps[i];
+ }
+ return newpoly;
+}
+
+
+void freePoly(Polygn& poly)
+{
+ std::free(poly.ps);
+}
+
+
+void freePtrPoly(Polygn *poly)
+{
+ std::free(poly->ps);
+ std::free(poly);
+}
+
+
+}
+