Mercurial > projects > doodle
annotate doodle/fig/diagram_layer.d @ 57:9960c4fbd0dd
I is for Interface
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 22:01:54 +0930 |
parents | 30ecedfe2ce2 |
children | c63719604adb |
rev | line source |
---|---|
54 | 1 module doodle.fig.diagram_layer; |
26 | 2 |
3 public { | |
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
27
diff
changeset
|
4 import doodle.dia.icanvas; |
54 | 5 import doodle.fig.diagram_elements; |
6 import std.array; | |
26 | 7 } |
8 | |
54 | 9 class DiagramLayer : Layer { |
26 | 10 this(in string name) { |
11 super(name); | |
12 } | |
13 | |
54 | 14 void add(DiagramElement element) { |
15 _elements ~= element; | |
16 } | |
17 | |
38
452915ecd1f4
Basic logging functionality
David Bryant <bagnose@gmail.com>
parents:
28
diff
changeset
|
18 // Layer overrides: |
452915ecd1f4
Basic logging functionality
David Bryant <bagnose@gmail.com>
parents:
28
diff
changeset
|
19 |
26 | 20 override Rectangle bounds() const { |
21 return Rectangle.DEFAULT; | |
22 } | |
23 | |
57 | 24 override void draw(in IViewport viewport, |
48 | 25 in Rectangle pixelDamage, scope Context pixelCr, |
26 in Rectangle modelDamage, scope Context modelCr) const { | |
54 | 27 foreach (e; _elements) { |
28 if ((e.bounds & modelDamage).valid) { | |
29 e.draw(modelDamage, modelCr); | |
30 } | |
31 } | |
26 | 32 } |
33 | |
34 private { | |
54 | 35 // Root elements in z-buffer order, ie we draw in forward |
36 // order thru the array | |
37 DiagramElement[] _elements; | |
26 | 38 } |
39 } |