Blender  V2.93
Namespaces | Classes | Typedefs | Functions
blender::bke Namespace Reference

Namespaces

 calc_edges
 
 cryptomatte
 
 tests
 

Classes

class  ReadAttribute
 
class  WriteAttribute
 
class  TypedReadAttribute
 
class  TypedWriteAttribute
 
struct  GeometryInstanceGroup
 
struct  AttributeKind
 
class  PersistentDataHandle
 
class  PersistentIDHandle
 
class  PersistentObjectHandle
 
class  PersistentCollectionHandle
 
class  PersistentDataHandleMap
 
struct  VolumeToMeshResolution
 
class  TemporaryWriteAttribute
 
class  ConvertedReadAttribute
 
class  ConstantReadAttribute
 
class  ArrayReadAttribute
 
class  OwnedArrayReadAttribute
 
class  DerivedArrayReadAttribute
 
class  ArrayWriteAttribute
 
class  DerivedArrayWriteAttribute
 
struct  CustomDataAccessInfo
 
class  BuiltinAttributeProvider
 
class  DynamicAttributesProvider
 
class  CustomDataAttributeProvider
 
class  NamedLegacyCustomDataProvider
 
class  BuiltinCustomDataLayerProvider
 
class  ComponentAttributeProviders
 
class  VertexWeightWriteAttribute
 
class  VertexWeightReadAttribute
 
class  VertexGroupsAttributeProvider
 
class  NormalAttributeProvider
 

Typedefs

using ReadAttributePtr = std::unique_ptr< ReadAttribute >
 
using WriteAttributePtr = std::unique_ptr< WriteAttribute >
 
using BooleanReadAttribute = TypedReadAttribute< bool >
 
using FloatReadAttribute = TypedReadAttribute< float >
 
using Float2ReadAttribute = TypedReadAttribute< float2 >
 
using Float3ReadAttribute = TypedReadAttribute< float3 >
 
using Int32ReadAttribute = TypedReadAttribute< int >
 
using Color4fReadAttribute = TypedReadAttribute< Color4f >
 
using BooleanWriteAttribute = TypedWriteAttribute< bool >
 
using FloatWriteAttribute = TypedWriteAttribute< float >
 
using Float2WriteAttribute = TypedWriteAttribute< float2 >
 
using Float3WriteAttribute = TypedWriteAttribute< float3 >
 
using Int32WriteAttribute = TypedWriteAttribute< int >
 
using Color4fWriteAttribute = TypedWriteAttribute< Color4f >
 

Functions

const CPPTypecustom_data_type_to_cpp_type (const CustomDataType type)
 
CustomDataType cpp_type_to_custom_data_type (const CPPType &type)
 
CustomDataType attribute_data_type_highest_complexity (Span< CustomDataType > data_types)
 
AttributeDomain attribute_domain_highest_priority (Span< AttributeDomain > domains)
 
void geometry_set_instances_attribute_foreach (const GeometrySet &geometry_set, const AttributeForeachCallback callback, const int limit)
 
void geometry_set_gather_instances (const GeometrySet &geometry_set, Vector< GeometryInstanceGroup > &r_instance_groups)
 
GeometrySet geometry_set_realize_mesh_for_modifier (const GeometrySet &geometry_set)
 
GeometrySet geometry_set_realize_instances (const GeometrySet &geometry_set)
 
void geometry_set_gather_instances_attribute_info (Span< GeometryInstanceGroup > set_groups, Span< GeometryComponentType > component_types, const Set< std::string > &ignored_attributes, Map< std::string, AttributeKind > &r_attributes)
 
static int attribute_data_type_complexity (const CustomDataType data_type)
 
static int attribute_domain_priority (const AttributeDomain domain)
 
template<typename T >
static void adapt_mesh_domain_corner_to_point_impl (const Mesh &mesh, const TypedReadAttribute< T > &attribute, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_corner_to_point (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_point_to_corner_impl (const Mesh &mesh, const TypedReadAttribute< T > &attribute, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_point_to_corner (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_corner_to_face_impl (const Mesh &mesh, Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_corner_to_face (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_corner_to_edge_impl (const Mesh &mesh, Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_corner_to_edge (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
void adapt_mesh_domain_face_to_point_impl (const Mesh &mesh, Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_face_to_point (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
void adapt_mesh_domain_face_to_corner_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_face_to_corner (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
void adapt_mesh_domain_face_to_edge_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_face_to_edge (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_point_to_face_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_point_to_face (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_point_to_edge_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_point_to_edge (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
void adapt_mesh_domain_edge_to_corner_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_edge_to_corner (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_edge_to_point_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_edge_to_point (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename T >
static void adapt_mesh_domain_edge_to_face_impl (const Mesh &mesh, const Span< T > old_values, MutableSpan< T > r_values)
 
static ReadAttributePtr adapt_mesh_domain_edge_to_face (const Mesh &mesh, ReadAttributePtr attribute)
 
template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, AttributeDomain Domain>
static ReadAttributePtr make_derived_read_attribute (const void *data, const int domain_size)
 
template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, void(*)(StructT &, const ElemT &) SetFunc, AttributeDomain Domain>
static WriteAttributePtr make_derived_write_attribute (void *data, const int domain_size)
 
static float3 get_vertex_position (const MVert &vert)
 
static void set_vertex_position (MVert &vert, const float3 &position)
 
static void tag_normals_dirty_when_writing_position (GeometryComponent &component)
 
static int get_material_index (const MPoly &mpoly)
 
static void set_material_index (MPoly &mpoly, const int &index)
 
static bool get_shade_smooth (const MPoly &mpoly)
 
static void set_shade_smooth (MPoly &mpoly, const bool &value)
 
static float2 get_loop_uv (const MLoopUV &uv)
 
static void set_loop_uv (MLoopUV &uv, const float2 &co)
 
static Color4f get_loop_color (const MLoopCol &col)
 
static void set_loop_color (MLoopCol &col, const Color4f &linear_color)
 
static float get_crease (const MEdge &edge)
 
static void set_crease (MEdge &edge, const float &value)
 
static ComponentAttributeProviders create_attribute_providers_for_mesh ()
 
template<typename T , AttributeDomain Domain>
static ReadAttributePtr make_array_read_attribute (const void *data, const int domain_size)
 
template<typename T , AttributeDomain Domain>
static WriteAttributePtr make_array_write_attribute (void *data, const int domain_size)
 
static ComponentAttributeProviders create_attribute_providers_for_point_cloud ()
 
static void geometry_set_collect_recursive (const GeometrySet &geometry_set, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static void geometry_set_collect_recursive_collection (const Collection &collection, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static void add_final_mesh_as_geometry_component (const Object &object, GeometrySet &geometry_set)
 
static GeometrySet object_get_geometry_set_for_read (const Object &object)
 
static void geometry_set_collect_recursive_collection_instance (const Collection &collection, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static void geometry_set_collect_recursive_object (const Object &object, const float4x4 &transform, Vector< GeometryInstanceGroup > &r_sets)
 
static bool collection_instance_attribute_foreach (const Collection &collection, const AttributeForeachCallback callback, const int limit, int &count)
 
static bool instances_attribute_foreach_recursive (const GeometrySet &geometry_set, const AttributeForeachCallback callback, const int limit, int &count)
 
static bool object_instance_attribute_foreach (const Object &object, const AttributeForeachCallback callback, const int limit, int &count)
 
static Meshjoin_mesh_topology_and_builtin_attributes (Span< GeometryInstanceGroup > set_groups, const bool convert_points_to_vertices)
 
static void join_attributes (Span< GeometryInstanceGroup > set_groups, Span< GeometryComponentType > component_types, const Map< std::string, AttributeKind > &attribute_info, GeometryComponent &result)
 
static void join_instance_groups_mesh (Span< GeometryInstanceGroup > set_groups, bool convert_points_to_vertices, GeometrySet &result)
 
static void join_instance_groups_pointcloud (Span< GeometryInstanceGroup > set_groups, GeometrySet &result)
 
static void join_instance_groups_volume (Span< GeometryInstanceGroup > set_groups, GeometrySet &result)
 

Typedef Documentation

◆ BooleanReadAttribute

Definition at line 305 of file BKE_attribute_access.hh.

◆ BooleanWriteAttribute

Definition at line 311 of file BKE_attribute_access.hh.

◆ Color4fReadAttribute

Definition at line 310 of file BKE_attribute_access.hh.

◆ Color4fWriteAttribute

Definition at line 316 of file BKE_attribute_access.hh.

◆ Float2ReadAttribute

Definition at line 307 of file BKE_attribute_access.hh.

◆ Float2WriteAttribute

Definition at line 313 of file BKE_attribute_access.hh.

◆ Float3ReadAttribute

Definition at line 308 of file BKE_attribute_access.hh.

◆ Float3WriteAttribute

Definition at line 314 of file BKE_attribute_access.hh.

◆ FloatReadAttribute

Definition at line 306 of file BKE_attribute_access.hh.

◆ FloatWriteAttribute

Definition at line 312 of file BKE_attribute_access.hh.

◆ Int32ReadAttribute

Definition at line 309 of file BKE_attribute_access.hh.

◆ Int32WriteAttribute

Definition at line 315 of file BKE_attribute_access.hh.

◆ ReadAttributePtr

using blender::bke::ReadAttributePtr = typedef std::unique_ptr<ReadAttribute>

Definition at line 205 of file BKE_attribute_access.hh.

◆ WriteAttributePtr

using blender::bke::WriteAttributePtr = typedef std::unique_ptr<WriteAttribute>

Definition at line 206 of file BKE_attribute_access.hh.

Function Documentation

◆ adapt_mesh_domain_corner_to_edge()

static ReadAttributePtr blender::bke::adapt_mesh_domain_corner_to_edge ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_corner_to_edge_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_corner_to_edge_impl ( const Mesh mesh,
Span< T old_values,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_corner_to_face()

static ReadAttributePtr blender::bke::adapt_mesh_domain_corner_to_face ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_corner_to_face_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_corner_to_face_impl ( const Mesh mesh,
Span< T old_values,
MutableSpan< T r_values 
)
static
Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 276 of file geometry_component_mesh.cc.

References BLI_assert, MPoly::loopstart, mesh, Mesh::mpoly, blender::MutableSpan< T >::size(), T, MPoly::totloop, and Mesh::totpoly.

◆ adapt_mesh_domain_corner_to_point()

static ReadAttributePtr blender::bke::adapt_mesh_domain_corner_to_point ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_corner_to_point_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_corner_to_point_impl ( const Mesh mesh,
const TypedReadAttribute< T > &  attribute,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_edge_to_corner()

static ReadAttributePtr blender::bke::adapt_mesh_domain_edge_to_corner ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_edge_to_corner_impl()

template<typename T >
void blender::bke::adapt_mesh_domain_edge_to_corner_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_edge_to_face()

static ReadAttributePtr blender::bke::adapt_mesh_domain_edge_to_face ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_edge_to_face_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_edge_to_face_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)
static
Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 619 of file geometry_component_mesh.cc.

References BLI_assert, MLoop::e, MPoly::loopstart, mesh, Mesh::mloop, Mesh::mpoly, blender::MutableSpan< T >::size(), MPoly::totloop, and Mesh::totpoly.

◆ adapt_mesh_domain_edge_to_point()

static ReadAttributePtr blender::bke::adapt_mesh_domain_edge_to_point ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_edge_to_point_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_edge_to_point_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_face_to_corner()

static ReadAttributePtr blender::bke::adapt_mesh_domain_face_to_corner ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_face_to_corner_impl()

template<typename T >
void blender::bke::adapt_mesh_domain_face_to_corner_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_face_to_edge()

static ReadAttributePtr blender::bke::adapt_mesh_domain_face_to_edge ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_face_to_edge_impl()

template<typename T >
void blender::bke::adapt_mesh_domain_face_to_edge_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_face_to_point()

static ReadAttributePtr blender::bke::adapt_mesh_domain_face_to_point ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_face_to_point_impl()

template<typename T >
void blender::bke::adapt_mesh_domain_face_to_point_impl ( const Mesh mesh,
Span< T old_values,
MutableSpan< T r_values 
)

◆ adapt_mesh_domain_point_to_corner()

static ReadAttributePtr blender::bke::adapt_mesh_domain_point_to_corner ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_point_to_corner_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_point_to_corner_impl ( const Mesh mesh,
const TypedReadAttribute< T > &  attribute,
MutableSpan< T r_values 
)
static

◆ adapt_mesh_domain_point_to_edge()

static ReadAttributePtr blender::bke::adapt_mesh_domain_point_to_edge ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_point_to_edge_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_point_to_edge_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)
static
Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 504 of file geometry_component_mesh.cc.

References BLI_assert, Mesh::medge, mesh, blender::MutableSpan< T >::size(), Mesh::totedge, MEdge::v1, and MEdge::v2.

◆ adapt_mesh_domain_point_to_face()

static ReadAttributePtr blender::bke::adapt_mesh_domain_point_to_face ( const Mesh mesh,
ReadAttributePtr  attribute 
)
static

◆ adapt_mesh_domain_point_to_face_impl()

template<typename T >
static void blender::bke::adapt_mesh_domain_point_to_face_impl ( const Mesh mesh,
const Span< T old_values,
MutableSpan< T r_values 
)
static
Note
Theoretically this interpolation does not need to compute all values at once. However, doing that makes the implementation simpler, and this can be optimized in the future if only some values are required.

Definition at line 463 of file geometry_component_mesh.cc.

References BLI_assert, MPoly::loopstart, mesh, Mesh::mloop, Mesh::mpoly, blender::MutableSpan< T >::size(), MPoly::totloop, Mesh::totpoly, and MLoop::v.

◆ add_final_mesh_as_geometry_component()

static void blender::bke::add_final_mesh_as_geometry_component ( const Object object,
GeometrySet geometry_set 
)
static

◆ attribute_data_type_complexity()

static int blender::bke::attribute_data_type_complexity ( const CustomDataType  data_type)
static

◆ attribute_data_type_highest_complexity()

CustomDataType blender::bke::attribute_data_type_highest_complexity ( Span< CustomDataType data_types)

◆ attribute_domain_highest_priority()

AttributeDomain blender::bke::attribute_domain_highest_priority ( Span< AttributeDomain domains)

Domains with a higher "information density" have a higher priority, in order to choose a domain that will not lose data through domain conversion.

Definition at line 355 of file attribute_access.cc.

References ATTR_DOMAIN_CORNER, and attribute_domain_priority().

Referenced by blender::nodes::determine_final_data_type_and_domain(), blender::nodes::GeoNodeExecParams::get_highest_priority_input_domain(), and blender::nodes::get_result_domain().

◆ attribute_domain_priority()

static int blender::bke::attribute_domain_priority ( const AttributeDomain  domain)
static
Note
Generally the order should mirror the order of the domains established in each component's ComponentAttributeProviders.

Definition at line 329 of file attribute_access.cc.

References ATTR_DOMAIN_CORNER, ATTR_DOMAIN_CURVE, ATTR_DOMAIN_EDGE, ATTR_DOMAIN_FACE, ATTR_DOMAIN_POINT, and BLI_assert_unreachable.

Referenced by attribute_domain_highest_priority().

◆ collection_instance_attribute_foreach()

static bool blender::bke::collection_instance_attribute_foreach ( const Collection collection,
const AttributeForeachCallback  callback,
const int  limit,
int &  count 
)
static

◆ cpp_type_to_custom_data_type()

CustomDataType blender::bke::cpp_type_to_custom_data_type ( const CPPType type)

◆ create_attribute_providers_for_mesh()

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_mesh ( )
static

◆ create_attribute_providers_for_point_cloud()

static ComponentAttributeProviders blender::bke::create_attribute_providers_for_point_cloud ( )
static

◆ custom_data_type_to_cpp_type()

const blender::fn::CPPType * blender::bke::custom_data_type_to_cpp_type ( const CustomDataType  type)

◆ geometry_set_collect_recursive()

static void blender::bke::geometry_set_collect_recursive ( const GeometrySet geometry_set,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_collect_recursive_collection()

static void blender::bke::geometry_set_collect_recursive_collection ( const Collection collection,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_collect_recursive_collection_instance()

static void blender::bke::geometry_set_collect_recursive_collection_instance ( const Collection collection,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_collect_recursive_object()

static void blender::bke::geometry_set_collect_recursive_object ( const Object object,
const float4x4 transform,
Vector< GeometryInstanceGroup > &  r_sets 
)
static

◆ geometry_set_gather_instances()

void blender::bke::geometry_set_gather_instances ( const GeometrySet geometry_set,
Vector< GeometryInstanceGroup > &  r_instance_groups 
)

Return flattened vector of the geometry component's recursive instances. I.e. all collection instances and object instances will be expanded into the instances of their geometry components. Even the instances in those geometry components' will be included.

Note
For convenience (to avoid duplication in the caller), the returned vector also contains the argument geometry set.
This doesn't extract instances from the "dupli" system for non-geometry-nodes instances.

Definition at line 168 of file geometry_set_instances.cc.

References geometry_set_collect_recursive(), unit_m4(), and blender::float4x4::values.

Referenced by blender::nodes::compute_geometry_set_instances_boundbox(), blender::nodes::geo_node_boolean_exec(), blender::nodes::geo_node_point_distribute_exec(), geometry_set_realize_instances(), and geometry_set_realize_mesh_for_modifier().

◆ geometry_set_gather_instances_attribute_info()

void blender::bke::geometry_set_gather_instances_attribute_info ( Span< GeometryInstanceGroup set_groups,
Span< GeometryComponentType component_types,
const Set< std::string > &  ignored_attributes,
Map< std::string, AttributeKind > &  r_attributes 
)

Add information about all the attributes on every component of the type. The resulting info will contain the highest complexity data type and the highest priority domain among every attribute with the given name on all of the input components.

Definition at line 293 of file geometry_set_instances.cc.

References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), component(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), GeometrySet::get_component_for_read(), and GeometrySet::has().

Referenced by blender::nodes::geo_node_point_distribute_exec(), join_instance_groups_mesh(), and join_instance_groups_pointcloud().

◆ geometry_set_instances_attribute_foreach()

void blender::bke::geometry_set_instances_attribute_foreach ( const GeometrySet geometry_set,
const AttributeForeachCallback  callback,
const int  limit 
)

Call the callback on all of this geometry set's components, including geometry sets from instances and recursive instances. This is necessary to access available attributes without making all of the set's geometry real.

Parameters
limitThe total number of geometry sets to visit before returning early. This is used to avoid looking through too many geometry sets recursively, as an explicit tradeoff in favor of performance at the cost of visiting every unique attribute.

Definition at line 285 of file geometry_set_instances.cc.

References callback, count, and instances_attribute_foreach_recursive().

Referenced by log_ui_hints().

◆ geometry_set_realize_instances()

GeometrySet blender::bke::geometry_set_realize_instances ( const GeometrySet geometry_set)

Definition at line 577 of file geometry_set_instances.cc.

References geometry_set_gather_instances(), GeometrySet::has_instances(), join_instance_groups_mesh(), join_instance_groups_pointcloud(), and join_instance_groups_volume().

Referenced by blender::nodes::geo_node_align_rotation_to_vector_exec(), blender::nodes::geo_node_attribute_clamp_exec(), blender::nodes::geo_node_attribute_color_ramp_exec(), blender::nodes::geo_node_attribute_combine_xyz_exec(), blender::nodes::geo_node_attribute_compare_exec(), blender::nodes::geo_node_attribute_convert_exec(), blender::nodes::geo_node_attribute_fill_exec(), blender::nodes::geo_node_attribute_math_exec(), blender::nodes::geo_node_attribute_mix_exec(), blender::nodes::geo_node_attribute_proximity_exec(), blender::nodes::geo_node_attribute_remove_exec(), blender::nodes::geo_node_attribute_sample_texture_exec(), blender::nodes::geo_node_attribute_separate_xyz_exec(), blender::nodes::geo_node_attribute_vector_math_exec(), blender::nodes::geo_node_boolean_exec(), blender::nodes::geo_node_edge_split_exec(), blender::nodes::geo_node_point_instance_exec(), blender::nodes::geo_node_point_rotate_exec(), blender::nodes::geo_node_point_scale_exec(), blender::nodes::geo_node_point_separate_exec(), blender::nodes::geo_node_point_translate_exec(), blender::nodes::geo_node_points_to_volume_exec(), blender::nodes::geo_node_random_attribute_exec(), blender::nodes::geo_node_subdivide_exec(), blender::nodes::geo_node_subdivision_surface_exec(), and blender::nodes::geo_node_triangulate_exec().

◆ geometry_set_realize_mesh_for_modifier()

GeometrySet blender::bke::geometry_set_realize_mesh_for_modifier ( const GeometrySet geometry_set)

◆ get_crease()

static float blender::bke::get_crease ( const MEdge edge)
static

Definition at line 829 of file geometry_component_mesh.cc.

References MEdge::crease.

◆ get_loop_color()

static Color4f blender::bke::get_loop_color ( const MLoopCol col)
static

◆ get_loop_uv()

static float2 blender::bke::get_loop_uv ( const MLoopUV uv)
static

Definition at line 805 of file geometry_component_mesh.cc.

References MLoopUV::uv.

◆ get_material_index()

static int blender::bke::get_material_index ( const MPoly mpoly)
static

Definition at line 785 of file geometry_component_mesh.cc.

References MPoly::mat_nr.

Referenced by create_attribute_providers_for_mesh().

◆ get_shade_smooth()

static bool blender::bke::get_shade_smooth ( const MPoly mpoly)
static

Definition at line 795 of file geometry_component_mesh.cc.

References MPoly::flag, and ME_SMOOTH.

Referenced by create_attribute_providers_for_mesh().

◆ get_vertex_position()

static float3 blender::bke::get_vertex_position ( const MVert vert)
static

Definition at line 767 of file geometry_component_mesh.cc.

References MVert::co.

Referenced by create_attribute_providers_for_mesh().

◆ instances_attribute_foreach_recursive()

static bool blender::bke::instances_attribute_foreach_recursive ( const GeometrySet geometry_set,
const AttributeForeachCallback  callback,
const int  limit,
int &  count 
)
static

◆ join_attributes()

static void blender::bke::join_attributes ( Span< GeometryInstanceGroup set_groups,
Span< GeometryComponentType component_types,
const Map< std::string, AttributeKind > &  attribute_info,
GeometryComponent result 
)
static

◆ join_instance_groups_mesh()

static void blender::bke::join_instance_groups_mesh ( Span< GeometryInstanceGroup set_groups,
bool  convert_points_to_vertices,
GeometrySet result 
)
static

◆ join_instance_groups_pointcloud()

static void blender::bke::join_instance_groups_pointcloud ( Span< GeometryInstanceGroup set_groups,
GeometrySet result 
)
static

◆ join_instance_groups_volume()

static void blender::bke::join_instance_groups_volume ( Span< GeometryInstanceGroup set_groups,
GeometrySet result 
)
static

Definition at line 550 of file geometry_set_instances.cc.

References result, and UNUSED_VARS.

Referenced by geometry_set_realize_instances().

◆ join_mesh_topology_and_builtin_attributes()

static Mesh* blender::bke::join_mesh_topology_and_builtin_attributes ( Span< GeometryInstanceGroup set_groups,
const bool  convert_points_to_vertices 
)
static

◆ make_array_read_attribute()

template<typename T , AttributeDomain Domain>
static ReadAttributePtr blender::bke::make_array_read_attribute ( const void *  data,
const int  domain_size 
)
static

Definition at line 144 of file geometry_component_pointcloud.cc.

References data, and T.

◆ make_array_write_attribute()

template<typename T , AttributeDomain Domain>
static WriteAttributePtr blender::bke::make_array_write_attribute ( void *  data,
const int  domain_size 
)
static

Definition at line 150 of file geometry_component_pointcloud.cc.

References data, and T.

◆ make_derived_read_attribute()

template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, AttributeDomain Domain>
static ReadAttributePtr blender::bke::make_derived_read_attribute ( const void *  data,
const int  domain_size 
)
static

Definition at line 750 of file geometry_component_mesh.cc.

References data.

◆ make_derived_write_attribute()

template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, void(*)(StructT &, const ElemT &) SetFunc, AttributeDomain Domain>
static WriteAttributePtr blender::bke::make_derived_write_attribute ( void *  data,
const int  domain_size 
)
static

Definition at line 761 of file geometry_component_mesh.cc.

References data.

Referenced by create_attribute_providers_for_mesh().

◆ object_get_geometry_set_for_read()

static GeometrySet blender::bke::object_get_geometry_set_for_read ( const Object object)
static
Note
This doesn't extract instances from the "dupli" system for non-geometry-nodes instances.

Definition at line 56 of file geometry_set_instances.cc.

References add_final_mesh_as_geometry_component(), OB_MESH, OB_MODE_EDIT, and type.

Referenced by geometry_set_collect_recursive_object(), and object_instance_attribute_foreach().

◆ object_instance_attribute_foreach()

static bool blender::bke::object_instance_attribute_foreach ( const Object object,
const AttributeForeachCallback  callback,
const int  limit,
int &  count 
)
static

◆ set_crease()

static void blender::bke::set_crease ( MEdge edge,
const float value 
)
static

Definition at line 834 of file geometry_component_mesh.cc.

References MEdge::crease, and round_fl_to_uchar_clamp().

◆ set_loop_color()

static void blender::bke::set_loop_color ( MLoopCol col,
const Color4f linear_color 
)
static

Definition at line 824 of file geometry_component_mesh.cc.

References col, and linearrgb_to_srgb_uchar4().

Referenced by create_attribute_providers_for_mesh().

◆ set_loop_uv()

static void blender::bke::set_loop_uv ( MLoopUV uv,
const float2 co 
)
static

Definition at line 810 of file geometry_component_mesh.cc.

References copy_v2_v2(), and MLoopUV::uv.

◆ set_material_index()

static void blender::bke::set_material_index ( MPoly mpoly,
const int &  index 
)
static

Definition at line 790 of file geometry_component_mesh.cc.

References clamp(), and MPoly::mat_nr.

Referenced by create_attribute_providers_for_mesh().

◆ set_shade_smooth()

static void blender::bke::set_shade_smooth ( MPoly mpoly,
const bool &  value 
)
static

◆ set_vertex_position()

static void blender::bke::set_vertex_position ( MVert vert,
const float3 position 
)
static

Definition at line 772 of file geometry_component_mesh.cc.

References MVert::co, and copy_v3_v3().

Referenced by create_attribute_providers_for_mesh().

◆ tag_normals_dirty_when_writing_position()

static void blender::bke::tag_normals_dirty_when_writing_position ( GeometryComponent component)
static