Differential D14618 Diff 50439 source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc
| Show First 20 Lines • Show All 121 Lines • ▼ Show 20 Lines | static void try_capture_field_on_geometry(GeometryComponent &component, | ||||
| } | } | ||||
| } | } | ||||
| static void node_geo_exec(GeoNodeExecParams params) | static void node_geo_exec(GeoNodeExecParams params) | ||||
| { | { | ||||
| GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry"); | GeometrySet geometry_set = params.extract_input<GeometrySet>("Geometry"); | ||||
| std::string name = params.extract_input<std::string>("Name"); | std::string name = params.extract_input<std::string>("Name"); | ||||
| if (!U.experimental.use_named_attribute_nodes) { | if (!U.experimental.use_named_attribute_nodes || name.empty()) { | ||||
| params.set_output("Geometry", std::move(geometry_set)); | params.set_output("Geometry", std::move(geometry_set)); | ||||
| return; | return; | ||||
| } | } | ||||
| params.used_named_attribute(name, NamedAttributeUsage::Write); | |||||
| const NodeGeometryStoreNamedAttribute &storage = node_storage(params.node()); | const NodeGeometryStoreNamedAttribute &storage = node_storage(params.node()); | ||||
| const CustomDataType data_type = static_cast<CustomDataType>(storage.data_type); | const CustomDataType data_type = static_cast<CustomDataType>(storage.data_type); | ||||
| const AttributeDomain domain = static_cast<AttributeDomain>(storage.domain); | const AttributeDomain domain = static_cast<AttributeDomain>(storage.domain); | ||||
| GField field; | GField field; | ||||
| switch (data_type) { | switch (data_type) { | ||||
| case CD_PROP_FLOAT: | case CD_PROP_FLOAT: | ||||
| field = params.get_input<Field<float>>("Value_Float"); | field = params.get_input<Field<float>>("Value_Float"); | ||||
| ▲ Show 20 Lines • Show All 62 Lines • Show Last 20 Lines | |||||