diff options
author | Jacques Lucke <jacques@blender.org> | 2020-07-22 18:04:18 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-07-22 20:16:33 +0300 |
commit | e0400d0a1c76d019dc52efe96e869948464aff61 (patch) | |
tree | a5e8feeb50c5d7c13ea189c5470bff5b0804c73c /source/blender/simulation/intern/simulation_collect_influences.hh | |
parent | 0a5ef40c2cd77a5c8dfdbcc888759fb0dab9e184 (diff) |
Simulation: move responsibility of updating persistent data handles
This solver should not be responsible for updating the handles.
Diffstat (limited to 'source/blender/simulation/intern/simulation_collect_influences.hh')
-rw-r--r-- | source/blender/simulation/intern/simulation_collect_influences.hh | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/source/blender/simulation/intern/simulation_collect_influences.hh b/source/blender/simulation/intern/simulation_collect_influences.hh index 42cbea6977e..13744c3bc1a 100644 --- a/source/blender/simulation/intern/simulation_collect_influences.hh +++ b/source/blender/simulation/intern/simulation_collect_influences.hh @@ -58,10 +58,29 @@ class RequiredStates { } }; +class UsedPersistentData { + private: + VectorSet<ID *> used_ids_; + + public: + void add(ID *id) + { + BLI_assert(id != nullptr); + BLI_assert((id->tag & LIB_TAG_NO_MAIN) == 0); + used_ids_.add(id); + } + + const VectorSet<ID *> &used_ids() const + { + return used_ids_; + } +}; + void collect_simulation_influences(Simulation &simulation, ResourceCollector &resources, SimulationInfluences &r_influences, - RequiredStates &r_required_states); + RequiredStates &r_required_states, + UsedPersistentData &r_used_persistent_data); } // namespace blender::sim |