Mercurial > projects > doodle
view 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 source
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); } }