[Bf-blender-cvs] [4d74116218f] functions: initial MultiFunctionID
Jacques Lucke
noreply at git.blender.org
Mon Feb 17 10:45:32 CET 2020
Commit: 4d74116218fc0c23920d2828f79e1d92803a40f1
Author: Jacques Lucke
Date: Sat Feb 15 17:55:18 2020 +0100
Branches: functions
https://developer.blender.org/rB4d74116218fc0c23920d2828f79e1d92803a40f1
initial MultiFunctionID
===================================================================
M source/blender/functions/CMakeLists.txt
M source/blender/functions/FN_multi_function.h
A source/blender/functions/intern/multi_function.cc
===================================================================
diff --git a/source/blender/functions/CMakeLists.txt b/source/blender/functions/CMakeLists.txt
index fc9f97a6fcf..4e73a5c0238 100644
--- a/source/blender/functions/CMakeLists.txt
+++ b/source/blender/functions/CMakeLists.txt
@@ -47,6 +47,7 @@ set(SRC
intern/multi_function_context.cc
intern/multi_function_network_optimization.cc
intern/multi_function_network.cc
+ intern/multi_function.cc
intern/node_tree.cc
FN_attributes_ref.h
diff --git a/source/blender/functions/FN_multi_function.h b/source/blender/functions/FN_multi_function.h
index 893d7a10354..a96cb66bf97 100644
--- a/source/blender/functions/FN_multi_function.h
+++ b/source/blender/functions/FN_multi_function.h
@@ -2,6 +2,7 @@
#define __FN_MULTI_FUNCTION_H__
#include <typeinfo>
+#include <memory>
#include "FN_generic_array_ref.h"
#include "FN_generic_vector_array.h"
@@ -17,6 +18,39 @@ namespace FN {
class MultiFunction;
+class MultiFunctionID {
+ private:
+ uint32_t m_hash;
+
+ public:
+ MultiFunctionID(uint32_t hash) : m_hash(hash)
+ {
+ }
+
+ virtual ~MultiFunctionID();
+
+ uint32_t hash() const
+ {
+ return m_hash;
+ }
+
+ friend bool operator==(const MultiFunctionID &a, const MultiFunctionID &b)
+ {
+ if (a.hash() != b.hash()) {
+ return false;
+ }
+ return a.is_same(b);
+ }
+
+ friend bool operator!=(const MultiFunctionID &a, const MultiFunctionID &b)
+ {
+ return !(a == b);
+ }
+
+ protected:
+ virtual bool is_same(const MultiFunctionID &other) const = 0;
+};
+
struct MFSignatureData {
std::string function_name;
Vector<std::string> param_names;
diff --git a/source/blender/functions/intern/multi_function.cc b/source/blender/functions/intern/multi_function.cc
new file mode 100644
index 00000000000..f74983ad132
--- /dev/null
+++ b/source/blender/functions/intern/multi_function.cc
@@ -0,0 +1,9 @@
+#include "FN_multi_function.h"
+
+namespace FN {
+
+MultiFunctionID::~MultiFunctionID()
+{
+}
+
+} // namespace FN
More information about the Bf-blender-cvs
mailing list