Blender  V3.3
Public Member Functions | Protected Member Functions | List of all members
blender::VArrayImpl_For_Single< T > Class Template Referencefinal

#include <BLI_virtual_array.hh>

Inheritance diagram for blender::VArrayImpl_For_Single< T >:
blender::VArrayImpl< T >

Public Member Functions

 VArrayImpl_For_Single (T value, const int64_t size)
 
- Public Member Functions inherited from blender::VArrayImpl< T >
 VArrayImpl (const int64_t size)
 
virtual ~VArrayImpl ()=default
 
int64_t size () const
 
virtual T get (int64_t index) const =0
 
virtual void materialize (IndexMask mask, MutableSpan< T > r_span) const
 
virtual void materialize_to_uninitialized (IndexMask mask, MutableSpan< T > r_span) const
 
virtual bool try_assign_GVArray (GVArray &UNUSED(varray)) const
 
virtual bool is_same (const VArrayImpl< T > &UNUSED(other)) const
 

Protected Member Functions

T get (const int64_t UNUSED(index)) const override
 
CommonVArrayInfo common_info () const override
 
void materialize_compressed (IndexMask mask, MutableSpan< T > r_span) const override
 
void materialize_compressed_to_uninitialized (IndexMask mask, MutableSpan< T > r_span) const override
 

Additional Inherited Members

- Protected Attributes inherited from blender::VArrayImpl< T >
int64_t size_
 

Detailed Description

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

A virtual array implementation that returns the same value for every index. This class is final so that it can be devirtualized by the compiler in some cases (e.g. when devirtualize_varray is used).

Definition at line 352 of file BLI_virtual_array.hh.

Constructor & Destructor Documentation

◆ VArrayImpl_For_Single()

template<typename T >
blender::VArrayImpl_For_Single< T >::VArrayImpl_For_Single ( T  value,
const int64_t  size 
)
inline

Definition at line 357 of file BLI_virtual_array.hh.

Member Function Documentation

◆ common_info()

template<typename T >
CommonVArrayInfo blender::VArrayImpl_For_Single< T >::common_info ( ) const
inlineoverrideprotectedvirtual

Reimplemented from blender::VArrayImpl< T >.

Definition at line 368 of file BLI_virtual_array.hh.

References blender::CommonVArrayInfo::Single.

◆ get()

template<typename T >
T blender::VArrayImpl_For_Single< T >::get ( const int64_t   UNUSEDindex) const
inlineoverrideprotected

Definition at line 363 of file BLI_virtual_array.hh.

◆ materialize_compressed()

template<typename T >
void blender::VArrayImpl_For_Single< T >::materialize_compressed ( IndexMask  mask,
MutableSpan< T r_span 
) const
inlineoverrideprotectedvirtual

Copy values from the virtual array into the provided span. Contrary to materialize, the index in virtual array is not the same as the index in the output span. Instead, the span is filled without gaps.

Reimplemented from blender::VArrayImpl< T >.

Definition at line 373 of file BLI_virtual_array.hh.

References BLI_assert, blender::MutableSpan< T >::fill(), mask(), blender::MutableSpan< T >::size(), and UNUSED_VARS_NDEBUG.

◆ materialize_compressed_to_uninitialized()

template<typename T >
void blender::VArrayImpl_For_Single< T >::materialize_compressed_to_uninitialized ( IndexMask  mask,
MutableSpan< T r_span 
) const
inlineoverrideprotectedvirtual

Same as materialize_compressed but #r_span is expected to be uninitialized.

Reimplemented from blender::VArrayImpl< T >.

Definition at line 380 of file BLI_virtual_array.hh.

References BLI_assert, blender::MutableSpan< T >::data(), mask(), blender::MutableSpan< T >::size(), and blender::uninitialized_fill_n().


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