computeDiff ok

This commit is contained in:
aozhiwei 2019-04-24 20:59:50 +08:00
parent 71de446a33
commit 281f725ccf

View File

@ -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);
}