Blender V5.0
blender::IndexRange Class Reference

#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)

Detailed Description

Definition at line 50 of file BLI_index_range.hh.

Constructor & Destructor Documentation

◆ IndexRange() [1/3]

◆ IndexRange() [2/3]

blender::IndexRange::IndexRange ( int64_t size)
inlineexplicitconstexpr

Definition at line 58 of file BLI_index_range.hh.

References BLI_assert, and size().

◆ IndexRange() [3/3]

blender::IndexRange::IndexRange ( const int64_t start,
const int64_t size )
inlineconstexpr

Definition at line 63 of file BLI_index_range.hh.

References BLI_assert, size(), and start().

Member Function Documentation

◆ after()

◆ before()

IndexRange blender::IndexRange::before ( int64_t n) const
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().

◆ begin()

◆ contains() [1/2]

bool blender::IndexRange::contains ( const IndexRange range) const
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.

References IndexRange(), and is_empty().

◆ contains() [2/2]

bool blender::IndexRange::contains ( int64_t value) const
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::ed::greasepencil::apply_eval_grease_pencil_data(), blender::bke::armature_vert_task_with_mixer(), BKE_attributes_active_name_get(), blender::nodes::node_geo_index_switch_cc::IndexSwitchFunction::call(), blender::bke::copy_with_checked_indices(), DRW_select_buffer_elem_get(), blender::nodes::node_geo_edge_paths_to_selection_cc::edge_paths_to_selection(), blender::geometry::find_connected_ranges(), blender::find_envelope(), blender::geometry::foreach_connected_curve(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput::get_varray_for_context(), 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_offset_point_in_curve_cc::OffsetValidFieldInput::get_varray_for_context(), blender::ed::sculpt_paint::grease_pencil_fill_extension_lines_from_circles(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::space_node::node_select_same_type_step_exec(), blender::bke::bake::MemoryBlobReader::read(), blender::geometry::sample_curve_padded(), blender::bke::curves::bezier::segment_is_vector(), blender::simplify_drawing(), blender::index_mask::tests::TEST(), blender::tests::TEST(), blender::geometry::toposort_connected_curves(), and ui_but_update_from_old_block().

◆ drop_back()

IndexRange blender::IndexRange::drop_back ( int64_t n) const
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::curves::calc_new_offsets(), blender::geometry::calculate_directions(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::bke::curves::poly::calculate_tangents(), blender::geometry::catmull_rom_to_bezier_handles(), blender::ed::space_node::compute_context_for_tree_path(), blender::create_dashes(), blender::draw::create_segments_with_cyclic(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_spherical(), blender::io::obj::detect_knot_mode_cyclic(), blender::io::alembic::ABCCurveWriter::do_write(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::curves::extrude_knots(), blender::ed::sculpt_paint::find_curves_brush_position(), blender::ed::greasepencil::frame_clean_duplicate_exec(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_projected(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_spherical(), blender::ed::greasepencil::generate_stroke_perimeter(), blender::ed::space_node::get_compute_context_hash_for_node_editor(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::geometry::join_curves_ranges(), blender::geometry::limit_radii(), blender::ed::space_node::link_path_intersection(), blender::ed::greasepencil::mark_borders(), blender::geometry::boolean::mesh_boolean_float(), blender::geometry::nurbs_to_bezier_assign(), blender::ed::curves::pen_tool::pen_find_closest_edge_point(), poly_loops_orders_match(), blender::ed::greasepencil::primitive_calulate_curve_positions(), blender::bke::node_structure_type_inferencing::propagate_left_to_right(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::ed::curves::resize_curves(), blender::bke::curves::bezier::segment_is_vector(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::ed::curves::select_mask_from_predicates(), blender::simplify_drawing(), blender::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::geometry::smooth_curve_positions(), blender::ed::transform::sort_time_beztmaps(), blender::bke::node_structure_type_inferencing::store_group_input_structure_types(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_attribute_linear(), blender::geometry::subdivide_bezier_positions(), blender::tests::TEST(), blender::tests::TEST(), blender::length_parameterize::tests::test_uniform_lengths(), blender::bke::greasepencil::update_curve_plane_normal_cache(), blender::io::obj::valid_nurb_control_point_range(), blender::io::grease_pencil::SVGExporter::write_bezier_path(), and blender::io::obj::OBJWriter::write_nurbs_curve().

◆ drop_front()

IndexRange blender::IndexRange::drop_front ( int64_t n) const
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 blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_ghosts_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::accumulate_ghosts_gpu(), blender::geometry::add_curves_on_mesh(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BLI_lasso_boundbox(), blender::geometry::build_point_to_sample_map(), blender::ed::sculpt_paint::islands::calc_topology_islands_mesh(), blender::geometry::calculate_angles(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::bke::curves::nurbs::calculate_multiplicity_sequence(), blender::bke::curves::poly::calculate_tangents(), blender::geometry::catmull_rom_to_bezier_handles(), blender::draw::gpencil::cdf_invert(), blender::eevee::Sampling::cdf_invert(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical(), blender::ed::curves::compress_intervals(), blender::index_mask::consolidate_index_mask_segments(), blender::io::obj::detect_knot_mode_uniform(), blender::index_mask::difference_index_mask_segments(), 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::ed::sculpt_paint::ScaleCurvesEffect::execute(), export_hair_curves(), blender::ed::curves::extrude_knots(), blender::array_utils::find_all_ranges(), blender::find_closest_point(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curve_weights_projected(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curves_weights_spherical(), blender::ed::greasepencil::generate_stroke_perimeter(), blender::get_factor_from_draw_speed(), blender::ed::greasepencil::grease_pencil_separate_material(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::index_mask::intersect_index_mask_segments(), blender::ed::mesh::join_objects_exec(), blender::ed::mesh::join_shape_keys(), blender::geometry::limit_radii(), blender::bke::curves::bezier::linear_interpolation(), blender::geometry::linear_interpolation(), blender::ed::greasepencil::mark_borders(), blender::bke::mesh_calc_edges(), 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::PinchOperationExecutor::pinch_projected(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_spherical(), blender::ed::greasepencil::polyline_fit_curve(), blender::ed::sculpt_paint::PuffOperationExecutor::puff(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::geometry::remove_points_and_split(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::simplify_drawing(), blender::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::geometry::smooth_curve_positions(), blender::geometry::curve_constraints::solve_length_and_collision_constraints(), blender::draw::statvis_calc_distort(), blender::geometry::subdivide_bezier_segment(), blender::compositor::SymmetricBlurWeights::SymmetricBlurWeights(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::memory_cache::try_enforce_limit(), blender::index_mask::union_index_mask_segments(), blender::io::obj::valid_nurb_control_point_range(), and blender::write_weights_for_drawing().

◆ end()

◆ first()

int64_t blender::IndexRange::first ( ) const
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::ed::curves::append_point_knots(), blender::seq::BrightContrastApplyOp::apply(), blender::seq::ColorBalanceApplyOp::apply(), blender::seq::ColorBalanceApplyOp::apply(), blender::seq::CurvesApplyOp::apply(), blender::seq::HueCorrectApplyOp::apply(), blender::seq::MaskApplyOp::apply(), blender::seq::TonemapApplyOp::apply(), blender::seq::WhiteBalanceApplyOp::apply(), blender::array_utils::booleans_mix_calc(), blender::build_concurrent(), blender::build_sequential(), blender::ed::curves::calc_curves_extrusion(), blender::ed::vse::ScopeHistogram::calc_from_ibuf(), blender::ed::curves::pen_tool::calculate_center_of_mass(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::ed::greasepencil::clamp_range(), blender::ed::curves::pen_tool::close_curve_and_select(), blender::ed::curves::compress_intervals(), blender::nodes::node_composite_glare_cc::GlareOperation::compute_bloom_downsample_chain(), blender::geometry::convert_curves_to_bezier(), blender::geometry::copy_point_data_between_endpoints(), blender::draw::create_lines_ibo_with_cyclic(), blender::draw::create_segments_with_cyclic(), blender::draw::pbvh::create_tri_index_mesh(), blender::ed::greasepencil::curve_merge_by_distance(), blender::ed::curves::curve_offsets_from_selection(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected(), blender::ed::vse::delete_selected_text(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_spherical(), blender::seq::do_glow_effect_byte(), blender::seq::do_wipe_effect(), blender::io::alembic::ABCCurveWriter::do_write(), blender::seq::draw_text_shadow(), blender::bke::CurvesGeometry::evaluated_tangents(), export_hair_curves(), blender::geometry::extend_curve_straight(), blender::ed::curves::extend_range_by_1_within_bounds(), blender::draw::extract_points_subdiv_bm(), blender::draw::extract_points_subdiv_mesh(), blender::ed::curves::pen_tool::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::ed::curves::extrude_knots(), blender::ed::greasepencil::find_curve_intersections(), blender::ed::greasepencil::find_curve_segments(), blender::ed::sculpt_paint::find_curves_brush_position(), blender::find_envelope(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::greasepencil::foreach_curve_segment(), blender::ed::greasepencil::generate_stroke_perimeter(), blender::ed::greasepencil::trim::get_intersections_of_curve_with_curves(), blender::ed::sculpt_paint::greasepencil::get_single_stroke(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::greasepencil::grease_pencil_primitive_exit(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::draw::index_buf_add_line_points(), blender::index_mask::index_range_to_mask_segments(), blender::index_mask::IndexMask::IndexMask(), blender::NodesModifierSimulationParams::init_simulation_info(), blender::ed::curves::pen_tool::insert_point_to_curve(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::ed::curves::invert_ranges(), blender::modify_fill_color(), blender::modify_fill_color(), blender::modify_stroke_color(), blender::ed::curves::pen_tool::move_segment(), blender::seq::multiply_ibuf(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::index_mask::operator<<(), blender::threading::parallel_deterministic_reduce(), blender::threading::parallel_reduce(), blender::ed::curves::pen_tool::pen_find_closest_edge_point(), blender::imbuf::transform::process_scanlines(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::geometry::remove_points_and_split(), blender::reorder_strokes(), blender::geometry::sample_curve_attribute(), blender::geometry::sample_interval_bezier(), blender::geometry::sample_interval_catmull_rom(), blender::geometry::sample_interval_linear(), scale_nearest(), blender::seq::scene_linear_to_image_chunk_float(), blender::index_mask::segments_from_batch_predicate(), blender::ed::curves::select_adjacent(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::ed::curves::select_mask_from_predicates(), blender::ed::curves::separate_points(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::skip_strokes_with_locked_material(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::ed::curves::split_points(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_bezier_segment(), blender::ed::greasepencil::subdivide_last_segement(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::ed::vse::text_edit_copy(), blender::ed::vse::text_selection_draw(), timeline_cache_draw_geometry_nodes(), blender::ed::greasepencil::trim::trim_curve_segments(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), and blender::ed::curves::convert_to_particle_system::try_convert_single_object().

◆ from_begin_end()

constexpr IndexRange blender::IndexRange::from_begin_end ( const int64_t begin,
const int64_t end )
inlinestaticconstexpr

Definition at line 74 of file BLI_index_range.hh.

References begin(), end(), 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::bke::curves::nurbs::calculate_basis_cache(), blender::bke::curves::nurbs::count_nonzero_knot_spans(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::seq::fill_rect_alpha_under(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::greasepencil::foreach_curve_segment(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_item_groups(), blender::bke::curves::if_has_data_call_callback(), blender::ed::curves::invert_ranges(), next_token(), blender::IndexRangesBuilder< T >::operator[](), blender::offset_indices::OffsetIndices< T >::operator[](), blender::offset_indices::OffsetIndices< T >::operator[](), blender::csv_parse::detail::parse_record_fields(), blender::dna::array::remove_if(), blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), blender::bke::Instances::resize(), blender::geometry::sample_curve_padded(), blender::index_mask::segments_from_batch_predicate(), blender::csv_parse::split_into_aligned_chunks(), blender::ed::curves::split_points(), blender::index_mask::tests::TEST(), blender::index_mask::tests::TEST(), blender::index_mask::tests::TEST(), blender::index_mask::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::draw::update_loose_flags(), blender::draw::update_loose_normals(), and with_new_end().

◆ from_begin_end_inclusive()

◆ from_begin_size()

◆ from_end_size()

constexpr IndexRange blender::IndexRange::from_end_size ( const int64_t end,
const int64_t size )
inlinestaticconstexpr

Definition at line 84 of file BLI_index_range.hh.

References end(), IndexRange(), and size().

Referenced by blender::array_utils::find_all_ranges(), and blender::tests::TEST().

◆ from_single()

◆ index_range()

IndexRange blender::IndexRange::index_range ( ) const
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(), blender::ed::curves::append_point_knots(), blender::nodes::LazyFunctionForForeachGeometryElementZone::build_graph_contents(), blender::draw::calc_edit_handles_ibo(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::io::usd::copy_primvar_to_blender_buffer(), blender::nodes::node_geo_extrude_mesh_cc::copy_with_mixing(), blender::draw::create_edit_points_data(), blender::draw::create_lines_ibo_no_cyclic(), blender::draw::create_lines_ibo_with_cyclic(), blender::draw::create_segments_with_cyclic(), blender::deform_drawing(), blender::deform_drawing(), blender::deform_drawing_as_envelope(), blender::nodes::node_geo_curve_fill_cc::do_cdt_with_mask(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), export_hair_curves_motion(), blender::draw::extract_edituv_tris_mesh(), blender::nodes::node_geo_extrude_mesh_cc::extrude_individual_mesh_faces(), blender::ed::transform::curves::fill_map(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::greasepencil::generate_stroke_perimeter(), blender::get_factor_from_draw_speed(), 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::draw::index_buf_add_nurbs_lines(), blender::csv_parse::CsvRecord::index_range(), blender::csv_parse::CsvRecords::index_range(), blender::draw::ResourceHandleRange::index_range(), blender::OffsetSpan< T, BaseT >::index_range(), blender::array_utils::indices_are_range(), blender::nodes::LazyFunctionForEvaluateClosureNode::initialize_execution_graph(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::ed::mesh::join_face_sets(), blender::ed::mesh::join_materials(), blender::ed::mesh::join_objects_exec(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::fn::multi_function::MultiFunction::param_indices(), blender::ed::curves::pen_tool::pen_find_closest_edge_point(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::io::usd::read_face_display_color(), blender::geometry::remap_edges(), blender::geometry::sample_bezier_curve_positions_handles(), blender::geometry::sample_catmull_rom_curve_positions_handles(), blender::geometry::sample_curve_attribute(), blender::geometry::sample_curve_padded(), blender::geometry::sample_poly_curve_positions_handles(), blender::ed::curves::select_linked(), blender::geometry::smooth_curve_positions(), blender::index_mask::tests::TEST(), blender::ed::sculpt_paint::greasepencil::trim_stroke_ends(), and blender::io::obj::OBJWriter::write_nurbs_curve().

◆ intersect()

IndexRange blender::IndexRange::intersect ( IndexRange other) const
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(), blender::eevee::ShadowDirectional::release_excess_tilemaps(), and blender::tests::TEST().

◆ is_empty()

bool blender::IndexRange::is_empty ( ) const
inlineconstexpr

Returns true if the size is zero.

Definition at line 165 of file BLI_index_range.hh.

Referenced by blender::bits::bits_to_index_ranges(), blender::bke::calculate_evaluated_offsets(), blender::ed::greasepencil::clamp_range(), contains(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_edges(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_faces(), blender::geometry::create_curve_from_vert_indices(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_instances(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_layers(), blender::index_mask::evaluate_short_unknown_segments_exactly(), blender::draw::command::Draw::execute(), blender::bke::fill_attribute_range_default(), blender::ed::greasepencil::find_curve_segments(), blender::ed::greasepencil::foreach_curve_segment(), blender::foreach_dash(), blender::ed::sculpt_paint::grease_pencil_fill_overlay_cb(), blender::index_mask::IndexMask::IndexMask(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::bke::curves::nurbs::load_curve_knots(), blender::modify_fill_color(), blender::modify_fill_color(), blender::ed::sculpt_paint::greasepencil::CloneOperation::on_stroke_begin(), blender::threading::parallel_for(), blender::threading::detail::parallel_for_impl_accumulated_size_lookup(), blender::bke::bake::DiskBlobReader::read(), blender::bke::bake::MemoryBlobReader::read(), blender::io::grease_pencil::SVGImporter::read(), blender::ed::greasepencil::render_strokes(), 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::geometry::sample_curve_padded(), blender::ed::curves::select_alternate(), blender::offset_indices::OffsetIndices< T >::slice(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::ed::vse::text_has_selection(), and blender::ed::sculpt_paint::greasepencil::PaintOperation::update_stroke_depth_placement().

◆ last()

int64_t blender::IndexRange::last ( const int64_t n = 0) const
inlineconstexpr

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::nodes::node_composite_glare_cc::GlareOperation::accumulate_ghosts_gpu(), blender::draw::overlay::append_sphere(), blender::nodes::node_composite_glare_cc::GlareOperation::apply_streak_filter_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::apply_streak_filter_gpu(), 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::build_sequential(), blender::ed::curves::calc_curves_extrusion(), blender::geometry::calculate_bezier_handles_bezier_mode(), blender::geometry::calculate_bezier_handles_poly_mode(), blender::ed::curves::pen_tool::calculate_center_of_mass(), blender::bke::calculate_evaluated_offsets(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::calculate_fillet_positions(), blender::ed::greasepencil::clamp_range(), blender::ed::curves::pen_tool::close_curve_and_select(), blender::io::usd::copy_primvar_to_blender_buffer(), blender::nodes::node_geo_sample_index_cc::copy_with_clamped_indices(), blender::create_dashes(), blender::draw::create_lines_ibo_no_cyclic(), blender::draw::create_lines_ibo_with_cyclic(), blender::draw::create_segments_with_cyclic(), blender::draw::curve_create_curves_lines(), blender::ed::curves::curve_offsets_from_selection(), blender::ed::vse::delete_selected_text(), blender::io::alembic::ABCCurveWriter::do_write(), blender::bke::CurvesGeometry::evaluated_tangents(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_bloom(), blender::geometry::extend_curve_straight(), blender::ed::curves::extend_range(), blender::ed::curves::extend_range_by_1_within_bounds(), blender::draw::extract_points_subdiv_bm(), blender::draw::extract_points_subdiv_mesh(), blender::ed::curves::pen_tool::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::bke::mesh::face_corner_next(), blender::ed::greasepencil::find_curve_intersections(), blender::find_envelope(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::greasepencil::foreach_curve_segment(), blender::foreach_dash(), from_begin_end_inclusive(), blender::get_factor_from_draw_speed(), blender::ed::greasepencil::get_reordered_indices(), blender::ed::greasepencil::get_visible_frames_for_layer(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), blender::ed::sculpt_paint::grease_pencil_fill_get_extension_data(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::greasepencil::grease_pencil_primitive_exit(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::hard_eraser(), blender::index_mask::IndexMask::IndexMask(), blender::NodesModifierSimulationParams::init_simulation_info(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::ed::curves::invert_ranges(), blender::geometry::limit_radii(), blender::bke::mesh_flip_faces(), blender::bke::mesh::mesh_normals_corner_custom_set(), MOD_lineart_gpencil_generate_v3(), MOD_solidify_extrude_modifyMesh(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::index_mask::operator<<(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::geometry::remove_points_and_split(), blender::reorder_strokes(), blender::geometry::sample_interval_bezier(), blender::ed::curves::select_adjacent(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::ed::curves::select_mask_from_predicates(), blender::ed::curves::separate_points(), blender::ed::greasepencil::simplify_fixed(), blender::ed::sculpt_paint::simplify_fixed(), blender::simplify_fixed(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::skip_strokes_with_locked_material(), blender::offset_indices::OffsetIndices< T >::slice(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::soft_eraser(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::spherical_snake_hook(), blender::ed::curves::split_points(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), blender::geometry::subdivide_bezier_segment(), blender::ed::greasepencil::subdivide_last_segement(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::ed::vse::text_edit_copy(), blender::ed::vse::text_selection_draw(), timeline_cache_draw_geometry_nodes(), blender::ed::greasepencil::trim::trim_curve_segments(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), blender::ed::sculpt_paint::greasepencil::trim_stroke_ends(), and blender::bke::greasepencil::update_curve_plane_normal_cache().

◆ one_after_last()

◆ one_before_start()

int64_t blender::IndexRange::one_before_start ( ) const
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.

Referenced by blender::ed::curves::append_point_knots(), blender::ed::sculpt_paint::greasepencil::simplify_opacities(), and blender::tests::TEST().

◆ operator[]()

int64_t blender::IndexRange::operator[] ( int64_t index) const
inlineconstexpr

Access an element in the range.

Definition at line 130 of file BLI_index_range.hh.

References BLI_assert, and size().

◆ shift()

◆ size()

int64_t blender::IndexRange::size ( ) const
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(), blender::nodes::node_geo_instance_on_points_cc::add_instances_from_component(), add_interpolated_faces_to_new_mesh(), blender::ed::curves::append_point_knots(), blender::seq::TonemapApplyOp::apply(), blender::geometry::assign_samples_to_segments(), blender::bits::bits_to_index_ranges(), BKE_defvert_extract_vgroup_to_faceweights(), BKE_mesh_calc_relative_deform(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), blender::build_concurrent(), blender::bke::build_mesh_positions(), blender::geometry::build_point_to_sample_map(), blender::ed::curves::calc_curves_extrusion(), blender::ed::vse::ScopeHistogram::calc_from_ibuf(), blender::ed::spreadsheet::calc_mesh_selection_mask(), blender::geometry::calc_position_with_interpolation(), blender::geometry::calc_radius_with_interpolation(), calc_tangent_spaces(), blender::ed::curves::pen_tool::calculate_center_of_mass(), blender::bke::calculate_evaluated_offsets(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::gpu::VKTexture::clear(), blender::ed::sculpt_paint::color::color_vert_set(), blender::ed::curves::compress_intervals(), compute_interpolated_faces(), compute_volume(), computeBindWeights(), computed_masked_faces(), blender::index_mask::consolidate_index_mask_segments(), blender::nodes::node_geo_uv_pack_islands_cc::construct_uv_gvarray(), blender::nodes::node_geo_uv_unwrap_cc::construct_uv_gvarray(), blender::gpu::convert_buffer(), 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(), blender::create_envelope_strokes_for_curve(), blender::draw::create_lines_ibo_no_cyclic(), blender::draw::create_lines_ibo_with_cyclic(), create_mesh(), blender::draw::pbvh::create_tri_index_mesh(), blender::draw::curve_create_curves_lines(), blender::bke::curve_legacy_to_curves(), blender::ed::curves::curve_offsets_from_selection(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::bke::curve_to_mesh_sweep(), blender::deform_drawing(), blender::deform_drawing(), blender::deform_drawing_as_envelope(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_spherical(), blender::bke::subdiv::displacement_data_init_mapping(), blender::bke::subdiv::displacement_get_grid_and_coord(), blender::bke::subdiv::displacement_get_other_grid(), blender::seq::do_glow_effect_byte(), blender::draw::overlay::GreasePencil::draw_grease_pencil(), blender::seq::draw_text_shadow(), 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(), ed_mesh_pick_face_vert__mpoly_find(), blender::index_mask::evaluate_coarse_and_split_until_segments_are_short(), blender::bke::CurvesGeometry::evaluated_normals(), blender::draw::command::Draw::execute(), blender::geometry::execute_instances_tasks(), export_hair_curves_motion(), blender::geometry::extract_curves(), blender::geometry::extract_greasepencil_layer_curves(), blender::geometry::extract_mesh_faces(), blender::draw::extract_uv_stretch_angle_mesh(), blender::ed::curves::pen_tool::extrude_curves(), 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::bke::mesh::face_corner_prev(), blender::bke::mesh::face_triangles_range(), fill_laplacian_matrix(), blender::bke::curves::fill_points(), blender::geometry::fillet_curves(), blender::geometry::find_connected_ranges(), blender::ed::sculpt_paint::find_curves_brush_position(), blender::find_envelope(), blender::ed::object::find_original_loop(), first(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::greasepencil::foreach_curve_segment(), blender::foreach_dash(), blender::io::grease_pencil::GreasePencilExporter::foreach_stroke_in_layer(), from_begin_size(), from_end_size(), blender::nodes::node_geo_scale_elements_cc::gather_mean(), blender::draw::command::DrawMultiBuf::generate_commands(), blender::ed::greasepencil::generate_stroke_perimeter(), blender::ed::greasepencil::get_boundary_bounds(), blender::io::alembic::get_cols(), blender::bke::subdiv::get_face_vertices(), blender::get_factor_from_draw_speed(), blender::ed::sculpt_paint::get_fill_boundary_layers(), blender::ed::greasepencil::get_reordered_indices(), blender::ed::sculpt_paint::greasepencil::get_single_stroke(), blender::io::alembic::get_topology(), blender::io::usd::get_usd_points_range_de_dup(), blender::io::alembic::get_uvs(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput::get_varray_for_context(), blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput::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::ControlPointNeighborFieldInput::get_varray_for_context(), blender::ed::greasepencil::get_visible_boundary_strokes(), blender::bke::mesh::SGLSLMeshToTangent::GetNormal(), 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_get_extension_data(), blender::ed::sculpt_paint::grease_pencil_fill_overlay_cb(), blender::draw::grease_pencil_geom_batch_ensure(), blender::draw::grease_pencil_wire_batch_ensure(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group(), blender::nodes::LazyFunctionForReduceForeachGeometryElement::handle_generation_items_group_lazyness(), blender::draw::index_buf_add_nurbs_lines(), blender::index_mask::index_range_to_mask_segments(), blender::index_mask::IndexMask::IndexMask(), IndexRange(), IndexRange(), blender::array_utils::indices_are_range(), init_laplacian_matrix(), blender::ed::curves::pen_tool::insert_point_to_curve(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), blender::ed::mesh::join_face_sets(), blender::ed::mesh::join_shape_keys(), last(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::io::ply::load_plydata(), blender::bke::subdiv::loop_interpolation_from_corner(), blender::bke::subdiv::loop_interpolation_init(), blender::bke::subdiv::loops_of_ptex_get(), make_child_duplis_faces_from_mesh(), mask_data_init_mapping(), mask_get_grid_and_coord(), blender::geometry::merge_customdata_all(), blender::bke::mesh_calc_edges(), blender::bke::mesh_flip_faces(), blender::bke::mesh_init_origspace(), mesh_remap_interp_face_data_get(), blender::geometry::mesh_triangulate(), meshdeform_boundary_phi(), meshdeform_ray_tree_intersect(), MOD_solidify_extrude_modifyMesh(), MOD_solidify_nonmanifold_modifyMesh(), modify_mesh(), modify_mesh(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::modify_stroke_color(), blender::ed::curves::pen_tool::move_segment(), multires_reshape_apply_base_refit_base_mesh(), multires_subdivide_create_object_space_linear_grids(), multires_unsubdivide_flip_grid_x_axis(), nearestVert(), blender::bke::subdiv::num_ptex_faces_per_face_get(), operator[](), blender::threading::parallel_deterministic_reduce(), blender::threading::detail::parallel_for_impl_accumulated_size_lookup(), blender::threading::parallel_reduce(), blender::ed::curves::pen_tool::pen_find_closest_edge_point(), blender::bke::curves::per_curve_point_offsets_range(), blender::gpu::Immediate::polyline_draw_workaround(), polyline_draw_workaround(), blender::io::usd::populate_curve_props_for_nurbs(), blender::io::usd::populate_curve_verts(), blender::io::usd::populate_curve_verts_for_bezier(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::io::alembic::process_loop_normals(), project_paint_prepare_all_faces(), blender::bke::subdiv::ptex_face_resolution_get(), blender::ed::sculpt_paint::PuffOperationExecutor::puff(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::bke::bake::DiskBlobReader::read(), blender::bke::bake::MemoryBlobReader::read(), blender::gpu::VKTexture::read(), blender::bke::bake::BlobReader::read_as_stream(), blender::io::usd::USDNurbsReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::io::alembic::read_custom_data_mcols(), blender::gpu::VKTexture::read_sub(), blender::io::alembic::read_uvs(), blender::geometry::reassign_loose_edge_verts(), blender::geometry::remove_points_and_split(), blender::ed::greasepencil::render_strokes(), blender::geometry::reorder_attribute_groups(), blender::geometry::reorder_customdata_groups(), blender::reorder_cyclic_curve_points(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_uniform(), blender::bits::MutableBitSpan::reset_all(), reset_uvs_mesh(), blender::ed::curves::resize_curves(), blender::ed::curves::retrieve_selected_curves(), blender::bke::reverse_swap_curve_point_data(), blender::geometry::sample_bezier_curve_positions_handles(), blender::geometry::sample_catmull_rom_curve_positions_handles(), blender::geometry::sample_curve_attribute(), blender::geometry::sample_curve_padded(), blender::geometry::sample_interval_bezier(), blender::geometry::sample_interval_catmull_rom(), blender::geometry::sample_interval_linear(), blender::geometry::sample_poly_curve_positions_handles(), blender::seq::scene_linear_to_image_chunk_byte(), blender::seq::scene_linear_to_image_chunk_float(), blender::index_mask::segments_from_batch_predicate(), blender::index_mask::segments_from_indices(), blender::ed::curves::select_adjacent_mask(), blender::ed::curves::select_alternate(), blender::ed::curves::select_mask_from_predicates(), blender::ed::curves::separate_points(), blender::bke::calc_edges::serialize_and_initialize_deduplicated_edges(), blender::bits::MutableBitSpan::set_all(), blender::ed::curves::shift_end_by(), blender::ed::greasepencil::simplify_fixed(), blender::ed::sculpt_paint::simplify_fixed(), blender::simplify_fixed(), blender::ed::sculpt_paint::greasepencil::simplify_opacities(), blender::GMutableSpan::slice(), blender::GSpan::slice(), blender::GVArray::slice(), blender::index_mask::IndexMask::slice(), slice(), slice(), blender::MutableSpan< T >::slice(), blender::offset_indices::OffsetIndices< 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::ed::sculpt_paint::SmoothOperationExecutor::smooth(), blender::geometry::smooth_curve_attribute(), blender::geometry::smooth_curve_positions(), blender::ed::transform::snap_polygon_mesh(), blender::split_index_range_by_alignment(), blender::ed::curves::split_points(), blender::draw::statvis_calc_distort(), store_grid_data(), blender::ed::sculpt_paint::greasepencil::EraseOperationExecutor::stroke_eraser(), subdiv_ccg_coord_to_ptex_coord(), 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::ed::greasepencil::subdivide_last_segement(), blender::index_mask::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::geometry::toposort_connected_curves(), blender::ed::sculpt_paint::greasepencil::trim_end_points(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), blender::bke::greasepencil::update_curve_plane_normal_cache(), blender::gpu::GLTexture::update_sub(), blender::gpu::MTLTexture::update_sub(), blender::bke::greasepencil::update_triangle_cache(), blender::threading::use_single_thread(), uv_warp_compute(), blender::io::obj::valid_nurb_control_point_range(), blender::bke::subdiv::vertex_interpolation_from_corner(), blender::bke::subdiv::vertex_interpolation_init(), wn_corner_angle(), wn_face_with_angle(), blender::io::obj::OBJWriter::write_nurbs_curve(), blender::bke::write_sharp_bezier_edges(), and blender::write_weights_for_drawing().

◆ slice() [1/2]

IndexRange blender::IndexRange::slice ( IndexRange range) const
inlineconstexpr

Definition at line 280 of file BLI_index_range.hh.

References IndexRange(), size(), slice(), and start().

◆ slice() [2/2]

◆ start()

int64_t blender::IndexRange::start ( ) const
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::bits_to_index_ranges(), BKE_defvert_extract_vgroup_to_faceweights(), BKE_mesh_calc_relative_deform(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), BM_mesh_bm_from_me(), blender::ed::curves::calc_curves_extrusion(), calc_tangent_spaces(), blender::gpu::VKTexture::clear(), blender::ed::sculpt_paint::color::color_vert_set(), compute_volume(), computeBindWeights(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), copy_masked_faces_to_new_mesh(), blender::bke::copy_point_selection_custom_knots(), blender::io::usd::copy_primvar_to_blender_buffer(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_edges(), blender::create_dashes(), blender::draw::create_lines_ibo_no_cyclic(), blender::draw::create_lines_ibo_with_cyclic(), create_mesh(), blender::bke::curve_to_mesh_sweep(), blender::bke::subdiv::displacement_get_grid_and_coord(), DRW_select_buffer_context_offset_for_object_elem(), DRW_select_buffer_elem_get(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_edges(), blender::draw::edit_select::Instance::edit_mesh_sync(), blender::eevee::ShadowDirectional::end_sync(), blender::draw::command::Draw::execute(), export_hair_curves_motion(), blender::ed::curves::extend_range(), blender::ed::curves::extend_range_by_1_within_bounds(), blender::draw::extract_uv_stretch_angle_mesh(), blender::bke::mesh::face_corner_next(), blender::bke::mesh::face_corner_prev(), blender::bke::mesh::face_triangles_range(), blender::geometry::face_tris_mask(), fill_laplacian_matrix(), blender::ed::transform::curves::fill_map(), blender::find_dash_segment(), blender::ed::object::find_original_loop(), blender::geometry::fit_poly_to_bezier_curves(), blender::foreach_dash(), blender::draw::command::DrawMultiBuf::generate_commands(), blender::io::alembic::get_cols(), blender::bke::subdiv::get_face_corner_uv_index(), blender::io::alembic::get_topology(), blender::io::alembic::get_uvs(), 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::ControlPointNeighborFieldInput::get_varray_for_context(), IndexRange(), init_laplacian_matrix(), blender::ed::sculpt_paint::greasepencil::PaintOperation::interpolate_stroke_depth(), 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(), blender::bke::mesh_calc_edges(), blender::bke::mesh_init_origspace(), mesh_island_to_astar_graph_edge_process(), blender::draw::edit_select::Instance::mesh_sync(), MOD_solidify_extrude_modifyMesh(), MOD_solidify_nonmanifold_modifyMesh(), modify_mesh(), modify_mesh(), multires_subdivide_create_object_space_linear_grids(), multires_unsubdivide_flip_grid_x_axis(), nearestVert(), operator<<, blender::bits::or_bytes_into_bits(), blender::bke::curves::per_curve_point_offsets_range(), blender::gpu::Immediate::polyline_draw_workaround(), polyline_draw_workaround(), blender::bke::subdiv::precalc_uv_layer(), blender::bke::bake::DiskBlobReader::read(), blender::io::alembic::read_custom_data_mcols(), blender::io::usd::read_face_display_color(), blender::gpu::VKTexture::read_sub(), blender::io::alembic::read_uvs(), blender::eevee::ShadowDirectional::release_excess_tilemaps(), blender::geometry::reorder_attribute_groups(), blender::geometry::reorder_customdata_groups(), blender::reorder_cyclic_curve_points(), blender::bits::MutableBitSpan::reset_all(), blender::index_mask::segments_from_indices(), blender::bke::calc_edges::serialize_and_initialize_deduplicated_edges(), blender::bits::MutableBitSpan::set_all(), blender::io::grease_pencil::shape_attributes_to_curves(), blender::ed::curves::shift_end_by(), blender::ed::greasepencil::simplify_fixed(), blender::ed::sculpt_paint::simplify_fixed(), blender::simplify_fixed(), blender::GMutableSpan::slice(), blender::GSpan::slice(), blender::index_mask::IndexMask::slice(), slice(), slice(), blender::MutableSpan< T >::slice(), blender::offset_indices::OffsetIndices< 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::geometry::smooth_curve_positions(), blender::ed::transform::snap_polygon_mesh(), blender::split_index_range_by_alignment(), subdiv_ccg_coord_to_ptex_coord(), blender::tests::TEST(), blender::bits::try_get_bounded_span(), uv_warp_compute(), blender::bke::subdiv::vertex_interpolation_from_corner(), blender::bke::subdiv::vertex_interpolation_init(), wn_corner_angle(), wn_face_with_angle(), and blender::write_weights_for_drawing().

◆ take_back()

IndexRange blender::IndexRange::take_back ( int64_t n) const
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::curves::append_point_knots(), blender::geometry::mesh_triangulate(), blender::ed::curves::resize_curves(), blender::tests::TEST(), and blender::tests::TEST().

◆ take_front()

◆ with_new_end()

IndexRange blender::IndexRange::with_new_end ( const int64_t new_end) const
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(), and IndexRange().

Referenced by blender::index_mask::add_coarse_segment__copy(), blender::index_mask::add_coarse_segment__full(), and blender::index_mask::add_coarse_segment__unknown().

◆ operator!=

friend bool operator!= ( IndexRange a,
IndexRange b )
friend

Definition at line 144 of file BLI_index_range.hh.

References b, and IndexRange().

◆ operator<<

std::ostream & operator<< ( std::ostream & stream,
IndexRange range )
friend

Definition at line 46 of file index_range.cc.

References IndexRange(), one_after_last(), and start().

◆ operator==

friend bool operator== ( IndexRange a,
IndexRange b )
friend

Two ranges compare equal when they contain the same numbers.

Definition at line 140 of file BLI_index_range.hh.

References b, and IndexRange().


The documentation for this class was generated from the following file: