Blender V5.0
blender::GVArray Class Reference

#include <BLI_generic_virtual_array.hh>

Inherits blender::GVArrayCommon.

Public Member Functions

 GVArray ()=default
const GVArrayImplget_implementation () const
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 (const IndexMask &mask, void *dst) const
void materialize_compressed_to_uninitialized (const 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

#GVArray

 GVArray (const GVArray &other)
 GVArray (GVArray &&other) noexcept
 GVArray (const GVArrayImpl *impl)
 GVArray (std::shared_ptr< const GVArrayImpl > impl)
 GVArray (varray_tag::single, const CPPType &type, int64_t size, const void *value)
GVArray slice (IndexRange slice) const
GVArrayoperator= (const GVArray &other)
GVArrayoperator= (GVArray &&other) noexcept
static GVArray from_single (const CPPType &type, int64_t size, const void *value)
static GVArray from_single_ref (const CPPType &type, int64_t size, const void *value)
static GVArray from_single_default (const CPPType &type, int64_t size)
static GVArray from_span (GSpan span)
static GVArray from_garray (GArray<> array)
static GVArray from_empty (const CPPType &type)

Inline methods for #GVArray.

 GVArray (varray_tag::span, GSpan span)
 GVArray (varray_tag::single_ref, const CPPType &type, int64_t size, const void *value)
template<typename T>
 GVArray (const VArray< T > &varray)
template<typename T>
 GVArray (VArray< T > &&varray)
template<typename T>
VArray< Ttyped () const
template<typename ImplT, typename... Args>
static GVArray from (Args &&...args)

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 VArray.

Definition at line 173 of file BLI_generic_virtual_array.hh.

Constructor & Destructor Documentation

◆ GVArray() [1/10]

◆ GVArray() [2/10]

blender::GVArray::GVArray ( const GVArray & other)
default

References GVArray().

◆ GVArray() [3/10]

blender::GVArray::GVArray ( GVArray && other)
defaultnoexcept

◆ GVArray() [4/10]

blender::GVArray::GVArray ( const GVArrayImpl * impl)

Definition at line 680 of file generic_virtual_array.cc.

References blender::GVArrayCommon::GVArrayCommon().

◆ GVArray() [5/10]

blender::GVArray::GVArray ( std::shared_ptr< const GVArrayImpl > impl)

Definition at line 682 of file generic_virtual_array.cc.

References blender::GVArrayCommon::GVArrayCommon().

◆ GVArray() [6/10]

blender::GVArray::GVArray ( varray_tag::span ,
GSpan span )
inline

◆ GVArray() [7/10]

blender::GVArray::GVArray ( varray_tag::single_ref ,
const CPPType & type,
int64_t size,
const void * value )
inline

◆ GVArray() [8/10]

blender::GVArray::GVArray ( varray_tag::single ,
const CPPType & type,
int64_t size,
const void * value )

◆ GVArray() [9/10]

template<typename T>
blender::GVArray::GVArray ( const VArray< T > & varray)
inline

Definition at line 841 of file BLI_generic_virtual_array.hh.

References GVArray(), and T.

◆ GVArray() [10/10]

Member Function Documentation

◆ from()

template<typename ImplT, typename... Args>
GVArray blender::GVArray::from ( Args &&... args)
inlinestatic

◆ from_empty()

GVArray blender::GVArray::from_empty ( const CPPType & type)
static

◆ from_garray()

◆ from_single()

◆ from_single_default()

◆ from_single_ref()

◆ from_span()

◆ get_implementation()

const GVArrayImpl * blender::GVArray::get_implementation ( ) const
inline

Definition at line 207 of file BLI_generic_virtual_array.hh.

References blender::GVArrayCommon::impl_.

◆ operator=() [1/2]

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

Definition at line 749 of file generic_virtual_array.cc.

References blender::GVArrayCommon::copy_from(), and GVArray().

◆ operator=() [2/2]

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

Definition at line 755 of file generic_virtual_array.cc.

References GVArray(), and blender::GVArrayCommon::move_from().

◆ slice()

◆ typed()

template<typename T>
VArray< T > blender::GVArray::typed ( ) const
inline

Definition at line 867 of file BLI_generic_virtual_array.hh.

References BLI_assert, blender::GVArrayCommon::common_info(), blender::CommonVArrayInfo::data, from(), blender::VArray< T >::from_single(), blender::VArray< T >::from_span(), blender::GVArrayCommon::impl_, blender::CommonVArrayInfo::may_have_ownership, blender::CommonVArrayInfo::Single, blender::CommonVArrayInfo::Span, T, blender::GVArrayCommon::try_assign_VArray(), and blender::CommonVArrayInfo::type.

Referenced by blender::bke::AttributeAccessor::adapt_domain(), blender::bke::CurvesGeometry::adapt_domain(), blender::ed::spreadsheet::apply_row_filter(), attr_create_generic(), blender::io::usd::copy_blender_attribute_to_primvar(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_curves(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_edges(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_faces(), blender::nodes::node_geo_duplicate_elements_cc::copy_stable_id_point(), blender::geometry::create_id_index_map(), blender::ed::greasepencil::image_render::draw_grease_pencil_strokes(), blender::fn::multi_function::build::detail::execute_element_fn_as_multi_function(), blender::fn::FieldEvaluator::get_evaluated(), blender::fn::FieldEvaluator::get_evaluated_as_mask(), blender::bke::get_varray_attribute(), blender::geometry::merge_layers(), blender::geometry::point_merge_by_distance(), blender::fn::multi_function::Params::readonly_single_input(), blender::bke::mesh_surface_sample::sample_corner_attribute(), blender::bke::mesh_surface_sample::sample_face_attribute(), blender::bke::mesh_surface_sample::sample_point_attribute(), blender::ed::curves::set_attribute_invoke(), blender::ed::pointcloud::set_attribute_invoke(), and blender::nodes::List::varray().


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