rust/land2d/src/lib.rs
changeset 14149 8e2e98760003
parent 14148 d3c9025abd13
child 14150 6205a5230d23
equal deleted inserted replaced
14148:d3c9025abd13 14149:8e2e98760003
   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