comparison doodle/fig/diagram_layer.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_layer.d@1b4c9ba58673
children 9960c4fbd0dd
comparison
equal deleted inserted replaced
53:fbabd1957c89 54:30ecedfe2ce2
1 module doodle.fig.diagram_layer;
2
3 public {
4 import doodle.dia.icanvas;
5 import doodle.fig.diagram_elements;
6 import std.array;
7 }
8
9 class DiagramLayer : Layer {
10 this(in string name) {
11 super(name);
12 }
13
14 void add(DiagramElement element) {
15 _elements ~= element;
16 }
17
18 // Layer overrides:
19
20 override Rectangle bounds() const {
21 return Rectangle.DEFAULT;
22 }
23
24 override void draw(in Viewport viewport,
25 in Rectangle pixelDamage, scope Context pixelCr,
26 in Rectangle modelDamage, scope Context modelCr) const {
27 foreach (e; _elements) {
28 if ((e.bounds & modelDamage).valid) {
29 e.draw(modelDamage, modelCr);
30 }
31 }
32 }
33
34 private {
35 // Root elements in z-buffer order, ie we draw in forward
36 // order thru the array
37 DiagramElement[] _elements;
38 }
39 }