summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/libwpg/WPGPath.cpp
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2006-07-31 05:14:00 +0000
committergouldtj <gouldtj@users.sourceforge.net>2006-07-31 05:14:00 +0000
commit1b268270d703d308dad917363a9e1ad950bbe566 (patch)
treecdb3579b27d2223cd75ef135e84e0b0e253438b5 /src/extension/internal/libwpg/WPGPath.cpp
parenthandling recieved messages (diff)
downloadinkscape-1b268270d703d308dad917363a9e1ad950bbe566.tar.gz
inkscape-1b268270d703d308dad917363a9e1ad950bbe566.zip
r13105@tres: ted | 2006-07-30 11:08:56 -0700
Copying in libwpg as it seems they have no releases. (bzr r1522)
Diffstat (limited to 'src/extension/internal/libwpg/WPGPath.cpp')
-rw-r--r--src/extension/internal/libwpg/WPGPath.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/extension/internal/libwpg/WPGPath.cpp b/src/extension/internal/libwpg/WPGPath.cpp
new file mode 100644
index 000000000..c04754d42
--- /dev/null
+++ b/src/extension/internal/libwpg/WPGPath.cpp
@@ -0,0 +1,106 @@
+/* libwpg
+ * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02111-1301 USA
+ *
+ * For further information visit http://libwpg.sourceforge.net
+ */
+
+/* "This product is not manufactured, approved, or supported by
+ * Corel Corporation or Corel Corporation Limited."
+ */
+
+#include "WPGPath.h"
+#include "WPGPoint.h"
+
+#include <vector>
+
+namespace libwpg
+{
+
+class WPGPathPrivate
+{
+public:
+ std::vector<WPGPathElement> elements;
+};
+
+} // namespace libwpg
+
+using namespace libwpg;
+
+WPGPath::WPGPath()
+{
+ d = new WPGPathPrivate;
+}
+
+WPGPath::~WPGPath()
+{
+ delete d;
+}
+
+WPGPath::WPGPath(const WPGPath& path)
+{
+ d = new WPGPathPrivate;
+ d->elements = path.d->elements;
+}
+
+WPGPath& WPGPath::operator=(const WPGPath& path)
+{
+ d->elements = path.d->elements;
+ return *this;
+}
+
+unsigned WPGPath::count() const
+{
+ return d->elements.size();
+}
+
+WPGPathElement WPGPath::element(unsigned index) const
+{
+ return d->elements[index];
+}
+
+void WPGPath::moveTo(const WPGPoint& point)
+{
+ WPGPathElement element;
+ element.type = WPGPathElement::MoveToElement;
+ element.point = point;
+ addElement(element);
+}
+
+void WPGPath::lineTo(const WPGPoint& point)
+{
+ WPGPathElement element;
+ element.type = WPGPathElement::LineToElement;
+ element.point = point;
+ addElement(element);
+}
+
+void WPGPath::curveTo(const WPGPoint& c1, const WPGPoint& c2, const WPGPoint& endPoint)
+{
+ WPGPathElement element;
+ element.type = WPGPathElement::CurveToElement;
+ element.point = endPoint;
+ element.extra1 = c1;
+ element.extra2 = c2;
+ addElement(element);
+}
+
+void WPGPath::addElement(const WPGPathElement& element)
+{
+ d->elements.push_back(element);
+}
+