|
Blender V5.0
|
#include <BKE_geometry_set.hh>
Inherits blender::ImplicitSharingMixin.
Inherited by blender::bke::CurveComponent, blender::bke::GeometryComponentEditData, blender::bke::GreasePencilComponent, blender::bke::InstancesComponent, blender::bke::MeshComponent, blender::bke::PointCloudComponent, and blender::bke::VolumeComponent.
Public Types | |
| enum class | Type { Mesh = 0 , PointCloud = 1 , Instance = 2 , Volume = 3 , Curve = 4 , Edit = 5 , GreasePencil = 6 } |
Public Member Functions | |
| ~GeometryComponent () override=default | |
| virtual GeometryComponentPtr | copy () const=0 |
| virtual void | clear ()=0 |
| virtual bool | owns_direct_data () const=0 |
| virtual void | ensure_owns_direct_data ()=0 |
| Public Member Functions inherited from blender::ImplicitSharingInfo | |
| virtual | ~ImplicitSharingInfo () |
| bool | is_mutable () const |
| bool | is_expired () const |
| void | add_user () const |
| void | add_weak_user () const |
| void | tag_ensured_mutable () const |
| int64_t | version () const |
| int | strong_users () const |
| void | remove_user_and_delete_if_last () const |
| void | remove_weak_user_and_delete_if_last () const |
Geometry Component | |
| GeometryComponent (Type type) | |
| int | attribute_domain_size (AttrDomain domain) const |
| virtual std::optional< AttributeAccessor > | attributes () const |
| virtual std::optional< MutableAttributeAccessor > | attributes_for_write () |
| virtual void | count_memory (MemoryCounter &memory) const |
| Type | type () const |
| virtual bool | is_empty () const |
| static GeometryComponentPtr | create (Type component_type) |
This is the base class for specialized geometry component types. A geometry component uses implicit sharing to avoid read-only copies. It also integrates with attribute API, which generalizes storing and modifying generic information on a geometry.
Definition at line 63 of file BKE_geometry_set.hh.
|
strong |
Each geometry component has a specific type. The type determines what kind of data the component stores. Functions modifying a geometry will usually just modify a subset of the component types.
| Enumerator | |
|---|---|
| Mesh | |
| PointCloud | |
| Instance | |
| Volume | |
| Curve | |
| Edit | |
| GreasePencil | |
Definition at line 71 of file BKE_geometry_set.hh.
Definition at line 33 of file geometry_set.cc.
|
overridedefault |
| int blender::bke::GeometryComponent::attribute_domain_size | ( | AttrDomain | domain | ) | const |
Definition at line 57 of file geometry_set.cc.
|
virtual |
Get access to the attributes in this geometry component. May return none if the geometry does not support the attribute system.
Definition at line 69 of file geometry_set.cc.
|
virtual |
Definition at line 73 of file geometry_set.cc.
|
pure virtual |
Remove referenced data from the geometry component.
|
pure virtual |
Copies the component. The returned component only has a single user and is therefor mutable.
|
virtual |
Definition at line 78 of file geometry_set.cc.
|
static |
Definition at line 35 of file geometry_set.cc.
|
pure virtual |
|
virtual |
Definition at line 85 of file geometry_set.cc.
|
pure virtual |
Definition at line 80 of file geometry_set.cc.