[Bf-blender-cvs] [d218811e856] functions-experimental-refactor: access function and parameter names
Jacques Lucke
noreply at git.blender.org
Thu Oct 31 14:13:04 CET 2019
Commit: d218811e85612fe1e547b057f874526d85532eea
Author: Jacques Lucke
Date: Thu Oct 31 14:11:11 2019 +0100
Branches: functions-experimental-refactor
https://developer.blender.org/rBd218811e85612fe1e547b057f874526d85532eea
access function and parameter names
===================================================================
M source/blender/blenkernel/BKE_multi_function.h
M source/blender/blenkernel/BKE_multi_function_network.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 42b38594928..19f75a42476 100644
--- a/source/blender/blenkernel/BKE_multi_function.h
+++ b/source/blender/blenkernel/BKE_multi_function.h
@@ -187,6 +187,7 @@ class MFContext {
class MFSignature {
private:
+ std::string m_function_name;
Vector<std::string> m_param_names;
Vector<MFParamType> m_param_types;
Vector<uint> m_params_with_external_dependencies;
@@ -197,10 +198,12 @@ class MFSignature {
public:
MFSignature() = default;
- MFSignature(Vector<std::string> param_names,
+ MFSignature(std::string function_name,
+ Vector<std::string> param_names,
Vector<MFParamType> param_types,
Vector<uint> params_with_external_dependencies)
- : m_param_names(std::move(param_names)),
+ : m_function_name(std::move(function_name)),
+ m_param_names(std::move(param_names)),
m_param_types(std::move(param_types)),
m_params_with_external_dependencies(std::move(params_with_external_dependencies))
{
@@ -312,11 +315,16 @@ class MFSignature {
class MFSignatureBuilder {
private:
+ std::string m_function_name;
Vector<std::string> m_param_names;
Vector<MFParamType> m_param_types;
Vector<uint> m_params_with_external_dependencies;
public:
+ MFSignatureBuilder(StringRef name) : m_function_name(name)
+ {
+ }
+
template<typename T> void readonly_single_input(StringRef name)
{
this->readonly_single_input(name, GET_TYPE<T>());
@@ -378,7 +386,8 @@ class MFSignatureBuilder {
MFSignature build()
{
- return MFSignature(std::move(m_param_names),
+ return MFSignature(std::move(m_function_name),
+ std::move(m_param_names),
std::move(m_param_types),
std::move(m_params_with_external_dependencies));
}
@@ -493,6 +502,11 @@ class MultiFunction {
return m_signature.m_param_names[index];
}
+ StringRefNull name() const
+ {
+ return m_signature.m_function_name;
+ }
+
protected:
void set_signature(MFSignatureBuilder &signature_builder)
{
diff --git a/source/blender/blenkernel/BKE_multi_function_network.h b/source/blender/blenkernel/BKE_multi_function_network.h
index 9ac09956ef5..80b9673cf25 100644
--- a/source/blender/blenkernel/BKE_multi_function_network.h
+++ b/source/blender/blenkernel/BKE_multi_function_network.h
@@ -313,7 +313,12 @@ inline uint MFBuilderNode::id()
inline StringRef MFBuilderNode::name()
{
- return "My Name";
+ if (this->is_function()) {
+ return this->as_function().function().name();
+ }
+ else {
+ return "Placeholder";
+ }
}
inline bool MFBuilderNode::is_function()
@@ -374,7 +379,18 @@ inline uint MFBuilderSocket::id()
inline StringRef MFBuilderSocket::name()
{
- return "My Name";
+ if (m_node->is_function()) {
+ MFBuilderFunctionNode &node = m_node->as_function();
+ if (m_is_output) {
+ return node.function().param_name(node.output_param_indices()[m_index]);
+ }
+ else {
+ return node.function().param_name(node.input_param_indices()[m_index]);
+ }
+ }
+ else {
+ return "Placeholder";
+ }
}
inline bool MFBuilderSocket::is_input()
diff --git a/source/blender/blenkernel/BKE_multi_functions.h b/source/blender/blenkernel/BKE_multi_functions.h
index b63476f2474..9776dc56768 100644
--- a/source/blender/blenkernel/BKE_multi_functions.h
+++ b/source/blender/blenkernel/BKE_multi_functions.h
@@ -85,7 +85,7 @@ template<typename T> class MultiFunction_ConstantValue : public MultiFunction {
public:
MultiFunction_ConstantValue(T value) : m_value(std::move(value))
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Constant " + GET_TYPE<T>().name());
signature.single_output<T>("Output");
this->set_signature(signature);
}
@@ -106,7 +106,7 @@ template<typename T> class MultiFunction_EmptyList : public MultiFunction {
public:
MultiFunction_EmptyList()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Empty List - " + GET_TYPE<T>().name());
signature.vector_output<T>("Output");
this->set_signature(signature);
}
@@ -122,7 +122,7 @@ template<typename FromT, typename ToT> class MultiFunction_Convert : public Mult
public:
MultiFunction_Convert()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature(GET_TYPE<FromT>().name() + " to " + GET_TYPE<ToT>().name());
signature.readonly_single_input<FromT>("Input");
signature.single_output<ToT>("Output");
this->set_signature(signature);
@@ -146,7 +146,8 @@ template<typename FromT, typename ToT> class MultiFunction_ConvertList : public
public:
MultiFunction_ConvertList()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature(GET_TYPE<FromT>().name() + " List to " + GET_TYPE<ToT>().name() +
+ " List");
signature.readonly_vector_input<FromT>("Inputs");
signature.vector_output<ToT>("Outputs");
this->set_signature(signature);
@@ -175,7 +176,7 @@ template<typename T> class MultiFunction_SingleElementList : public MultiFunctio
public:
MultiFunction_SingleElementList()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Single Element List - " + GET_TYPE<T>().name());
signature.readonly_single_input<T>("Input");
signature.vector_output<T>("Outputs");
this->set_signature(signature);
diff --git a/source/blender/blenkernel/intern/multi_functions.cc b/source/blender/blenkernel/intern/multi_functions.cc
index 2afd1ee50fd..76dc6371057 100644
--- a/source/blender/blenkernel/intern/multi_functions.cc
+++ b/source/blender/blenkernel/intern/multi_functions.cc
@@ -12,7 +12,7 @@ using BLI::float3;
MultiFunction_AddFloats::MultiFunction_AddFloats()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Add Floats");
signature.readonly_single_input<float>("A");
signature.readonly_single_input<float>("B");
signature.single_output<float>("Result");
@@ -34,7 +34,7 @@ void MultiFunction_AddFloats::call(ArrayRef<uint> mask_indices,
MultiFunction_AddFloat3s::MultiFunction_AddFloat3s()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Add Float3s");
signature.readonly_single_input<float3>("A");
signature.readonly_single_input<float3>("B");
signature.single_output<float3>("Result");
@@ -56,7 +56,7 @@ void MultiFunction_AddFloat3s::call(ArrayRef<uint> mask_indices,
MultiFunction_CombineVector::MultiFunction_CombineVector()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Combine Vector");
signature.readonly_single_input<float>("X");
signature.readonly_single_input<float>("Y");
signature.readonly_single_input<float>("Z");
@@ -80,7 +80,7 @@ void MultiFunction_CombineVector::call(ArrayRef<uint> mask_indices,
MultiFunction_SeparateVector::MultiFunction_SeparateVector()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Separate Vector");
signature.readonly_single_input<float3>("Vector");
signature.single_output<float>("X");
signature.single_output<float>("Y");
@@ -107,7 +107,7 @@ void MultiFunction_SeparateVector::call(ArrayRef<uint> mask_indices,
MultiFunction_VectorDistance::MultiFunction_VectorDistance()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Vector Distance");
signature.readonly_single_input<float3>("A");
signature.readonly_single_input<float3>("A");
signature.single_output<float>("Distances");
@@ -129,7 +129,7 @@ void MultiFunction_VectorDistance::call(ArrayRef<uint> mask_indices,
MultiFunction_FloatArraySum::MultiFunction_FloatArraySum()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Float Array Sum");
signature.readonly_vector_input<float>("Array");
signature.single_output<float>("Sum");
this->set_signature(signature);
@@ -154,7 +154,7 @@ void MultiFunction_FloatArraySum::call(ArrayRef<uint> mask_indices,
MultiFunction_FloatRange::MultiFunction_FloatRange()
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Float Range");
signature.readonly_single_input<float>("Start");
signature.readonly_single_input<float>("Step");
signature.readonly_single_input<int>("Amount");
@@ -183,7 +183,7 @@ MultiFunction_PackList::MultiFunction_PackList(const CPPType &base_type,
ArrayRef<bool> input_list_status)
: m_base_type(base_type), m_input_list_status(input_list_status)
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Pack List");
if (m_input_list_status.size() == 0) {
/* Output just an empty list. */
signature.vector_output("List", m_base_type);
@@ -259,7 +259,7 @@ bool MultiFunction_PackList::input_is_list(uint index) const
MultiFunction_GetListElement::MultiFunction_GetListElement(const CPPType &base_type)
: m_base_type(base_type)
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("Get List Element");
signature.readonly_vector_input("List", m_base_type);
signature.readonly_single_input<int>("Index");
signature.readonly_single_input("Fallback", m_base_type);
@@ -293,7 +293,7 @@ void MultiFunction_GetListElement::call(ArrayRef<uint> mask_indices,
MultiFunction_ListLength::MultiFunction_ListLength(const CPPType &base_type)
: m_base_type(base_type)
{
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature("List Length");
signature.readonly_vector_input("List", m_base_type);
signature.single_output<int>("Length");
this->set_signature(signature);
@@ -317,7 +317,7 @@ MultiFunction_SimpleVectorize::MultiFunction_SimpleVectorize(const MultiFunction
{
BLI_assert(input_is_vectorized.contains(true));
- MFSignatureBuilder signature;
+ MFSignatureBuilder signature(function.name() + " (Vectorized)");
bool found_output_param = false;
UNUSED_VARS_NDEBUG(found_output_param);
diff --git a/source/blender/modifiers/intern/MOD_functiondeform_cxx.cc b/source/blender/modifiers/intern/MOD_functiondeform_cxx.cc
index 408f0dd6c87..376fc518bc8 100644
--- a/source/blender/modifiers/intern/MOD_functiond
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list