Blender V5.0
index_mask.cc File Reference
#include <fmt/format.h>
#include <iostream>
#include "BLI_array.hh"
#include "BLI_array_utils.hh"
#include "BLI_bit_bool_conversion.hh"
#include "BLI_bit_span_ops.hh"
#include "BLI_bit_span_to_index_ranges.hh"
#include "BLI_bit_vector.hh"
#include "BLI_enumerable_thread_specific.hh"
#include "BLI_index_mask.hh"
#include "BLI_index_mask_expression.hh"
#include "BLI_index_ranges_builder.hh"
#include "BLI_math_base.hh"
#include "BLI_rand.hh"
#include "BLI_set.hh"
#include "BLI_sort.hh"
#include "BLI_task.hh"
#include "BLI_threads.h"
#include "BLI_virtual_array.hh"
#include "BLI_strict_flags.h"

Go to the source code of this file.

Classes

struct  blender::index_mask::ParallelSegmentsCollector
struct  blender::index_mask::ParallelSegmentsCollector::LocalData

Namespaces

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

Functions

template void blender::index_mask::build_reverse_map< int > (const IndexMask &mask, MutableSpan< int > r_map)
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)
template<typename T, int64_t InlineBufferSize>
static void blender::index_mask::segments_from_indices (const Span< T > indices, LinearAllocator<> &allocator, Vector< IndexMaskSegment, InlineBufferSize > &r_segments)
static int64_t blender::index_mask::from_bits_batch_predicate (const IndexMaskSegment universe_segment, IndexRangesBuilder< int16_t > &builder, const BitSpan bits_slice)
static void blender::index_mask::segments_from_batch_predicate (const IndexMaskSegment universe_segment, LinearAllocator<> &allocator, const FunctionRef< int64_t(const IndexMaskSegment &universe_segment, IndexRangesBuilder< int16_t > &builder)> batch_predicate, Vector< IndexMaskSegment, 16 > &r_segments)
static void blender::index_mask::detail::segments_from_predicate_filter (const IndexMaskSegment universe_segment, LinearAllocator<> &allocator, const FunctionRef< int64_t(IndexMaskSegment indices, int16_t *r_true_indices)> filter_indices, Vector< IndexMaskSegment, 16 > &r_segments)
IndexMask blender::index_mask::detail::from_predicate_impl (const IndexMask &universe, const GrainSize grain_size, IndexMaskMemory &memory, const FunctionRef< int64_t(IndexMaskSegment indices, int16_t *r_true_indices)> filter_indices)
static Array< int16_t > blender::index_mask::build_every_nth_index_array (const int64_t n)
static Span< int16_t > blender::index_mask::get_every_nth_index (const int64_t n, const int64_t repetitions, IndexMaskMemory &memory)
static bool blender::index_mask::segments_is_equal (const IndexMaskSegment &a, const IndexMaskSegment &b)
bool blender::index_mask::operator== (const IndexMask &a, const IndexMask &b)
Utilities
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)
#IndexMask Inline Methods
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)