summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e1f6e2d)
raw | patch | inline | side by side (parent: e1f6e2d)
author | Arcadie M. Cracan <acracan@gmail.com> | |
Wed, 2 Dec 2009 21:40:56 +0000 (23:40 +0200) | ||
committer | Arcadie M. Cracan <acracan@gmail.com> | |
Wed, 2 Dec 2009 21:40:56 +0000 (23:40 +0200) |
src/connection-points.cpp | [new file with mode: 0644] | patch | blob |
src/connection-points.h | [new file with mode: 0644] | patch | blob |
src/libavoid/.dirstamp | [deleted file] | patch | blob | history |
diff --git a/src/connection-points.cpp b/src/connection-points.cpp
--- /dev/null
@@ -0,0 +1,37 @@
+#include "connection-points.h"
+
+
+bool ConnectionPoint::operator!=(ConnectionPoint& cp)
+{
+ return (id!=cp.id || type!=cp.type || dir!=cp.dir || pos!=cp.pos);
+}
+
+bool ConnectionPoint::operator==(ConnectionPoint& cp)
+{
+ return (id==cp.id && type==cp.type && dir==cp.dir && pos==cp.pos);
+}
+
+
+namespace Inkscape{
+
+SVGIStringStream&
+operator>>(SVGIStringStream& istr, ConnectionPoint& cp)
+{
+ istr>>cp.id>>cp.dir>>cp.pos[Geom::X]>>cp.pos[Geom::Y];
+
+ return istr;
+}
+
+SVGOStringStream&
+operator<<(SVGOStringStream& ostr, const ConnectionPoint& cp)
+{
+ ostr<<cp.id<<' '<<cp.dir<<' ';
+ ::operator<<( ostr, cp.pos[Geom::X] );
+ ostr<<' ';
+ ::operator<<( ostr, cp.pos[Geom::Y] );
+
+ return ostr;
+}
+
+
+}
diff --git a/src/connection-points.h b/src/connection-points.h
--- /dev/null
+++ b/src/connection-points.h
@@ -0,0 +1,70 @@
+#ifndef INKSCAPE_CONNECTION_POINT_H
+#define INKSCAPE_CONNECTION_POINT_H
+
+#include <2geom/point.h>
+//#include <libavoid/vertices.h>
+#include <libavoid/connector.h>
+
+#include "svg/stringstream.h"
+
+
+enum ConnPointType {
+ ConnPointDefault = 0,
+ ConnPointUserDefined = 1
+};
+enum ConnPointDefaultPos{
+ ConnPointPosTL, // Top Left
+ ConnPointPosTC, // Top Centre
+ ConnPointPosTR, // Top Right
+ ConnPointPosCL, // Centre Left
+ ConnPointPosCC, // Centre Centre
+ ConnPointPosCR, // Centre Right
+ ConnPointPosBL, // Bottom Left
+ ConnPointPosBC, // Bottom Centre
+ ConnPointPosBR, // Bottom Right
+};
+
+
+struct ConnectionPoint
+{
+ ConnectionPoint():
+ type(ConnPointDefault), // default to a default connection point
+ id(ConnPointPosCC), // default to the centre point
+ pos(),
+ dir(Avoid::ConnDirAll) // allow any direction
+ {
+ }
+ // type of the connection point
+ // default or user-defined
+ int type;
+
+ /* id of the connection point
+ in the case of default
+ connection points it specifies
+ which of the 9 types the
+ connection point is.
+ */
+ int id;
+
+ /* position related to parent item
+ in the case of default connection
+ points, these positions should be
+ computed by the item's avoidRef
+ */
+ Geom::Point pos;
+
+ // directions from which connections can occur
+ Avoid::ConnDirFlags dir;
+
+ bool operator!=(ConnectionPoint&);
+ bool operator==(ConnectionPoint&);
+};
+
+namespace Inkscape{
+
+SVGIStringStream& operator>>(SVGIStringStream& istr, ConnectionPoint& cp);
+SVGOStringStream& operator<<(SVGOStringStream& ostr, const ConnectionPoint& cp);
+
+}
+
+#endif
\ No newline at end of file
diff --git a/src/libavoid/.dirstamp b/src/libavoid/.dirstamp