Blender V5.0
BLI_index_mask.hh File Reference
#include <array>
#include <optional>
#include <variant>
#include "BLI_bit_span.hh"
#include "BLI_function_ref.hh"
#include "BLI_index_mask_fwd.hh"
#include "BLI_index_ranges_builder_fwd.hh"
#include "BLI_linear_allocator.hh"
#include "BLI_offset_indices.hh"
#include "BLI_offset_span.hh"
#include "BLI_task.hh"
#include "BLI_unique_sorted_indices.hh"
#include "BLI_vector.hh"
#include "BLI_vector_set.hh"
#include "BLI_virtual_array_fwd.hh"

Go to the source code of this file.

Classes

struct  blender::index_mask::RawMaskIterator
struct  blender::index_mask::IndexMaskData
class  blender::index_mask::IndexMaskMemory
class  blender::index_mask::IndexMaskSegment
class  blender::index_mask::IndexMask
class  blender::index_mask::IndexMaskFromSegment
class  blender::IndexMask
class  blender::IndexMaskFromSegment
class  blender::IndexMaskMemory
class  blender::IndexMaskSegment

Namespaces

namespace  blender
namespace  blender::index_mask
namespace  blender::index_mask::detail

Functions

std::array< int16_t, max_segment_sizeblender::index_mask::build_static_indices_array ()
const IndexMaskblender::index_mask::get_static_index_mask_for_min_size (const int64_t min_size)
std::ostream & blender::index_mask::operator<< (std::ostream &stream, const IndexMask &mask)
IndexMask blender::index_mask::detail::from_predicate_impl (const IndexMask &universe, GrainSize grain_size, IndexMaskMemory &memory, FunctionRef< int64_t(IndexMaskSegment indices, int16_t *r_true_indices)> filter_indices)
Utilities
const std::array< int16_t, max_segment_size > & blender::index_mask::get_static_indices_array ()
template<typename T>
void blender::index_mask::masked_fill (MutableSpan< T > data, const T &value, const IndexMask &mask)
template<typename T>
void blender::index_mask::build_reverse_map (const IndexMask &mask, MutableSpan< T > r_map)
int64_t blender::index_mask::consolidate_index_mask_segments (MutableSpan< IndexMaskSegment > segments, IndexMaskMemory &memory)
template<int64_t N>
void blender::index_mask::index_range_to_mask_segments (const IndexRange range, Vector< IndexMaskSegment, N > &r_segments)
#RawMaskIterator Inline Methods
bool blender::index_mask::operator!= (const RawMaskIterator &a, const RawMaskIterator &b)
bool blender::index_mask::operator== (const RawMaskIterator &a, const RawMaskIterator &b)

Variables

static constexpr int64_t blender::index_mask::max_segment_size_shift = 14
static constexpr int64_t blender::index_mask::max_segment_size = (1 << max_segment_size_shift)
static constexpr int64_t blender::index_mask::max_segment_size_mask_low = max_segment_size - 1
static constexpr int64_t blender::index_mask::max_segment_size_mask_high = ~max_segment_size_mask_low

#IndexMask Inline Methods

template<typename Fn>
constexpr bool blender::index_mask::has_segment_and_start_parameter
void blender::index_mask::init_empty_mask (IndexMaskData &data)
template<typename T, typename Fn>
void blender::index_mask::optimized_foreach_index (const IndexMaskSegment segment, const Fn fn)
template<typename T, typename Fn>
void blender::index_mask::optimized_foreach_index_with_pos (const IndexMaskSegment segment, const int64_t segment_pos, const Fn fn)
bool blender::index_mask::operator!= (const IndexMask &a, const IndexMask &b)
IndexMask blender::index_mask::random_mask (const IndexMask &mask, const int64_t universe_size, const uint32_t random_seed, const float probability, IndexMaskMemory &memory)
IndexMask blender::index_mask::random_mask (const int64_t universe_size, const uint32_t random_seed, const float probability, IndexMaskMemory &memory)