Mercurial > projects > doodle
comparison doodle/dia/grid_layer.d @ 70:0e61702c6ea6
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sat, 14 Aug 2010 20:05:55 +0930 |
parents | c63719604adb |
children | 6f2525e170f2 |
comparison
equal
deleted
inserted
replaced
69:d540f7e4af9e | 70:0e61702c6ea6 |
---|---|
44 modelCr.setSourceRgba(0.0, 0.0, 0.0, 0.3); | 44 modelCr.setSourceRgba(0.0, 0.0, 0.0, 0.3); |
45 modelCr.setLineWidth(0.5); | 45 modelCr.setLineWidth(0.5); |
46 | 46 |
47 { | 47 { |
48 // vertical grid lines | 48 // vertical grid lines |
49 double x = start(modelDamage.minCorner.x, _spacing); | 49 double x = start(modelDamage.corner0.x, _spacing); |
50 | 50 |
51 for (;;) { | 51 for (;;) { |
52 vline(modelCr, x, modelDamage.minCorner.y, modelDamage.maxCorner.y); | 52 vline(modelCr, x, modelDamage.corner0.y, modelDamage.corner1.y); |
53 | 53 |
54 // Ensure 1 pixel wide FIXME is this naughty? We are sneaking | 54 // Ensure 1 pixel wide FIXME is this naughty? We are sneaking |
55 // through cairo to mix model and pixel coordinates... | 55 // through cairo to mix model and pixel coordinates... |
56 modelCr.save(); { | 56 modelCr.save(); { |
57 modelCr.scale(1.0 / xx, 1.0 / yy); | 57 modelCr.scale(1.0 / xx, 1.0 / yy); |
58 modelCr.stroke(); | 58 modelCr.stroke(); |
59 } modelCr.restore(); | 59 } modelCr.restore(); |
60 | 60 |
61 if (x > modelDamage.maxCorner.x) { | 61 if (x > modelDamage.corner1.x) { |
62 break; | 62 break; |
63 } | 63 } |
64 | 64 |
65 x += _spacing; | 65 x += _spacing; |
66 } | 66 } |
67 } | 67 } |
68 | 68 |
69 { | 69 { |
70 // horizontal grid lines | 70 // horizontal grid lines |
71 double y = start(modelDamage.minCorner.y, _spacing); | 71 double y = start(modelDamage.corner0.y, _spacing); |
72 | 72 |
73 for (;;) { | 73 for (;;) { |
74 hline(modelCr, y, modelDamage.minCorner.x, modelDamage.maxCorner.x); | 74 hline(modelCr, y, modelDamage.corner0.x, modelDamage.corner1.x); |
75 | 75 |
76 // FIXME? | 76 // FIXME? |
77 modelCr.save(); { | 77 modelCr.save(); { |
78 modelCr.scale(1.0 / xx, 1.0 / yy); | 78 modelCr.scale(1.0 / xx, 1.0 / yy); |
79 modelCr.stroke(); | 79 modelCr.stroke(); |
80 } modelCr.restore(); | 80 } modelCr.restore(); |
81 | 81 |
82 if (y > modelDamage.maxCorner.y) { | 82 if (y > modelDamage.corner1.y) { |
83 break; | 83 break; |
84 } | 84 } |
85 | 85 |
86 y += _spacing; | 86 y += _spacing; |
87 } | 87 } |