Cleainup: Formatting #107952
|
@ -1,5 +1,5 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
* Copyright 2005 Blender Foundation */
|
||||
* Copyright 2023 Blender Foundation */
|
||||
|
||||
#pragma once
|
||||
|
||||
|
|
|
@ -6636,7 +6636,8 @@ static void default_paint_slot_color_get(int layer_type, Material *ma, float col
|
|||
case LAYER_ROUGHNESS:
|
||||
case LAYER_METALLIC: {
|
||||
bNodeTree *ntree = nullptr;
|
||||
bNode *in_node = ma ? blender::bke::ntreeFindType(ma->nodetree, SH_NODE_BSDF_PRINCIPLED) : nullptr;
|
||||
bNode *in_node = ma ? blender::bke::ntreeFindType(ma->nodetree, SH_NODE_BSDF_PRINCIPLED) :
|
||||
nullptr;
|
||||
if (!in_node) {
|
||||
/* An existing material or Principled BSDF node could not be found.
|
||||
* Copy default color values from a default Principled BSDF instead. */
|
||||
|
|
|
@ -1150,8 +1150,8 @@ void ED_node_init_butfuncs()
|
|||
* Defined in blenkernel, but not registered in type hashes.
|
||||
*/
|
||||
|
||||
using blender::bke::NodeTypeUndefined;
|
||||
using blender::bke::NodeSocketTypeUndefined;
|
||||
using blender::bke::NodeTypeUndefined;
|
||||
|
||||
NodeTypeUndefined.draw_buttons = nullptr;
|
||||
NodeTypeUndefined.draw_buttons_ex = nullptr;
|
||||
|
|
|
@ -49,10 +49,10 @@ static void create_transform_data_for_node(TransData &td,
|
|||
/* account for parents (nested nodes) */
|
||||
if (node.parent) {
|
||||
blender::bke::nodeToView(node.parent,
|
||||
node.locx + roundf(node.offsetx),
|
||||
node.locy + roundf(node.offsety),
|
||||
&locx,
|
||||
&locy);
|
||||
node.locx + roundf(node.offsetx),
|
||||
node.locy + roundf(node.offsety),
|
||||
&locx,
|
||||
&locy);
|
||||
}
|
||||
else {
|
||||
locx = node.locx + roundf(node.offsetx);
|
||||
|
@ -250,10 +250,10 @@ static void flushTransNodes(TransInfo *t)
|
|||
/* account for parents (nested nodes) */
|
||||
if (node->parent) {
|
||||
blender::bke::nodeFromView(node->parent,
|
||||
loc[0] - roundf(node->offsetx),
|
||||
loc[1] - roundf(node->offsety),
|
||||
&node->locx,
|
||||
&node->locy);
|
||||
loc[0] - roundf(node->offsetx),
|
||||
loc[1] - roundf(node->offsety),
|
||||
&node->locx,
|
||||
&node->locy);
|
||||
}
|
||||
else {
|
||||
node->locx = loc[0] - roundf(node->offsetx);
|
||||
|
|
|
@ -374,7 +374,8 @@ void USDMaterialReader::import_usd_preview(Material *mtl,
|
|||
* and output shaders. */
|
||||
|
||||
/* Add the node tree. */
|
||||
bNodeTree *ntree = blender::bke::ntreeAddTreeEmbedded(nullptr, &mtl->id, "Shader Nodetree", "ShaderNodeTree");
|
||||
bNodeTree *ntree = blender::bke::ntreeAddTreeEmbedded(
|
||||
nullptr, &mtl->id, "Shader Nodetree", "ShaderNodeTree");
|
||||
mtl->use_nodes = true;
|
||||
|
||||
/* Create the Principled BSDF shader node. */
|
||||
|
|
|
@ -64,23 +64,25 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *sock_epsilon = (bNodeSocket *)BLI_findlink(&node->inputs, 12);
|
||||
|
||||
LISTBASE_FOREACH (bNodeSocket *, socket, &node->inputs) {
|
||||
bke::nodeSetSocketAvailability(ntree, socket, socket->type == (eNodeSocketDatatype)data->data_type);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, socket, socket->type == (eNodeSocketDatatype)data->data_type);
|
||||
}
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sock_epsilon,
|
||||
ELEM(data->operation, NODE_COMPARE_EQUAL, NODE_COMPARE_NOT_EQUAL) &&
|
||||
!ELEM(data->data_type, SOCK_INT, SOCK_STRING));
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree,
|
||||
sock_epsilon,
|
||||
ELEM(data->operation, NODE_COMPARE_EQUAL, NODE_COMPARE_NOT_EQUAL) &&
|
||||
!ELEM(data->data_type, SOCK_INT, SOCK_STRING));
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sock_comp,
|
||||
ELEM(data->mode, NODE_COMPARE_MODE_DOT_PRODUCT) &&
|
||||
data->data_type == SOCK_VECTOR);
|
||||
sock_comp,
|
||||
ELEM(data->mode, NODE_COMPARE_MODE_DOT_PRODUCT) &&
|
||||
data->data_type == SOCK_VECTOR);
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sock_angle,
|
||||
ELEM(data->mode, NODE_COMPARE_MODE_DIRECTION) &&
|
||||
data->data_type == SOCK_VECTOR);
|
||||
sock_angle,
|
||||
ELEM(data->mode, NODE_COMPARE_MODE_DIRECTION) &&
|
||||
data->data_type == SOCK_VECTOR);
|
||||
}
|
||||
|
||||
static void node_init(bNodeTree * /*tree*/, bNode *node)
|
||||
|
|
|
@ -92,18 +92,18 @@ static bool geometry_node_tree_socket_type_valid(bNodeTreeType * /*treetype*/,
|
|||
bNodeSocketType *socket_type)
|
||||
{
|
||||
return blender::bke::nodeIsStaticSocketType(socket_type) && ELEM(socket_type->type,
|
||||
SOCK_FLOAT,
|
||||
SOCK_VECTOR,
|
||||
SOCK_RGBA,
|
||||
SOCK_BOOLEAN,
|
||||
SOCK_INT,
|
||||
SOCK_STRING,
|
||||
SOCK_OBJECT,
|
||||
SOCK_GEOMETRY,
|
||||
SOCK_COLLECTION,
|
||||
SOCK_TEXTURE,
|
||||
SOCK_IMAGE,
|
||||
SOCK_MATERIAL);
|
||||
SOCK_FLOAT,
|
||||
SOCK_VECTOR,
|
||||
SOCK_RGBA,
|
||||
SOCK_BOOLEAN,
|
||||
SOCK_INT,
|
||||
SOCK_STRING,
|
||||
SOCK_OBJECT,
|
||||
SOCK_GEOMETRY,
|
||||
SOCK_COLLECTION,
|
||||
SOCK_TEXTURE,
|
||||
SOCK_IMAGE,
|
||||
SOCK_MATERIAL);
|
||||
}
|
||||
|
||||
void register_node_tree_type_geo()
|
||||
|
|
|
@ -52,14 +52,15 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *instances_socket = spline_socket->next;
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
point_socket,
|
||||
ELEM(node->custom1,
|
||||
GEO_COMPONENT_TYPE_MESH,
|
||||
GEO_COMPONENT_TYPE_CURVE,
|
||||
GEO_COMPONENT_TYPE_POINT_CLOUD));
|
||||
point_socket,
|
||||
ELEM(node->custom1,
|
||||
GEO_COMPONENT_TYPE_MESH,
|
||||
GEO_COMPONENT_TYPE_CURVE,
|
||||
GEO_COMPONENT_TYPE_POINT_CLOUD));
|
||||
bke::nodeSetSocketAvailability(ntree, edge_socket, node->custom1 == GEO_COMPONENT_TYPE_MESH);
|
||||
bke::nodeSetSocketAvailability(ntree, face_socket, node->custom1 == GEO_COMPONENT_TYPE_MESH);
|
||||
bke::nodeSetSocketAvailability(ntree, face_corner_socket, node->custom1 == GEO_COMPONENT_TYPE_MESH);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, face_corner_socket, node->custom1 == GEO_COMPONENT_TYPE_MESH);
|
||||
bke::nodeSetSocketAvailability(ntree, spline_socket, node->custom1 == GEO_COMPONENT_TYPE_CURVE);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, instances_socket, node->custom1 == GEO_COMPONENT_TYPE_INSTANCES);
|
||||
|
|
|
@ -61,7 +61,8 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *direction_socket = p2_socket->next;
|
||||
bNodeSocket *length_socket = direction_socket->next;
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree, p2_socket, mode == GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_POINTS);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, p2_socket, mode == GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_POINTS);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, direction_socket, mode == GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_DIRECTION);
|
||||
bke::nodeSetSocketAvailability(
|
||||
|
|
|
@ -79,15 +79,17 @@ static void node_point_distribute_points_on_faces_update(bNodeTree *ntree, bNode
|
|||
bNodeSocket *sock_density = sock_density_max->next;
|
||||
bNodeSocket *sock_density_factor = sock_density->next;
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sock_distance_min,
|
||||
node->custom1 == GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON);
|
||||
sock_distance_min,
|
||||
node->custom1 ==
|
||||
GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sock_density_max, node->custom1 == GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sock_density, node->custom1 == GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sock_density_factor,
|
||||
node->custom1 == GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON);
|
||||
sock_density_factor,
|
||||
node->custom1 ==
|
||||
GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -81,13 +81,13 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
N_("Offset"));
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
resolution_socket,
|
||||
mode == GEO_NODE_MESH_LINE_MODE_END_POINTS &&
|
||||
count_mode == GEO_NODE_MESH_LINE_COUNT_RESOLUTION);
|
||||
resolution_socket,
|
||||
mode == GEO_NODE_MESH_LINE_MODE_END_POINTS &&
|
||||
count_mode == GEO_NODE_MESH_LINE_COUNT_RESOLUTION);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
count_socket,
|
||||
mode == GEO_NODE_MESH_LINE_MODE_OFFSET ||
|
||||
count_mode == GEO_NODE_MESH_LINE_COUNT_TOTAL);
|
||||
count_socket,
|
||||
mode == GEO_NODE_MESH_LINE_MODE_OFFSET ||
|
||||
count_mode == GEO_NODE_MESH_LINE_COUNT_TOTAL);
|
||||
}
|
||||
|
||||
static void node_gather_link_searches(GatherLinkSearchOpParams ¶ms)
|
||||
|
|
|
@ -78,8 +78,9 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *voxel_size_socket = nodeFindSocket(node, SOCK_IN, "Voxel Size");
|
||||
bNodeSocket *voxel_amount_socket = nodeFindSocket(node, SOCK_IN, "Voxel Amount");
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_amount_socket,
|
||||
data.resolution_mode == MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT);
|
||||
voxel_amount_socket,
|
||||
data.resolution_mode ==
|
||||
MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, voxel_size_socket, data.resolution_mode == MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_SIZE);
|
||||
}
|
||||
|
|
|
@ -63,8 +63,9 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *voxel_size_socket = nodeFindSocket(node, SOCK_IN, "Voxel Size");
|
||||
bNodeSocket *voxel_amount_socket = nodeFindSocket(node, SOCK_IN, "Voxel Amount");
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_amount_socket,
|
||||
data.resolution_mode == MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT);
|
||||
voxel_amount_socket,
|
||||
data.resolution_mode ==
|
||||
MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, voxel_size_socket, data.resolution_mode == MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_SIZE);
|
||||
}
|
||||
|
|
|
@ -77,13 +77,13 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *voxel_size_socket = nodeFindSocket(node, SOCK_IN, "Voxel Size");
|
||||
bNodeSocket *voxel_amount_socket = nodeFindSocket(node, SOCK_IN, "Voxel Amount");
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_amount_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT);
|
||||
voxel_amount_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_size_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE);
|
||||
voxel_size_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE);
|
||||
}
|
||||
|
||||
static void node_geo_exec(GeoNodeExecParams params)
|
||||
|
|
|
@ -185,13 +185,13 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *voxel_size_socket = nodeFindSocket(node, SOCK_IN, "Voxel Size");
|
||||
bNodeSocket *voxel_amount_socket = nodeFindSocket(node, SOCK_IN, "Voxel Amount");
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_amount_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT);
|
||||
voxel_amount_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_size_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE);
|
||||
voxel_size_socket,
|
||||
storage.resolution_mode ==
|
||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE);
|
||||
}
|
||||
|
||||
static void node_geo_exec(GeoNodeExecParams params)
|
||||
|
|
|
@ -60,7 +60,8 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *socket_boolean = socket_color4f->next;
|
||||
bNodeSocket *socket_int32 = socket_boolean->next;
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree, socket_vector, ELEM(data_type, CD_PROP_FLOAT2, CD_PROP_FLOAT3));
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, socket_vector, ELEM(data_type, CD_PROP_FLOAT2, CD_PROP_FLOAT3));
|
||||
bke::nodeSetSocketAvailability(ntree, socket_float, data_type == CD_PROP_FLOAT);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, socket_color4f, ELEM(data_type, CD_PROP_COLOR, CD_PROP_BYTE_COLOR));
|
||||
|
|
|
@ -71,12 +71,13 @@ static void node_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *voxel_size_socket = nodeFindSocket(node, SOCK_IN, "Voxel Size");
|
||||
bNodeSocket *voxel_amount_socket = nodeFindSocket(node, SOCK_IN, "Voxel Amount");
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_amount_socket,
|
||||
storage.resolution_mode ==
|
||||
VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT);
|
||||
voxel_amount_socket,
|
||||
storage.resolution_mode ==
|
||||
VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
voxel_size_socket,
|
||||
storage.resolution_mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE);
|
||||
voxel_size_socket,
|
||||
storage.resolution_mode ==
|
||||
VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE);
|
||||
}
|
||||
|
||||
#ifdef WITH_OPENVDB
|
||||
|
|
|
@ -738,8 +738,8 @@ class LazyFunctionForViewerNode : public LazyFunction {
|
|||
continue;
|
||||
}
|
||||
const Span<const bNodeLink *> links = bsocket->directly_linked_links();
|
||||
if (links.is_empty() || bke::nodeIsDanglingReroute(&bnode.owner_tree(), links.first()->fromnode))
|
||||
{
|
||||
if (links.is_empty() ||
|
||||
bke::nodeIsDanglingReroute(&bnode.owner_tree(), links.first()->fromnode)) {
|
||||
use_field_input_ = false;
|
||||
inputs_.pop_last();
|
||||
r_lf_index_by_bsocket[bsocket->index_in_tree()] = -1;
|
||||
|
|
|
@ -91,38 +91,38 @@ void node_math_update(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *sock2 = static_cast<bNodeSocket *>(BLI_findlink(&node->inputs, 1));
|
||||
bNodeSocket *sock3 = static_cast<bNodeSocket *>(BLI_findlink(&node->inputs, 2));
|
||||
blender::bke::nodeSetSocketAvailability(ntree,
|
||||
sock2,
|
||||
!ELEM(node->custom1,
|
||||
NODE_MATH_SQRT,
|
||||
NODE_MATH_SIGN,
|
||||
NODE_MATH_CEIL,
|
||||
NODE_MATH_SINE,
|
||||
NODE_MATH_ROUND,
|
||||
NODE_MATH_FLOOR,
|
||||
NODE_MATH_COSINE,
|
||||
NODE_MATH_ARCSINE,
|
||||
NODE_MATH_TANGENT,
|
||||
NODE_MATH_ABSOLUTE,
|
||||
NODE_MATH_RADIANS,
|
||||
NODE_MATH_DEGREES,
|
||||
NODE_MATH_FRACTION,
|
||||
NODE_MATH_ARCCOSINE,
|
||||
NODE_MATH_ARCTANGENT) &&
|
||||
!ELEM(node->custom1,
|
||||
NODE_MATH_INV_SQRT,
|
||||
NODE_MATH_TRUNC,
|
||||
NODE_MATH_EXPONENT,
|
||||
NODE_MATH_COSH,
|
||||
NODE_MATH_SINH,
|
||||
NODE_MATH_TANH));
|
||||
sock2,
|
||||
!ELEM(node->custom1,
|
||||
NODE_MATH_SQRT,
|
||||
NODE_MATH_SIGN,
|
||||
NODE_MATH_CEIL,
|
||||
NODE_MATH_SINE,
|
||||
NODE_MATH_ROUND,
|
||||
NODE_MATH_FLOOR,
|
||||
NODE_MATH_COSINE,
|
||||
NODE_MATH_ARCSINE,
|
||||
NODE_MATH_TANGENT,
|
||||
NODE_MATH_ABSOLUTE,
|
||||
NODE_MATH_RADIANS,
|
||||
NODE_MATH_DEGREES,
|
||||
NODE_MATH_FRACTION,
|
||||
NODE_MATH_ARCCOSINE,
|
||||
NODE_MATH_ARCTANGENT) &&
|
||||
!ELEM(node->custom1,
|
||||
NODE_MATH_INV_SQRT,
|
||||
NODE_MATH_TRUNC,
|
||||
NODE_MATH_EXPONENT,
|
||||
NODE_MATH_COSH,
|
||||
NODE_MATH_SINH,
|
||||
NODE_MATH_TANH));
|
||||
blender::bke::nodeSetSocketAvailability(ntree,
|
||||
sock3,
|
||||
ELEM(node->custom1,
|
||||
NODE_MATH_COMPARE,
|
||||
NODE_MATH_MULTIPLY_ADD,
|
||||
NODE_MATH_WRAP,
|
||||
NODE_MATH_SMOOTH_MIN,
|
||||
NODE_MATH_SMOOTH_MAX));
|
||||
sock3,
|
||||
ELEM(node->custom1,
|
||||
NODE_MATH_COMPARE,
|
||||
NODE_MATH_MULTIPLY_ADD,
|
||||
NODE_MATH_WRAP,
|
||||
NODE_MATH_SMOOTH_MIN,
|
||||
NODE_MATH_SMOOTH_MAX));
|
||||
|
||||
node_sock_label_clear(sock1);
|
||||
node_sock_label_clear(sock2);
|
||||
|
|
|
@ -578,7 +578,8 @@ static bNode *ntree_shader_copy_branch(bNodeTree *ntree,
|
|||
branchIterData iter_data;
|
||||
iter_data.node_filter = node_filter;
|
||||
iter_data.node_count = 1;
|
||||
blender::bke::nodeChainIterBackwards(ntree, start_node, ntree_branch_count_and_tag_nodes, &iter_data, 1);
|
||||
blender::bke::nodeChainIterBackwards(
|
||||
ntree, start_node, ntree_branch_count_and_tag_nodes, &iter_data, 1);
|
||||
/* Make a full copy of the branch */
|
||||
Array<bNode *> nodes_copy(iter_data.node_count);
|
||||
LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
|
||||
|
@ -721,7 +722,8 @@ static void ntree_shader_weight_tree_invert(bNodeTree *ntree, bNode *output_node
|
|||
/* Tag nodes from the weight tree. Only tag output node and mix/add shader nodes. */
|
||||
output_node->runtime->tmp_flag = 0;
|
||||
int node_count = 1;
|
||||
blender::bke::nodeChainIterBackwards(ntree, output_node, ntree_weight_tree_tag_nodes, &node_count, 0);
|
||||
blender::bke::nodeChainIterBackwards(
|
||||
ntree, output_node, ntree_weight_tree_tag_nodes, &node_count, 0);
|
||||
/* Make a mirror copy of the weight tree. */
|
||||
Array<bNode *> nodes_copy(node_count);
|
||||
LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
|
||||
|
@ -984,7 +986,8 @@ static void ntree_shader_shader_to_rgba_branch(bNodeTree *ntree, bNode *output_n
|
|||
/* First gather the shader_to_rgba nodes linked to the output. This is separate to avoid
|
||||
* conflicting usage of the `node->runtime->tmp_flag`. */
|
||||
Vector<bNode *> shader_to_rgba_nodes;
|
||||
blender::bke::nodeChainIterBackwards(ntree, output_node, shader_to_rgba_node_gather, &shader_to_rgba_nodes, 0);
|
||||
blender::bke::nodeChainIterBackwards(
|
||||
ntree, output_node, shader_to_rgba_node_gather, &shader_to_rgba_nodes, 0);
|
||||
|
||||
for (bNode *shader_to_rgba : shader_to_rgba_nodes) {
|
||||
bNodeSocket *closure_input = ntree_shader_node_input_get(shader_to_rgba, 0);
|
||||
|
|
|
@ -292,7 +292,7 @@ bNode *nodeGetActivePaintCanvas(bNodeTree *ntree)
|
|||
{
|
||||
return node_get_active(ntree, NODE_ACTIVE_PAINT_CANVAS);
|
||||
}
|
||||
}
|
||||
} // namespace blender::bke
|
||||
|
||||
void ntreeExecGPUNodes(bNodeTreeExec *exec, GPUMaterial *mat, bNode *output_node)
|
||||
{
|
||||
|
|
|
@ -114,14 +114,13 @@ static void node_shader_update_tex_musgrave(bNodeTree *ntree, bNode *node)
|
|||
bke::nodeSetSocketAvailability(
|
||||
ntree, inWSock, storage.dimensions == 1 || storage.dimensions == 4);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
inOffsetSock,
|
||||
storage.musgrave_type != SHD_MUSGRAVE_MULTIFRACTAL &&
|
||||
storage.musgrave_type != SHD_MUSGRAVE_FBM);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree,
|
||||
inGainSock,
|
||||
storage.musgrave_type == SHD_MUSGRAVE_HYBRID_MULTIFRACTAL ||
|
||||
storage.musgrave_type == SHD_MUSGRAVE_RIDGED_MULTIFRACTAL);
|
||||
inOffsetSock,
|
||||
storage.musgrave_type != SHD_MUSGRAVE_MULTIFRACTAL &&
|
||||
storage.musgrave_type != SHD_MUSGRAVE_FBM);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
inGainSock,
|
||||
storage.musgrave_type == SHD_MUSGRAVE_HYBRID_MULTIFRACTAL ||
|
||||
storage.musgrave_type == SHD_MUSGRAVE_RIDGED_MULTIFRACTAL);
|
||||
|
||||
bNodeSocket *outFacSock = nodeFindSocket(node, SOCK_OUT, "Fac");
|
||||
node_sock_label(outFacSock, "Height");
|
||||
|
|
|
@ -78,8 +78,7 @@ static void node_shader_update_tex_noise(bNodeTree *ntree, bNode *node)
|
|||
|
||||
const NodeTexNoise &storage = node_storage(*node);
|
||||
bke::nodeSetSocketAvailability(ntree, sockVector, storage.dimensions != 1);
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sockW, storage.dimensions == 1 || storage.dimensions == 4);
|
||||
bke::nodeSetSocketAvailability(ntree, sockW, storage.dimensions == 1 || storage.dimensions == 4);
|
||||
}
|
||||
|
||||
class NoiseFunction : public mf::MultiFunction {
|
||||
|
|
|
@ -275,8 +275,7 @@ static void node_shader_update_sky(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *sockVector = nodeFindSocket(node, SOCK_IN, "Vector");
|
||||
|
||||
NodeTexSky *tex = (NodeTexSky *)node->storage;
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sockVector, !(tex->sky_model == 2 && tex->sun_disc == 1));
|
||||
bke::nodeSetSocketAvailability(ntree, sockVector, !(tex->sky_model == 2 && tex->sun_disc == 1));
|
||||
}
|
||||
|
||||
static void node_gather_link_searches(GatherLinkSearchOpParams ¶ms)
|
||||
|
|
|
@ -166,19 +166,19 @@ static void node_shader_update_tex_voronoi(bNodeTree *ntree, bNode *node)
|
|||
bke::nodeSetSocketAvailability(
|
||||
ntree, outDistanceSock, storage.feature != SHD_VORONOI_N_SPHERE_RADIUS);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
outColorSock,
|
||||
storage.feature != SHD_VORONOI_DISTANCE_TO_EDGE &&
|
||||
storage.feature != SHD_VORONOI_N_SPHERE_RADIUS);
|
||||
outColorSock,
|
||||
storage.feature != SHD_VORONOI_DISTANCE_TO_EDGE &&
|
||||
storage.feature != SHD_VORONOI_N_SPHERE_RADIUS);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
outPositionSock,
|
||||
storage.feature != SHD_VORONOI_DISTANCE_TO_EDGE &&
|
||||
storage.feature != SHD_VORONOI_N_SPHERE_RADIUS &&
|
||||
storage.dimensions != 1);
|
||||
outPositionSock,
|
||||
storage.feature != SHD_VORONOI_DISTANCE_TO_EDGE &&
|
||||
storage.feature != SHD_VORONOI_N_SPHERE_RADIUS &&
|
||||
storage.dimensions != 1);
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
outWSock,
|
||||
storage.feature != SHD_VORONOI_DISTANCE_TO_EDGE &&
|
||||
storage.feature != SHD_VORONOI_N_SPHERE_RADIUS &&
|
||||
ELEM(storage.dimensions, 1, 4));
|
||||
outWSock,
|
||||
storage.feature != SHD_VORONOI_DISTANCE_TO_EDGE &&
|
||||
storage.feature != SHD_VORONOI_N_SPHERE_RADIUS &&
|
||||
ELEM(storage.dimensions, 1, 4));
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, outRadiusSock, storage.feature == SHD_VORONOI_N_SPHERE_RADIUS);
|
||||
}
|
||||
|
|
|
@ -166,38 +166,38 @@ static void node_shader_update_vector_math(bNodeTree *ntree, bNode *node)
|
|||
bNodeSocket *sockValue = nodeFindSocket(node, SOCK_OUT, "Value");
|
||||
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sockB,
|
||||
!ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_SINE,
|
||||
NODE_VECTOR_MATH_COSINE,
|
||||
NODE_VECTOR_MATH_TANGENT,
|
||||
NODE_VECTOR_MATH_CEIL,
|
||||
NODE_VECTOR_MATH_SCALE,
|
||||
NODE_VECTOR_MATH_FLOOR,
|
||||
NODE_VECTOR_MATH_LENGTH,
|
||||
NODE_VECTOR_MATH_ABSOLUTE,
|
||||
NODE_VECTOR_MATH_FRACTION,
|
||||
NODE_VECTOR_MATH_NORMALIZE));
|
||||
sockB,
|
||||
!ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_SINE,
|
||||
NODE_VECTOR_MATH_COSINE,
|
||||
NODE_VECTOR_MATH_TANGENT,
|
||||
NODE_VECTOR_MATH_CEIL,
|
||||
NODE_VECTOR_MATH_SCALE,
|
||||
NODE_VECTOR_MATH_FLOOR,
|
||||
NODE_VECTOR_MATH_LENGTH,
|
||||
NODE_VECTOR_MATH_ABSOLUTE,
|
||||
NODE_VECTOR_MATH_FRACTION,
|
||||
NODE_VECTOR_MATH_NORMALIZE));
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sockC,
|
||||
ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_WRAP,
|
||||
NODE_VECTOR_MATH_FACEFORWARD,
|
||||
NODE_VECTOR_MATH_MULTIPLY_ADD));
|
||||
sockC,
|
||||
ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_WRAP,
|
||||
NODE_VECTOR_MATH_FACEFORWARD,
|
||||
NODE_VECTOR_MATH_MULTIPLY_ADD));
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sockScale, ELEM(node->custom1, NODE_VECTOR_MATH_SCALE, NODE_VECTOR_MATH_REFRACT));
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sockVector,
|
||||
!ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_LENGTH,
|
||||
NODE_VECTOR_MATH_DISTANCE,
|
||||
NODE_VECTOR_MATH_DOT_PRODUCT));
|
||||
sockVector,
|
||||
!ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_LENGTH,
|
||||
NODE_VECTOR_MATH_DISTANCE,
|
||||
NODE_VECTOR_MATH_DOT_PRODUCT));
|
||||
bke::nodeSetSocketAvailability(ntree,
|
||||
sockValue,
|
||||
ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_LENGTH,
|
||||
NODE_VECTOR_MATH_DISTANCE,
|
||||
NODE_VECTOR_MATH_DOT_PRODUCT));
|
||||
sockValue,
|
||||
ELEM(node->custom1,
|
||||
NODE_VECTOR_MATH_LENGTH,
|
||||
NODE_VECTOR_MATH_DISTANCE,
|
||||
NODE_VECTOR_MATH_DOT_PRODUCT));
|
||||
|
||||
/* Labels */
|
||||
node_sock_label_clear(sockB);
|
||||
|
|
|
@ -195,7 +195,8 @@ static void node_shader_update_vector_rotate(bNodeTree *ntree, bNode *node)
|
|||
bke::nodeSetSocketAvailability(
|
||||
ntree, sock_rotation, ELEM(node->custom1, NODE_VECTOR_ROTATE_TYPE_EULER_XYZ));
|
||||
bNodeSocket *sock_axis = nodeFindSocket(node, SOCK_IN, "Axis");
|
||||
bke::nodeSetSocketAvailability(ntree, sock_axis, ELEM(node->custom1, NODE_VECTOR_ROTATE_TYPE_AXIS));
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sock_axis, ELEM(node->custom1, NODE_VECTOR_ROTATE_TYPE_AXIS));
|
||||
bNodeSocket *sock_angle = nodeFindSocket(node, SOCK_IN, "Angle");
|
||||
bke::nodeSetSocketAvailability(
|
||||
ntree, sock_angle, !ELEM(node->custom1, NODE_VECTOR_ROTATE_TYPE_EULER_XYZ));
|
||||
|
|
Loading…
Reference in New Issue