Created AnimViewMap

This commit is contained in:
2021-01-22 19:10:47 -05:00
parent b0440a4e12
commit 827a114752
10 changed files with 302 additions and 266 deletions

View File

@@ -80,6 +80,43 @@ const util::XYZ &AnimQueue::get_xyz() const {
return last.xyz_;
}
void AnimView::update_from(const AnimQueue &queue) {
id_ = queue.get_id();
graphic_ = queue.get_graphic();
plane_ = queue.get_plane();
xyz_ = queue.get_xyz();
updated_ = true;
}
AnimView *AnimViewMap::get_one(int64_t id) {
auto iter = view_map_.find(id);
if (iter == view_map_.end()) {
return nullptr;
} else {
return &iter->second;
}
}
void AnimViewMap::clear_updated_bits() {
for (auto pair : view_map_) {
pair.second.updated_ = false;
}
}
void AnimViewMap::delete_non_updated() {
for (auto iter = view_map_.begin(); iter != view_map_.end(); ) {
if (iter->second.updated_) {
iter++;
} else {
iter = view_map_.erase(iter);
}
}
}
void AnimViewMap::update_one(const AnimQueue &queue) {
view_map_[queue.get_id()].update_from(queue);
}
LuaDefine(unittests_animqueue, "c") {
// Check initial state.
AnimQueue aq;