[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 ¶ms) const = 0;
+ virtual void call(ArrayRef<uint> mask_indices, Params ¶ms, 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 ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, Context &context) const override;
};
class MultiFunction_AddFloat3s final : public MultiFunction {
public:
MultiFunction_AddFloat3s();
- void call(ArrayRef<uint> mask_indices, Params ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, Context &context) const override;
};
class MultiFunction_CombineVector final : public MultiFunction {
public:
MultiFunction_CombineVector();
- void call(ArrayRef<uint> mask_indices, Params ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, Context &context) const override;
};
class MultiFunction_SeparateVector final : public MultiFunction {
public:
MultiFunction_SeparateVector();
- void call(ArrayRef<uint> mask_indices, Params ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, Context &context) const override;
};
class MultiFunction_VectorDistance final : public MultiFunction {
public:
MultiFunction_VectorDistance();
- void call(ArrayRef<uint> mask_indices, Params ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, Context &context) const override;
};
class MultiFunction_FloatArraySum final : public MultiFunction {
public:
MultiFunction_FloatArraySum();
- void call(ArrayRef<uint> mask_indices, Params ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, Context &context) const override;
};
class MultiFunction_FloatRange final : public MultiFunction {
public:
MultiFunction_FloatRange();
- void call(ArrayRef<uint> mask_indices, Params ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, 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 ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, 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 ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, 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 ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, 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 ¶ms) const override;
+ void call(ArrayRef<uint> mask_indices, Params ¶ms, 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 ¶ms) const
+void MultiFunction_AddFloats::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_AddFloat3s::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_CombineVector::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_SeparateVector::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_VectorDistance::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_FloatArraySum::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_FloatRange::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_AppendToList::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_GetListElement::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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 ¶ms) const
+void MultiFunction_ListLength::call(ArrayRef<uint> mask_indices,
+ Params ¶ms,
+ 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