[Bf-blender-cvs] [f9fe755dba8] master: Nodes: add default value to string socket declaration
Erik Abrahamsson
noreply at git.blender.org
Mon Oct 18 12:02:47 CEST 2021
Commit: f9fe755dba8e99d3b7ee1fb9b0a1197c5eb5c687
Author: Erik Abrahamsson
Date: Mon Oct 18 11:59:49 2021 +0200
Branches: master
https://developer.blender.org/rBf9fe755dba8e99d3b7ee1fb9b0a1197c5eb5c687
Nodes: add default value to string socket declaration
Differential Revision: https://developer.blender.org/D12758
===================================================================
M source/blender/nodes/NOD_socket_declarations.hh
M source/blender/nodes/intern/node_socket_declarations.cc
===================================================================
diff --git a/source/blender/nodes/NOD_socket_declarations.hh b/source/blender/nodes/NOD_socket_declarations.hh
index e22b96cd1ff..d4958f433d6 100644
--- a/source/blender/nodes/NOD_socket_declarations.hh
+++ b/source/blender/nodes/NOD_socket_declarations.hh
@@ -145,14 +145,26 @@ class ColorBuilder : public SocketDeclarationBuilder<Color> {
ColorBuilder &default_value(const ColorGeometry4f value);
};
+class StringBuilder;
+
class String : public SocketDeclaration {
+ private:
+ std::string default_value_;
+
+ friend StringBuilder;
+
public:
- using Builder = SocketDeclarationBuilder<String>;
+ using Builder = StringBuilder;
bNodeSocket &build(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out) const override;
bool matches(const bNodeSocket &socket) const override;
};
+class StringBuilder : public SocketDeclarationBuilder<String> {
+ public:
+ StringBuilder &default_value(const std::string value);
+};
+
class IDSocketDeclaration : public SocketDeclaration {
private:
const char *idname_;
@@ -322,6 +334,18 @@ inline ColorBuilder &ColorBuilder::default_value(const ColorGeometry4f value)
/** \} */
+/* -------------------------------------------------------------------- */
+/** \name #StringBuilder Inline Methods
+ * \{ */
+
+inline StringBuilder &StringBuilder::default_value(std::string value)
+{
+ decl_->default_value_ = std::move(value);
+ return *this;
+}
+
+/** \} */
+
/* -------------------------------------------------------------------- */
/** \name #IDSocketDeclaration and Children Inline Methods
* \{ */
diff --git a/source/blender/nodes/intern/node_socket_declarations.cc b/source/blender/nodes/intern/node_socket_declarations.cc
index f910679d492..e823476f9e4 100644
--- a/source/blender/nodes/intern/node_socket_declarations.cc
+++ b/source/blender/nodes/intern/node_socket_declarations.cc
@@ -254,6 +254,7 @@ bNodeSocket &String::build(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_ou
{
bNodeSocket &socket = *nodeAddStaticSocket(
&ntree, &node, in_out, SOCK_STRING, PROP_NONE, identifier_.c_str(), name_.c_str());
+ STRNCPY(((bNodeSocketValueString *)socket.default_value)->value, default_value_.c_str());
this->set_common_flags(socket);
return socket;
}
More information about the Bf-blender-cvs
mailing list