on master help sign in
Fix `group` and `groupTransform`
commitdc3b220fce076b6e7ca878dd4be556479d6baacd authorevancz <info@elm-lang.org> dateSat 11 May 2013, 13:00 (13 years ago) parentbb2f028
1 file changed+11−9
runtime/Render/Collage.js+11−9
runtime/Render/Collage.js+11−9
@@ -123,6 +123,7 @@ function renderForm(redo, ctx, form) {
123123 var f = form.form;
124124 switch(f.ctor) {
125125 case 'FPath' : drawLine(ctx, f._0, f._1); break;
126+ case 'FImage': drawImage(redo, ctx, f); break;
126127 case 'FShape':
127128 if (f._0.ctor === 'Left') {
128129 f._1.closed = true;
@@ -131,7 +132,6 @@ function renderForm(redo, ctx, form) {
131132 drawShape(redo, ctx, f._0._0, f._1);
132133 }
133134 break;
134− case 'FImage': drawImage(redo, ctx, f); break;
135135 }
136136 ctx.restore();
137137}
@@ -166,12 +166,13 @@ function collageElement(width, height, matrices, form) {
166166 return div;
167167}
168168
169−function stepperHelp(group) {
169+function stepperHelp(list) {
170+ var arr = fromList(list);
170171 var i = 0;
171− function hasNext() { return i < group.length; }
172+ function hasNext() { return i < arr.length; }
172173 // assumes that there is a next element
173174 function next() {
174− var out = group[i];
175+ var out = arr[i];
175176 ++i;
176177 return out;
177178 }
@@ -179,7 +180,7 @@ function stepperHelp(group) {
179180}
180181
181182function stepper(forms) {
182− var ps = [stepperHelp(fromList(forms))];
183+ var ps = [stepperHelp(forms)];
183184 var matrices = [];
184185 function hasNext() {
185186 var len = ps.length;
@@ -192,11 +193,12 @@ function stepper(forms) {
192193 function next(ctx) {
193194 while (!ps[0].hasNext()) { ps.shift(); matrices.pop(); ctx.restore(); }
194195 var out = ps[0].next();
195− if (out.ctor === 'FGroup') {
196− ps.unshift(stepperHelp(out._1));
197− matrices.push(out._0);
198− ctx.save();
196+ var f = out.form;
197+ if (f.ctor === 'FGroup') {
198+ ps.unshift(stepperHelp(f._1));
199199 var m = f._0;
200+ matrices.push(m);
201+ ctx.save();
200202 ctx.transform(m[0], m[3], m[1], m[4], m[2], -m[5]);
201203 }
202204 return out;