This flag specifies that even when the socket is not connected, the node should not display the input field for the constant input value. This is useful for inputs like Normal, which have special handling for the missing input case and don't use a constant value. Currently there is no way to change this flag from Python, and through UI it can only be done by re-creating the socket. This patch exposes the flag through RNA and UI, makes sure it is properly updated when changed, and adds special handling to ensure that it is correctly set when creating a node group from a node set that includes reroute nodes. Differential Revision: https://developer.blender.org/D8395
63 lines
2.0 KiB
C++
63 lines
2.0 KiB
C++
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2007 Blender Foundation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
/** \file
|
|
* \ingroup nodes
|
|
*/
|
|
|
|
#ifndef __NOD_SOCKET_H__
|
|
#define __NOD_SOCKET_H__
|
|
|
|
#include "DNA_listBase.h"
|
|
|
|
#include "BLI_utildefines.h"
|
|
|
|
#include "BKE_node.h"
|
|
|
|
#include "RNA_types.h"
|
|
|
|
struct bNode;
|
|
struct bNodeTree;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct bNodeSocket *node_add_socket_from_template(struct bNodeTree *ntree,
|
|
struct bNode *node,
|
|
struct bNodeSocketTemplate *stemp,
|
|
int in_out);
|
|
|
|
void node_verify_socket_templates(struct bNodeTree *ntree, struct bNode *node);
|
|
|
|
void node_socket_init_default_value(struct bNodeSocket *sock);
|
|
void node_socket_copy_default_value(struct bNodeSocket *to, const struct bNodeSocket *from);
|
|
void node_socket_skip_reroutes(struct ListBase *links,
|
|
struct bNode *node,
|
|
struct bNodeSocket *socket,
|
|
struct bNode **r_node,
|
|
struct bNodeSocket **r_socket);
|
|
void register_standard_node_socket_types(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __NOD_SOCKET_H__ */
|