computeDiff ok
This commit is contained in:
parent
71de446a33
commit
281f725ccf
@ -175,4 +175,65 @@ void GridService::ComputeDiff(int old_grid_id, int new_grid_id,
|
||||
std::set<GridCell*>& dec_grid_list)
|
||||
{
|
||||
int diff_grid = new_grid_id - old_grid_id;
|
||||
if (diff_grid == 1) {
|
||||
Get369(new_grid_id, inc_grid_list);
|
||||
Get147(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid == -1) {
|
||||
Get147(new_grid_id, inc_grid_list);
|
||||
Get369(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid == cell_count_per_row_) {
|
||||
Get789(new_grid_id, inc_grid_list);
|
||||
Get123(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid + cell_count_per_row_ == 0) {
|
||||
Get123(new_grid_id, inc_grid_list);
|
||||
Get789(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid + cell_count_per_row_ == 1) {
|
||||
Get123(new_grid_id, inc_grid_list);
|
||||
GetGridList(new_grid_id, 6, inc_grid_list);
|
||||
GetGridList(new_grid_id, 9, inc_grid_list);
|
||||
|
||||
GetGridList(old_grid_id, 1, dec_grid_list);
|
||||
GetGridList(old_grid_id, 4, dec_grid_list);
|
||||
Get789(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid + cell_count_per_row_ == -1) {
|
||||
Get123(new_grid_id, inc_grid_list);
|
||||
GetGridList(new_grid_id, 4, inc_grid_list);
|
||||
GetGridList(new_grid_id, 7, inc_grid_list);
|
||||
|
||||
GetGridList(old_grid_id, 6, dec_grid_list);
|
||||
GetGridList(old_grid_id, 9, dec_grid_list);
|
||||
Get789(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid == cell_count_per_row_ + 1) {
|
||||
Get789(new_grid_id, inc_grid_list);
|
||||
GetGridList(new_grid_id, 3, inc_grid_list);
|
||||
GetGridList(new_grid_id, 6, inc_grid_list);
|
||||
|
||||
GetGridList(old_grid_id, 4, dec_grid_list);
|
||||
GetGridList(old_grid_id, 7, dec_grid_list);
|
||||
Get123(old_grid_id, dec_grid_list);
|
||||
} else if (diff_grid == cell_count_per_row_ - 1) {
|
||||
Get789(new_grid_id, inc_grid_list);
|
||||
GetGridList(new_grid_id, 1, inc_grid_list);
|
||||
GetGridList(new_grid_id, 4, inc_grid_list);
|
||||
|
||||
GetGridList(old_grid_id, 6, dec_grid_list);
|
||||
GetGridList(old_grid_id, 9, dec_grid_list);
|
||||
Get123(old_grid_id, dec_grid_list);
|
||||
} else {
|
||||
std::set<GridCell*> new_grid_list;
|
||||
Get123456789(new_grid_id, new_grid_list);
|
||||
for (auto& cell : new_grid_list) {
|
||||
if (grid_list.find(cell) == grid_list.end()) {
|
||||
inc_grid_list.insert(cell);
|
||||
}
|
||||
}
|
||||
for (auto& cell : grid_list) {
|
||||
if (new_grid_list.find(cell) == new_grid_list.end()) {
|
||||
dec_grid_list.insert(cell);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grid_list.clear();
|
||||
Get123456789(new_grid_id, grid_list);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user