Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/node_geo_string_to_curves.cc
| Show First 20 Lines • Show All 236 Lines • ▼ Show 20 Lines | |||||
| static void add_instances_from_handles(InstancesComponent &instances, | static void add_instances_from_handles(InstancesComponent &instances, | ||||
| const Map<int, int> &char_handles, | const Map<int, int> &char_handles, | ||||
| const Span<char32_t> charcodes, | const Span<char32_t> charcodes, | ||||
| const Span<float2> positions) | const Span<float2> positions) | ||||
| { | { | ||||
| instances.resize(positions.size()); | instances.resize(positions.size()); | ||||
| MutableSpan<int> handles = instances.instance_reference_handles(); | MutableSpan<int> handles = instances.instance_reference_handles(); | ||||
| MutableSpan<float4x4> transforms = instances.instance_transforms(); | MutableSpan<float4x4> transforms = instances.instance_transforms(); | ||||
| MutableSpan<int> instance_ids = instances.instance_ids(); | |||||
| threading::parallel_for(IndexRange(positions.size()), 256, [&](IndexRange range) { | threading::parallel_for(IndexRange(positions.size()), 256, [&](IndexRange range) { | ||||
| for (const int i : range) { | for (const int i : range) { | ||||
| handles[i] = char_handles.lookup(charcodes[i]); | handles[i] = char_handles.lookup(charcodes[i]); | ||||
| transforms[i] = float4x4::from_location({positions[i].x, positions[i].y, 0}); | transforms[i] = float4x4::from_location({positions[i].x, positions[i].y, 0}); | ||||
| instance_ids[i] = i; | |||||
| } | } | ||||
| }); | }); | ||||
| } | } | ||||
| static void geo_node_string_to_curves_exec(GeoNodeExecParams params) | static void geo_node_string_to_curves_exec(GeoNodeExecParams params) | ||||
| { | { | ||||
| TextLayout layout = get_text_layout(params); | TextLayout layout = get_text_layout(params); | ||||
| ▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines | |||||