diff options
author | Jacques Lucke <mail@jlucke.com> | 2019-12-09 00:01:31 +0300 |
---|---|---|
committer | Jacques Lucke <mail@jlucke.com> | 2019-12-09 00:01:31 +0300 |
commit | 34d68139acd1c8035c458e272492f7ed837a184d (patch) | |
tree | 7b5f0cf10f9c55f8efc385f04811944ac4af15e5 /source/blender/functions/FN_generic_virtual_list_list_ref.h | |
parent | b09c2c7d0091dad71b8059c20cf4be255c4d7f27 (diff) |
extend single elements when necessary
Diffstat (limited to 'source/blender/functions/FN_generic_virtual_list_list_ref.h')
-rw-r--r-- | source/blender/functions/FN_generic_virtual_list_list_ref.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/functions/FN_generic_virtual_list_list_ref.h b/source/blender/functions/FN_generic_virtual_list_list_ref.h index 9ccaef6b019..358b40ed780 100644 --- a/source/blender/functions/FN_generic_virtual_list_list_ref.h +++ b/source/blender/functions/FN_generic_virtual_list_list_ref.h @@ -152,6 +152,28 @@ class GenericVirtualListListRef { BLI_assert(false); return {*m_type}; } + + GenericVirtualListListRef extended_single_list(uint new_virtual_size) const + { + BLI_assert(this->is_single_list()); + + switch (m_category) { + case Category::SingleArray: + return GenericVirtualListListRef::FromSingleArray(*m_type, + m_data.single_array.data, + m_data.single_array.real_array_size, + new_virtual_size); + case Category::FullArrayList: + return GenericVirtualListListRef::FromSingleArray( + *m_type, + m_data.full_array_list.starts[0], + m_data.full_array_list.real_array_sizes[0], + new_virtual_size); + } + + BLI_assert(false); + return {}; + } }; } // namespace FN |