Commit: f0dc4d67e56dbdd13feb6ae09d584974b8b567ad Author: Jacques Lucke Date: Wed Dec 14 16:43:38 2022 +0100 Branches: master https://developer.blender.org/rBf0dc4d67e56dbdd13feb6ae09d584974b8b567ad
Geometry Nodes: support storing 2d vector attributes This allows choosing the 2d vector type in the Store Named Attribute node. Similar to byte-colors, there is not a special socket type for this (currently). In geometry nodes itself, vectors are all still 3d. =================================================================== M source/blender/makesrna/intern/rna_nodetree.c M source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc =================================================================== diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 6d827cf757a..4a977f09884 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -2175,6 +2175,7 @@ static bool generic_attribute_type_supported(const EnumPropertyItem *item) { return ELEM(item->value, CD_PROP_FLOAT, + CD_PROP_FLOAT2, CD_PROP_FLOAT3, CD_PROP_COLOR, CD_PROP_BOOL, @@ -2192,7 +2193,8 @@ static const EnumPropertyItem *rna_GeometryNodeAttributeType_type_itemf(bContext static bool generic_attribute_type_supported_with_socket(const EnumPropertyItem *item) { - return generic_attribute_type_supported(item) && !ELEM(item->value, CD_PROP_BYTE_COLOR); + return generic_attribute_type_supported(item) && + !ELEM(item->value, CD_PROP_BYTE_COLOR, CD_PROP_FLOAT2); } static const EnumPropertyItem *rna_GeometryNodeAttributeType_type_with_socket_itemf( bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) diff --git a/source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc b/source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc index 50f066a647c..4970a926445 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_store_named_attribute.cc @@ -59,7 +59,7 @@ static void node_update(bNodeTree *ntree, bNode *node) bNodeSocket *socket_boolean = socket_color4f->next; bNodeSocket *socket_int32 = socket_boolean->next; - nodeSetSocketAvailability(ntree, socket_vector, data_type == CD_PROP_FLOAT3); + nodeSetSocketAvailability(ntree, socket_vector, ELEM(data_type, CD_PROP_FLOAT2, CD_PROP_FLOAT3)); nodeSetSocketAvailability(ntree, socket_float, data_type == CD_PROP_FLOAT); nodeSetSocketAvailability( ntree, socket_color4f, ELEM(data_type, CD_PROP_COLOR, CD_PROP_BYTE_COLOR)); @@ -113,6 +113,11 @@ static void node_geo_exec(GeoNodeExecParams params) case CD_PROP_FLOAT: field = params.get_input<Field<float>>("Value_Float"); break; + case CD_PROP_FLOAT2: { + field = params.get_input<Field<float3>>("Value_Vector"); + field = bke::get_implicit_type_conversions().try_convert(field, CPPType::get<float2>()); + break; + } case CD_PROP_FLOAT3: field = params.get_input<Field<float3>>("Value_Vector"); break; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs