Blender V4.3
blender::nodes::node_geo_split_to_instances_cc Namespace Reference

Classes

struct  SplitGroups
 

Functions

static void node_declare (NodeDeclarationBuilder &b)
 
static void node_layout (uiLayout *layout, bContext *, PointerRNA *ptr)
 
static void ensure_group_geometries (Map< int, std::unique_ptr< GeometrySet > > &geometry_by_group_id, const Span< int > group_ids)
 
static bool do_common_split (const GeometryComponent &src_component, const AttrDomain domain, const Field< bool > &selection_field, const Field< int > &group_id_field, Map< int, std::unique_ptr< GeometrySet > > &geometry_by_group_id, SplitGroups &r_groups)
 
static void split_mesh_groups (const MeshComponent &component, const AttrDomain domain, const Field< bool > &selection_field, const Field< int > &group_id_field, const AttributeFilter &attribute_filter, Map< int, std::unique_ptr< GeometrySet > > &geometry_by_group_id)
 
static void split_pointcloud_groups (const PointCloudComponent &component, const Field< bool > &selection_field, const Field< int > &group_id_field, const AttributeFilter &attribute_filter, Map< int, std::unique_ptr< GeometrySet > > &geometry_by_group_id)
 
static void split_curve_groups (const bke::CurveComponent &component, const AttrDomain domain, const Field< bool > &selection_field, const Field< int > &group_id_field, const AttributeFilter &attribute_filter, Map< int, std::unique_ptr< GeometrySet > > &geometry_by_group_id)
 
static void split_instance_groups (const InstancesComponent &component, const Field< bool > &selection_field, const Field< int > &group_id_field, const AttributeFilter &attribute_filter, Map< int, std::unique_ptr< GeometrySet > > &geometry_by_group_id)
 
static void node_geo_exec (GeoNodeExecParams params)
 
static void node_rna (StructRNA *srna)
 
static void node_register ()
 

Function Documentation

◆ do_common_split()

◆ ensure_group_geometries()

static void blender::nodes::node_geo_split_to_instances_cc::ensure_group_geometries ( Map< int, std::unique_ptr< GeometrySet > > & geometry_by_group_id,
const Span< int > group_ids )
static

Definition at line 49 of file node_geo_split_to_instances.cc.

Referenced by do_common_split().

◆ node_declare()

◆ node_geo_exec()

static void blender::nodes::node_geo_split_to_instances_cc::node_geo_exec ( GeoNodeExecParams params)
static

Definition at line 267 of file node_geo_split_to_instances.cc.

References blender::bke::Instances::add_reference(), blender::bke::Instances::attributes_for_write(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::BaseIteratorRange< SubIterator >::begin(), ELEM, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::BaseIteratorRange< SubIterator >::end(), blender::bke::SpanAttributeWriter< T >::finish(), blender::bke::GeometrySet::get_component(), blender::bke::GeometrySet::has_curves(), blender::bke::GeometrySet::has_instances(), blender::bke::GeometrySet::has_mesh(), blender::bke::GeometrySet::has_pointcloud(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::keys(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::GeometrySet::name, node_geo_exec(), params, blender::bke::Instances::reference_handles_for_write(), blender::bke::Instances::resize(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::bke::SpanAttributeWriter< T >::span, split_curve_groups(), split_instance_groups(), split_mesh_groups(), split_pointcloud_groups(), and blender::bke::Instances::transforms_for_write().

Referenced by node_geo_exec(), and node_register().

◆ node_layout()

static void blender::nodes::node_geo_split_to_instances_cc::node_layout ( uiLayout * layout,
bContext * ,
PointerRNA * ptr )
static

◆ node_register()

◆ node_rna()

static void blender::nodes::node_geo_split_to_instances_cc::node_rna ( StructRNA * srna)
static

◆ split_curve_groups()

static void blender::nodes::node_geo_split_to_instances_cc::split_curve_groups ( const bke::CurveComponent & component,
const AttrDomain domain,
const Field< bool > & selection_field,
const Field< int > & group_id_field,
const AttributeFilter & attribute_filter,
Map< int, std::unique_ptr< GeometrySet > > & geometry_by_group_id )
static

◆ split_instance_groups()

static void blender::nodes::node_geo_split_to_instances_cc::split_instance_groups ( const InstancesComponent & component,
const Field< bool > & selection_field,
const Field< int > & group_id_field,
const AttributeFilter & attribute_filter,
Map< int, std::unique_ptr< GeometrySet > > & geometry_by_group_id )
static

◆ split_mesh_groups()

static void blender::nodes::node_geo_split_to_instances_cc::split_mesh_groups ( const MeshComponent & component,
const AttrDomain domain,
const Field< bool > & selection_field,
const Field< int > & group_id_field,
const AttributeFilter & attribute_filter,
Map< int, std::unique_ptr< GeometrySet > > & geometry_by_group_id )
static

◆ split_pointcloud_groups()

static void blender::nodes::node_geo_split_to_instances_cc::split_pointcloud_groups ( const PointCloudComponent & component,
const Field< bool > & selection_field,
const Field< int > & group_id_field,
const AttributeFilter & attribute_filter,
Map< int, std::unique_ptr< GeometrySet > > & geometry_by_group_id )
static