diff options
author | Jacques Lucke <jacques@blender.org> | 2021-03-17 13:15:39 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-03-17 13:15:39 +0300 |
commit | e00a47ffd611b0ab06dba2a4933ab15871d576e6 (patch) | |
tree | d7f17f17ddae14e943b1f10cc1a0c3e9aab847ae /source/blender/blenkernel/BKE_node_ui_storage.hh | |
parent | e91dd645a94d63c62c8a63d0da0ba145f48da289 (diff) |
Geometry Nodes: store domain and data type in attribute hints
The information is not exposed in the attribute search yet.
Diffstat (limited to 'source/blender/blenkernel/BKE_node_ui_storage.hh')
-rw-r--r-- | source/blender/blenkernel/BKE_node_ui_storage.hh | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_node_ui_storage.hh b/source/blender/blenkernel/BKE_node_ui_storage.hh index a49ff988272..be9510179c3 100644 --- a/source/blender/blenkernel/BKE_node_ui_storage.hh +++ b/source/blender/blenkernel/BKE_node_ui_storage.hh @@ -20,13 +20,17 @@ #include "BLI_hash.hh" #include "BLI_map.hh" +#include "BLI_multi_value_map.hh" #include "BLI_session_uuid.h" #include "BLI_set.hh" #include "DNA_ID.h" +#include "DNA_customdata_types.h" #include "DNA_modifier_types.h" #include "DNA_session_uuid_types.h" +#include "BKE_attribute.h" + struct ModifierData; struct Object; struct bNode; @@ -77,9 +81,26 @@ struct NodeWarning { std::string message; }; +struct AvailableAttributeInfo { + AttributeDomain domain; + CustomDataType data_type; + + uint64_t hash() const + { + uint64_t domain_hash = (uint64_t)domain; + uint64_t data_type_hash = (uint64_t)data_type; + return (domain_hash * 33) ^ (data_type_hash * 89); + } + + friend bool operator==(const AvailableAttributeInfo &a, const AvailableAttributeInfo &b) + { + return a.domain == b.domain && a.data_type == b.data_type; + } +}; + struct NodeUIStorage { blender::Vector<NodeWarning> warnings; - blender::Set<std::string> attribute_name_hints; + blender::MultiValueMap<std::string, AvailableAttributeInfo> attribute_hints; }; struct NodeTreeUIStorage { @@ -103,4 +124,6 @@ void BKE_nodetree_error_message_add(bNodeTree &ntree, void BKE_nodetree_attribute_hint_add(bNodeTree &ntree, const NodeTreeEvaluationContext &context, const bNode &node, - const blender::StringRef attribute_name); + const blender::StringRef attribute_name, + const AttributeDomain domain, + const CustomDataType data_type); |