Blender V4.3
blender::bke::AttributeAccessorFunctions Struct Reference

#include <BKE_attribute.hh>

Public Attributes

bool(* domain_supported )(const void *owner, AttrDomain domain)
int(* domain_size )(const void *owner, AttrDomain domain)
bool(* is_builtin )(const void *owner, StringRef attribute_id)
GAttributeReader(* lookup )(const void *owner, StringRef attribute_id)
GVArray(* adapt_domain )(const void *owner, const GVArray &varray, AttrDomain from_domain, AttrDomain to_domain)
void(* foreach_attribute )(const void *owner, FunctionRef< void(const AttributeIter &iter)> fn, const AttributeAccessor &accessor)
AttributeValidator(* lookup_validator )(const void *owner, StringRef attribute_id)
GAttributeWriter(* lookup_for_write )(void *owner, StringRef attribute_id)
bool(* remove )(void *owner, StringRef attribute_id)
bool(* add )(void *owner, StringRef attribute_id, AttrDomain domain, eCustomDataType data_type, const AttributeInit &initializer)

Detailed Description

Core functions which make up the attribute API. They should not be called directly, but through #AttributesAccessor or #MutableAttributesAccessor.

This is similar to a virtual function table. A struct of function pointers is used instead, because this way the attribute accessors can be trivial and can be passed around by value. This makes it easy to return the attribute accessor for a geometry from a function.

Definition at line 463 of file BKE_attribute.hh.

Member Data Documentation

◆ adapt_domain

GVArray(* blender::bke::AttributeAccessorFunctions::adapt_domain) (const void *owner, const GVArray &varray, AttrDomain from_domain, AttrDomain to_domain)

Definition at line 468 of file BKE_attribute.hh.

◆ add

bool(* blender::bke::AttributeAccessorFunctions::add) (void *owner, StringRef attribute_id, AttrDomain domain, eCustomDataType data_type, const AttributeInit &initializer)

Definition at line 478 of file BKE_attribute.hh.

◆ domain_size

int(* blender::bke::AttributeAccessorFunctions::domain_size) (const void *owner, AttrDomain domain)

Definition at line 465 of file BKE_attribute.hh.

◆ domain_supported

bool(* blender::bke::AttributeAccessorFunctions::domain_supported) (const void *owner, AttrDomain domain)

Definition at line 464 of file BKE_attribute.hh.

◆ foreach_attribute

void(* blender::bke::AttributeAccessorFunctions::foreach_attribute) (const void *owner, FunctionRef< void(const AttributeIter &iter)> fn, const AttributeAccessor &accessor)

Definition at line 472 of file BKE_attribute.hh.

◆ is_builtin

bool(* blender::bke::AttributeAccessorFunctions::is_builtin) (const void *owner, StringRef attribute_id)

Definition at line 466 of file BKE_attribute.hh.

◆ lookup

GAttributeReader(* blender::bke::AttributeAccessorFunctions::lookup) (const void *owner, StringRef attribute_id)

Definition at line 467 of file BKE_attribute.hh.

◆ lookup_for_write

GAttributeWriter(* blender::bke::AttributeAccessorFunctions::lookup_for_write) (void *owner, StringRef attribute_id)

Definition at line 476 of file BKE_attribute.hh.

◆ lookup_validator

AttributeValidator(* blender::bke::AttributeAccessorFunctions::lookup_validator) (const void *owner, StringRef attribute_id)

Definition at line 475 of file BKE_attribute.hh.

◆ remove

bool(* blender::bke::AttributeAccessorFunctions::remove) (void *owner, StringRef attribute_id)

Definition at line 477 of file BKE_attribute.hh.


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