Differential D12915 Diff 46914 source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_distribute.cc
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/legacy/node_geo_legacy_point_distribute.cc
| Show First 20 Lines • Show All 315 Lines • ▼ Show 20 Lines | for (const GeometryInstanceGroup &set_group : set_groups) { | ||||
| const AttributeDomain source_domain = attribute_info->domain; | const AttributeDomain source_domain = attribute_info->domain; | ||||
| GVArray source_attribute = source_component.attribute_get_for_read( | GVArray source_attribute = source_component.attribute_get_for_read( | ||||
| attribute_id, source_domain, output_data_type, nullptr); | attribute_id, source_domain, output_data_type, nullptr); | ||||
| if (!source_attribute) { | if (!source_attribute) { | ||||
| i_instance += set_group.transforms.size(); | i_instance += set_group.transforms.size(); | ||||
| continue; | continue; | ||||
| } | } | ||||
| for (const int UNUSED(i_set_instance) : set_group.transforms.index_range()) { | for ([[maybe_unused]] const int i_set_instance : set_group.transforms.index_range()) { | ||||
| const int offset = instance_start_offsets[i_instance]; | const int offset = instance_start_offsets[i_instance]; | ||||
| Span<float3> bary_coords = bary_coords_array[i_instance]; | Span<float3> bary_coords = bary_coords_array[i_instance]; | ||||
| Span<int> looptri_indices = looptri_indices_array[i_instance]; | Span<int> looptri_indices = looptri_indices_array[i_instance]; | ||||
| GMutableSpan instance_span = out_span.slice(offset, bary_coords.size()); | GMutableSpan instance_span = out_span.slice(offset, bary_coords.size()); | ||||
| interpolate_attribute( | interpolate_attribute( | ||||
| mesh, bary_coords, looptri_indices, source_domain, source_attribute, instance_span); | mesh, bary_coords, looptri_indices, source_domain, source_attribute, instance_span); | ||||
| ▲ Show 20 Lines • Show All 178 Lines • ▼ Show 20 Lines | static void distribute_points_poisson_disk(Span<GeometryInstanceGroup> set_groups, | ||||
| i_instance = 0; | i_instance = 0; | ||||
| for (const GeometryInstanceGroup &set_group : set_groups) { | for (const GeometryInstanceGroup &set_group : set_groups) { | ||||
| const GeometrySet &set = set_group.geometry_set; | const GeometrySet &set = set_group.geometry_set; | ||||
| const MeshComponent &component = *set.get_component_for_read<MeshComponent>(); | const MeshComponent &component = *set.get_component_for_read<MeshComponent>(); | ||||
| const Mesh &mesh = *component.get_for_read(); | const Mesh &mesh = *component.get_for_read(); | ||||
| const VArray<float> density_factors = component.attribute_get_for_read<float>( | const VArray<float> density_factors = component.attribute_get_for_read<float>( | ||||
| density_attribute_name, ATTR_DOMAIN_CORNER, use_one_default ? 1.0f : 0.0f); | density_attribute_name, ATTR_DOMAIN_CORNER, use_one_default ? 1.0f : 0.0f); | ||||
| for (const int UNUSED(i_set_instance) : set_group.transforms.index_range()) { | for ([[maybe_unused]] const int i_set_instance : set_group.transforms.index_range()) { | ||||
| Vector<float3> &positions = positions_all[i_instance]; | Vector<float3> &positions = positions_all[i_instance]; | ||||
| Vector<float3> &bary_coords = bary_coords_all[i_instance]; | Vector<float3> &bary_coords = bary_coords_all[i_instance]; | ||||
| Vector<int> &looptri_indices = looptri_indices_all[i_instance]; | Vector<int> &looptri_indices = looptri_indices_all[i_instance]; | ||||
| const int offset = instance_start_offsets[i_instance]; | const int offset = instance_start_offsets[i_instance]; | ||||
| update_elimination_mask_based_on_density_factors( | update_elimination_mask_based_on_density_factors( | ||||
| mesh, | mesh, | ||||
| density_factors, | density_factors, | ||||
| ▲ Show 20 Lines • Show All 144 Lines • Show Last 20 Lines | |||||