Blender V4.3
blender::MutableSpan< T > Class Template Reference

#include <BLI_span.hh>

Inherited by blender::MutableVArraySpan< T >.

Public Types

using value_type = T
 
using pointer = T *
 
using const_pointer = const T *
 
using reference = T &
 
using const_reference = const T &
 
using iterator = T *
 
using size_type = int64_t
 

Public Member Functions

constexpr MutableSpan ()=default
 
constexpr MutableSpan (T *start, const int64_t size)
 
constexpr MutableSpan (std::vector< T > &vector)
 
template<std::size_t N>
constexpr MutableSpan (std::array< T, N > &array)
 
template<typename U , BLI_ENABLE_IF((is_span_convertible_pointer_v< U, T >)) >
constexpr MutableSpan (MutableSpan< U > span)
 
constexpr operator Span< T > () const
 
template<typename U , BLI_ENABLE_IF((is_span_convertible_pointer_v< T, U >)) >
constexpr operator Span< U > () const
 
constexpr int64_t size () const
 
constexpr int64_t size_in_bytes () const
 
constexpr bool is_empty () const
 
constexpr void fill (const T &value) const
 
template<typename IndexT >
constexpr void fill_indices (Span< IndexT > indices, const T &value) const
 
constexpr Tdata () const
 
constexpr Tbegin () const
 
constexpr Tend () const
 
constexpr std::reverse_iterator< T * > rbegin () const
 
constexpr std::reverse_iterator< T * > rend () const
 
constexpr Toperator[] (const int64_t index) const
 
constexpr MutableSpan slice (const int64_t start, const int64_t size) const
 
constexpr MutableSpan slice (IndexRange range) const
 
constexpr MutableSpan slice_safe (const int64_t start, const int64_t size) const
 
constexpr MutableSpan slice_safe (IndexRange range) const
 
constexpr MutableSpan drop_front (const int64_t n) const
 
constexpr MutableSpan drop_back (const int64_t n) const
 
constexpr MutableSpan take_front (const int64_t n) const
 
constexpr MutableSpan take_back (const int64_t n) const
 
constexpr void reverse () const
 
constexpr Span< Tas_span () const
 
constexpr IndexRange index_range () const
 
constexpr Tfirst () const
 
constexpr Tlast (const int64_t n=0) const
 
constexpr int64_t count (const T &value) const
 
constexpr bool contains_ptr (const T *ptr) const
 
constexpr void copy_from (Span< T > values) const
 
template<typename NewT >
constexpr MutableSpan< NewT > cast () const
 

Protected Attributes

Tdata_ = nullptr
 
int64_t size_ = 0
 

Detailed Description

template<typename T>
class blender::MutableSpan< T >

Mostly the same as Span, except that one can change the array elements through a MutableSpan.

Definition at line 444 of file BLI_span.hh.

Member Typedef Documentation

◆ const_pointer

template<typename T >
using blender::MutableSpan< T >::const_pointer = const T *

Definition at line 448 of file BLI_span.hh.

◆ const_reference

template<typename T >
using blender::MutableSpan< T >::const_reference = const T &

Definition at line 450 of file BLI_span.hh.

◆ iterator

template<typename T >
using blender::MutableSpan< T >::iterator = T *

Definition at line 451 of file BLI_span.hh.

◆ pointer

template<typename T >
using blender::MutableSpan< T >::pointer = T *

Definition at line 447 of file BLI_span.hh.

◆ reference

template<typename T >
using blender::MutableSpan< T >::reference = T &

Definition at line 449 of file BLI_span.hh.

◆ size_type

template<typename T >
using blender::MutableSpan< T >::size_type = int64_t

Definition at line 452 of file BLI_span.hh.

◆ value_type

template<typename T >
using blender::MutableSpan< T >::value_type = T

Definition at line 446 of file BLI_span.hh.

Constructor & Destructor Documentation

◆ MutableSpan() [1/5]

◆ MutableSpan() [2/5]

template<typename T >
blender::MutableSpan< T >::MutableSpan ( T * start,
const int64_t size )
inlineconstexpr

Definition at line 461 of file BLI_span.hh.

◆ MutableSpan() [3/5]

template<typename T >
blender::MutableSpan< T >::MutableSpan ( std::vector< T > & vector)
inlineconstexpr

Definition at line 463 of file BLI_span.hh.

◆ MutableSpan() [4/5]

template<typename T >
template<std::size_t N>
blender::MutableSpan< T >::MutableSpan ( std::array< T, N > & array)
inlineconstexpr

Definition at line 466 of file BLI_span.hh.

◆ MutableSpan() [5/5]

template<typename T >
template<typename U , BLI_ENABLE_IF((is_span_convertible_pointer_v< U, T >)) >
blender::MutableSpan< T >::MutableSpan ( MutableSpan< U > span)
inlineconstexpr

Support implicit conversions like the one below: MutableSpan<T *> -> MutableSpan<const T *>

Definition at line 475 of file BLI_span.hh.

Member Function Documentation

◆ as_span()

template<typename T >
Span< T > blender::MutableSpan< T >::as_span ( ) const
inlineconstexpr

Returns an (immutable) Span that references the same array. This is usually not needed, due to implicit conversions. However, sometimes automatic type deduction needs some help.

Definition at line 662 of file BLI_span.hh.

References blender::MutableSpan< T >::data_, and blender::MutableSpan< T >::size_.

Referenced by blender::ed::sculpt_paint::cloth::apply_grab_brush(), blender::ed::sculpt_paint::mask::apply_mask_bmesh(), blender::ed::sculpt_paint::mask::apply_mask_grids(), blender::ed::sculpt_paint::mask::apply_mask_mesh(), blender::ed::sculpt_paint::cloth::apply_snake_hook_brush(), blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::draw::calc_face_tri_starts_mesh(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::filter::calc_surface_smooth_filter(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::geometry::curve_simplify(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_bmesh(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_grids(), blender::ed::sculpt_paint::mask::decrease_contrast_mask_mesh(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::face_set::face_hide_update(), blender::ed::sculpt_paint::face_set::face_sets_update(), blender::draw::grease_pencil_edit_batch_ensure(), blender::ed::sculpt_paint::mask::increase_contrast_mask_bmesh(), blender::ed::sculpt_paint::mask::increase_contrast_mask_grids(), blender::ed::sculpt_paint::mask::increase_contrast_mask_mesh(), blender::ed::sculpt_paint::filter::mesh_filter_sharpen_init(), blender::geometry::reorder_and_flip_curves(), blender::geometry::reorder_curves_exec(), blender::geometry::reorder_mesh_faces_exec(), blender::ed::sculpt_paint::color::sculpt_color_presmooth_init(), and strip_loose_faces_corners().

◆ begin()

◆ cast()

◆ contains_ptr()

template<typename T >
bool blender::MutableSpan< T >::contains_ptr ( const T * ptr) const
inlineconstexpr

Does a constant time check to see if the pointer points to a value in the referenced array. Return true if it is, otherwise false.

Definition at line 716 of file BLI_span.hh.

References blender::MutableSpan< T >::begin(), blender::MutableSpan< T >::end(), and ptr.

◆ copy_from()

template<typename T >
void blender::MutableSpan< T >::copy_from ( Span< T > values) const
inlineconstexpr

Copy all values from another span into this span. This invokes undefined behavior when the destination contains uninitialized data and T is not trivially copy constructible. The size of both spans is expected to be the same.

Definition at line 726 of file BLI_span.hh.

References BLI_assert, blender::MutableSpan< T >::data_, blender::initialized_copy_n(), and blender::MutableSpan< T >::size_.

Referenced by blender::ed::curves::add_curves(), blender::geometry::add_curves_on_mesh(), blender::bke::add_orco_mesh(), arrayModifier_doArray(), BKE_mesh_calc_edges_tessface(), BKE_mesh_nomain_to_meshkey(), BKE_mesh_orco_ensure(), C_BVHTree_FromObject(), blender::ed::sculpt_paint::filter::calc_inflate_filter(), blender::ed::sculpt_paint::filter::calc_random_filter(), blender::ed::sculpt_paint::filter::calc_scale_filter(), blender::bke::curves::nurbs::calculate_basis_for_point(), blender::geometry::copy_point_data_between_endpoints(), blender::geometry::copy_transformed_normals(), blender::geometry::copy_transformed_positions(), blender::ed::greasepencil::create_drawing_data(), blender::create_envelope_strokes(), blender::geometry::create_result_ids(), blender::bke::curves_copy_parameters(), blender::geometry::curves_merge_endpoints(), data_transfer_layersmapping_generate(), blender::ed::object::data_xform_create_ex(), deform_verts(), blender::ed::sculpt_paint::gather_data_grids(), gpu_select_next_set_result(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::bke::mesh_get_mapped_verts_coords(), MOD_solidify_extrude_modifyMesh(), move_shapekey_layers_to_keyblocks(), blender::ed::space_node::node_draw_zones_and_frames(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::io::usd::USDPointInstancerReader::read_object_data(), blender::ed::curves::resize_curves(), blender::geometry::sample_interval_bezier(), blender::ed::sculpt_paint::scatter_data_grids(), selectbuffer_ret_hits_5(), selectbuffer_ret_hits_5(), selectbuffer_ret_hits_9(), blender::bke::calc_edges::serialize_and_initialize_deduplicated_edges(), blender::geometry::curve_constraints::solve_length_and_collision_constraints(), blender::gpu::sort_input_list(), blender::tests::TEST(), blender::io::hydra::CurvesData::write_curves(), and blender::ed::sculpt_paint::expand::write_mask_data().

◆ count()

template<typename T >
int64_t blender::MutableSpan< T >::count ( const T & value) const
inlineconstexpr

Does a linear search to count how often the value is in the array. Returns the number of occurrences.

Definition at line 701 of file BLI_span.hh.

◆ data()

template<typename T >
T * blender::MutableSpan< T >::data ( ) const
inlineconstexpr

Returns a pointer to the beginning of the referenced array. This may be nullptr, when the size is zero.

Definition at line 540 of file BLI_span.hh.

References blender::MutableSpan< T >::data_.

Referenced by blender::bke::calc_edges::add_existing_edges_to_hash_maps(), blender::bke::calc_edges::add_face_edges_to_hash_maps(), apply_weights_vertex_normal(), BKE_armature_deform_coords_with_curves(), BKE_mesh_is_valid(), BKE_mesh_runtime_is_valid(), BKE_mesh_validate(), BKE_object_data_transfer_ex(), blender::draw::build_poly_other_map_vbo(), blender::ed::curves::compress_intervals(), blender::LinearAllocator< Allocator >::construct_array_copy(), blender::io::obj::copy_property_from_node(), correctivesmooth_modifier_do(), blender::draw::create_edit_points_position_and_data(), deform_matrices(), deform_matrices_EM(), do_weight_paint_vertex_multi(), do_weight_paint_vertex_single(), blender::index_mask::evaluate_exact_with_indices(), blender::draw::pbvh::fill_vbos_bmesh(), blender::draw::pbvh::fill_vbos_grids(), blender::draw::pbvh::fill_vbos_mesh(), blender::index_mask::IndexMask::from_segments(), blender::VArrayCommon< T >::materialize(), blender::VArrayCommon< T >::materialize_compressed(), blender::VArrayCommon< T >::materialize_compressed_to_uninitialized(), blender::VArrayCommon< T >::materialize_to_uninitialized(), blender::bke::mesh_get_mapped_verts_coords(), blender::bke::mesh::mesh_normals_corner_custom_set(), modify_mesh(), normalEditModifier_do_directional(), normalEditModifier_do_radial(), blender::ed::sculpt_paint::PositionDeformData::PositionDeformData(), blender::ed::sculpt_paint::undo::restore_position_from_undo_step(), blender::bke::calc_edges::serialize_and_initialize_deduplicated_edges(), blender::index_mask::IndexMask::shift(), blender::gpu::sort_input_list(), blender::draw::statvis_calc_thickness(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::index_mask::IndexMask::to_indices(), blender::bke::greasepencil::update_triangle_cache(), and version_nodes_insert_item().

◆ drop_back()

◆ drop_front()

◆ end()

◆ fill()

template<typename T >
void blender::MutableSpan< T >::fill ( const T & value) const
inlineconstexpr

Replace all elements in the referenced array with the given value.

Definition at line 518 of file BLI_span.hh.

References blender::MutableSpan< T >::data_, blender::initialized_fill_n(), and blender::MutableSpan< T >::size_.

Referenced by blender::bke::adapt_curve_domain_curve_to_point_impl(), blender::bke::adapt_curve_domain_point_to_curve_impl(), blender::bke::adapt_mesh_domain_corner_to_edge_impl(), blender::bke::adapt_mesh_domain_corner_to_point_impl(), blender::bke::adapt_mesh_domain_edge_to_corner_impl(), blender::bke::adapt_mesh_domain_edge_to_point_impl(), blender::bke::adapt_mesh_domain_face_to_edge_impl(), blender::bke::adapt_mesh_domain_face_to_point_impl(), blender::ed::sculpt_paint::cloth::apply_filter_forces_bmesh(), blender::ed::sculpt_paint::cloth::apply_filter_forces_grids(), blender::ed::sculpt_paint::cloth::apply_filter_forces_mesh(), blender::ed::sculpt_paint::mask::apply_mask_bmesh(), blender::ed::sculpt_paint::mask::apply_mask_grids(), blender::ed::sculpt_paint::mask::apply_mask_mesh(), blender::index_mask::build_reverse_map(), blender::draw::build_vertex_face_adjacency_maps(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::nodes::node_geo_dual_mesh_cc::calc_boundaries(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::geometry::calc_position_with_interpolation(), blender::geometry::calc_radius_with_interpolation(), blender::geometry::calculate_cone_faces(), blender::geometry::calculate_sphere_faces(), blender::bke::curves::poly::calculate_tangents(), blender::ed::sculpt_paint::face_set::change_visibility_exec(), blender::ed::greasepencil::control_point_colors_and_sizes(), blender::bke::copy_main_point_data_to_mesh_edges(), blender::bke::copy_main_point_data_to_mesh_faces(), blender::bke::copy_main_point_data_to_mesh_verts(), blender::bke::copy_profile_point_data_to_mesh_edges(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::create_bezier_segment_curve(), blender::draw::create_edit_points_position_and_data(), blender::create_envelope_strokes_for_curve(), blender::ed::sculpt_paint::face_set::create_op_exec(), blender::geometry::create_result_ids(), blender::nodes::node_geo_points_to_curves_cc::curves_from_points(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::geometry::execute_realize_curve_task(), blender::geometry::extend_curves(), blender::draw::extract_edge_factor(), blender::draw::extract_lines_loose_geom_subdiv(), blender::draw::extract_normals(), blender::draw::extract_sculpt_data_subdiv(), blender::draw::extract_weights(), blender::draw::extract_weights_bm(), blender::draw::extract_weights_mesh(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::ed::sculpt_paint::fill_factor_from_hide(), blender::ed::sculpt_paint::fill_factor_from_hide(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::greasepencil::find_curve_intersections(), blender::ed::sculpt_paint::mask::gather_mask_grids(), blender::ed::curves::add_bezier::generate_bezier_primitive(), blender::ed::curves::add_circle::generate_circle_primitive(), blender::nodes::node_geo_sample_nearest_cc::get_closest_pointcloud_points(), blender::io::obj::OBJMesh::get_face_deform_group_index(), blender::bke::get_mutable_attribute(), blender::bke::greasepencil::get_mutable_attribute(), blender::geometry::join_curves_ranges(), layerDefault_propfloat4x4(), layerDefault_propquaternion(), blender::bke::mark_bezier_vector_edges_sharp(), blender::geometry::merge_groups_create(), blender::bke::mesh_get_mapped_verts_coords(), blender::ed::sculpt_paint::hide::partialvis_all_update_mesh(), blender::ed::greasepencil::primitive_calulate_curve_positions(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::io::usd::USDCurvesReader::read_curve_sample(), blender::nodes::node_geo_curve_handle_type_selection_cc::select_by_handle_type(), blender::ed::sculpt_paint::select_random::select_random_exec(), blender::geometry::subdivide_bezier_segment(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), and blender::index_mask::IndexMask::to_bools().

◆ fill_indices()

◆ first()

template<typename T >
T & blender::MutableSpan< T >::first ( ) const
inlineconstexpr

Return a reference to the first element in the array. This invokes undefined behavior when the array is empty.

Definition at line 680 of file BLI_span.hh.

References BLI_assert, blender::MutableSpan< T >::data_, and blender::MutableSpan< T >::size_.

Referenced by BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::bke::curves::bezier::calculate_auto_handles(), blender::geometry::calculate_cone_faces(), blender::bke::curves::bezier::calculate_evaluated_offsets(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_sphere_vertex_data(), blender::bke::curves::poly::calculate_tangents(), blender::geometry::catmull_rom_to_bezier_handles(), blender::io::ply::convert_ply_to_mesh(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::create_bezier_segment_curve(), blender::ed::sculpt_paint::greasepencil::create_blank_curve(), blender::nodes::node_geo_mesh_primitive_circle_cc::create_circle_mesh(), blender::bke::curves::catmull_rom::evaluate_segment(), blender::draw::extract_vert_idx_loose_geom_subdiv(), blender::bke::get_mutable_attribute(), blender::bke::greasepencil::get_mutable_attribute(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::curves::handle_range(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::geometry::limit_radii(), blender::bke::curves::bezier::linear_interpolation(), blender::geometry::linear_interpolation(), blender::ed::space_node::node_draw_zones_and_frames(), blender::geometry::nurbs_to_bezier_assign(), blender::bke::tests::TEST(), and blender::bke::tests::TEST().

◆ index_range()

template<typename T >
IndexRange blender::MutableSpan< T >::index_range ( ) const
inlineconstexpr

Utility to make it more convenient to iterate over all indices that can be used with this array.

Definition at line 671 of file BLI_span.hh.

References blender::MutableSpan< T >::size_.

Referenced by blender::offset_indices::accumulate_counts_to_offsets(), blender::offset_indices::accumulate_counts_to_offsets_with_overflow_check(), blender::ed::sculpt_paint::apply_hardness_to_distances(), blender::ed::sculpt_paint::apply_translations(), blender::bke::greasepencil::assign_to_vertex_group(), BKE_mesh_material_index_remove(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), BKE_mesh_orco_verts_transform(), blender::nodes::node_geo_blur_attribute_cc::blur_on_mesh_exec(), blender::bm_to_mesh_edges(), blender::bm_to_mesh_loops(), blender::bm_to_mesh_verts(), blender::bke::build_offsets(), blender::nodes::node_geo_blur_attribute_cc::build_vert_to_vert_by_edge_map(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::cloth::calc_gravity_forces(), blender::ed::sculpt_paint::cloth::calc_pinch_forces(), blender::bke::compare_meshes::calc_smallest_corner_ids(), blender::geometry::calc_straight_curve_positions(), blender::bke::curves::poly::calculate_tangents(), blender::ed::sculpt_paint::face_set::change_visibility_exec(), compute_masked_verts(), blender::nodes::node_geo_interpolate_curves_cc::compute_point_counts_per_child(), compute_vertex_mask__armature_mode(), compute_vertex_mask__vertex_group_mode(), blender::index_mask::consolidate_index_mask_segments(), blender::geometry::copy_generic_attributes_to_result(), blender::nodes::node_geo_extrude_mesh_cc::copy_with_mixing(), blender::nodes::node_geo_mesh_primitive_circle_cc::create_circle_mesh(), blender::geometry::create_nurbs_to_bezier_positions(), blender::geometry::create_result_ids(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::bke::bake::deserialize_typed_array(), do_pose_tag_select_op_exec(), blender::bke::compare_meshes::edges_from_vertex_sets(), blender::bke::curves::catmull_rom::evaluate_segment(), blender::geometry::extend_curves(), blender::nodes::node_geo_extrude_mesh_cc::extrude_mesh_edges(), blender::nodes::node_geo_extrude_mesh_cc::extrude_mesh_face_regions(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::boundary::filter_uninitialized_verts(), blender::bke::attribute_math::SimpleMixerWithAccumulationType< T, AccumulationT, ValueToAccumulate, AccumulateToValue >::finalize(), blender::bke::find_nearest_corners(), blender::bke::find_nearest_edges(), blender::bke::find_nearest_tris_parallel(), blender::draw::pbvh::free_batches(), blender::draw::pbvh::free_ibos(), blender::draw::pbvh::free_vbos(), blender::index_mask::IndexMask::from_groups(), blender::geometry::gaussian_blur_1D(), blender::nodes::node_geo_points_to_curves_cc::identifiers_to_indices(), blender::length_parameterize::interpolate(), blender::geometry::interpolate_from_neighbor_curves(), blender::bke::curves::nurbs::interpolate_to_evaluated(), blender::bke::curves::nurbs::interpolate_to_evaluated_rational(), blender::array_utils::invert_booleans(), blender::geometry::join_curves_ranges(), blender::bke::curves::bezier::linear_interpolation(), blender::ed::sculpt_paint::greasepencil::linear_interpolation(), blender::geometry::linear_interpolation(), mesh_strip_edges(), blender::geometry::mix_arrays(), normalEditModifier_do_directional(), normalEditModifier_do_radial(), blender::geometry::nurbs_to_bezier_assign(), blender::draw::pointcloud_extract_position_and_radius(), blender::ed::greasepencil::primitive_calulate_curve_positions(), blender::ed::curves::primitive_random_sphere(), blender::ed::sculpt_paint::project_translations(), blender::bke::remove_defgroup_index(), blender::bke::greasepencil::remove_from_vertex_group(), blender::ed::sculpt_paint::reset_translations_to_original(), blender::bke::rotate_directions_around_axes(), blender::ed::sculpt_paint::scale_factors(), blender::geometry::scale_input_assign(), blender::ed::sculpt_paint::scale_translations(), blender::ed::sculpt_paint::scale_translations(), blender::ed::curves::selection_attribute_writer_by_name(), blender::ed::sculpt_paint::pose::solve_ik_chain(), blender::ed::sculpt_paint::pose::solve_roll_chain(), sort_time_beztmaps(), blender::nodes::node_geo_dual_mesh_cc::sort_vertex_faces(), blender::geometry::transform_curve_edit_hints(), blender::geometry::transform_instances(), blender::geometry::translate_instances(), blender::geometry::weld_vert_ctx_alloc_and_setup(), blender::ed::sculpt_paint::filter::zero_disabled_axis_components(), and blender::fn::lazy_function::Executor::~Executor().

◆ is_empty()

template<typename T >
bool blender::MutableSpan< T >::is_empty ( ) const
inlineconstexpr

Returns true if the size is zero.

Definition at line 510 of file BLI_span.hh.

References blender::MutableSpan< T >::size_.

Referenced by blender::bke::add_orco_mesh(), BKE_mesh_prefair_and_fair_verts(), bm_mesh_verts_calc_normals(), blender::bm_to_mesh_edges(), blender::bm_to_mesh_faces(), blender::bm_to_mesh_verts(), blender::ed::sculpt_paint::pose::calc_pose_data(), blender::ed::sculpt_paint::pose::calc_pose_origin_and_factor_bmesh(), blender::ed::sculpt_paint::pose::calc_pose_origin_and_factor_grids(), blender::ed::sculpt_paint::pose::calc_pose_origin_and_factor_mesh(), blender::nodes::node_geo_curve_sample_cc::SampleCurveFunction::call(), blender::nodes::node_shader_tex_voronoi_cc::VoronoiMetricFunction::call(), blender::nodes::node_shader_tex_white_noise_cc::WhiteNoiseFunction::call(), blender::index_mask::consolidate_index_mask_segments(), blender::nodes::node_fn_separate_matrix_cc::copy_with_stride(), blender::ed::sculpt_paint::do_layer_brush(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::index_mask::evaluated_segments_to_index_mask(), blender::geometry::execute_realize_pointcloud_task(), blender::nodes::node_geo_extrude_mesh_cc::extrude_mesh_face_regions(), blender::nodes::node_geo_scale_elements_cc::from_indices_large_groups(), blender::nodes::get_closest_in_bvhtree(), blender::nodes::node_geo_sample_nearest_cc::get_closest_mesh_corners(), blender::nodes::node_geo_sample_nearest_cc::get_closest_pointcloud_points(), mesh_merge_transform(), MeshFairingContext::MeshFairingContext(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), normalEditModifier_do_directional(), normalEditModifier_do_radial(), blender::nodes::node_geo_raycast_cc::raycast_to_mesh(), blender::gpu::sort_input_list(), blender::nodes::node_geo_dual_mesh_cc::sort_vertex_faces(), blender::tests::TEST(), blender::tests::TEST(), blender::bke::compare_meshes::update_set_ids(), and blender::bke::compare_meshes::update_set_ids_with_id_maps().

◆ last()

template<typename T >
T & blender::MutableSpan< T >::last ( const int64_t n = 0) const
inlineconstexpr

Returns a reference to the nth last element. This invokes undefined behavior when the span is too short.

Definition at line 690 of file BLI_span.hh.

References BLI_assert, blender::MutableSpan< T >::data_, and blender::MutableSpan< T >::size_.

Referenced by blender::offset_indices::accumulate_counts_to_offsets(), blender::offset_indices::accumulate_counts_to_offsets_with_overflow_check(), blender::geometry::add_curves_on_mesh(), blender::bke::Instances::add_instance(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::bke::build_offsets(), blender::bke::curves::bezier::calculate_auto_handles(), blender::geometry::calculate_directions(), blender::bke::curves::bezier::calculate_evaluated_offsets(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_sphere_vertex_data(), blender::bke::curves::poly::calculate_tangents(), blender::geometry::catmull_rom_to_bezier_handles(), blender::index_mask::consolidate_index_mask_segments(), blender::ed::greasepencil::control_point_colors_and_sizes(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::create_bezier_segment_curve(), blender::nodes::node_geo_mesh_primitive_circle_cc::create_circle_mesh(), blender::create_envelope_strokes(), blender::bke::curve_legacy_to_curves(), blender::bke::curves_new_nomain_single(), blender::string_search::damerau_levenshtein_distance(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves_CurveGeometry(), blender::geometry::execute_realize_curve_tasks(), blender::ed::sculpt_paint::greasepencil::extend_curve(), blender::geometry::extend_curves(), blender::geometry::extract_greasepencil_layer_points(), blender::geometry::extract_mesh_faces(), blender::ed::curves::extrude_curves(), blender::offset_indices::gather_selected_offsets(), blender::nodes::node_geo_interpolate_curves_cc::generate_interpolated_curves(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::curves::handle_range(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::geometry::limit_radii(), blender::geometry::merge_groups_create(), blender::ed::sculpt_paint::greasepencil::morph_points_to_curve(), blender::geometry::nurbs_to_bezier_assign(), blender::ed::greasepencil::primitive_calulate_curve_positions(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::ed::sculpt_paint::pose::solve_ik_chain(), blender::nodes::node_geo_dual_mesh_cc::sort_vertex_faces(), blender::bke::tests::TEST(), and blender::bke::tests::TEST().

◆ operator Span< T >()

template<typename T >
blender::MutableSpan< T >::operator Span< T > ( ) const
inlineconstexpr

Definition at line 480 of file BLI_span.hh.

◆ operator Span< U >()

template<typename T >
template<typename U , BLI_ENABLE_IF((is_span_convertible_pointer_v< T, U >)) >
blender::MutableSpan< T >::operator Span< U > ( ) const
inlineconstexpr

◆ operator[]()

template<typename T >
T & blender::MutableSpan< T >::operator[] ( const int64_t index) const
inlineconstexpr

◆ rbegin()

template<typename T >
std::reverse_iterator< T * > blender::MutableSpan< T >::rbegin ( ) const
inlineconstexpr

Definition at line 554 of file BLI_span.hh.

References blender::MutableSpan< T >::end().

Referenced by blender::tests::TEST().

◆ rend()

template<typename T >
std::reverse_iterator< T * > blender::MutableSpan< T >::rend ( ) const
inlineconstexpr

Definition at line 558 of file BLI_span.hh.

References blender::MutableSpan< T >::begin().

Referenced by blender::tests::TEST().

◆ reverse()

template<typename T >
void blender::MutableSpan< T >::reverse ( ) const
inlineconstexpr

Reverse the data in the MutableSpan.

Definition at line 651 of file BLI_span.hh.

References blender::MutableSpan< T >::data_, and blender::MutableSpan< T >::size_.

Referenced by faces_check_flip(), and blender::tests::TEST().

◆ size()

template<typename T >
int64_t blender::MutableSpan< T >::size ( ) const
inlineconstexpr

Returns the number of elements in the array.

Definition at line 494 of file BLI_span.hh.

References blender::MutableSpan< T >::size_.

Referenced by blender::bke::adapt_mesh_domain_corner_to_edge_impl(), blender::bke::adapt_mesh_domain_corner_to_edge_impl(), blender::bke::adapt_mesh_domain_corner_to_point_impl(), blender::bke::adapt_mesh_domain_corner_to_point_impl(), blender::bke::adapt_mesh_domain_edge_to_corner_impl(), blender::bke::adapt_mesh_domain_edge_to_corner_impl(), blender::bke::adapt_mesh_domain_edge_to_point_impl(), blender::bke::adapt_mesh_domain_edge_to_point_impl(), blender::bke::adapt_mesh_domain_face_to_corner_impl(), blender::bke::adapt_mesh_domain_face_to_edge_impl(), blender::bke::adapt_mesh_domain_face_to_edge_impl(), blender::bke::adapt_mesh_domain_face_to_point_impl(), blender::bke::adapt_mesh_domain_face_to_point_impl(), add_interp_verts_copy_edges_to_new_mesh(), blender::ed::sculpt_paint::apply_crazyspace_to_translations(), blender::ed::sculpt_paint::smooth::average_data_grids(), BKE_armature_deform_coords_with_curves(), BKE_brush_calc_curve_factors(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), blender::index_mask::build_reverse_map(), blender::ed::sculpt_paint::boundary::calc_average_position(), blender::ed::sculpt_paint::boundary::calc_average_position(), blender::ed::sculpt_paint::boundary::calc_average_position(), blender::ed::sculpt_paint::boundary::calc_bend_position(), blender::nodes::node_geo_dual_mesh_cc::calc_boundaries(), blender::ed::sculpt_paint::calc_brush_cube_distances(), blender::ed::sculpt_paint::calc_brush_cube_distances(), blender::ed::sculpt_paint::calc_brush_distances_squared(), blender::ed::sculpt_paint::calc_brush_distances_squared(), blender::ed::sculpt_paint::cloth::calc_brush_simulation_falloff(), blender::ed::sculpt_paint::calc_brush_texture_factors(), blender::ed::sculpt_paint::calc_brush_texture_factors(), blender::ed::curves::calc_curve_offset(), blender::ed::sculpt_paint::calc_distances(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::calc_front_face(), blender::ed::sculpt_paint::boundary::calc_grab_position(), blender::ed::sculpt_paint::boundary::calc_inflate_position(), blender::geometry::calc_new_edges(), blender::ed::sculpt_paint::smooth::calc_relaxed_translations_bmesh(), blender::ed::sculpt_paint::smooth::calc_relaxed_translations_faces(), blender::ed::sculpt_paint::smooth::calc_relaxed_translations_grids(), blender::ed::sculpt_paint::pose::calc_segment_translations(), blender::ed::sculpt_paint::boundary::calc_slide_position(), blender::ed::sculpt_paint::boundary::calc_smooth_position(), blender::geometry::calc_straight_curve_positions(), blender::ed::sculpt_paint::boundary::calc_twist_position(), blender::bke::curves::bezier::calculate_evaluated_offsets(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::bke::curves::nurbs::calculate_knots(), blender::bke::curves::poly::calculate_tangents(), blender::ed::sculpt_paint::clip_and_lock_translations(), blender::ed::sculpt_paint::clip_and_lock_translations(), blender::ed::sculpt_paint::color::color_vert_set(), blender::geometry::compute_curve_trim_parameters(), compute_masked_verts(), blender::geometry::curve_constraints::compute_segment_lengths(), blender::gpu::MTLShader::compute_shader_from_glsl(), computed_masked_edges(), computed_masked_edges_smooth(), blender::index_mask::consolidate_index_mask_segments(), blender::gpu::convert(), blender::array_utils::copy(), blender::array_utils::copy(), blender::array_utils::copy(), blender::bke::greasepencil::copy_drawing_array(), blender::ed::sculpt_paint::mask::copy_old_hidden_mask_mesh(), blender::io::obj::copy_property_from_node(), correctivesmooth_modifier_do(), blender::nodes::node_geo_mesh_primitive_circle_cc::create_circle_mesh(), blender::create_envelope_stroke_for_point(), blender::create_envelope_strokes_for_curve(), deform_matrices_EM(), blender::bke::bake::deserialize_typed_array(), blender::nodes::node_geo_dual_mesh_cc::dissolve_redundant_verts(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_faces(), blender::bke::mesh::edges_sharp_from_angle_set(), blender::bke::curves::catmull_rom::evaluate_segment(), blender::index_mask::evaluated_segments_to_index_mask(), blender::fn::lazy_function::Executor::execute(), blender::geometry::extend_curves(), blender::ed::sculpt_paint::fill_factor_from_hide(), blender::ed::sculpt_paint::fill_factor_from_hide(), blender::ed::sculpt_paint::fill_factor_from_hide(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::nodes::node_geo_curve_to_points_cc::fill_rotation_attribute(), filter_factors_with_selection(), filter_factors_with_selection(), blender::ed::sculpt_paint::filter_plane_side_factors(), blender::ed::sculpt_paint::filter_region_clip_factors(), blender::ed::sculpt_paint::filter_region_clip_factors(), blender::ed::sculpt_paint::boundary::filter_uninitialized_verts(), blender::ed::sculpt_paint::filter_verts_outside_symmetry_area(), blender::ed::sculpt_paint::face_set::filter_verts_with_unique_face_sets_bmesh(), blender::ed::sculpt_paint::face_set::filter_verts_with_unique_face_sets_grids(), blender::ed::sculpt_paint::face_set::filter_verts_with_unique_face_sets_mesh(), blender::bke::attribute_math::SimpleMixer< T >::finalize(), blender::nodes::node_geo_points_to_curves_cc::find_points_by_group_index(), blender::nodes::node_geo_sort_elements_cc::find_points_by_group_index(), blender::VArray< T >::ForDerivedSpan(), blender::gpu::MTLShader::fragment_shader_from_glsl(), blender::index_mask::IndexMask::from_groups(), blender::array_utils::gather(), blender::array_utils::gather(), blender::array_utils::gather(), blender::array_utils::gather(), blender::ed::sculpt_paint::gather_data_bmesh(), blender::ed::sculpt_paint::gather_data_grids(), blender::ed::sculpt_paint::gather_data_mesh(), blender::ed::sculpt_paint::mask::gather_mask_bmesh(), blender::geometry::gaussian_blur_1D(), blender::RandomNumberGenerator::get_bytes(), blender::nodes::get_closest_in_bvhtree(), blender::nodes::node_geo_sample_nearest_cc::get_closest_pointcloud_points(), blender::io::obj::OBJMesh::get_face_deform_group_index(), blender::gpu::GLQueryPool::get_occlusion_result(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::nodes::node_geo_simulation_cc::sim_output_node::LazyFunctionForSimulationOutputNode::LazyFunctionForSimulationOutputNode(), blender::bke::curves::bezier::linear_interpolation(), blender::ed::sculpt_paint::greasepencil::linear_interpolation(), blender::geometry::linear_interpolation(), blender::geometry::merge_groups_create(), blender::bke::mesh_get_mapped_verts_coords(), blender::ed::sculpt_paint::greasepencil::morph_points_to_curve(), blender::ed::sculpt_paint::smooth::neighbor_color_average(), blender::ed::sculpt_paint::smooth::neighbor_data_average_mesh(), blender::ed::sculpt_paint::smooth::neighbor_data_average_mesh_check_loose(), blender::ed::sculpt_paint::smooth::neighbor_position_average_bmesh(), blender::ed::sculpt_paint::smooth::neighbor_position_average_interior_bmesh(), blender::ed::sculpt_paint::smooth::neighbor_position_average_interior_grids(), normalEditModifier_do(), normalEditModifier_do_directional(), normalEditModifier_do_radial(), blender::bke::mesh::normals_calc_faces(), blender::geometry::pack_island_xatlas(), blender::ed::greasepencil::primitive_calulate_curve_positions(), blender::ed::sculpt_paint::filter::randomize_factors(), blender::bke::calc_edges::reserve_hash_maps(), blender::ed::sculpt_paint::reset_translations_to_original(), blender::bke::reverse_swap_curve_point_data(), blender::length_parameterize::sample_at_lengths(), blender::geometry::ReverseUVSampler::sample_many(), blender::length_parameterize::sample_uniform(), blender::length_parameterize::sample_uniform_reverse(), blender::ed::sculpt_paint::scale_factors(), blender::array_utils::scatter(), blender::geometry::smooth_curve_positions(), smooth_iter__length_weight(), smooth_iter__simple(), smooth_verts(), blender::ed::sculpt_paint::pose::solve_roll_chain(), blender::gpu::sort_input_list(), blender::bke::compare_meshes::sort_per_set_with_id_maps(), sort_time_beztmaps(), blender::nodes::node_geo_dual_mesh_cc::sort_vertex_faces(), blender::ed::sculpt_paint::smooth::surface_smooth_displace_step(), blender::ed::sculpt_paint::smooth::surface_smooth_laplacian_step(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::nodes::node_geo_duplicate_elements_cc::threaded_id_offset_copy(), blender::index_mask::IndexMask::to_bools(), blender::index_mask::IndexMask::to_indices(), blender::ed::sculpt_paint::transform_positions(), transform_positions(), blender::ed::sculpt_paint::translations_from_offset_and_factors(), blender::gpu::MTLShader::vertex_shader_from_glsl(), and blender::geometry::weld_vert_ctx_alloc_and_setup().

◆ size_in_bytes()

◆ slice() [1/2]

template<typename T >
MutableSpan blender::MutableSpan< T >::slice ( const int64_t start,
const int64_t size ) const
inlineconstexpr

Returns a contiguous part of the array. This invokes undefined behavior when the start or size is negative.

Definition at line 574 of file BLI_span.hh.

References BLI_assert, blender::MutableSpan< T >::data_, blender::MutableSpan< T >::MutableSpan(), and blender::MutableSpan< T >::size_.

Referenced by blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::active_jitter(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::active_smoothing(), blender::bke::adapt_curve_domain_curve_to_point_impl(), blender::nodes::node_geo_instance_on_points_cc::add_instances_from_component(), blender::ed::sculpt_paint::cloth::apply_filter_forces_grids(), blender::ed::sculpt_paint::apply_translations(), BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(), blender::ed::greasepencil::build_curves_2d_bvh_from_visible(), blender::ed::sculpt_paint::calc_front_face(), blender::geometry::calc_position_with_interpolation(), blender::geometry::calc_position_without_interpolation(), blender::geometry::calc_radius_with_interpolation(), blender::bke::curves::nurbs::calculate_basis_cache(), blender::bke::CurvesGeometry::calculate_bezier_auto_handles(), blender::geometry::calculate_cone_faces(), blender::bke::calculate_evaluated_offsets(), blender::bke::curves::bezier::calculate_evaluated_positions(), blender::geometry::calculate_result_offsets(), blender::geometry::calculate_result_offsets(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_nurbs(), blender::bke::copy_main_point_data_to_mesh_edges(), blender::bke::copy_main_point_data_to_mesh_faces(), blender::bke::copy_main_point_data_to_mesh_verts(), blender::ed::sculpt_paint::mask::copy_old_hidden_mask_grids(), blender::geometry::copy_point_data_between_endpoints(), blender::bke::copy_profile_point_data_to_mesh_edges(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_curves(), blender::nodes::node_geo_extrude_mesh_cc::copy_with_mixing(), blender::draw::create_edit_points_position_and_data(), blender::create_envelope_strokes(), blender::create_envelope_strokes_for_curve(), curve_populate_trans_data_structs(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves_CurveGeometry(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_normals(), blender::bke::CurvesGeometry::evaluated_positions(), blender::bke::CurvesGeometry::evaluated_tangents(), blender::ed::sculpt_paint::ScaleCurvesEffect::execute(), blender::ed::sculpt_paint::ShrinkCurvesEffect::execute(), blender::geometry::execute_instances_tasks(), blender::geometry::execute_realize_curve_task(), blender::geometry::execute_realize_mesh_task(), blender::geometry::execute_realize_pointcloud_task(), blender::geometry::extend_curves(), blender::draw::extract_edge_idx_loose_geom_subdiv(), blender::draw::extract_edge_index_bm(), blender::draw::extract_edge_index_mesh(), blender::draw::extract_edit_data_bm(), blender::draw::extract_edit_data_mesh(), blender::draw::extract_edit_subdiv_data_bm(), blender::draw::extract_edit_subdiv_data_mesh(), blender::draw::extract_lines_loose_geom_subdiv(), blender::draw::extract_points_subdiv_bm(), blender::draw::extract_points_subdiv_mesh(), blender::draw::extract_positions_bm(), blender::draw::extract_positions_mesh(), blender::draw::extract_vert_idx_loose_geom_subdiv(), blender::draw::extract_vert_index_bm(), blender::draw::extract_vert_index_mesh(), blender::draw::extract_vert_normals_bm(), blender::draw::extract_vert_normals_mesh(), 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(), faces_check_flip(), blender::geometry::fill_bezier_data(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), blender::ed::sculpt_paint::mask::fill_mask_grids(), blender::geometry::fillet_curves(), blender::ed::sculpt_paint::greasepencil::find_curve_mapping_from_index(), blender::nodes::node_geo_scale_elements_cc::from_indices_large_groups(), blender::ed::sculpt_paint::gather_data_grids(), blender::array_utils::gather_group_to_group(), blender::array_utils::gather_group_to_group(), blender::array_utils::gather_to_groups(), blender::nodes::node_geo_extrude_mesh_cc::gather_vert_attributes(), blender::nodes::node_geo_extrude_mesh_cc::gather_vert_attributes(), blender::draw::grease_pencil_cache_add_nurbs(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_geom_batch_ensure(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), blender::draw::grease_pencil_weight_batch_ensure(), blender::ed::sculpt_paint::mask::grow_mask_grids(), blender::bke::curves::bezier::interpolate_to_evaluated(), blender::bke::curves::catmull_rom::interpolate_to_evaluated(), blender::ed::sculpt_paint::mask::invert_mask_grids(), blender::geometry::join_instances(), blender::ed::greasepencil::join_object_with_active(), blender::bke::greasepencil::convert::legacy_gpencil_frame_to_grease_pencil_drawing(), blender::bke::mark_bezier_vector_edges_sharp(), blender::modify_drawing(), blender::nodes::node_geo_attribute_statistic_cc::node_geo_exec(), blender::ed::curves::primitive_random_sphere(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::ed::sculpt_paint::greasepencil::process_stroke_weights(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook(), blender::ed::sculpt_paint::PuffOperationExecutor::puff(), blender::geometry::ramer_douglas_peucker(), blender::ed::greasepencil::ramer_douglas_peucker_simplify(), blender::io::usd::USDCurvesReader::read_curve_sample(), blender::io::alembic::AbcCurveReader::read_curves_sample(), blender::geometry::EvalDataBuffer::resize(), blender::ed::sculpt_paint::undo::restore_mask_grids(), blender::ed::sculpt_paint::undo::restore_position_grids(), blender::bke::reverse_swap_curve_point_data(), blender::geometry::sample_interval_bezier(), blender::ed::sculpt_paint::scatter_data_grids(), UVGroups::sd_group_get(), UVGroups::sd_group_get(), blender::nodes::node_geo_curve_handle_type_selection_cc::select_by_handle_type(), selectbuffer_ret_hits_5(), selectbuffer_ret_hits_5(), selectbuffer_ret_hits_9(), blender::bke::calc_edges::serialize_and_initialize_deduplicated_edges(), blender::ed::sculpt_paint::mask::shrink_mask_grids(), blender::MutableSpan< T >::slice(), blender::geometry::curve_constraints::solve_length_and_collision_constraints(), blender::bke::compare_meshes::sort_per_set_based_on_attributes(), blender::bke::compare_meshes::sort_per_set_with_id_maps(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::spherical_snake_hook(), strip_loose_faces_corners(), blender::ed::greasepencil::stroke_simplify(), blender::geometry::subdivide_attribute_linear(), blender::geometry::subdivide_bezier_segment(), blender::geometry::subdivide_curves(), and blender::bke::greasepencil::update_triangle_cache().

◆ slice() [2/2]

template<typename T >
MutableSpan blender::MutableSpan< T >::slice ( IndexRange range) const
inlineconstexpr

◆ slice_safe() [1/2]

template<typename T >
MutableSpan blender::MutableSpan< T >::slice_safe ( const int64_t start,
const int64_t size ) const
inlineconstexpr

Returns a contiguous part of the array. This invokes undefined behavior when the start or size is negative. Clamps the size of the new span so it fits in the current one.

Definition at line 591 of file BLI_span.hh.

References BLI_assert, blender::MutableSpan< T >::data_, blender::MutableSpan< T >::MutableSpan(), and blender::MutableSpan< T >::size_.

Referenced by blender::draw::command::DrawMulti::serialize(), blender::MutableSpan< T >::slice_safe(), blender::geometry::subdivide_bezier_segment(), and blender::tests::TEST().

◆ slice_safe() [2/2]

template<typename T >
MutableSpan blender::MutableSpan< T >::slice_safe ( IndexRange range) const
inlineconstexpr

◆ take_back()

◆ take_front()

Member Data Documentation

◆ data_

◆ size_


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