Nodes: Add function to set compact socket flag for vectors
This flag is currently only used for vector sockets so the function is limited to the vector builder. The flag is only used by two shader nodes at the moment and this is needed to port them over to the new socket declaration API. Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D13490
This commit is contained in:
parent
2d4c7fa896
commit
9792994311
|
@ -86,6 +86,7 @@ class SocketDeclaration {
|
|||
std::string description_;
|
||||
bool hide_label_ = false;
|
||||
bool hide_value_ = false;
|
||||
bool compact_ = false;
|
||||
bool is_multi_input_ = false;
|
||||
bool no_mute_links_ = false;
|
||||
bool is_attribute_name_ = false;
|
||||
|
|
|
@ -104,6 +104,7 @@ class VectorBuilder : public SocketDeclarationBuilder<Vector> {
|
|||
VectorBuilder &subtype(PropertySubType subtype);
|
||||
VectorBuilder &min(const float min);
|
||||
VectorBuilder &max(const float max);
|
||||
VectorBuilder &compact();
|
||||
};
|
||||
|
||||
class BoolBuilder;
|
||||
|
@ -315,6 +316,12 @@ inline VectorBuilder &VectorBuilder::max(const float max)
|
|||
return *this;
|
||||
}
|
||||
|
||||
inline VectorBuilder &VectorBuilder::compact()
|
||||
{
|
||||
decl_->compact_ = true;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
|
|
@ -56,6 +56,7 @@ bNodeSocket &SocketDeclaration::update_or_build(bNodeTree &ntree,
|
|||
|
||||
void SocketDeclaration::set_common_flags(bNodeSocket &socket) const
|
||||
{
|
||||
SET_FLAG_FROM_TEST(socket.flag, compact_, SOCK_COMPACT);
|
||||
SET_FLAG_FROM_TEST(socket.flag, hide_value_, SOCK_HIDE_VALUE);
|
||||
SET_FLAG_FROM_TEST(socket.flag, hide_label_, SOCK_HIDE_LABEL);
|
||||
SET_FLAG_FROM_TEST(socket.flag, is_multi_input_, SOCK_MULTI_INPUT);
|
||||
|
@ -70,6 +71,9 @@ bool SocketDeclaration::matches_common_data(const bNodeSocket &socket) const
|
|||
if (socket.identifier != identifier_) {
|
||||
return false;
|
||||
}
|
||||
if (((socket.flag & SOCK_COMPACT) != 0) != compact_) {
|
||||
return false;
|
||||
}
|
||||
if (((socket.flag & SOCK_HIDE_VALUE) != 0) != hide_value_) {
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue