Blender  V2.93
Public Member Functions | Static Public Attributes | List of all members
InstancesComponent Class Reference

#include <BKE_geometry_set.hh>

Inherits GeometryComponent.

Public Member Functions

 ~InstancesComponent ()=default
 
Geometry Component Implementation
 InstancesComponent ()
 
GeometryComponentcopy () const override
 
void clear ()
 
void add_instance (Object *object, blender::float4x4 transform, const int id=-1)
 
void add_instance (Collection *collection, blender::float4x4 transform, const int id=-1)
 
void add_instance (InstancedData data, blender::float4x4 transform, const int id=-1)
 
blender::Span< InstancedDatainstanced_data () const
 
blender::Span< blender::float4x4transforms () const
 
blender::Span< int > ids () const
 
blender::MutableSpan< blender::float4x4transforms ()
 
int instances_amount () const
 
blender::Span< int > almost_unique_ids () const
 
bool is_empty () const final
 
bool owns_direct_data () const override
 
void ensure_owns_direct_data () override
 
- Public Member Functions inherited from GeometryComponent
virtual ~GeometryComponent ()=default
 
template<typename T >
blender::bke::TypedReadAttribute< Tattribute_get_for_read (const blender::StringRef attribute_name, const AttributeDomain domain, const T &default_value) const
 
template<typename T >
blender::bke::TypedReadAttribute< Tattribute_get_constant_for_read (const AttributeDomain domain, const T &value) const
 
 GeometryComponent (GeometryComponentType type)
 
void user_add () const
 
void user_remove () const
 
bool is_mutable () const
 
GeometryComponentType type () const
 
bool attribute_exists (const blender::StringRef attribute_name) const
 
bool attribute_domain_supported (const AttributeDomain domain) const
 
virtual int attribute_domain_size (const AttributeDomain domain) const
 
blender::bke::ReadAttributePtr attribute_try_get_for_read (const blender::StringRef attribute_name) const
 
blender::bke::WriteAttributePtr attribute_try_get_for_write (const blender::StringRef attribute_name)
 
virtual blender::bke::ReadAttributePtr attribute_try_adapt_domain (blender::bke::ReadAttributePtr attribute, const AttributeDomain new_domain) const
 
bool attribute_try_delete (const blender::StringRef attribute_name)
 
bool attribute_try_create (const blender::StringRef attribute_name, const AttributeDomain domain, const CustomDataType data_type)
 
blender::Set< std::string > attribute_names () const
 
bool attribute_foreach (const AttributeForeachCallback callback) const
 
blender::bke::ReadAttributePtr attribute_try_get_for_read (const blender::StringRef attribute_name, const AttributeDomain domain, const CustomDataType data_type) const
 
blender::bke::ReadAttributePtr attribute_try_get_for_read (const blender::StringRef attribute_name, const AttributeDomain domain) const
 
blender::bke::ReadAttributePtr attribute_get_for_read (const blender::StringRef attribute_name, const AttributeDomain domain, const CustomDataType data_type, const void *default_value) const
 
blender::bke::ReadAttributePtr attribute_get_constant_for_read (const AttributeDomain domain, const CustomDataType data_type, const void *value) const
 
blender::bke::ReadAttributePtr attribute_get_constant_for_read_converted (const AttributeDomain domain, const CustomDataType in_data_type, const CustomDataType out_data_type, const void *value) const
 
OutputAttributePtr attribute_try_get_for_output (const blender::StringRef attribute_name, const AttributeDomain domain, const CustomDataType data_type, const void *default_value=nullptr)
 

Static Public Attributes

static constexpr GeometryComponentType static_type = GEO_COMPONENT_TYPE_INSTANCES
 

Additional Inherited Members

- Static Public Member Functions inherited from GeometryComponent
static GeometryComponentcreate (GeometryComponentType component_type)
 

Detailed Description

A geometry component that stores instances.

Definition at line 428 of file BKE_geometry_set.hh.

Constructor & Destructor Documentation

◆ InstancesComponent()

InstancesComponent::InstancesComponent ( )

Definition at line 38 of file geometry_component_instances.cc.

Referenced by copy().

◆ ~InstancesComponent()

InstancesComponent::~InstancesComponent ( )
default

Member Function Documentation

◆ add_instance() [1/3]

void InstancesComponent::add_instance ( Collection collection,
blender::float4x4  transform,
const int  id = -1 
)

◆ add_instance() [2/3]

void InstancesComponent::add_instance ( InstancedData  data,
blender::float4x4  transform,
const int  id = -1 
)

◆ add_instance() [3/3]

void InstancesComponent::add_instance ( Object object,
blender::float4x4  transform,
const int  id = -1 
)

◆ almost_unique_ids()

blender::Span< int > InstancesComponent::almost_unique_ids ( ) const

◆ clear()

void InstancesComponent::clear ( )

◆ copy()

GeometryComponent * InstancesComponent::copy ( ) const
overridevirtual

Implements GeometryComponent.

Definition at line 42 of file geometry_component_instances.cc.

References InstancesComponent().

◆ ensure_owns_direct_data()

void InstancesComponent::ensure_owns_direct_data ( )
overridevirtual

Implements GeometryComponent.

Definition at line 120 of file geometry_component_instances.cc.

References BLI_assert, and GeometryComponent::is_mutable().

◆ ids()

Span< int > InstancesComponent::ids ( ) const

Definition at line 91 of file geometry_component_instances.cc.

◆ instanced_data()

Span< InstancedData > InstancesComponent::instanced_data ( ) const

◆ instances_amount()

int InstancesComponent::instances_amount ( ) const

◆ is_empty()

bool InstancesComponent::is_empty ( ) const
finalvirtual

◆ owns_direct_data()

bool InstancesComponent::owns_direct_data ( ) const
overridevirtual

Implements GeometryComponent.

Definition at line 113 of file geometry_component_instances.cc.

◆ transforms() [1/2]

MutableSpan< float4x4 > InstancesComponent::transforms ( )

Definition at line 96 of file geometry_component_instances.cc.

◆ transforms() [2/2]

Span< float4x4 > InstancesComponent::transforms ( ) const

Member Data Documentation

◆ static_type

constexpr GeometryComponentType InstancesComponent::static_type = GEO_COMPONENT_TYPE_INSTANCES
inlinestaticconstexpr

Definition at line 464 of file BKE_geometry_set.hh.


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