equal
deleted
inserted
replaced
55 None |
55 None |
56 } |
56 } |
57 |
57 |
58 fn divide_edges<I: Iterator<Item = u32>>(&mut self, random_numbers: &mut I) { |
58 fn divide_edges<I: Iterator<Item = u32>>(&mut self, random_numbers: &mut I) { |
59 for is in 0..self.islands.len() { |
59 for is in 0..self.islands.len() { |
60 let island = &mut self.islands[is]; |
|
61 let mut i = 0; |
60 let mut i = 0; |
62 |
61 let mut start_point = Point::zero(); |
63 while i < island.len() { |
62 let mut end_point = Point::zero(); |
64 let start_point = island[i]; |
63 |
65 let end_point = if i + 1 < island.len() { |
64 loop { |
66 island[i + 1] |
65 { |
67 } else { |
66 let island = &self.islands[is]; |
68 island[0] |
67 if i < island.len() { |
69 }; |
68 start_point = island[i]; |
|
69 end_point = if i + 1 < island.len() { |
|
70 island[i + 1] |
|
71 } else { |
|
72 island[0] |
|
73 }; |
|
74 } else { |
|
75 break |
|
76 } |
|
77 } |
70 |
78 |
71 if let Some(new_point) = self.divide_edge(start_point, end_point, random_numbers) { |
79 if let Some(new_point) = self.divide_edge(start_point, end_point, random_numbers) { |
72 (*island).insert(i + 1, new_point); |
80 self.islands[is].insert(i + 1, new_point); |
73 i += 2; |
81 i += 2; |
74 } else { |
82 } else { |
75 i += 1; |
83 i += 1; |
76 } |
84 } |
77 } |
85 } |