equal
deleted
inserted
replaced
149 push(mask, &mut stack, start_x_l, start_x_r, start_point.y as usize, dir); |
149 push(mask, &mut stack, start_x_l, start_x_r, start_point.y as usize, dir); |
150 } |
150 } |
151 |
151 |
152 while let Some((mut xl, mut xr, y, dir)) = stack.pop() { |
152 while let Some((mut xl, mut xr, y, dir)) = stack.pop() { |
153 let row = &mut self.pixels[y][..]; |
153 let row = &mut self.pixels[y][..]; |
154 while xl > 0 && row.get(xl) |
154 while xl > 0 && row[xl] != border_value && row[xl] != fill_value |
155 .map_or(false, |v| *v != border_value && *v != fill_value) |
|
156 { |
155 { |
157 xl -= 1; |
156 xl -= 1; |
158 } |
157 } |
159 |
158 |
160 while xr < width - 1 && row.get(xr) |
159 while xr < width - 1 && row[xr] != border_value && row[xr] != fill_value |
161 .map_or(false, |v| *v != border_value && *v != fill_value) |
|
162 { |
160 { |
163 xr += 1; |
161 xr += 1; |
164 } |
162 } |
165 |
163 |
166 while xl < xr { |
164 while xl < xr { |
169 xl += 1; |
167 xl += 1; |
170 } |
168 } |
171 |
169 |
172 let x = xl; |
170 let x = xl; |
173 |
171 |
174 while xl <= xr && (row[xl] != border_value && row[xl] != fill_value) |
172 while xl <= xr && row[xl] != border_value && row[xl] != fill_value |
175 { |
173 { |
176 row[xl] = fill_value; |
174 row[xl] = fill_value; |
177 xl += 1; |
175 xl += 1; |
178 } |
176 } |
179 |
177 |