Blender V5.0
MultiValueMap< Key, Value > Class Template Reference

#include <BLI_multi_value_map.hh>

Public Types

using size_type = int64_t

Public Member Functions

void add (const Key &key, const Value &value)
void add (const Key &key, Value &&value)
void add (Key &&key, const Value &value)
void add (Key &&key, Value &&value)
template<typename ForwardKey, typename ForwardValue>
void add_as (ForwardKey &&key, ForwardValue &&value)
void add_non_duplicates (const Key &key, const Value &value)
void add_multiple (const Key &key, Span< Value > values)
void add_multiple (Key &&key, Span< Value > values)
template<typename ForwardKey>
void add_multiple_as (ForwardKey &&key, Span< Value > values)
Span< Value > lookup (const Key &key) const
MutableSpan< Value > lookup (const Key &key)
template<typename ForwardKey>
Span< Value > lookup_as (const ForwardKey &key) const
template<typename ForwardKey>
MutableSpan< Value > lookup_as (const ForwardKey &key)
int64_t size () const
bool is_empty () const
MapType::ItemIterator items () const
MapType::KeyIterator keys () const
MapType::ValueIterator values () const
void clear ()
void clear_and_shrink ()

Detailed Description

template<typename Key, typename Value>
class MultiValueMap< Key, Value >

Definition at line 29 of file BLI_multi_value_map.hh.

Member Typedef Documentation

◆ size_type

template<typename Key, typename Value>
using blender::MultiValueMap< Key, Value >::size_type = int64_t

Definition at line 31 of file BLI_multi_value_map.hh.

Member Function Documentation

◆ add() [1/4]

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add ( const Key & key,
const Value & value )
inline

Add a new value for the given key. If the map contains the key already, the value will be appended to the list of corresponding values.

Definition at line 42 of file BLI_multi_value_map.hh.

Referenced by blender::nodes::gizmos::build_tree_gizmo_propagation(), fix_geometry_nodes_object_info_scale(), move_face_map_data_to_attributes(), and version_geometry_nodes_extrude_smooth_propagation().

◆ add() [2/4]

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add ( const Key & key,
Value && value )
inline

Definition at line 46 of file BLI_multi_value_map.hh.

◆ add() [3/4]

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add ( Key && key,
const Value & value )
inline

Definition at line 50 of file BLI_multi_value_map.hh.

◆ add() [4/4]

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add ( Key && key,
Value && value )
inline

Definition at line 54 of file BLI_multi_value_map.hh.

◆ add_as()

template<typename Key, typename Value>
template<typename ForwardKey, typename ForwardValue>
void blender::MultiValueMap< Key, Value >::add_as ( ForwardKey && key,
ForwardValue && value )
inline

Definition at line 59 of file BLI_multi_value_map.hh.

◆ add_multiple() [1/2]

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add_multiple ( const Key & key,
Span< Value > values )
inline

Add all given values to the key.

Definition at line 74 of file BLI_multi_value_map.hh.

◆ add_multiple() [2/2]

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add_multiple ( Key && key,
Span< Value > values )
inline

Definition at line 78 of file BLI_multi_value_map.hh.

◆ add_multiple_as()

template<typename Key, typename Value>
template<typename ForwardKey>
void blender::MultiValueMap< Key, Value >::add_multiple_as ( ForwardKey && key,
Span< Value > values )
inline

Definition at line 82 of file BLI_multi_value_map.hh.

◆ add_non_duplicates()

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::add_non_duplicates ( const Key & key,
const Value & value )
inline

Definition at line 65 of file BLI_multi_value_map.hh.

◆ clear()

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::clear ( )
inline

Definition at line 161 of file BLI_multi_value_map.hh.

◆ clear_and_shrink()

template<typename Key, typename Value>
void blender::MultiValueMap< Key, Value >::clear_and_shrink ( )
inline

Definition at line 166 of file BLI_multi_value_map.hh.

◆ is_empty()

template<typename Key, typename Value>
bool blender::MultiValueMap< Key, Value >::is_empty ( ) const
inline

Returns true if there are no keys in the map. NOTE: There may be keys without values. In this case the map is not empty.

Definition at line 132 of file BLI_multi_value_map.hh.

◆ items()

template<typename Key, typename Value>
MapType::ItemIterator blender::MultiValueMap< Key, Value >::items ( ) const
inline

NOTE: This signature will change when the implementation changes.

Definition at line 140 of file BLI_multi_value_map.hh.

Referenced by blender::nodes::gizmos::foreach_active_gizmo_in_open_node_editor(), and move_face_map_data_to_attributes().

◆ keys()

template<typename Key, typename Value>
MapType::KeyIterator blender::MultiValueMap< Key, Value >::keys ( ) const
inline

NOTE: This signature will change when the implementation changes.

Definition at line 148 of file BLI_multi_value_map.hh.

Referenced by blender::nodes::gizmos::build_tree_gizmo_propagation().

◆ lookup() [1/2]

template<typename Key, typename Value>
MutableSpan< Value > blender::MultiValueMap< Key, Value >::lookup ( const Key & key)
inline

Get a mutable span to all the values that are stored for the given key.

Definition at line 107 of file BLI_multi_value_map.hh.

◆ lookup() [2/2]

template<typename Key, typename Value>
Span< Value > blender::MultiValueMap< Key, Value >::lookup ( const Key & key) const
inline

Get a span to all the values that are stored for the given key.

Definition at line 91 of file BLI_multi_value_map.hh.

Referenced by fix_geometry_nodes_object_info_scale(), blender::nodes::gizmos::foreach_gizmo_for_group_input(), and version_geometry_nodes_extrude_smooth_propagation().

◆ lookup_as() [1/2]

template<typename Key, typename Value>
template<typename ForwardKey>
MutableSpan< Value > blender::MultiValueMap< Key, Value >::lookup_as ( const ForwardKey & key)
inline

Definition at line 111 of file BLI_multi_value_map.hh.

◆ lookup_as() [2/2]

template<typename Key, typename Value>
template<typename ForwardKey>
Span< Value > blender::MultiValueMap< Key, Value >::lookup_as ( const ForwardKey & key) const
inline

Definition at line 95 of file BLI_multi_value_map.hh.

◆ size()

template<typename Key, typename Value>
int64_t blender::MultiValueMap< Key, Value >::size ( ) const
inline

Get the number of keys.

Definition at line 123 of file BLI_multi_value_map.hh.

◆ values()

template<typename Key, typename Value>
MapType::ValueIterator blender::MultiValueMap< Key, Value >::values ( ) const
inline

NOTE: This signature will change when the implementation changes.

Definition at line 156 of file BLI_multi_value_map.hh.


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