diff doodle/fig/diagram_elements.d @ 54:30ecedfe2ce2

Partial palette support
author "David Bryant <bagnose@gmail.com>"
date Sun, 08 Aug 2010 21:07:47 +0930
parents doodle/fig/fig.d@1b4c9ba58673
children c63719604adb
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doodle/fig/diagram_elements.d	Sun Aug 08 21:07:47 2010 +0930
@@ -0,0 +1,60 @@
+module doodle.fig.diagram_elements;
+
+private {
+    import doodle.tk.geometry;
+    import doodle.cairo.routines;
+}
+
+abstract class DiagramElement {
+    Rectangle bounds() const;
+
+    void draw(in Rectangle damage, scope Context cr) const;
+
+    private {
+        GraphElement _container;
+    }
+}
+
+abstract class SemanticModelBridge {
+};
+
+abstract class GraphElement : DiagramElement {
+    // Link to model via bridge goes here
+    private {
+        SemanticModelBridge _modelBridge;
+        GraphConnector[] _anchorages;
+    }
+}
+
+final class GraphConnector {
+}
+
+final class GraphNode : GraphElement {
+}
+
+final class GraphEdge : GraphElement {
+    private {
+        GraphConnector[2] _anchors;
+    }
+}
+
+abstract class LeafElement : DiagramElement {
+}
+
+final class TextElement : LeafElement {
+}
+
+abstract class GraphicPrimitive : LeafElement {
+}
+
+final class PolylinePrimitive : GraphicPrimitive {
+    private {
+        Point[] _waypoints;
+    }
+}
+
+final class RectanglePrimitive : GraphicPrimitive {
+    override void draw(in Rectangle damage, scope Context cr) const {
+        rectangle(cr, bounds);
+    }
+}