|
Blender V4.3
|
#include <BLI_index_range.hh>
Classes | |
| class | Iterator |
Public Member Functions | |
| constexpr | IndexRange ()=default |
| constexpr | IndexRange (int64_t size) |
| constexpr | IndexRange (const int64_t start, const int64_t size) |
| constexpr Iterator | begin () const |
| constexpr Iterator | end () const |
| constexpr int64_t | operator[] (int64_t index) const |
| constexpr int64_t | size () const |
| constexpr IndexRange | index_range () const |
| constexpr bool | is_empty () const |
| constexpr IndexRange | with_new_end (const int64_t new_end) const |
| constexpr IndexRange | after (int64_t n) const |
| constexpr IndexRange | before (int64_t n) const |
| constexpr int64_t | first () const |
| constexpr int64_t | last (const int64_t n=0) const |
| constexpr int64_t | one_before_start () const |
| constexpr int64_t | one_after_last () const |
| constexpr int64_t | start () const |
| constexpr bool | contains (int64_t value) const |
| constexpr bool | contains (const IndexRange range) const |
| constexpr IndexRange | slice (int64_t start, int64_t size) const |
| constexpr IndexRange | slice (IndexRange range) const |
| constexpr IndexRange | intersect (IndexRange other) const |
| constexpr IndexRange | drop_front (int64_t n) const |
| constexpr IndexRange | drop_back (int64_t n) const |
| constexpr IndexRange | take_front (int64_t n) const |
| constexpr IndexRange | take_back (int64_t n) const |
| constexpr IndexRange | shift (int64_t n) const |
Static Public Member Functions | |
| static constexpr IndexRange | from_begin_size (const int64_t begin, const int64_t size) |
| static constexpr IndexRange | from_begin_end (const int64_t begin, const int64_t end) |
| static constexpr IndexRange | from_begin_end_inclusive (const int64_t begin, const int64_t last) |
| static constexpr IndexRange | from_end_size (const int64_t end, const int64_t size) |
| static constexpr IndexRange | from_single (const int64_t index) |
Friends | |
| constexpr friend bool | operator== (IndexRange a, IndexRange b) |
| constexpr friend bool | operator!= (IndexRange a, IndexRange b) |
| std::ostream & | operator<< (std::ostream &stream, IndexRange range) |
Definition at line 50 of file BLI_index_range.hh.
|
constexprdefault |
Referenced by after(), before(), drop_back(), drop_front(), from_begin_end(), from_begin_end_inclusive(), from_begin_size(), from_end_size(), from_single(), index_range(), intersect(), shift(), slice(), take_back(), and take_front().
|
inlineexplicitconstexpr |
Definition at line 58 of file BLI_index_range.hh.
References BLI_assert.
Definition at line 63 of file BLI_index_range.hh.
References BLI_assert.
|
inlineconstexpr |
Create a new range starting at the end of the current one.
Definition at line 181 of file BLI_index_range.hh.
References BLI_assert, and IndexRange().
Referenced by blender::create_dashes(), 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::get_pattern_info(), blender::ed::sculpt_paint::grease_pencil_apply_fill(), blender::ed::sculpt_paint::grease_pencil_fill_extension_lines_from_circles(), and blender::tests::TEST().
|
inlineconstexpr |
Create a new range that ends at the start of the current one.
Definition at line 190 of file BLI_index_range.hh.
References BLI_assert, and IndexRange().
Referenced by blender::tests::TEST().
|
inlineconstexpr |
Definition at line 117 of file BLI_index_range.hh.
Referenced by from_begin_end(), from_begin_end_inclusive(), from_begin_size(), blender::ed::sculpt_paint::hide::grid_hide_update(), and blender::draw::mesh_is_single_material().
|
inlineconstexpr |
Returns true when all indices in the given range are also in the current range.
Definition at line 255 of file BLI_index_range.hh.
|
inlineconstexpr |
Returns true when the range contains a certain number, otherwise false.
Definition at line 247 of file BLI_index_range.hh.
Referenced by blender::nodes::node_geo_index_switch_cc::IndexSwitchFunction::call(), blender::bke::copy_with_checked_indices(), blender::nodes::node_geo_edge_paths_to_selection_cc::edge_paths_to_selection(), blender::nodes::node_geo_index_switch_cc::LazyFunctionForIndexSwitchNode::execute_single(), blender::geometry::find_connected_ranges(), blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::CornersOfEdgeInput::get_varray_for_context(), blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertInput::get_varray_for_context(), blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertInput::get_varray_for_context(), blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput::get_varray_for_context(), blender::nodes::node_geo_offset_point_in_curve_cc::OffsetValidFieldInput::get_varray_for_context(), blender::ed::sculpt_paint::grease_pencil_fill_extension_lines_from_circles(), blender::ed::space_node::node_select_same_type_step_exec(), blender::bke::bake::MemoryBlobReader::read(), blender::bke::curves::bezier::segment_is_vector(), and blender::offset_indices::OffsetIndices< T >::slice().
|
inlineconstexpr |
Returns a new IndexRange with n elements removed from the end of the range. This invokes undefined behavior when n is negative.
Definition at line 313 of file BLI_index_range.hh.
References BLI_assert, and IndexRange().
Referenced by blender::offset_indices::accumulate_counts_to_offsets(), blender::offset_indices::accumulate_counts_to_offsets_with_overflow_check(), BLI_lasso_is_edge_inside(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::ed::greasepencil::build_fill_boundary(), blender::draw::calc_edit_handles_ibo(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::catmull_rom_to_bezier_handles(), blender::create_dashes(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::ed::greasepencil::frame_clean_duplicate_exec(), blender::ed::space_node::get_compute_context_hash_for_node_editor(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::geometry::join_curves_ranges(), blender::ed::space_node::link_path_intersection(), blender::ed::greasepencil::mark_borders(), blender::geometry::boolean::mesh_boolean_float(), blender::geometry::nurbs_to_bezier_assign(), poly_loops_orders_match(), blender::ed::greasepencil::primitive_calulate_curve_positions(), blender::ed::space_node::push_compute_context_for_tree_path(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::bke::curves::bezier::segment_is_vector(), blender::ed::curves::select_alternate(), blender::offset_indices::OffsetIndices< T >::slice(), blender::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::geometry::smooth_curve_positions(), sort_time_beztmaps(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_attribute_linear(), blender::geometry::subdivide_bezier_positions(), and blender::ed::viewer_path::viewer_path_for_geometry_node().
|
inlineconstexpr |
Returns a new IndexRange with n elements removed from the beginning of the range. This invokes undefined behavior when n is negative.
Definition at line 302 of file BLI_index_range.hh.
References BLI_assert, and IndexRange().
Referenced by BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BLI_lasso_boundbox(), blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::ed::sculpt_paint::islands::calc_topology_islands_mesh(), blender::geometry::calculate_angles(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::bke::curves::poly::calculate_tangents(), blender::geometry::catmull_rom_to_bezier_handles(), blender::eevee::Sampling::cdf_invert(), blender::compositor::compute_symmetric_separable_blur_weights(), blender::realtime_compositor::MorphologicalDistanceFeatherWeights::compute_weights(), blender::index_mask::consolidate_index_mask_segments(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_curves(), blender::index_mask::difference_index_mask_segments(), draw_fcurve_curve_keys(), blender::ed::curves::duplicate_curves(), blender::ed::curves::duplicate_points(), blender::geometry::edges_to_curve_point_indices(), blender::index_mask::evaluate_coarse_and_split_until_segments_are_short(), blender::bke::curves::catmull_rom::evaluate_segment(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_ghost(), blender::array_utils::find_all_ranges(), blender::ed::greasepencil::grease_pencil_separate_material(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::index_mask::intersect_index_mask_segments(), blender::bke::curves::bezier::linear_interpolation(), blender::geometry::linear_interpolation(), blender::bke::mark_bezier_vector_edges_sharp(), blender::ed::greasepencil::mark_borders(), blender::ed::sculpt_paint::move_last_point_and_resample(), blender::geometry::nurbs_to_bezier_assign(), blender::threading::detail::parallel_for_impl_accumulated_size_lookup(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::PuffOperationExecutor::puff(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::ed::greasepencil::remove_points_and_split(), blender::ed::curves::select_alternate(), blender::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::geometry::smooth_curve_positions(), blender::realtime_compositor::SymmetricBlurWeights::SymmetricBlurWeights(), blender::realtime_compositor::SymmetricSeparableBlurWeights::SymmetricSeparableBlurWeights(), blender::tests::TEST(), blender::tests::TEST(), blender::memory_cache::try_enforce_limit(), and blender::index_mask::union_index_mask_segments().
|
inlineconstexpr |
Definition at line 122 of file BLI_index_range.hh.
Referenced by blender::ed::sculpt_paint::hide::grid_hide_update(), and blender::draw::mesh_is_single_material().
|
inlineconstexpr |
Get the first element in the range. Asserts when the range is empty.
Definition at line 200 of file BLI_index_range.hh.
References BLI_assert, and size().
Referenced by blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::draw::calc_edit_handles_ibo(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::compositor::compute_bloom_downsample_chain(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_downsample_chain(), blender::geometry::copy_point_data_between_endpoints(), blender::draw::curves_sub_pass_setup_implementation(), do_glow_effect_byte(), do_wipe_effect(), draw_fcurve_curve_keys(), draw_text_shadow(), blender::draw::DRW_shgroup_curves_create_sub(), blender::ed::curves::duplicate_points(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::execute(), blender::geometry::extend_curves_straight(), blender::draw::extract_points_subdiv_bm(), blender::draw::extract_points_subdiv_mesh(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::ed::greasepencil::foreach_curve_segment(), blender::bke::bake::NodeBakeCache::frame_range(), blender::index_mask::IndexMask::from_repeating(), blender::ed::greasepencil::trim::get_intersections_of_curve_with_curves(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), IMB_colormanagement_transform_from_byte_threaded(), blender::NodesModifierSimulationParams::init_simulation_info(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::imbuf::transform::process_scanlines(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::ed::greasepencil::remove_points_and_split(), blender::geometry::sample_interval_bezier(), blender::geometry::sample_interval_catmull_rom(), blender::geometry::sample_interval_linear(), scale_nearest(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_bezier_segment(), blender::tests::TEST(), blender::tests::TEST(), timeline_cache_draw_geometry_nodes(), blender::ed::greasepencil::trim::trim_curve_segments(), and blender::gpu::VKImageView::VKImageView().
|
inlinestaticconstexpr |
Definition at line 74 of file BLI_index_range.hh.
References begin(), and IndexRange().
Referenced by blender::index_mask::add_coarse_segment__copy(), blender::index_mask::add_coarse_segment__unknown(), blender::threading::align_sub_range(), blender::bits::bits_to_index_ranges(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::ed::greasepencil::foreach_curve_segment(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_item_groups(), blender::IndexRangesBuilder< T >::operator[](), blender::offset_indices::OffsetIndices< T >::operator[](), blender::offset_indices::OffsetIndices< T >::operator[](), blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), blender::index_mask::segments_from_batch_predicate(), blender::index_mask::tests::TEST(), blender::index_mask::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), and with_new_end().
|
inlinestaticconstexpr |
Definition at line 79 of file BLI_index_range.hh.
References begin(), IndexRange(), and last().
Referenced by blender::index_mask::IndexMask::bounds(), blender::index_mask::consolidate_index_mask_segments(), blender::ed::greasepencil::foreach_curve_segment(), blender::bke::bake::NodeBakeCache::frame_range(), blender::index_mask::IndexMask::from_bits(), blender::index_mask::IndexMask::from_bools(), blender::bits::tests::TEST(), blender::index_mask::tests::TEST(), blender::index_mask::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), and blender::tests::TEST().
|
inlinestaticconstexpr |
Definition at line 69 of file BLI_index_range.hh.
References begin(), and IndexRange().
Referenced by blender::index_mask::add_coarse_segment__full(), blender::bits::bits_to_index_ranges(), blender::ed::sculpt_paint::greasepencil::CloneOperation::on_stroke_begin(), blender::bits::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), and blender::bke::bake::MemoryBlobWriter::write().
|
inlinestaticconstexpr |
Definition at line 84 of file BLI_index_range.hh.
References IndexRange().
Referenced by blender::tests::TEST().
|
inlinestaticconstexpr |
Definition at line 89 of file BLI_index_range.hh.
References IndexRange().
Referenced by blender::ed::sculpt_paint::greasepencil::InterpolateOpData::from_operator(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), and blender::tests::TEST().
|
inlineconstexpr |
Definition at line 157 of file BLI_index_range.hh.
References IndexRange().
Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::active_jitter(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::active_smoothing(), BKE_pbvh_bmesh_after_stroke(), blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::nodes::node_geo_curve_fill_cc::do_cdt_with_mask(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::ed::transform::curves::fill_map(), blender::find_envelope(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_extension_lines_from_circles(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::geometry::remap_edges(), blender::geometry::smooth_curve_positions(), and blender::index_mask::tests::TEST().
|
inlineconstexpr |
Returns a new IndexRange that contains the intersection of the current one with the given range. Returns empty range if there are no overlapping indices. The returned range is always a valid slice of this range.
Definition at line 290 of file BLI_index_range.hh.
References IndexRange().
Referenced by blender::eevee::ShadowDirectional::end_sync(), and blender::eevee::ShadowDirectional::release_excess_tilemaps().
|
inlineconstexpr |
Returns true if the size is zero.
Definition at line 165 of file BLI_index_range.hh.
Referenced by blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_edges(), blender::geometry::create_curve_from_vert_indices(), GeometryExporter::create_normals(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::draw::command::Draw::execute(), blender::ed::greasepencil::fill_strokes(), blender::ed::greasepencil::find_curve_segments(), blender::ed::sculpt_paint::grease_pencil_fill_overlay_cb(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::bits::BitSpan::is_empty(), blender::bits::MutableBitSpan::is_empty(), blender::ed::sculpt_paint::greasepencil::CloneOperation::on_stroke_begin(), blender::bke::bake::DiskBlobReader::read(), blender::bke::bake::MemoryBlobReader::read(), blender::io::grease_pencil::SVGImporter::read(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::geometry::resample_to_uniform(), blender::bits::MutableBitSpan::reset_all(), blender::ed::curves::select_alternate(), blender::bits::MutableBitSpan::set_all(), shrink_customdata(), blender::tests::TEST(), and blender::tests::TEST().
Get the nth last element in the range. Asserts when the range is empty or when n is negative.
Definition at line 210 of file BLI_index_range.hh.
References BLI_assert, and size().
Referenced by blender::draw::overlay::append_sphere(), blender::nodes::node_composite_glare_cc::GlareOperation::apply_streak_filter(), blender::bits::bits_to_index_ranges(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::draw::calc_edit_handles_ibo(), blender::geometry::calculate_bezier_handles_bezier_mode(), blender::geometry::calculate_bezier_handles_poly_mode(), blender::bke::calculate_evaluated_offsets(), blender::geometry::calculate_fillet_positions(), blender::io::usd::copy_primvar_to_blender_buffer(), blender::nodes::node_geo_sample_index_cc::copy_with_clamped_indices(), blender::create_dashes(), blender::draw::curves_sub_pass_setup_implementation(), draw_fcurve_curve_keys(), blender::draw::DRW_shgroup_curves_create_sub(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_bloom(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_ghost(), blender::geometry::extend_curves_straight(), blender::draw::extract_points_subdiv_bm(), blender::draw::extract_points_subdiv_mesh(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::ed::greasepencil::foreach_curve_segment(), blender::foreach_dash(), from_begin_end_inclusive(), blender::compositor::GlareBloomOperation::generate_glare(), blender::ed::greasepencil::get_reordered_indices(), blender::ed::greasepencil::get_visible_frames_for_layer(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::NodesModifierSimulationParams::init_simulation_info(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::bke::mesh::mesh_normals_corner_custom_set(), MOD_lineart_gpencil_generate_v3(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::ed::greasepencil::remove_points_and_split(), blender::geometry::sample_interval_bezier(), blender::ed::curves::select_alternate(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), space_workspace_cycle_invoke(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_bezier_segment(), blender::tests::TEST(), blender::tests::TEST(), timeline_cache_draw_geometry_nodes(), and blender::ed::greasepencil::trim::trim_curve_segments().
|
inlineconstexpr |
Get the element one after the end. The returned value is undefined when the range is empty.
Definition at line 231 of file BLI_index_range.hh.
Referenced by blender::index_mask::add_coarse_segment__copy(), blender::index_mask::add_coarse_segment__full(), blender::threading::align_sub_range(), blender::create_dashes(), blender::bits::BitSpan::end(), blender::bits::MutableBitSpan::end(), blender::eevee::ShadowDirectional::end_sync(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::io::grease_pencil::extend_curves_geometry(), blender::foreach_dash(), blender::GVArrayImpl_For_SlicedGVArray::GVArrayImpl_For_SlicedGVArray(), blender::eevee::ShadowDirectional::release_excess_tilemaps(), blender::bits::MutableBitSpan::reset_all(), blender::geometry::sample_interval_bezier(), blender::geometry::sample_interval_catmull_rom(), blender::geometry::sample_interval_linear(), blender::bits::MutableBitSpan::set_all(), blender::split_index_range_by_alignment(), and blender::geometry::subdivide_bezier_segment().
|
inlineconstexpr |
Get the element one before the beginning. The returned value is undefined when the range is empty, and the range must start after zero already.
Definition at line 222 of file BLI_index_range.hh.
References BLI_assert.
Access an element in the range.
Definition at line 130 of file BLI_index_range.hh.
References BLI_assert, and size().
|
inlineconstexpr |
Move the range forward or backward within the larger array. The amount may be negative, but its absolute value cannot be greater than the existing start of the range.
Definition at line 346 of file BLI_index_range.hh.
References IndexRange().
Referenced by blender::draw::create_edit_points_selection(), blender::nodes::node_geo_scale_elements_cc::from_indices_large_groups(), blender::eevee::ShadowDirectional::release_excess_tilemaps(), blender::ed::greasepencil::remove_points_and_split(), blender::ed::curves::select_alternate(), blender::index_mask::IndexMask::set_bits(), and blender::geometry::subdivide_bezier_segment().
|
inlineconstexpr |
Get the amount of numbers in the range.
Definition at line 152 of file BLI_index_range.hh.
Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::active_smoothing(), blender::index_mask::add_coarse_segment__full(), add_interpolated_faces_to_new_mesh(), blender::draw::command::DrawMultiBuf::bind(), BKE_defvert_extract_vgroup_to_faceweights(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), blender::bke::build_mesh_positions(), blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::draw::calc_edit_handles_ibo(), blender::geometry::calc_position_with_interpolation(), blender::geometry::calc_radius_with_interpolation(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::gpu::VKTexture::clear(), compute_interpolated_faces(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), copy_masked_faces_to_new_mesh(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_edges(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_faces(), blender::create_dashes(), blender::create_envelope_stroke_for_point(), blender::create_envelope_strokes_for_curve(), GeometryExporter::create_mesh_primitive_list(), blender::draw::pbvh::create_tri_index_mesh(), blender::bke::curve_to_mesh_sweep(), blender::draw::curves_sub_pass_setup_implementation(), do_glow_effect_byte(), draw_text_shadow(), blender::draw::DRW_shgroup_curves_create_sub(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves_CurveGeometry(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), blender::geometry::duplicate_fillet_point_data(), blender::ed::curves::duplicate_points(), blender::index_mask::evaluate_coarse_and_split_until_segments_are_short(), blender::index_mask::evaluate_exact_with_bits(), blender::index_mask::evaluate_exact_with_indices(), blender::bke::CurvesGeometry::evaluated_normals(), blender::draw::command::Draw::execute(), blender::geometry::execute_instances_tasks(), blender::geometry::extract_curves(), blender::geometry::extract_greasepencil_layer_curves(), blender::geometry::extract_mesh_faces(), 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::nodes::node_geo_extrude_mesh_cc::extrude_mesh_vertices(), blender::ed::greasepencil::fill_strokes(), blender::geometry::fillet_curves(), blender::bits::BoundedBitSpan::final_bits_num(), blender::bits::MutableBoundedBitSpan::final_bits_num(), blender::geometry::find_connected_ranges(), blender::find_key_range(), blender::ed::object::find_original_loop(), first(), blender::ed::greasepencil::foreach_curve_segment(), blender::foreach_dash(), blender::bits::BoundedBitSpan::full_ints_num(), blender::bits::MutableBoundedBitSpan::full_ints_num(), blender::ed::sculpt_paint::get_fill_boundary_layers(), blender::ed::greasepencil::get_reordered_indices(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_extension_lines_from_circles(), blender::ed::sculpt_paint::grease_pencil_fill_overlay_cb(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group_lazyness(), blender::bits::BitSpan::index_range(), blender::bits::MutableBitSpan::index_range(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), last(), blender::bke::subdiv::loop_interpolation_from_corner(), blender::bke::subdiv::loop_interpolation_init(), blender::bke::subdiv::loops_of_ptex_get(), blender::geometry::merge_customdata_all(), MOD_solidify_nonmanifold_modifyMesh(), modify_mesh(), modify_mesh(), blender::bits::BitSpan::operator[](), blender::bits::MutableBitSpan::operator[](), operator[](), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::bke::bake::DiskBlobReader::read(), blender::bke::bake::MemoryBlobReader::read(), blender::bke::bake::BlobReader::read_as_stream(), blender::geometry::reassign_loose_edge_verts(), blender::ed::greasepencil::remove_points_and_split(), blender::geometry::reorder_customdata_groups(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_uniform(), blender::ed::curves::resize_curves(), blender::geometry::sample_curve_attribute(), blender::geometry::sample_interval_bezier(), blender::geometry::sample_interval_catmull_rom(), blender::geometry::sample_interval_linear(), blender::index_mask::segments_from_indices(), shrink_customdata(), blender::bits::BitSpan::size(), blender::bits::MutableBitSpan::size(), blender::GVArray::slice(), blender::geometry::smooth_curve_positions(), ss_sync_from_uv(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::bke::subdiv::subdiv_foreach_corner_vertices_regular_do(), blender::bke::subdiv::subdiv_foreach_corner_vertices_special_do(), blender::bke::subdiv::subdiv_foreach_ctx_count(), blender::bke::subdiv::subdiv_foreach_ctx_init_offsets(), blender::bke::subdiv::subdiv_foreach_edge_vertices_regular_do(), blender::bke::subdiv::subdiv_foreach_edge_vertices_special_do(), blender::bke::subdiv::subdiv_foreach_edges_all_patches_regular(), blender::bke::subdiv::subdiv_foreach_edges_all_patches_special(), blender::bke::subdiv::subdiv_foreach_inner_vertices_special(), blender::bke::subdiv::subdiv_foreach_loops_regular(), blender::bke::subdiv::subdiv_foreach_loops_special(), blender::bke::subdiv::subdiv_mesh_is_center_vertex(), blender::geometry::subdivide_bezier_segment(), blender::index_mask::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::bke::subdiv::vertex_interpolation_from_corner(), blender::bke::subdiv::vertex_interpolation_init(), and blender::gpu::VKImageView::VKImageView().
|
inlineconstexpr |
Definition at line 280 of file BLI_index_range.hh.
|
inlineconstexpr |
Returns a new range, that contains a sub-interval of the current one.
Definition at line 272 of file BLI_index_range.hh.
References BLI_assert, IndexRange(), and start().
Referenced by blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::nodes::node_geo_scale_elements_cc::from_indices_large_groups(), blender::gpu::VKTexture::image_view_get(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::bits::BitSpan::slice(), blender::bits::MutableBitSpan::slice(), slice(), blender::geometry::subdivide_attribute_linear(), blender::tests::TEST(), and blender::tests::TEST().
|
inlineconstexpr |
Get the first element in the range. The returned value is undefined when the range is empty.
Definition at line 239 of file BLI_index_range.hh.
Referenced by blender::index_mask::add_coarse_segment__copy(), blender::index_mask::add_coarse_segment__full(), blender::index_mask::add_coarse_segment__unknown(), add_interpolated_faces_to_new_mesh(), blender::threading::align_sub_range(), blender::bits::BitSpan::begin(), blender::bits::MutableBitSpan::begin(), blender::draw::command::DrawMultiBuf::bind(), blender::bits::bits_to_index_ranges(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), blender::gpu::VKTexture::clear(), compute_volume(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), copy_masked_faces_to_new_mesh(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_edges(), blender::create_dashes(), create_mesh(), blender::bke::curve_to_mesh_sweep(), blender::bke::subdiv::displacement_get_grid_and_coord(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), blender::ed::curves::duplicate_points(), blender::eevee::ShadowDirectional::end_sync(), blender::index_mask::evaluate_exact_with_bits(), blender::index_mask::evaluate_exact_with_indices(), blender::draw::command::Draw::execute(), blender::draw::extract_uv_stretch_angle_mesh(), blender::bke::mesh::face_triangles_range(), blender::ed::transform::curves::fill_map(), blender::find_dash_segment(), blender::ed::object::find_original_loop(), blender::foreach_dash(), blender::io::alembic::get_uvs(), blender::bits::is_bounded_span(), blender::bke::subdiv::loop_interpolation_from_corner(), blender::bke::subdiv::loop_interpolation_init(), blender::bke::subdiv::loops_of_ptex_get(), mask_get_grid_and_coord(), blender::geometry::merge_customdata_all(), MOD_solidify_nonmanifold_modifyMesh(), modify_mesh(), modify_mesh(), blender::bits::BoundedBitSpan::offset(), blender::bits::MutableBoundedBitSpan::offset(), blender::bits::BitSpan::operator[](), blender::bits::MutableBitSpan::operator[](), blender::bits::or_bools_into_bits(), blender::bke::curves::per_curve_point_offsets_range(), blender::bke::bake::DiskBlobReader::read(), blender::io::usd::read_face_display_color(), blender::io::alembic::read_uvs(), blender::eevee::ShadowDirectional::release_excess_tilemaps(), blender::geometry::reorder_customdata_groups(), blender::bits::MutableBitSpan::reset_all(), blender::index_mask::segments_from_indices(), blender::bits::MutableBitSpan::set_all(), blender::io::grease_pencil::shape_attributes_to_curves(), shrink_customdata(), blender::GMutableSpan::slice(), blender::GSpan::slice(), blender::index_mask::IndexMask::slice(), slice(), slice(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), blender::index_mask::IndexMask::slice_and_shift(), blender::index_mask::IndexMask::slice_content(), blender::MutableSpan< T >::slice_safe(), blender::Span< T >::slice_safe(), blender::bits::try_get_bounded_span(), blender::bke::subdiv::vertex_interpolation_from_corner(), and blender::bke::subdiv::vertex_interpolation_init().
|
inlineconstexpr |
Returns a new IndexRange that only contains the last n elements. This invokes undefined behavior when n is negative.
Definition at line 335 of file BLI_index_range.hh.
References BLI_assert, and IndexRange().
Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::bits::BitSpan::take_back(), blender::bits::MutableBitSpan::take_back(), and blender::tests::TEST().
|
inlineconstexpr |
Returns a new IndexRange that only contains the first n elements. This invokes undefined behavior when n is negative.
Definition at line 324 of file BLI_index_range.hh.
References BLI_assert, and IndexRange().
Referenced by blender::ed::curves::duplicate_curves(), blender::index_mask::evaluate_coarse_and_split_until_segments_are_short(), blender::threading::detail::parallel_for_impl_accumulated_size_lookup(), blender::ed::sculpt_paint::undo::restore_vert_visibility_mesh(), blender::bits::BitSpan::take_front(), blender::bits::BoundedBitSpan::take_front(), blender::bits::MutableBitSpan::take_front(), blender::bits::MutableBoundedBitSpan::take_front(), blender::tests::TEST(), blender::tests::TEST(), and blender::memory_cache::try_enforce_limit().
|
inlineconstexpr |
Creates a new index range with the same beginning but a different end.
Definition at line 173 of file BLI_index_range.hh.
References from_begin_end().
Referenced by blender::index_mask::add_coarse_segment__copy(), blender::index_mask::add_coarse_segment__full(), and blender::index_mask::add_coarse_segment__unknown().
|
friend |
Definition at line 144 of file BLI_index_range.hh.
|
friend |
Definition at line 42 of file index_range.cc.
|
friend |
Two ranges compare equal when they contain the same numbers.
Definition at line 140 of file BLI_index_range.hh.