Repo for Gazebo 9 development. Starting from entity_component_system_prototype branch on gazebo repo. This repo will be merged back into the gazebo repo in the future.
0
stars
1
forks
source link
Entities/Components/Queries should not change until after all systems are updated. #5
The description of pull request #8 describes another problem with the implementation: removing components invalidates other component pointers. This proposal is to solve the issue by freezing entities and components during the update, and applying any changes after. It would means a copy on write system for components.
When an entity is deleted the database will add it to a list to delete, and then delete it after all systems have been updated
When a component is deleted the database will add it to a list to delete, and then delete it after all systems have been updated
When a component is modified the database will return a copy of the component at new storage. After all systems are updated the database will overwrite the original storage with the changes.
When an entity is created the database will add it to a list and to new storage, then copy the storage to the main storage after all systems are updated
When an entity is deleted or created the queries won't update until after all systems are updated
Original report (archived issue) by Shane Loretz (Bitbucket: Shane Loretz, GitHub: sloretz).
The description of pull request #8 describes another problem with the implementation: removing components invalidates other component pointers. This proposal is to solve the issue by freezing entities and components during the update, and applying any changes after. It would means a copy on write system for components.