[Bf-blender-cvs] [586a9c14ad4] functions-experimental-refactor: pass context into multi functions

Jacques Lucke noreply at git.blender.org
Wed Oct 16 13:17:54 CEST 2019


Commit: 586a9c14ad4ea1b2d841c83d96ac0431e80a446f
Author: Jacques Lucke
Date:   Wed Oct 16 13:05:57 2019 +0200
Branches: functions-experimental-refactor
https://developer.blender.org/rB586a9c14ad4ea1b2d841c83d96ac0431e80a446f

pass context into multi functions

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

M	source/blender/blenkernel/BKE_multi_function.h
M	source/blender/blenkernel/BKE_multi_functions.h
M	source/blender/blenkernel/intern/multi_functions.cc
M	source/blender/modifiers/intern/MOD_functiondeform_cxx.cc

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

diff --git a/source/blender/blenkernel/BKE_multi_function.h b/source/blender/blenkernel/BKE_multi_function.h
index e12fa55bc2d..1cb3ae9a10f 100644
--- a/source/blender/blenkernel/BKE_multi_function.h
+++ b/source/blender/blenkernel/BKE_multi_function.h
@@ -86,6 +86,9 @@ struct DataType {
 
 class MultiFunction {
  public:
+  class Context {
+  };
+
   class Signature {
    private:
     Vector<std::string> m_param_names;
@@ -437,7 +440,7 @@ class MultiFunction {
     }
   };
 
-  virtual void call(ArrayRef<uint> mask_indices, Params &params) const = 0;
+  virtual void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const = 0;
 
   void set_signature(SignatureBuilder &signature_builder)
   {
diff --git a/source/blender/blenkernel/BKE_multi_functions.h b/source/blender/blenkernel/BKE_multi_functions.h
index e0655fd5231..102143e1d38 100644
--- a/source/blender/blenkernel/BKE_multi_functions.h
+++ b/source/blender/blenkernel/BKE_multi_functions.h
@@ -8,43 +8,43 @@ namespace BKE {
 class MultiFunction_AddFloats final : public MultiFunction {
  public:
   MultiFunction_AddFloats();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_AddFloat3s final : public MultiFunction {
  public:
   MultiFunction_AddFloat3s();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_CombineVector final : public MultiFunction {
  public:
   MultiFunction_CombineVector();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_SeparateVector final : public MultiFunction {
  public:
   MultiFunction_SeparateVector();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_VectorDistance final : public MultiFunction {
  public:
   MultiFunction_VectorDistance();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_FloatArraySum final : public MultiFunction {
  public:
   MultiFunction_FloatArraySum();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_FloatRange final : public MultiFunction {
  public:
   MultiFunction_FloatRange();
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_AppendToList final : public MultiFunction {
@@ -53,7 +53,7 @@ class MultiFunction_AppendToList final : public MultiFunction {
 
  public:
   MultiFunction_AppendToList(CPPType &base_type);
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_GetListElement final : public MultiFunction {
@@ -62,7 +62,7 @@ class MultiFunction_GetListElement final : public MultiFunction {
 
  public:
   MultiFunction_GetListElement(CPPType &base_type);
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_ListLength final : public MultiFunction {
@@ -71,7 +71,7 @@ class MultiFunction_ListLength final : public MultiFunction {
 
  public:
   MultiFunction_ListLength(CPPType &base_type);
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 class MultiFunction_CombineLists final : public MultiFunction {
@@ -80,7 +80,7 @@ class MultiFunction_CombineLists final : public MultiFunction {
 
  public:
   MultiFunction_CombineLists(CPPType &base_type);
-  void call(ArrayRef<uint> mask_indices, Params &params) const override;
+  void call(ArrayRef<uint> mask_indices, Params &params, Context &context) const override;
 };
 
 };  // namespace BKE
diff --git a/source/blender/blenkernel/intern/multi_functions.cc b/source/blender/blenkernel/intern/multi_functions.cc
index 0241c3c2422..83e32c07dce 100644
--- a/source/blender/blenkernel/intern/multi_functions.cc
+++ b/source/blender/blenkernel/intern/multi_functions.cc
@@ -21,7 +21,9 @@ MultiFunction_AddFloats::MultiFunction_AddFloats()
   this->set_signature(signature);
 }
 
-void MultiFunction_AddFloats::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_AddFloats::call(ArrayRef<uint> mask_indices,
+                                   Params &params,
+                                   Context &UNUSED(context)) const
 {
   auto a = params.readonly_single_input<float>(0, "A");
   auto b = params.readonly_single_input<float>(1, "B");
@@ -41,7 +43,9 @@ MultiFunction_AddFloat3s::MultiFunction_AddFloat3s()
   this->set_signature(signature);
 }
 
-void MultiFunction_AddFloat3s::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_AddFloat3s::call(ArrayRef<uint> mask_indices,
+                                    Params &params,
+                                    Context &UNUSED(context)) const
 {
   auto a = params.readonly_single_input<float3>(0, "A");
   auto b = params.readonly_single_input<float3>(1, "B");
@@ -62,7 +66,9 @@ MultiFunction_CombineVector::MultiFunction_CombineVector()
   this->set_signature(signature);
 }
 
-void MultiFunction_CombineVector::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_CombineVector::call(ArrayRef<uint> mask_indices,
+                                       Params &params,
+                                       Context &UNUSED(context)) const
 {
   auto x = params.readonly_single_input<float>(0, "X");
   auto y = params.readonly_single_input<float>(1, "Y");
@@ -84,7 +90,9 @@ MultiFunction_SeparateVector::MultiFunction_SeparateVector()
   this->set_signature(signature);
 }
 
-void MultiFunction_SeparateVector::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_SeparateVector::call(ArrayRef<uint> mask_indices,
+                                        Params &params,
+                                        Context &UNUSED(context)) const
 {
   auto vector = params.readonly_single_input<float3>(0, "Vector");
   auto x = params.single_output<float>(1, "X");
@@ -108,7 +116,9 @@ MultiFunction_VectorDistance::MultiFunction_VectorDistance()
   this->set_signature(signature);
 }
 
-void MultiFunction_VectorDistance::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_VectorDistance::call(ArrayRef<uint> mask_indices,
+                                        Params &params,
+                                        Context &UNUSED(context)) const
 {
   auto a = params.readonly_single_input<float3>(0, "A");
   auto b = params.readonly_single_input<float3>(1, "B");
@@ -127,7 +137,9 @@ MultiFunction_FloatArraySum::MultiFunction_FloatArraySum()
   this->set_signature(signature);
 }
 
-void MultiFunction_FloatArraySum::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_FloatArraySum::call(ArrayRef<uint> mask_indices,
+                                       Params &params,
+                                       Context &UNUSED(context)) const
 {
   auto arrays = params.readonly_vector_input<float>(0, "Array");
   MutableArrayRef<float> sums = params.single_output<float>(1, "Sum");
@@ -151,7 +163,9 @@ MultiFunction_FloatRange::MultiFunction_FloatRange()
   this->set_signature(signature);
 }
 
-void MultiFunction_FloatRange::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_FloatRange::call(ArrayRef<uint> mask_indices,
+                                    Params &params,
+                                    Context &UNUSED(context)) const
 {
   auto starts = params.readonly_single_input<float>(0, "Start");
   auto steps = params.readonly_single_input<float>(1, "Step");
@@ -174,7 +188,9 @@ MultiFunction_AppendToList::MultiFunction_AppendToList(CPPType &base_type) : m_b
   this->set_signature(signature);
 }
 
-void MultiFunction_AppendToList::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_AppendToList::call(ArrayRef<uint> mask_indices,
+                                      Params &params,
+                                      Context &UNUSED(context)) const
 {
   GenericVectorArray &lists = params.mutable_vector(0, "List");
   GenericArrayOrSingleRef values = params.readonly_single_input(1, "Value");
@@ -195,7 +211,9 @@ MultiFunction_GetListElement::MultiFunction_GetListElement(CPPType &base_type)
   this->set_signature(signature);
 }
 
-void MultiFunction_GetListElement::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_GetListElement::call(ArrayRef<uint> mask_indices,
+                                        Params &params,
+                                        Context &UNUSED(context)) const
 {
   GenericVectorArrayOrSingleRef lists = params.readonly_vector_input(0, "List");
   ArrayOrSingleRef<int> indices = params.readonly_single_input<int>(1, "Index");
@@ -224,7 +242,9 @@ MultiFunction_ListLength::MultiFunction_ListLength(CPPType &base_type) : m_base_
   this->set_signature(signature);
 }
 
-void MultiFunction_ListLength::call(ArrayRef<uint> mask_indices, Params &params) const
+void MultiFunction_ListLength::call(ArrayRef<uint> mask_indices,
+                                    Params &params,
+                                    Context &UNUSED(context)) const
 {
   GenericVectorArrayOrSingleRef lists = params.readonly_vector_input(0, "List");
   MutableArrayRef<int> lengths = params.single_output<int>(1, "Length");
@@ -242,7 +262,9 @@ MultiFunction_CombineLis

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list