Mercurial > projects > doodle
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 } |