Blender V4.3
index_mask.cc File Reference
#include <fmt/format.h>
#include <iostream>
#include <mutex>
#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_math_bits.h"
#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_tblender::index_mask::build_every_nth_index_array (const int64_t n)
 
static Span< int16_tblender::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)