Blender V5.0
blender::offset_indices Namespace Reference

Namespaces

namespace  tests

Classes

struct  NoSortCheck
class  OffsetIndices
struct  GroupedSpan

Functions

OffsetIndices< int > accumulate_counts_to_offsets (MutableSpan< int > counts_to_offsets, int start_offset=0)
std::optional< OffsetIndices< int > > accumulate_counts_to_offsets_with_overflow_check (MutableSpan< int > counts_to_offsets, int start_offset=0)
void fill_constant_group_size (int size, int start_offset, MutableSpan< int > offsets)
void copy_group_sizes (OffsetIndices< int > offsets, const IndexMask &mask, MutableSpan< int > sizes)
void gather_group_sizes (OffsetIndices< int > offsets, const IndexMask &mask, MutableSpan< int > sizes)
void gather_group_sizes (OffsetIndices< int > offsets, Span< int > indices, MutableSpan< int > sizes)
int sum_group_sizes (OffsetIndices< int > offsets, const IndexMask &mask)
int sum_group_sizes (OffsetIndices< int > offsets, Span< int > indices)
OffsetIndices< int > gather_selected_offsets (OffsetIndices< int > src_offsets, const IndexMask &selection, int start_offset, MutableSpan< int > dst_offsets)
OffsetIndices< int > gather_selected_offsets (OffsetIndices< int > src_offsets, const IndexMask &selection, MutableSpan< int > dst_offsets)
void build_reverse_map (OffsetIndices< int > offsets, MutableSpan< int > r_map)
void build_reverse_offsets (Span< int > indices, MutableSpan< int > offsets)

Function Documentation

◆ accumulate_counts_to_offsets()

OffsetIndices< int > blender::offset_indices::accumulate_counts_to_offsets ( MutableSpan< int > counts_to_offsets,
int start_offset = 0 )

Turn an array of sizes into the offset at each index including all previous sizes.

Definition at line 15 of file offset_indices.cc.

References BLI_assert, BLI_assert_msg, count, blender::IndexRange::drop_back(), i, blender::MutableSpan< T >::index_range(), blender::MutableSpan< T >::last(), and UNUSED_VARS_NDEBUG.

Referenced by blender::nodes::node_geo_duplicate_elements_cc::accumulate_counts_to_offsets(), blender::ed::curves::add_curves(), blender::build_concurrent(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), build_reverse_offsets(), blender::io::usd::calc_curve_offsets(), blender::geometry::calc_new_edges(), blender::geometry::ngon::calc_tris_by_ngon(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_sphere_faces(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::geometry::copy_and_reorder_curves(), blender::geometry::copy_and_reorder_mesh_faces(), blender::geometry::create_cylinder_or_cone_mesh(), blender::create_envelope_strokes(), blender::ed::sculpt_paint::create_node_vert_offsets(), blender::ed::sculpt_paint::create_node_vert_offsets(), blender::ed::sculpt_paint::create_node_vert_offsets_bmesh(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::bke::curves_copy_point_selection(), blender::bke::calc_edges::edge_map_offsets(), blender::geometry::execute_instances_tasks(), blender::geometry::extend_curves(), blender::io::grease_pencil::extend_curves_geometry(), blender::ed::curves::pen_tool::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::find_connected_ranges(), blender::ed::sculpt_paint::greasepencil::find_curve_pair_offsets(), blender::ed::greasepencil::find_curve_segments(), blender::geometry::fit_poly_to_bezier_curves(), blender::nodes::node_geo_scale_elements_cc::from_indices_large_groups(), blender::nodes::node_geo_interpolate_curves_cc::generate_interpolated_curves(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::curves::pen_tool::insert_point_to_curve(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::geometry::join_curves_ranges(), blender::geometry::join_instances(), blender::ed::mesh::join_objects_exec(), blender::bke::mesh_apply_spatial_organization(), blender::bke::mesh_calc_edges(), blender::draw::mesh_render_data_faces_sorted_build(), blender::bke::CurvesGeometry::nurbs_custom_knots_by_curve(), blender::geometry::remove_points_and_split(), blender::geometry::reorder_and_flip_curves(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::ed::curves::resize_curves(), blender::offset_indices::tests::TEST(), and blender::geometry::trim_curves().

◆ accumulate_counts_to_offsets_with_overflow_check()

std::optional< OffsetIndices< int > > blender::offset_indices::accumulate_counts_to_offsets_with_overflow_check ( MutableSpan< int > counts_to_offsets,
int start_offset = 0 )

◆ build_reverse_map()

void blender::offset_indices::build_reverse_map ( OffsetIndices< int > offsets,
MutableSpan< int > r_map )

Create a map from indexed elements to the source indices, in other words from the larger array to the smaller array.

Definition at line 143 of file offset_indices.cc.

References build_reverse_map(), blender::offset_indices::OffsetIndices< T >::index_range(), and blender::threading::parallel_for().

Referenced by blender::bke::mesh::build_corner_to_face_map(), build_reverse_map(), and blender::bke::CurvesGeometry::point_to_curve_map().

◆ build_reverse_offsets()

◆ copy_group_sizes()

◆ fill_constant_group_size()

◆ gather_group_sizes() [1/2]

void blender::offset_indices::gather_group_sizes ( OffsetIndices< int > offsets,
const IndexMask & mask,
MutableSpan< int > sizes )

◆ gather_group_sizes() [2/2]

void blender::offset_indices::gather_group_sizes ( OffsetIndices< int > offsets,
Span< int > indices,
MutableSpan< int > sizes )

◆ gather_selected_offsets() [1/2]

◆ gather_selected_offsets() [2/2]

OffsetIndices< int > blender::offset_indices::gather_selected_offsets ( OffsetIndices< int > src_offsets,
const IndexMask & selection,
MutableSpan< int > dst_offsets )
inline

Definition at line 179 of file BLI_offset_indices.hh.

References gather_selected_offsets().

◆ sum_group_sizes() [1/2]

◆ sum_group_sizes() [2/2]

int blender::offset_indices::sum_group_sizes ( OffsetIndices< int > offsets,
Span< int > indices )