|
Blender V4.3
|
Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::unique_sorted_indices |
Functions | |
| template<typename T > | |
| bool | blender::unique_sorted_indices::non_empty_is_range (const Span< T > indices) |
| template<typename T > | |
| IndexRange | blender::unique_sorted_indices::non_empty_as_range (const Span< T > indices) |
| template<typename T > | |
| std::optional< IndexRange > | blender::unique_sorted_indices::non_empty_as_range_try (const Span< T > indices) |
| template<typename T > | |
| int64_t | blender::unique_sorted_indices::find_size_of_next_range (const Span< T > indices) |
| template<typename T > | |
| int64_t | blender::unique_sorted_indices::find_size_until_next_range (const Span< T > indices, const int64_t min_range_size) |
| template<typename T , int64_t InlineBufferSize> | |
| int64_t | blender::unique_sorted_indices::split_to_ranges_and_spans (const Span< T > indices, const int64_t range_threshold, Vector< std::variant< IndexRange, Span< T > >, InlineBufferSize > &r_segments) |
This file provides functions that deal with integer arrays fulfilling two constraints:
Arrays satisfying these constraints are useful to "mask" indices that should be processed for two main reasons:
Just using a single array as a mask works well as long as the number of indices is not too large. For potentially larger masks it's better to use #IndexMask which allows for better multi-threading.
Definition in file BLI_unique_sorted_indices.hh.