comparison 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
comparison
equal deleted inserted replaced
53:fbabd1957c89 54:30ecedfe2ce2
1 module doodle.fig.diagram_elements;
2
3 private {
4 import doodle.tk.geometry;
5 import doodle.cairo.routines;
6 }
7
8 abstract class DiagramElement {
9 Rectangle bounds() const;
10
11 void draw(in Rectangle damage, scope Context cr) const;
12
13 private {
14 GraphElement _container;
15 }
16 }
17
18 abstract class SemanticModelBridge {
19 };
20
21 abstract class GraphElement : DiagramElement {
22 // Link to model via bridge goes here
23 private {
24 SemanticModelBridge _modelBridge;
25 GraphConnector[] _anchorages;
26 }
27 }
28
29 final class GraphConnector {
30 }
31
32 final class GraphNode : GraphElement {
33 }
34
35 final class GraphEdge : GraphElement {
36 private {
37 GraphConnector[2] _anchors;
38 }
39 }
40
41 abstract class LeafElement : DiagramElement {
42 }
43
44 final class TextElement : LeafElement {
45 }
46
47 abstract class GraphicPrimitive : LeafElement {
48 }
49
50 final class PolylinePrimitive : GraphicPrimitive {
51 private {
52 Point[] _waypoints;
53 }
54 }
55
56 final class RectanglePrimitive : GraphicPrimitive {
57 override void draw(in Rectangle damage, scope Context cr) const {
58 rectangle(cr, bounds);
59 }
60 }