[Bf-blender-cvs] [029e63093d5] functions-experimental-refactor: fix

Jacques Lucke noreply at git.blender.org
Tue Oct 15 15:57:01 CEST 2019


Commit: 029e63093d546404c421101041868bc35af2b632
Author: Jacques Lucke
Date:   Thu Oct 10 21:46:12 2019 +0200
Branches: functions-experimental-refactor
https://developer.blender.org/rB029e63093d546404c421101041868bc35af2b632

fix

===================================================================

M	source/blender/blenkernel/BKE_generic_vector_array.h
M	source/blender/blenkernel/intern/node_functions.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_generic_vector_array.h b/source/blender/blenkernel/BKE_generic_vector_array.h
index 1b8d754711a..e5bc9e412a3 100644
--- a/source/blender/blenkernel/BKE_generic_vector_array.h
+++ b/source/blender/blenkernel/BKE_generic_vector_array.h
@@ -163,11 +163,26 @@ class GenericVectorArrayOrSingleRef {
   CPPType *m_type;
 
  public:
-  GenericArrayRef operator[](uint index)
+  GenericArrayRef operator[](uint index) const
   {
     /* TODO */
     return GenericArrayRef(*m_type);
   }
+
+  template<typename T> class TypedRef {
+   private:
+    const GenericVectorArrayOrSingleRef *m_data;
+
+   public:
+    TypedRef(const GenericVectorArrayOrSingleRef &data) : m_data(&data)
+    {
+    }
+
+    ArrayRef<T> operator[](uint index)
+    {
+      return (*m_data)[index].get_ref<T>();
+    }
+  };
 };
 
 };  // namespace BKE
diff --git a/source/blender/blenkernel/intern/node_functions.cc b/source/blender/blenkernel/intern/node_functions.cc
index db45da833fc..872e83c34d9 100644
--- a/source/blender/blenkernel/intern/node_functions.cc
+++ b/source/blender/blenkernel/intern/node_functions.cc
@@ -44,7 +44,8 @@ class MultiFunction {
     GenericMutableArrayRef single_output(uint index, StringRef name);
 
     template<typename T>
-    const GenericVectorArray::TypedRef<T> readonly_vector_input(uint index, StringRef name);
+    const GenericVectorArrayOrSingleRef::TypedRef<T> readonly_vector_input(uint index,
+                                                                           StringRef name);
     GenericVectorArrayOrSingleRef readonly_vector_input(uint index, StringRef name);
 
     template<typename T>



More information about the Bf-blender-cvs mailing list