Blender V5.0
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)
std::optional< AttributeDomainAndType >(* builtin_domain_and_type )(const void *owner, StringRef attribute_id)
GPointer(* get_builtin_default )(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, AttrType 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 494 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 501 of file BKE_attribute.hh.

◆ add

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

Definition at line 511 of file BKE_attribute.hh.

◆ builtin_domain_and_type

std::optional< AttributeDomainAndType >(* blender::bke::AttributeAccessorFunctions::builtin_domain_and_type) (const void *owner, StringRef attribute_id)

Definition at line 496 of file BKE_attribute.hh.

◆ domain_size

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

Definition at line 496 of file BKE_attribute.hh.

◆ domain_supported

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

Definition at line 495 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 505 of file BKE_attribute.hh.

◆ get_builtin_default

GPointer(* blender::bke::AttributeAccessorFunctions::get_builtin_default) (const void *owner, StringRef attribute_id)

Definition at line 499 of file BKE_attribute.hh.

◆ lookup

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

Definition at line 500 of file BKE_attribute.hh.

◆ lookup_for_write

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

Definition at line 509 of file BKE_attribute.hh.

◆ lookup_validator

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

Definition at line 508 of file BKE_attribute.hh.

◆ remove

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

Definition at line 510 of file BKE_attribute.hh.


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