|
Blender V5.0
|
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) |
| 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().
| std::optional< OffsetIndices< int > > blender::offset_indices::accumulate_counts_to_offsets_with_overflow_check | ( | MutableSpan< int > | counts_to_offsets, |
| int | start_offset = 0 ) |
Definition at line 38 of file offset_indices.cc.
References BLI_assert, count, blender::IndexRange::drop_back(), i, blender::MutableSpan< T >::index_range(), and blender::MutableSpan< T >::last().
Referenced by blender::geometry::resample_to_uniform().
| 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().
| void blender::offset_indices::build_reverse_offsets | ( | Span< int > | indices, |
| MutableSpan< int > | offsets ) |
Build offsets to group the elements of indices pointing to the same index.
Definition at line 152 of file offset_indices.cc.
References accumulate_counts_to_offsets(), blender::MutableSpan< T >::begin(), BLI_assert, build_reverse_offsets(), blender::array_utils::count_indices(), blender::MutableSpan< T >::end(), and indices.
Referenced by build_reverse_offsets(), blender::bke::mesh::create_reverse_offsets(), blender::nodes::node_geo_scale_elements_cc::create_reverse_offsets(), blender::geometry::edges_to_curve_point_indices(), blender::nodes::node_geo_points_to_curves_cc::find_points_by_group_index(), and blender::nodes::node_geo_sort_elements_cc::find_points_by_group_index().
| void blender::offset_indices::copy_group_sizes | ( | OffsetIndices< int > | offsets, |
| const IndexMask & | mask, | ||
| MutableSpan< int > | sizes ) |
Copy the number of indices in every group in the mask to the corresponding index.
Definition at line 70 of file offset_indices.cc.
References copy_group_sizes(), i, mask(), and blender::offset_indices::OffsetIndices< T >::size().
Referenced by blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), copy_group_sizes(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::io::alembic::ABCCurveWriter::do_write(), blender::geometry::extend_curves(), blender::ed::curves::pen_tool::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::io::usd::get_loops_polys(), blender::ed::curves::pen_tool::insert_point_to_curve(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::bke::compare_geometry::sort_curves(), blender::geometry::trim_curves(), and blender::io::hydra::CurvesData::write_curves().
| void blender::offset_indices::fill_constant_group_size | ( | int | size, |
| int | start_offset, | ||
| MutableSpan< int > | offsets ) |
Create offsets where every group has the same size.
Definition at line 59 of file offset_indices.cc.
References blender::threading::memory_bandwidth_bound_task(), size(), and blender::MutableSpan< T >::size_in_bytes().
Referenced by blender::nodes::node_geo_duplicate_elements_cc::accumulate_counts_to_offsets(), blender::geometry::create_cuboid_mesh(), blender::geometry::create_grid_mesh(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_CurvesGeometry(), blender::nodes::node_geo_extrude_mesh_cc::extrude_individual_mesh_faces(), blender::nodes::node_geo_extrude_mesh_cc::extrude_mesh_edges(), blender::nodes::node_geo_extrude_mesh_cc::extrude_mesh_face_regions(), blender::geometry::mesh_triangulate(), and blender::io::stl::STLMeshHelper::to_mesh().
| void blender::offset_indices::gather_group_sizes | ( | OffsetIndices< int > | offsets, |
| const IndexMask & | mask, | ||
| MutableSpan< int > | sizes ) |
Gather the number of indices in each indexed group to sizes.
Definition at line 78 of file offset_indices.cc.
References gather_group_sizes(), i, mask(), pos, and blender::offset_indices::OffsetIndices< T >::size().
Referenced by blender::geometry::copy_and_reorder_curves(), blender::geometry::copy_and_reorder_mesh_faces(), gather_group_sizes(), gather_group_sizes(), and blender::geometry::reorder_and_flip_curves().
| void blender::offset_indices::gather_group_sizes | ( | OffsetIndices< int > | offsets, |
| Span< int > | indices, | ||
| MutableSpan< int > | sizes ) |
Definition at line 87 of file offset_indices.cc.
References blender::offset_indices::OffsetIndices< T >::data(), gather_group_sizes(), indices, blender::threading::memory_bandwidth_bound_task(), and blender::MutableSpan< T >::size_in_bytes().
| OffsetIndices< int > blender::offset_indices::gather_selected_offsets | ( | OffsetIndices< int > | src_offsets, |
| const IndexMask & | selection, | ||
| int | start_offset, | ||
| MutableSpan< int > | dst_offsets ) |
Build new offsets that contains only the groups chosen by selection.
Definition at line 126 of file offset_indices.cc.
References blender::index_mask::IndexMask::foreach_index_optimized(), gather_selected_offsets(), i, blender::index_mask::IndexMask::is_empty(), blender::MutableSpan< T >::last(), pos, and blender::offset_indices::OffsetIndices< T >::size().
Referenced by blender::bke::copy_curve_selection_custom_knots(), blender::geometry::create_curves_for_faces(), blender::bke::curves_copy_curve_selection(), blender::nodes::node_geo_curve_fill_cc::do_cdt_with_mask(), blender::draw::DRW_curves_batch_cache_create_requested(), blender::ed::curves::duplicate_curves(), blender::draw::extract_edituv_tris_mesh(), blender::nodes::node_geo_extrude_mesh_cc::extrude_individual_mesh_faces(), blender::bke::curves::nurbs::gather_custom_knots(), gather_selected_offsets(), gather_selected_offsets(), blender::geometry::mesh_copy_selection(), blender::geometry::mesh_copy_selection_keep_edges(), blender::geometry::mesh_copy_selection_keep_verts(), and blender::geometry::mesh_triangulate().
|
inline |
Definition at line 179 of file BLI_offset_indices.hh.
References gather_selected_offsets().
| int blender::offset_indices::sum_group_sizes | ( | OffsetIndices< int > | offsets, |
| const IndexMask & | mask ) |
Calculate the total size of all the referenced groups.
Definition at line 110 of file offset_indices.cc.
References count, i, mask(), blender::offset_indices::OffsetIndices< T >::size(), and sum_group_sizes().
Referenced by blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_weight_batch_ensure(), blender::geometry::join_curves_ranges(), blender::points_info_sequential(), sum_group_sizes(), sum_group_sizes(), and blender::offset_indices::tests::TEST().
| int blender::offset_indices::sum_group_sizes | ( | OffsetIndices< int > | offsets, |
| Span< int > | indices ) |
Definition at line 101 of file offset_indices.cc.
References count, i, indices, blender::offset_indices::OffsetIndices< T >::size(), and sum_group_sizes().