Blender  V3.3
Public Member Functions | List of all members
blender::GVMutableArray Class Reference

#include <BLI_generic_virtual_array.hh>

Inheritance diagram for blender::GVMutableArray:
blender::GVArrayCommon

Public Member Functions

 GVMutableArray ()=default
 
#GVMutableArrayImpl
void fill (const void *value)
 
- Public Member Functions inherited from blender::GVArrayCommon
bool may_have_ownership () const
 
IndexRange index_range () const
 
void materialize (void *dst) const
 
void materialize (const IndexMask mask, void *dst) const
 
void materialize_to_uninitialized (void *dst) const
 
void materialize_to_uninitialized (const IndexMask mask, void *dst) const
 
void materialize_compressed (IndexMask mask, void *dst) const
 
void materialize_compressed_to_uninitialized (IndexMask mask, void *dst) const
 
bool is_span () const
 
GSpan get_internal_span () const
 
bool is_single () const
 
void get_internal_single (void *r_value) const
 
void get_internal_single_to_uninitialized (void *r_value) const
 
const CPPTypetype () const
 
 operator bool () const
 
int64_t size () const
 
bool is_empty () const
 
template<typename T >
bool try_assign_VArray (VArray< T > &varray) const
 
CommonVArrayInfo common_info () const
 
void get (int64_t index, void *r_value) const
 
template<typename T >
T get (int64_t index) const
 
void get_to_uninitialized (int64_t index, void *r_value) const
 

#GVMutableArray

 GVMutableArray (const GVMutableArray &other)
 
 GVMutableArray (GVMutableArray &&other) noexcept
 
 GVMutableArray (GVMutableArrayImpl *impl)
 
 GVMutableArray (std::shared_ptr< GVMutableArrayImpl > impl)
 
 operator GVArray () const &
 
 operator GVArray () &&noexcept
 
GVMutableArrayoperator= (const GVMutableArray &other)
 
GVMutableArrayoperator= (GVMutableArray &&other) noexcept
 
GMutableSpan get_internal_span () const
 
void set_all (const void *src)
 
GVMutableArrayImplget_implementation () const
 
static GVMutableArray ForSpan (GMutableSpan span)
 

Inline methods for #GVMutableArray.

template<typename T >
 GVMutableArray (const VMutableArray< T > &varray)
 
template<typename T >
VMutableArray< Ttyped () const
 
template<typename ImplT , typename... Args>
static GVMutableArray For (Args &&...args)
 

Inline methods for #GVMutableArrayImpl.

template<typename T >
bool try_assign_VMutableArray (VMutableArray< T > &varray) const
 
void set_by_copy (int64_t index, const void *value)
 
void set_by_move (int64_t index, void *value)
 
void set_by_relocate (int64_t index, void *value)
 

Additional Inherited Members

- Protected Types inherited from blender::GVArrayCommon
using Storage = Any< detail::GVArrayAnyExtraInfo, 40, 8 >
 
- Protected Member Functions inherited from blender::GVArrayCommon
 GVArrayCommon ()=default
 
 GVArrayCommon (const GVArrayCommon &other)
 
 GVArrayCommon (GVArrayCommon &&other) noexcept
 
 GVArrayCommon (const GVArrayImpl *impl)
 
 GVArrayCommon (std::shared_ptr< const GVArrayImpl > impl)
 
 ~GVArrayCommon ()
 
void copy_from (const GVArrayCommon &other)
 
void move_from (GVArrayCommon &&other) noexcept
 
const GVArrayImplimpl_from_storage () const
 
template<typename ImplT , typename... Args>
void emplace (Args &&...args)
 
- Protected Attributes inherited from blender::GVArrayCommon
const GVArrayImplimpl_ = nullptr
 
Storage storage_
 

Detailed Description

Generic version of #VMutableArray.

Definition at line 216 of file BLI_generic_virtual_array.hh.

Constructor & Destructor Documentation

◆ GVMutableArray() [1/6]

blender::GVMutableArray::GVMutableArray ( )
default

◆ GVMutableArray() [2/6]

blender::GVMutableArray::GVMutableArray ( const GVMutableArray other)
default

◆ GVMutableArray() [3/6]

blender::GVMutableArray::GVMutableArray ( GVMutableArray &&  other)
defaultnoexcept

◆ GVMutableArray() [4/6]

blender::GVMutableArray::GVMutableArray ( GVMutableArrayImpl impl)

Definition at line 750 of file generic_virtual_array.cc.

◆ GVMutableArray() [5/6]

blender::GVMutableArray::GVMutableArray ( std::shared_ptr< GVMutableArrayImpl impl)

Definition at line 754 of file generic_virtual_array.cc.

◆ GVMutableArray() [6/6]

template<typename T >
blender::GVMutableArray::GVMutableArray ( const VMutableArray< T > &  varray)
inline

Member Function Documentation

◆ fill()

void blender::GVMutableArray::fill ( const void value)

◆ For()

template<typename ImplT , typename... Args>
GVMutableArray blender::GVMutableArray::For ( Args &&...  args)
inlinestatic

Definition at line 900 of file BLI_generic_virtual_array.hh.

References blender::GVArrayCommon::emplace().

◆ ForSpan()

GVMutableArray blender::GVMutableArray::ForSpan ( GMutableSpan  span)
static

◆ get_implementation()

GVMutableArrayImpl * blender::GVMutableArray::get_implementation ( ) const

Definition at line 790 of file generic_virtual_array.cc.

◆ get_internal_span()

GMutableSpan blender::GVMutableArray::get_internal_span ( ) const

◆ operator GVArray() [1/2]

blender::GVMutableArray::operator GVArray ( ) &&
noexcept

Definition at line 771 of file generic_virtual_array.cc.

References blender::GVArrayCommon::move_from().

◆ operator GVArray() [2/2]

blender::GVMutableArray::operator GVArray ( ) const &

Definition at line 764 of file generic_virtual_array.cc.

References blender::GVArrayCommon::copy_from().

◆ operator=() [1/2]

GVMutableArray & blender::GVMutableArray::operator= ( const GVMutableArray other)

Definition at line 778 of file generic_virtual_array.cc.

References blender::GVArrayCommon::copy_from().

◆ operator=() [2/2]

GVMutableArray & blender::GVMutableArray::operator= ( GVMutableArray &&  other)
noexcept

Definition at line 784 of file generic_virtual_array.cc.

◆ set_all()

void blender::GVMutableArray::set_all ( const void src)

Copy the values from the source buffer to all elements in the virtual array.

Definition at line 795 of file generic_virtual_array.cc.

References blender::GVMutableArrayImpl::set_all(), and src.

Referenced by copy_attributes_between_components(), blender::bke::create_point_attribute(), blender::GMutableVArraySpan::save(), and vertex_paint_from_weight().

◆ set_by_copy()

void blender::GVMutableArray::set_by_copy ( int64_t  index,
const void value 
)
inline

◆ set_by_move()

void blender::GVMutableArray::set_by_move ( int64_t  index,
void value 
)
inline

◆ set_by_relocate()

void blender::GVMutableArray::set_by_relocate ( int64_t  index,
void value 
)
inline

◆ try_assign_VMutableArray()

template<typename T >
bool blender::GVMutableArray::try_assign_VMutableArray ( VMutableArray< T > &  varray) const
inline

◆ typed()

template<typename T >
VMutableArray< T > blender::GVMutableArray::typed
inline

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