43 {0,
nullptr, 0,
nullptr,
nullptr}};
46 {
SOCK_FLOAT,
"FLOAT", ICON_NODE_SOCKET_FLOAT,
"Float",
""},
47 {
SOCK_INT,
"INT", ICON_NODE_SOCKET_INT,
"Integer",
""},
48 {
SOCK_BOOLEAN,
"BOOLEAN", ICON_NODE_SOCKET_BOOLEAN,
"Boolean",
""},
49 {
SOCK_VECTOR,
"VECTOR", ICON_NODE_SOCKET_VECTOR,
"Vector",
""},
50 {
SOCK_ROTATION,
"ROTATION", ICON_NODE_SOCKET_ROTATION,
"Rotation",
""},
51 {
SOCK_MATRIX,
"MATRIX", ICON_NODE_SOCKET_MATRIX,
"Matrix",
""},
52 {
SOCK_STRING,
"STRING", ICON_NODE_SOCKET_STRING,
"String",
""},
53 {
SOCK_MENU,
"MENU", ICON_NODE_SOCKET_MENU,
"Menu",
""},
54 {
SOCK_RGBA,
"RGBA", ICON_NODE_SOCKET_RGBA,
"Color",
""},
55 {
SOCK_OBJECT,
"OBJECT", ICON_NODE_SOCKET_OBJECT,
"Object",
""},
56 {
SOCK_IMAGE,
"IMAGE", ICON_NODE_SOCKET_IMAGE,
"Image",
""},
57 {
SOCK_GEOMETRY,
"GEOMETRY", ICON_NODE_SOCKET_GEOMETRY,
"Geometry",
""},
58 {
SOCK_COLLECTION,
"COLLECTION", ICON_NODE_SOCKET_COLLECTION,
"Collection",
""},
59 {
SOCK_TEXTURE,
"TEXTURE", ICON_NODE_SOCKET_TEXTURE,
"Texture",
""},
60 {
SOCK_MATERIAL,
"MATERIAL", ICON_NODE_SOCKET_MATERIAL,
"Material",
""},
61 {
SOCK_BUNDLE,
"BUNDLE", ICON_NODE_SOCKET_BUNDLE,
"Bundle",
""},
62 {
SOCK_CLOSURE,
"CLOSURE", ICON_NODE_SOCKET_CLOSURE,
"Closure",
""},
63 {0,
nullptr, 0,
nullptr,
nullptr},
71 "Default color tag for new nodes and node groups"},
88 {0,
nullptr, 0,
nullptr,
nullptr},
97 "Transform a texture by inverse mapping the texture coordinate"},
102 "Transform a direction vector (Location is ignored)"},
107 "Transform a unit normal vector (Location is ignored)"},
108 {0,
nullptr, 0,
nullptr,
nullptr},
116 "Rotate a point using axis angle"},
121 {0,
nullptr, 0,
nullptr,
nullptr},
135 {
NODE_MATH_INV_SQRT,
"INVERSE_SQRT", 0,
"Inverse Square Root",
"1 / Square root of A"},
144 {
NODE_MATH_COMPARE,
"COMPARE", 0,
"Compare",
"1 if (A == B) within tolerance C else 0"},
149 "The minimum from A and B with smoothing C"},
154 "The maximum from A and B with smoothing C"},
160 "Round A to the nearest integer. Round upward if the fraction part is 0.5"},
161 {
NODE_MATH_FLOOR,
"FLOOR", 0,
"Floor",
"The largest integer smaller than or equal A"},
162 {
NODE_MATH_CEIL,
"CEIL", 0,
"Ceil",
"The smallest integer greater than or equal A"},
163 {
NODE_MATH_TRUNC,
"TRUNC", 0,
"Truncate",
"The integer part of A, removing fractional digits"},
170 "The remainder of truncated division using fmod(A,B)"},
175 "The remainder of floored division"},
176 {
NODE_MATH_WRAP,
"WRAP", 0,
"Wrap",
"Wrap value to range, wrap(A,B)"},
177 {
NODE_MATH_SNAP,
"SNAP", 0,
"Snap",
"Snap to increment, snap(A,B)"},
182 "Wraps a value and reverses every other cycle (A,B)"},
197 {
NODE_MATH_RADIANS,
"RADIANS", 0,
"To Radians",
"Convert from degrees to radians"},
198 {
NODE_MATH_DEGREES,
"DEGREES", 0,
"To Degrees",
"Convert from radians to degrees"},
199 {0,
nullptr, 0,
nullptr,
nullptr},
215 "Reflect A around the normal B. B doesn't need to be normalized."},
220 "For a given incident vector A, surface normal B and ratio of indices of refraction, Ior, "
221 "refract returns the refraction vector, R"},
226 "Orients a vector A to point away from a surface B as defined by its normal C. "
227 "Returns (dot(B, C) < 0) ? A : -A"},
249 "Round A to the largest integer multiple of B less than or equal A"},
254 {0,
nullptr, 0,
nullptr,
nullptr},
268 "True when both inputs are equal (exclusive nor)"},
273 "True when both inputs are different (exclusive or)"},
279 "True unless the first input is true and the second is false"},
284 "True when the first input is true and the second is false (not imply)"},
285 {0,
nullptr, 0,
nullptr,
nullptr},
293 "True when the first input is smaller than second input"},
297 "Less Than or Equal",
298 "True when the first input is smaller than the second input or equal"},
303 "True when the first input is greater than the second input"},
307 "Greater Than or Equal",
308 "True when the first input is greater than the second input or equal"},
309 {
NODE_COMPARE_EQUAL,
"EQUAL", 0,
"Equal",
"True when both inputs are approximately equal"},
314 "True when both inputs are not approximately equal"},
315 {0,
nullptr, 0,
nullptr,
nullptr},
334 "The minimum value from A and B, min(A,B)"},
339 "The maximum value from A and B, max(A,B)"},
346 "Divide and round result toward zero"},
351 "Divide and floor result, the largest integer smaller than or equal A"},
356 "Divide and ceil result, the smallest integer greater than or equal A"},
362 "Modulo that is periodic for both negative and positive operands"},
368 "Greatest Common Divisor",
369 "The largest positive integer that divides into each of the values A and B, "
370 "e.g. GCD(8,12) = 4"},
374 "Least Common Multiple",
375 "The smallest positive integer that is divisible by both A and B, e.g. LCM(6,10) = 30"},
376 {0,
nullptr, 0,
nullptr,
nullptr},
384 "True when the first input is smaller than second input"},
388 "Less Than or Equal",
389 "True when the first input is smaller than the second input or equal"},
394 "True when the first input is greater than the second input"},
398 "Greater Than or Equal",
399 "True when the first input is greater than the second input or equal"},
400 {
NODE_COMPARE_EQUAL,
"EQUAL", 0,
"Equal",
"True when both inputs are approximately equal"},
405 "True when both inputs are not approximately equal"},
410 "True when the first input is brighter"},
412 {0,
nullptr, 0,
nullptr,
nullptr},
420 "Round the float up or down to the nearest integer"},
425 "Round the float down to the next smallest integer"},
430 "Round the float up to the next largest integer"},
435 "Round the float to the closest integer in the direction of zero (floor if positive; ceiling "
437 {0,
nullptr, 0,
nullptr,
nullptr},
445 "Linear interpolation between From Min and From Max values"},
450 "Stepped linear interpolation between From Min and From Max values"},
455 "Smooth Hermite edge interpolation between From Min and From Max values"},
460 "Smoother Hermite edge interpolation between From Min and From Max values"},
461 {0,
nullptr, 0,
nullptr,
nullptr},
465 {
NODE_CLAMP_MINMAX,
"MINMAX", 0,
"Min Max",
"Constrain value between min and max"},
470 "Constrain value between min and max, swapping arguments when min > max"},
471 {0,
nullptr, 0,
nullptr,
nullptr},
475 {1,
"1D", 0,
"1D",
"Use the scalar value W as input"},
476 {2,
"2D", 0,
"2D",
"Use the 2D vector (X, Y) as input. The Z component is ignored."},
477 {3,
"3D", 0,
"3D",
"Use the 3D vector (X, Y, Z) as input"},
478 {4,
"4D", 0,
"4D",
"Use the 4D vector (X, Y, Z, W) as input"},
479 {0,
nullptr, 0,
nullptr,
nullptr},
483 {0,
"SOFTEN", 0,
"Soften",
""},
484 {1,
"SHARPEN", 0,
"Box Sharpen",
"An aggressive sharpening filter"},
485 {7,
"SHARPEN_DIAMOND", 0,
"Diamond Sharpen",
"A moderate sharpening filter"},
486 {2,
"LAPLACE", 0,
"Laplace",
""},
487 {3,
"SOBEL", 0,
"Sobel",
""},
488 {4,
"PREWITT", 0,
"Prewitt",
""},
489 {5,
"KIRSCH", 0,
"Kirsch",
""},
490 {6,
"SHADOW", 0,
"Shadow",
""},
491 {0,
nullptr, 0,
nullptr,
nullptr},
499 "The handle can be moved anywhere, and doesn't influence the point's other handle"},
504 "The location is automatically calculated to be smooth"},
509 "The location is calculated to point to the next/previous control point"},
514 "The location is constrained to point in the opposite direction as the other handle"},
515 {0,
nullptr, 0,
nullptr,
nullptr}};
520 {0,
nullptr, 0,
nullptr,
nullptr}};
527 "Use RGB (Red, Green, Blue) color processing"},
532 "Use HSV (Hue, Saturation, Value) color processing"},
537 "Use HSL (Hue, Saturation, Lightness) color processing"},
538 {0,
nullptr, 0,
nullptr,
nullptr},
546 {0,
nullptr, 0,
nullptr,
nullptr},
553 {0,
nullptr, 0,
nullptr,
nullptr},
562 {0,
nullptr, 0,
nullptr,
nullptr},
569 {0,
nullptr, 0,
nullptr,
nullptr},
577 {0,
nullptr, 0,
nullptr,
nullptr},
585 "Use shaders for all renderers and viewports, unless there exists a more specific output"},
588 {0,
nullptr, 0,
nullptr,
nullptr},
592 {0,
"CryptoObject", 0,
"Object",
"Use Object layer"},
593 {1,
"CryptoMaterial", 0,
"Material",
"Use Material layer"},
594 {2,
"CryptoAsset", 0,
"Asset",
"Use Asset layer"},
595 {0,
nullptr, 0,
nullptr,
nullptr},
608# include <fmt/format.h>
682extern FunctionRNA rna_NodeTree_get_from_context_func;
683extern FunctionRNA rna_NodeTree_valid_socket_type_func;
701 for (
const int i :
types.index_range()) {
703 if (nt->
idname == idname) {
713 return types.index_range().contains(value) ?
types[value] :
nullptr;
725 for (
const int i :
types.index_range()) {
727 if (poll && !poll(
data, nt)) {
772 return types.index_range().contains(value) ?
types[value] :
nullptr;
785 for (
const int i :
types.index_range()) {
787 if (poll && !poll(
data, stype)) {
812static const char *get_legacy_node_type(
const PointerRNA *
ptr)
820 return "CUSTOM GROUP";
825 if (ntype->enum_name_legacy) {
826 return ntype->enum_name_legacy;
828 return ntype->idname.c_str();
833 const char *legacy_type = get_legacy_node_type(
ptr);
835 return strlen(legacy_type);
840 const char *legacy_type = get_legacy_node_type(
ptr);
842 strcpy(value, legacy_type);
845static void rna_Node_bl_idname_get(
PointerRNA *
ptr,
char *value)
856 return ntype->idname.size();
859static void rna_Node_bl_idname_set(
PointerRNA *
ptr,
const char *value)
863 ntype->idname = value;
866static void rna_Node_bl_label_get(
PointerRNA *
ptr,
char *value)
877 return ntype->ui_name.size();
880static void rna_Node_bl_label_set(
PointerRNA *
ptr,
const char *value)
884 ntype->ui_name = value;
887static void rna_Node_bl_description_get(
PointerRNA *
ptr,
char *value)
898 return ntype->ui_description.size();
901static void rna_Node_bl_description_set(
PointerRNA *
ptr,
const char *value)
905 ntype->ui_description = value;
913static void rna_Node_location_get(
PointerRNA *
ptr,
float *value)
919static void move_child_nodes(
bNode &node,
const float2 &delta)
921 for (
bNode *child : node.direct_children_in_frame()) {
922 child->location[0] += delta.
x;
923 child->location[1] += delta.
y;
924 if (child->is_frame()) {
925 move_child_nodes(*child, delta);
930static void rna_Node_location_set(
PointerRNA *
ptr,
const float *value)
933 const float2 new_location =
float2(value) + node_parent_offset(*node);
934 if (node->is_frame()) {
947 if (ntree->
typeinfo->rna_ext.srna) {
948 return ntree->
typeinfo->rna_ext.srna;
951 return &RNA_NodeTree;
964 func = &rna_NodeTree_poll_func;
971 visible = *
static_cast<bool *
>(
ret);
978static void rna_NodeTree_update_reg(
bNodeTree *ntree)
984 func = &rna_NodeTree_update_func;
987 ntree->
typeinfo->rna_ext.call(
nullptr, &
ptr, func, &list);
992static void rna_NodeTree_get_from_context(
const bContext *
C,
1000 void *ret1, *ret2, *ret3;
1005 func = &rna_NodeTree_get_from_context_func;
1015 *r_id = *(
ID **)ret2;
1016 *r_from = *(
ID **)ret3;
1031 func = &rna_NodeTree_valid_socket_type_func;
1038 valid = *
static_cast<bool *
>(
ret);
1045static bool rna_NodeTree_unregister(
Main *bmain,
StructRNA *type)
1068 const char *identifier,
1075 bool have_function[4];
1083 if (validate(&dummy_ntree_ptr,
data, have_function) != 0) {
1087 if (strlen(identifier) >=
sizeof(dummy_ntree.
idname)) {
1090 "Registering node tree class: '%s' is too long, maximum length is %d",
1092 int(
sizeof(dummy_ntree.
idname)));
1101 "Registering node tree class: '%s', bl_idname '%s' has been registered before, "
1102 "unregistering previous",
1104 dummy_nt.
idname.c_str());
1107 if (!rna_NodeTree_unregister(bmain, nt->
rna_ext.
srna)) {
1110 "Registering node tree class: '%s', bl_idname '%s' could not be unregistered",
1112 dummy_nt.
idname.c_str());
1118 nt = MEM_new<blender::bke::bNodeTreeType>(__func__, dummy_nt);
1131 nt->
poll = (have_function[0]) ? rna_NodeTree_poll :
nullptr;
1132 nt->
update = (have_function[1]) ? rna_NodeTree_update_reg :
nullptr;
1150 "Node tree '%s' has undefined type %s",
1173 rna_NodeTree_update(bmain, scene,
ptr);
1238 if (!rna_NodeTree_check(ntree,
reports)) {
1251 const char *disabled_hint =
nullptr;
1252 if (ntype->
poll && !ntype->
poll(ntype, ntree, &disabled_hint)) {
1253 if (disabled_hint) {
1256 "Cannot add node of type %s to node tree '%s'\n %s",
1265 "Cannot add node of type %s to node tree '%s'",
1286static void rna_NodeTree_node_remove(
bNodeTree *ntree,
1293 if (!rna_NodeTree_check(ntree,
reports)) {
1314 if (!rna_NodeTree_check(ntree,
reports)) {
1351 for (
bNode *other_node : ntree->all_nodes()) {
1352 if (other_node->type_legacy == node->type_legacy) {
1366static void node_viewer_set_shortcut_fn(
bNode *node,
bNodeTree &ntree,
int value)
1369 for (
bNode *other_node : ntree.all_nodes()) {
1370 if ((other_node->is_type(
"CompositorNodeViewer") ||
1371 other_node->is_type(
"GeometryNodeViewer")) &&
1372 other_node->custom1 == value)
1383 bNodeTree &ntree = curr_node->owner_tree();
1385 node_viewer_set_shortcut_fn(curr_node, ntree, value);
1397 bNodeTree &ntree = curr_node->owner_tree();
1399 node_viewer_set_shortcut_fn(curr_node, ntree, value);
1408 bool handle_dynamic_sockets)
1410 if (!rna_NodeTree_check(ntree,
reports)) {
1419 if (!fromnode || !tonode) {
1429 std::swap(fromsock, tosock);
1430 std::swap(fromnode, tonode);
1433 if (handle_dynamic_sockets) {
1437 new_link.
tonode = tonode;
1438 new_link.
tosock = tosock;
1440 if (fromnode->
typeinfo->insert_link) {
1441 if (!fromnode->
typeinfo->insert_link(ntree, fromnode, &new_link)) {
1445 if (tonode->
typeinfo->insert_link) {
1446 if (!tonode->
typeinfo->insert_link(ntree, tonode, &new_link)) {
1452 tosock = new_link.
tosock;
1455 if (verify_limits) {
1469 if (link->fromsock == fromsock && link->tosock == tosock) {
1488static void rna_NodeTree_link_remove(
bNodeTree *ntree,
1495 if (!rna_NodeTree_check(ntree,
reports)) {
1515 if (!rna_NodeTree_check(ntree,
reports)) {
1535static void rna_NodeTree_bl_idname_get(
PointerRNA *
ptr,
char *value)
1546 return ntype->idname.size();
1549static void rna_NodeTree_bl_idname_set(
PointerRNA *
ptr,
const char *value)
1553 ntype->idname = value;
1556static void rna_NodeTree_bl_label_get(
PointerRNA *
ptr,
char *value)
1567 return ntype->ui_name.size();
1570static void rna_NodeTree_bl_label_set(
PointerRNA *
ptr,
const char *value)
1574 ntype->ui_name = value;
1577static void rna_NodeTree_bl_description_get(
PointerRNA *
ptr,
char *value)
1584static int rna_NodeTree_bl_description_length(
PointerRNA *
ptr)
1588 return ntype->ui_description.size();
1591static void rna_NodeTree_bl_description_set(
PointerRNA *
ptr,
const char *value)
1595 ntype->ui_description = value;
1598static void rna_NodeTree_debug_lazy_function_graph(
bNodeTree *
tree,
1610 std::lock_guard
lock{
tree->runtime->geometry_nodes_lazy_function_graph_info_mutex};
1611 if (!
tree->runtime->geometry_nodes_lazy_function_graph_info) {
1614 std::string dot_str =
tree->runtime->geometry_nodes_lazy_function_graph_info->graph.to_dot();
1616 *r_len = dot_str.size();
1619static void rna_NodeTree_debug_zone_body_lazy_function_graph(
1630 std::lock_guard
lock{
tree->runtime->geometry_nodes_lazy_function_graph_info_mutex};
1631 if (!
tree->runtime->geometry_nodes_lazy_function_graph_info) {
1634 const auto *graph =
tree->runtime->geometry_nodes_lazy_function_graph_info
1635 ->debug_zone_body_graphs.lookup_default(node->
identifier,
nullptr);
1639 std::string dot_str = graph->to_dot();
1641 *r_len = dot_str.size();
1644static void rna_NodeTree_debug_zone_lazy_function_graph(
1657 tree->runtime->logged_zone_graphs = std::make_unique<blender::bke::LoggedZoneGraphs>();
1666 std::optional<std::string> dot_str =
tree->runtime->logged_zone_graphs->graph_by_zone_id.pop_try(
1672 *r_len = dot_str->size();
1690static void rna_NodeLink_swap_multi_input_sort_id(
1712 if (node->
typeinfo->rna_ext.srna) {
1713 return node->
typeinfo->rna_ext.srna;
1720static std::optional<std::string> rna_Node_path(
const PointerRNA *
ptr)
1723 char name_esc[
sizeof(node->
name) * 2];
1726 return fmt::format(
"nodes[\"{}\"]", name_esc);
1733 return std::nullopt;
1740 if (&
data->iuser !=
ptr->data) {
1747 if (&
data->iuser !=
ptr->data) {
1756 char name_esc[
sizeof(node->
name) * 2];
1758 return fmt::format(
"nodes[\"{}\"].image_user", name_esc);
1761 return std::nullopt;
1774 func = &rna_Node_poll_func;
1781 visible = *
static_cast<bool *
>(
ret);
1788static bool rna_Node_poll_instance(
const bNode *node,
1798 nullptr, node->
typeinfo->rna_ext.srna,
const_cast<bNode *
>(node));
1799 func = &rna_Node_poll_instance_func;
1803 node->
typeinfo->rna_ext.call(
nullptr, &
ptr, func, &list);
1806 visible = *
static_cast<bool *
>(
ret);
1813static bool rna_Node_poll_instance_default(
const bNode *node,
1815 const char **disabled_info)
1818 return rna_Node_poll(node->
typeinfo, ntree, disabled_info);
1827 reinterpret_cast<ID *
>(ntree), node->
typeinfo->rna_ext.srna, node);
1828 func = &rna_Node_update_func;
1831 node->
typeinfo->rna_ext.call(
nullptr, &
ptr, func, &list);
1842 reinterpret_cast<ID *
>(ntree), node->
typeinfo->rna_ext.srna, node);
1843 func = &rna_Node_insert_link_func;
1847 node->
typeinfo->rna_ext.call(
nullptr, &
ptr, func, &list);
1859 func = &rna_Node_init_func;
1873 func = &rna_Node_copy_func;
1877 node->
typeinfo->rna_ext.call(
nullptr,
ptr, func, &list);
1888 func = &rna_Node_free_func;
1891 node->
typeinfo->rna_ext.call(
nullptr,
ptr, func, &list);
1902 func = &rna_Node_draw_buttons_func;
1918 func = &rna_Node_draw_buttons_ext_func;
1928static void rna_Node_draw_label(
const bNodeTree *ntree,
1938 func = &rna_Node_draw_label_func;
1941 const_cast<ID *
>(&ntree->
id), &RNA_Node,
const_cast<bNode *
>(node));
1943 node->
typeinfo->rna_ext.call(
nullptr, &
ptr, func, &list);
1946 rlabel =
static_cast<char *
>(
ret);
1947 BLI_strncpy(label, rlabel !=
nullptr ? rlabel :
"", label_maxncpy);
1952static bool rna_Node_is_registered_node_type(
StructRNA *type)
1966static void rna_Node_is_registered_node_type_runtime(
bContext * ,
1975static bool rna_Node_unregister(
Main *bmain,
StructRNA *type)
1980 if (!nt || rna_Node_is_builtin(nt)) {
2003 const char *identifier,
2009 bNode dummy_node = {};
2012 bool have_function[10];
2023 if (validate(&dummy_node_ptr,
data, have_function) != 0) {
2027 if (strlen(identifier) >=
sizeof(dummy_node.
idname)) {
2030 "Registering node class: '%s' is too long, maximum length is %d",
2032 int(
sizeof(dummy_node.
idname)));
2040 if (rna_Node_is_builtin(nt)) {
2043 "Registering node class: '%s', bl_idname '%s' is a builtin node",
2045 dummy_nt.
idname.c_str());
2051 "Registering node class: '%s', bl_idname '%s' has been registered before, "
2052 "unregistering previous",
2054 dummy_nt.
idname.c_str());
2057 if (!rna_Node_unregister(bmain, nt->
rna_ext.
srna)) {
2060 "Registering node class: '%s', bl_idname '%s' could not be unregistered",
2062 dummy_nt.
idname.c_str());
2068 nt = MEM_new<blender::bke::bNodeType>(__func__, dummy_nt);
2081 nt->
rna_ext.
srna,
"is_registered_node_type", rna_Node_is_registered_node_type_runtime);
2090 nt->
poll = (have_function[0]) ? rna_Node_poll :
nullptr;
2091 nt->
poll_instance = (have_function[1]) ? rna_Node_poll_instance : rna_Node_poll_instance_default;
2117 const char *identifier,
2144 if (value_supported(item)) {
2153static bool geometry_node_asset_trait_flag_get(
PointerRNA *
ptr,
2163static void geometry_node_asset_trait_flag_set(
PointerRNA *
ptr,
2174static bool rna_GeometryNodeTree_is_tool_get(
PointerRNA *
ptr)
2178static void rna_GeometryNodeTree_is_tool_set(
PointerRNA *
ptr,
bool value)
2183static bool rna_GeometryNodeTree_is_modifier_get(
PointerRNA *
ptr)
2187static void rna_GeometryNodeTree_is_modifier_set(
PointerRNA *
ptr,
bool value)
2192static bool rna_GeometryNodeTree_is_mode_object_get(
PointerRNA *
ptr)
2196static void rna_GeometryNodeTree_is_mode_object_set(
PointerRNA *
ptr,
bool value)
2201static bool rna_GeometryNodeTree_is_mode_edit_get(
PointerRNA *
ptr)
2205static void rna_GeometryNodeTree_is_mode_edit_set(
PointerRNA *
ptr,
bool value)
2210static bool rna_GeometryNodeTree_is_mode_sculpt_get(
PointerRNA *
ptr)
2214static void rna_GeometryNodeTree_is_mode_sculpt_set(
PointerRNA *
ptr,
bool value)
2219static bool rna_GeometryNodeTree_is_mode_paint_get(
PointerRNA *
ptr)
2223static void rna_GeometryNodeTree_is_mode_paint_set(
PointerRNA *
ptr,
bool value)
2228static bool rna_GeometryNodeTree_is_type_mesh_get(
PointerRNA *
ptr)
2232static void rna_GeometryNodeTree_is_type_mesh_set(
PointerRNA *
ptr,
bool value)
2237static bool rna_GeometryNodeTree_is_type_curve_get(
PointerRNA *
ptr)
2241static void rna_GeometryNodeTree_is_type_curve_set(
PointerRNA *
ptr,
bool value)
2246static bool rna_GeometryNodeTree_is_type_pointcloud_get(
PointerRNA *
ptr)
2250static void rna_GeometryNodeTree_is_type_pointcloud_set(
PointerRNA *
ptr,
bool value)
2255static bool rna_GeometryNodeTree_use_wait_for_click_get(
PointerRNA *
ptr)
2259static void rna_GeometryNodeTree_use_wait_for_click_set(
PointerRNA *
ptr,
bool value)
2264static bool rna_GeometryNodeTree_is_type_grease_pencil_get(
PointerRNA *
ptr)
2268static void rna_GeometryNodeTree_is_type_grease_pencil_set(
PointerRNA *
ptr,
bool value)
2300static bool generic_attribute_type_supported_with_socket(
const EnumPropertyItem *item)
2306static const EnumPropertyItem *rna_GeometryNodeAttributeType_type_with_socket_itemf(
2311 generic_attribute_type_supported_with_socket);
2314static const EnumPropertyItem *rna_GeometryNodeAttributeDomain_attribute_domain_itemf(
2335 const char *identifier,
2341 bmain,
reports, &RNA_ShaderNode,
data, identifier, validate, call,
free);
2357 const char *identifier,
2363 bmain,
reports, &RNA_CompositorNode,
data, identifier, validate, call,
free);
2379 const char *identifier,
2385 bmain,
reports, &RNA_TextureNode,
data, identifier, validate, call,
free);
2401 const char *identifier,
2407 bmain,
reports, &RNA_GeometryNode,
data, identifier, validate, call,
free);
2423 const char *identifier,
2429 bmain,
reports, &RNA_FunctionNode,
data, identifier, validate, call,
free);
2462 if (!parent->is_frame()) {
2487static bool allow_identifier_lookup(
const bNode &node)
2505 if (allow_identifier_lookup(node)) {
2507 if (socket->is_available()) {
2508 if (socket->identifier == key) {
2515 if (socket->is_available()) {
2516 if (socket->name == key) {
2552 if (!parent->is_frame()) {
2589static void rna_Node_name_set(
PointerRNA *
ptr,
const char *value)
2593 char oldname[
sizeof(node->
name)];
2610 const int nclass = node->
typeinfo->ui_class ==
nullptr ? node->
typeinfo->nclass :
2653static bool allow_adding_sockets(
const bNode &node)
2658static bool allow_changing_sockets(
bNode *node)
2669 const char *identifier,
2670 const bool use_multi_input)
2672 if (!allow_adding_sockets(*node)) {
2676 if (identifier ==
nullptr) {
2683 *ntree, *node,
SOCK_IN, type, identifier, name);
2685 if (sock ==
nullptr) {
2689 if (use_multi_input) {
2705 const char *identifier,
2706 const bool use_multi_input)
2708 if (!allow_adding_sockets(*node)) {
2713 if (use_multi_input) {
2718 if (identifier ==
nullptr) {
2725 *ntree, *node,
SOCK_OUT, type, identifier, name);
2727 if (sock ==
nullptr) {
2738static void rna_Node_socket_remove(
2741 if (!allow_changing_sockets(node)) {
2761 if (!allow_changing_sockets(node)) {
2770 nextsock = sock->
next;
2780 if (!allow_changing_sockets(node)) {
2789 nextsock = sock->
next;
2797static void rna_Node_inputs_move(
2800 if (!allow_changing_sockets(node)) {
2808 if (from_index == to_index) {
2811 if (from_index < 0 || to_index < 0) {
2816 if (to_index < from_index) {
2836static void rna_Node_outputs_move(
2839 if (!allow_changing_sockets(node)) {
2847 if (from_index == to_index) {
2850 if (from_index < 0 || to_index < 0) {
2855 if (to_index < from_index) {
2875static void rna_Node_width_range(
2883static void rna_Node_height_range(
2891static void rna_Node_dimensions_get(
PointerRNA *
ptr,
float *value)
2895 value[0] = dimensions[0];
2896 value[1] = dimensions[1];
2901static void rna_NodeInternalSocketTemplate_name_get(
PointerRNA *
ptr,
char *value)
2905 strcpy(value, stemp->
name);
2908static int rna_NodeInternalSocketTemplate_name_length(
PointerRNA *
ptr)
2912 return strlen(stemp->
name);
2915static void rna_NodeInternalSocketTemplate_identifier_get(
PointerRNA *
ptr,
char *value)
2922static int rna_NodeInternalSocketTemplate_identifier_length(
PointerRNA *
ptr)
2929static int rna_NodeInternalSocketTemplate_type_get(
PointerRNA *
ptr)
2940 if (ntype && ntype->
inputs) {
2947 if (
i == index && stemp->
type >= 0) {
2949 nullptr, &RNA_NodeInternalSocketTemplate, stemp);
2960 if (ntype && ntype->
outputs) {
2967 if (
i == index && stemp->
type >= 0) {
2969 nullptr, &RNA_NodeInternalSocketTemplate, stemp);
2980 const char *disabled_hint;
2981 return ntype && (!ntype->
poll || ntype->
poll(ntype, ntree, &disabled_hint));
2984static bool rna_NodeInternal_poll_instance(
bNode *node,
bNodeTree *ntree)
2987 const char *disabled_hint;
2993 return !ntype->
poll || ntype->
poll(ntype, ntree, &disabled_hint);
2997static void rna_NodeInternal_update(
ID *
id,
bNode *node,
Main *bmain)
3006 if (node->
typeinfo->draw_buttons) {
3014 if (node->
typeinfo->draw_buttons_ex) {
3018 else if (node->
typeinfo->draw_buttons) {
3027 const char *identifier,
3033 bmain,
reports, &RNA_NodeCustomGroup,
data, identifier, validate, call,
free);
3046static StructRNA *rna_GeometryNodeCustomGroup_register(
Main *bmain,
3049 const char *identifier,
3055 bmain,
reports, &RNA_GeometryNodeCustomGroup,
data, identifier, validate, call,
free);
3074static StructRNA *rna_ShaderNodeCustomGroup_register(
Main *bmain,
3077 const char *identifier,
3083 bmain,
reports, &RNA_ShaderNodeCustomGroup,
data, identifier, validate, call,
free);
3100static StructRNA *rna_CompositorNodeCustomGroup_register(
Main *bmain,
3103 const char *identifier,
3109 bmain,
reports, &RNA_CompositorNodeCustomGroup,
data, identifier, validate, call,
free);
3125static void rna_CompositorNode_tag_need_exec(
bNode *node)
3159 const char *disabled_hint =
nullptr;
3168 node->
id = &ngroup->id;
3182 const char *disabled_hint =
nullptr;
3195 node->
id =
static_cast<ID *
>(value.
data);
3217 if (scene !=
nullptr && scene->
nodetree !=
nullptr) {
3226 int i = 0, totitem = 0;
3232 if (rl->
name[0] ==
'\0') {
3255 const auto rotation_supported_mix = [&](
const EnumPropertyItem *item) ->
bool {
3285 if (ima ==
nullptr || ima->rr ==
nullptr) {
3290 rl =
static_cast<RenderLayer *
>(ima->rr->layers.first);
3291 item = renderresult_layers_add_enum(rl);
3309 if (!ima || !(ima->rr)) {
3327 if (!ima || !(ima->rr)) {
3338 int i = 1, totitem = 0;
3347 if (rv->
name[0] ==
'\0') {
3379 if (ima ==
nullptr || ima->rr ==
nullptr) {
3384 rv =
static_cast<RenderView *
>(ima->rr->views.first);
3385 item = renderresult_views_add_enum(rv);
3402 if (sce ==
nullptr) {
3407 rl =
static_cast<RenderLayer *
>(sce->view_layers.first);
3408 item = renderresult_layers_add_enum(rl);
3418 if (scene !=
nullptr && scene->
nodetree !=
nullptr) {
3535 ptr->owner_id, &RNA_NodeSocket,
input);
3539static void rna_NodeGlare_threshold_set(
PointerRNA *
ptr,
const float value)
3544 ptr->owner_id, &RNA_NodeSocket,
input);
3553 ptr->owner_id, &RNA_NodeSocket,
input);
3554 return RNA_float_get(&input_rna_pointer,
"default_value") - 1;
3557static void rna_NodeGlare_mix_set(
PointerRNA *
ptr,
const float value)
3562 ptr->owner_id, &RNA_NodeSocket,
input);
3564 RNA_float_set(&input_rna_pointer,
"default_value", mix_value);
3572 ptr->owner_id, &RNA_NodeSocket,
input);
3573 const float size_value =
RNA_float_get(&input_rna_pointer,
"default_value");
3574 if (size_value == 0.0f) {
3580static void rna_NodeGlare_size_set(
PointerRNA *
ptr,
const int value)
3585 ptr->owner_id, &RNA_NodeSocket,
input);
3587 RNA_float_set(&input_rna_pointer,
"default_value", size_value);
3595 ptr->owner_id, &RNA_NodeSocket,
input);
3599static void rna_NodeGlare_streaks_set(
PointerRNA *
ptr,
const int value)
3604 ptr->owner_id, &RNA_NodeSocket,
input);
3613 ptr->owner_id, &RNA_NodeSocket,
input);
3617static void rna_NodeGlare_angle_offset_set(
PointerRNA *
ptr,
const float value)
3622 ptr->owner_id, &RNA_NodeSocket,
input);
3631 ptr->owner_id, &RNA_NodeSocket,
input);
3635static void rna_NodeGlare_iterations_set(
PointerRNA *
ptr,
const int value)
3640 ptr->owner_id, &RNA_NodeSocket,
input);
3649 ptr->owner_id, &RNA_NodeSocket,
input);
3653static void rna_NodeGlare_fade_set(
PointerRNA *
ptr,
const float value)
3658 ptr->owner_id, &RNA_NodeSocket,
input);
3662static float rna_NodeGlare_color_modulation_get(
PointerRNA *
ptr)
3667 ptr->owner_id, &RNA_NodeSocket,
input);
3671static void rna_NodeGlare_color_modulation_set(
PointerRNA *
ptr,
const float value)
3676 ptr->owner_id, &RNA_NodeSocket,
input);
3685 ptr->owner_id, &RNA_NodeSocket,
input);
3690static void rna_NodeSplit_factor_set(
PointerRNA *
ptr,
const int value)
3695 ptr->owner_id, &RNA_NodeSocket,
input);
3700static float rna_NodeAntiAlias_contrast_limit_get(
PointerRNA *
ptr)
3705 ptr->owner_id, &RNA_NodeSocket,
input);
3708 RNA_float_get(&input_rna_pointer,
"default_value") / 10.0f, 0.0f, 1.0f);
3711static void rna_NodeAntiAlias_contrast_limit_set(
PointerRNA *
ptr,
const float value)
3716 ptr->owner_id, &RNA_NodeSocket,
input);
3718 RNA_float_set(&input_rna_pointer,
"default_value", value * 10.0f);
3726 ptr->owner_id, &RNA_NodeSocket,
input);
3728 return RNA_float_get(&input_rna_pointer,
"default_value") / 2.0f;
3731static void rna_NodeVectorBlur_shutter_set(
PointerRNA *
ptr,
const float value)
3736 ptr->owner_id, &RNA_NodeSocket,
input);
3738 RNA_float_set(&input_rna_pointer,
"default_value", value * 2.0f);
3741static float rna_NodeColorSpill_unspill_red_get(
PointerRNA *
ptr)
3746 ptr->owner_id, &RNA_NodeSocket,
input);
3747 float spill_strength[4];
3749 return spill_strength[0];
3752static void rna_NodeColorSpill_unspill_red_set(
PointerRNA *
ptr,
const float value)
3757 ptr->owner_id, &RNA_NodeSocket,
input);
3758 float spill_strength[4];
3760 spill_strength[0] = value;
3764static float rna_NodeColorSpill_unspill_green_get(
PointerRNA *
ptr)
3769 ptr->owner_id, &RNA_NodeSocket,
input);
3770 float spill_strength[4];
3772 return spill_strength[1];
3775static void rna_NodeColorSpill_unspill_green_set(
PointerRNA *
ptr,
const float value)
3780 ptr->owner_id, &RNA_NodeSocket,
input);
3781 float spill_strength[4];
3783 spill_strength[1] = value;
3787static float rna_NodeColorSpill_unspill_blue_get(
PointerRNA *
ptr)
3792 ptr->owner_id, &RNA_NodeSocket,
input);
3793 float spill_strength[4];
3795 return spill_strength[2];
3798static void rna_NodeColorSpill_unspill_blue_set(
PointerRNA *
ptr,
const float value)
3803 ptr->owner_id, &RNA_NodeSocket,
input);
3804 float spill_strength[4];
3806 spill_strength[2] = value;
3810static bool rna_NodeLensDistortion_projector_get(
PointerRNA *
ptr)
3815static void rna_NodeLensDistortion_projector_set(
PointerRNA *
ptr,
const bool value)
3822static float rna_NodeDirectionalBlur_scale_get(
PointerRNA *
ptr)
3827 ptr->owner_id, &RNA_NodeSocket,
input);
3829 return RNA_float_get(&input_rna_pointer,
"default_value") - 1.0f;
3832static void rna_NodeDirectionalBlur_scale_set(
PointerRNA *
ptr,
const float value)
3837 ptr->owner_id, &RNA_NodeSocket,
input);
3839 RNA_float_set(&input_rna_pointer,
"default_value", value + 1.0f);
3842static float rna_NodeBilateralBlur_threshold_get(
PointerRNA *
ptr)
3847 ptr->owner_id, &RNA_NodeSocket,
input);
3849 return RNA_float_get(&input_rna_pointer,
"default_value") * 3.0f;
3852static void rna_NodeBilateralBlur_threshold_set(
PointerRNA *
ptr,
const float value)
3857 ptr->owner_id, &RNA_NodeSocket,
input);
3859 RNA_float_set(&input_rna_pointer,
"default_value", value / 3.0f);
3862static float rna_NodeBilateralBlur_sigma_space_get(
PointerRNA * )
3868static void rna_NodeBilateralBlur_sigma_space_set(
PointerRNA *
ptr,
const float value)
3873 ptr->owner_id, &RNA_NodeSocket,
input);
3876 RNA_int_set(&input_rna_pointer,
"default_value",
size +
int(std::ceil(value)));
3884 ptr->owner_id, &RNA_NodeSocket,
input);
3888static void rna_NodeCrop_use_crop_size_set(
PointerRNA *
ptr,
const bool value)
3893 ptr->owner_id, &RNA_NodeSocket,
input);
3903 ptr->owner_id, &RNA_NodeSocket, x_input);
3905 ptr->owner_id, &RNA_NodeSocket, width_input);
3906 return RNA_int_get(&x_input_rna_pointer,
"default_value") +
3907 RNA_int_get(&width_input_rna_pointer,
"default_value");
3910static void rna_NodeCrop_max_x_set(
PointerRNA *
ptr,
const int value)
3916 ptr->owner_id, &RNA_NodeSocket, x_input);
3918 ptr->owner_id, &RNA_NodeSocket, width_input);
3921 value -
RNA_int_get(&x_input_rna_pointer,
"default_value"));
3930 ptr->owner_id, &RNA_NodeSocket, y_input);
3932 ptr->owner_id, &RNA_NodeSocket, height_input);
3933 return RNA_int_get(&y_input_rna_pointer,
"default_value") +
3934 RNA_int_get(&height_input_rna_pointer,
"default_value");
3937static void rna_NodeCrop_min_y_set(
PointerRNA *
ptr,
const int value)
3943 ptr->owner_id, &RNA_NodeSocket, y_input);
3945 ptr->owner_id, &RNA_NodeSocket, height_input);
3948 value -
RNA_int_get(&y_input_rna_pointer,
"default_value"));
3956 ptr->owner_id, &RNA_NodeSocket,
input);
3960static void rna_NodeCrop_use_bokeh_set(
PointerRNA *
ptr,
const bool value)
3965 ptr->owner_id, &RNA_NodeSocket,
input);
3976static void rna_NodeCrop_size_x_set(
PointerRNA *
ptr,
const int value)
3990static void rna_NodeCrop_size_y_set(
PointerRNA *
ptr,
const int value)
4004 if (flip_x && flip_y) {
4015static void rna_NodeFlip_axis_set(
PointerRNA *
ptr,
const int value)
4026template<
typename T, const
char *
identifier>
4032 ptr->owner_id, &RNA_NodeSocket,
input);
4033 if constexpr (std::is_same_v<T, bool>) {
4036 else if constexpr (std::is_same_v<T, int>) {
4037 return RNA_int_get(&input_rna_pointer,
"default_value");
4039 else if constexpr (std::is_same_v<T, float>) {
4050template<
typename T, const
char *
identifier>
4051static void rna_node_property_to_input_setter(
PointerRNA *
ptr,
const T value)
4056 ptr->owner_id, &RNA_NodeSocket,
input);
4057 if constexpr (std::is_same_v<T, bool>) {
4060 else if constexpr (std::is_same_v<T, int>) {
4061 RNA_int_set(&input_rna_pointer,
"default_value", value);
4063 else if constexpr (std::is_same_v<T, float>) {
4073template<
typename T, const
char *
identifier>
4074static void rna_node_array_property_to_input_getter(
PointerRNA *
ptr,
T *value)
4079 ptr->owner_id, &RNA_NodeSocket,
input);
4080 if constexpr (std::is_same_v<T, bool>) {
4083 else if constexpr (std::is_same_v<T, int>) {
4086 else if constexpr (std::is_same_v<T, float>) {
4097template<
typename T, const
char *
identifier>
4098static void rna_node_array_property_to_input_setter(
PointerRNA *
ptr,
const T *value)
4103 ptr->owner_id, &RNA_NodeSocket,
input);
4104 if constexpr (std::is_same_v<T, bool>) {
4107 else if constexpr (std::is_same_v<T, int>) {
4110 else if constexpr (std::is_same_v<T, float>) {
4120template<const
char *
identifier,
int index>
4121static float rna_node_property_to_vector_input_getter(
PointerRNA *
ptr)
4126 ptr->owner_id, &RNA_NodeSocket,
input);
4135template<const
char *
identifier,
int index>
4136static void rna_node_property_to_vector_input_setter(
PointerRNA *
ptr,
const float value)
4141 ptr->owner_id, &RNA_NodeSocket,
input);
4153static const char node_input_diagonal_star[] =
"Diagonal Star";
4156static const char node_input_flaps[] =
"Flaps";
4157static const char node_input_angle[] =
"Angle";
4158static const char node_input_roundness[] =
"Roundness";
4159static const char node_input_catadioptric_size[] =
"Catadioptric Size";
4160static const char node_input_color_shift[] =
"Color Shift";
4163static const char node_input_start_frame[] =
"Start Frame";
4164static const char node_input_end_frame[] =
"End Frame";
4167static const char node_input_size_x[] =
"Size X";
4168static const char node_input_size_y[] =
"Size Y";
4169static const char node_input_feather[] =
"Feather";
4170static const char node_input_motion_blur[] =
"Motion Blur";
4171static const char node_input_motion_blur_samples[] =
"Motion Blur Samples";
4172static const char node_input_motion_blur_shutter[] =
"Motion Blur Shutter";
4175static const char node_input_switch[] =
"Switch";
4178static const char node_input_invert_color[] =
"Invert Color";
4179static const char node_input_invert_alpha[] =
"Invert Alpha";
4182static const char node_input_use_alpha[] =
"Use Alpha";
4183static const char node_input_anti_alias[] =
"Anti-Alias";
4186static const char node_input_key[] =
"Key";
4187static const char node_input_balance[] =
"Balance";
4188static const char node_input_gamma[] =
"Gamma";
4189static const char node_input_intensity[] =
"Intensity";
4190static const char node_input_contrast[] =
"Contrast";
4191static const char node_input_light_adaptation[] =
"Light Adaptation";
4192static const char node_input_chromatic_adaptation[] =
"Chromatic Adaptation";
4195static const char node_input_size[] =
"Size";
4196static const char node_input_falloff_size[] =
"Falloff Size";
4199static const char node_input_high_precision[] =
"High Precision";
4200static const char node_input_uniformity[] =
"Uniformity";
4201static const char node_input_sharpness[] =
"Sharpness";
4202static const char node_input_eccentricity[] =
"Eccentricity";
4205static const char node_input_color_threshold[] =
"Color Threshold";
4206static const char node_input_neighbor_threshold[] =
"Neighbor Threshold";
4209static const char node_input_hdr[] =
"HDR";
4212static const char node_input_threshold[] =
"Threshold";
4213static const char node_input_corner_rounding[] =
"Corner Rounding";
4216static const char node_input_samples[] =
"Samples";
4219static const char node_input_minimum[] =
"Minimum";
4220static const char node_input_maximum[] =
"Maximum";
4223static const char node_input_falloff[] =
"Falloff";
4226static const char node_input_hue[] =
"Hue";
4227static const char node_input_saturation[] =
"Saturation";
4228static const char node_input_value[] =
"Value";
4231static const char node_input_tolerance[] =
"Tolerance";
4234static const char node_input_limit_strength[] =
"Limit Strength";
4235static const char node_input_use_spill_strength[] =
"Use Spill Strength";
4236static const char node_input_spill_strength[] =
"Spill Strength";
4239static const char node_input_smoothness[] =
"Smoothness";
4242static const char node_input_preprocess_blur_size[] =
"Preprocess Blur Size";
4243static const char node_input_key_balance[] =
"Key Balance";
4244static const char node_input_edge_search_size[] =
"Edge Search Size";
4245static const char node_input_edge_tolerance[] =
"Edge Tolerance";
4246static const char node_input_black_level[] =
"Black Level";
4247static const char node_input_white_level[] =
"White Level";
4248static const char node_input_postprocess_blur_size[] =
"Postprocess Blur Size";
4249static const char node_input_postprocess_dilate_size[] =
"Postprocess Dilate Size";
4250static const char node_input_postprocess_feather_size[] =
"Postprocess Feather Size";
4251static const char node_input_despill_strength[] =
"Despill Strength";
4252static const char node_input_despill_balance[] =
"Despill Balance";
4255static const char node_input_index[] =
"Index";
4258static const char node_input_invert[] =
"Invert";
4261static const char node_input_master_saturation[] =
"Master Saturation";
4262static const char node_input_master_contrast[] =
"Master Contrast";
4263static const char node_input_master_gamma[] =
"Master Gamma";
4264static const char node_input_master_gain[] =
"Master Gain";
4265static const char node_input_master_lift[] =
"Master Lift";
4266static const char node_input_highlights_saturation[] =
"Highlights Saturation";
4267static const char node_input_highlights_contrast[] =
"Highlights Contrast";
4268static const char node_input_highlights_gamma[] =
"Highlights Gamma";
4269static const char node_input_highlights_gain[] =
"Highlights Gain";
4270static const char node_input_highlights_lift[] =
"Highlights Lift";
4271static const char node_input_midtones_saturation[] =
"Midtones Saturation";
4272static const char node_input_midtones_contrast[] =
"Midtones Contrast";
4273static const char node_input_midtones_gamma[] =
"Midtones Gamma";
4274static const char node_input_midtones_gain[] =
"Midtones Gain";
4275static const char node_input_midtones_lift[] =
"Midtones Lift";
4276static const char node_input_shadows_saturation[] =
"Shadows Saturation";
4277static const char node_input_shadows_contrast[] =
"Shadows Contrast";
4278static const char node_input_shadows_gamma[] =
"Shadows Gamma";
4279static const char node_input_shadows_gain[] =
"Shadows Gain";
4280static const char node_input_shadows_lift[] =
"Shadows Lift";
4281static const char node_input_midtones_start[] =
"Midtones Start";
4282static const char node_input_midtones_end[] =
"Midtones End";
4283static const char node_input_apply_on_red[] =
"Apply On Red";
4284static const char node_input_apply_on_green[] =
"Apply On Green";
4285static const char node_input_apply_on_blue[] =
"Apply On Blue";
4288static const char node_input_fit[] =
"Fit";
4289static const char node_input_jitter[] =
"Jitter";
4292static const char node_input_position[] =
"Position";
4293static const char node_input_rotation[] =
"Rotation";
4296static const char node_input_source[] =
"Source";
4297static const char node_input_length[] =
"Length";
4300static const char node_input_center[] =
"Center";
4301static const char node_input_translation_amount[] =
"Translation Amount";
4302static const char node_input_translation_direction[] =
"Translation Direction";
4305static const char node_input_straight_alpha[] =
"Straight Alpha";
4308static const char node_input_extend_bounds[] =
"Extend Bounds";
4311static const char node_input_x[] =
"X";
4312static const char node_input_y[] =
"Y";
4315static const char node_input_color_lift[] =
"Color Lift";
4316static const char node_input_color_gamma[] =
"Color Gamma";
4317static const char node_input_color_gain[] =
"Color Gain";
4318static const char node_input_color_offset[] =
"Color Offset";
4319static const char node_input_color_power[] =
"Color Power";
4320static const char node_input_color_slope[] =
"Color Slope";
4321static const char node_input_base_offset[] =
"Base Offset";
4322static const char node_input_input_temperature[] =
"Input Temperature";
4323static const char node_input_input_tint[] =
"Input Tint";
4324static const char node_input_output_temperature[] =
"Output Temperature";
4325static const char node_input_output_tint[] =
"Output Tint";
4331static void rna_NodeColorBalance_input_whitepoint_get(
PointerRNA *
ptr,
float value[3])
4335 *node,
SOCK_IN,
"Input Temperature");
4343static void rna_NodeColorBalance_input_whitepoint_set(
PointerRNA *
ptr,
const float value[3])
4347 *node,
SOCK_IN,
"Input Temperature");
4355static void rna_NodeColorBalance_output_whitepoint_get(
PointerRNA *
ptr,
float value[3])
4359 *node,
SOCK_IN,
"Output Temperature");
4367static void rna_NodeColorBalance_output_whitepoint_set(
PointerRNA *
ptr,
const float value[3])
4371 *node,
SOCK_IN,
"Output Temperature");
4379static void rna_NodeCryptomatte_source_set(
PointerRNA *
ptr,
int value)
4382 if (node->
id && node->
custom1 != value) {
4389static int rna_NodeCryptomatte_layer_name_get(
PointerRNA *
ptr)
4395 if (
STREQLEN(storage->layer_name, layer->name,
sizeof(storage->layer_name))) {
4402static void rna_NodeCryptomatte_layer_name_set(
PointerRNA *
ptr,
int new_value)
4427 temp.
value = layer_index;
4476 node->
id =
static_cast<ID *
>(value.
data);
4486static void rna_NodeCryptomatte_matte_get(
PointerRNA *
ptr,
char *value)
4491 strcpy(value, matte_id);
4500 int result = strlen(matte_id);
4505static void rna_NodeCryptomatte_matte_set(
PointerRNA *
ptr,
const char *value)
4530 bNode *output_node = zone_type.get_corresponding_output(*ntree, *node);
4535static bool rna_Node_pair_with_output(
4545 "Can't pair zone input node %s with %s because it does not have the same zone type",
4550 for (
const bNode *other_input_node : ntree->nodes_by_type(zone_type.
input_idname)) {
4551 if (other_input_node != node) {
4555 "The output node %s is already paired with %s",
4557 other_input_node->name);
4571template<
typename Accessor>
4572static void rna_Node_ItemArray_remove(
ID *
id,
4576 typename Accessor::ItemT *item_to_remove)
4579 if (item_to_remove < *ref.items || item_to_remove >= *ref.
items + *ref.
items_num) {
4580 if constexpr (Accessor::has_name) {
4581 char **name_ptr = Accessor::get_name(*item_to_remove);
4582 if (name_ptr && *name_ptr) {
4602template<
typename Accessor>
static void rna_Node_ItemArray_clear(
ID *
id,
bNode *node,
Main *bmain)
4613template<
typename Accessor>
4614static void rna_Node_ItemArray_move(
4615 ID *
id,
bNode *node,
Main *bmain,
const int from_index,
const int to_index)
4619 if (from_index < 0 || to_index < 0 || from_index >= items_num || to_index >= items_num) {
4634 typename Accessor::ItemT *active_item =
nullptr;
4635 const int active_index = *ref.active_index;
4636 const int items_num = *ref.items_num;
4637 if (active_index >= 0 && active_index < items_num) {
4638 active_item = &(*ref.items)[active_index];
4642template<
typename Accessor>
4647 using ItemT =
typename Accessor::ItemT;
4649 ItemT *item =
static_cast<ItemT *
>(value.
data);
4657template<
typename Accessor>
4660 using ItemT =
typename Accessor::ItemT;
4662 ItemT &item = *
static_cast<ItemT *
>(
ptr->data);
4670template<
typename Accessor>
4677 return itemf_function_check(
4683template<
typename Accessor>
4684static void rna_Node_ItemArray_item_name_set(
PointerRNA *
ptr,
const char *value)
4686 using ItemT =
typename Accessor::ItemT;
4688 ItemT &item = *
static_cast<ItemT *
>(
ptr->data);
4694template<
typename Accessors>
4695static void rna_Node_ItemArray_item_color_get(
PointerRNA *
ptr,
float *values)
4697 using ItemT =
typename Accessors::ItemT;
4698 ItemT &item = *
static_cast<ItemT *
>(
ptr->data);
4700 Accessors::get_socket_type(item), 0);
4704template<
typename Accessor>
4705typename Accessor::ItemT *rna_Node_ItemArray_new_with_socket_and_name(
4708 using ItemT =
typename Accessor::ItemT;
4737static const EnumPropertyItem *rna_NodeGeometryCaptureAttributeItem_data_type_itemf(
4764static int rna_NodeOutputFileSocket_find_node(
bNodeTree *ntree,
4775 if (sockdata ==
data) {
4788static void rna_NodeOutputFileSlotFile_path_set(
PointerRNA *
ptr,
const char *value)
4795 if (rna_NodeOutputFileSocket_find_node(ntree, sockdata, &node, &sock)) {
4800static void rna_NodeOutputFileSlotLayer_name_set(
PointerRNA *
ptr,
const char *value)
4807 if (rna_NodeOutputFileSocket_find_node(ntree, sockdata, &node, &sock)) {
4837static void rna_ShaderNodeTexIES_mode_set(
PointerRNA *
ptr,
int value)
4842 if (nss->mode != value) {
4844 nss->filepath[0] =
'\0';
4848 Text *text =
reinterpret_cast<Text *
>(node->
id);
4861static void rna_ShaderNodeScript_mode_set(
PointerRNA *
ptr,
int value)
4866 if (nss->mode != value) {
4868 nss->filepath[0] =
'\0';
4873 Text *text =
reinterpret_cast<Text *
>(node->
id);
4885 if (nss->bytecode) {
4887 nss->bytecode =
nullptr;
4890 nss->bytecode_hash[0] =
'\0';
4894static void rna_ShaderNodeScript_bytecode_get(
PointerRNA *
ptr,
char *value)
4899 strcpy(value, (nss->bytecode) ? nss->bytecode :
"");
4902static int rna_ShaderNodeScript_bytecode_length(
PointerRNA *
ptr)
4907 return (nss->bytecode) ? strlen(nss->bytecode) : 0;
4910static void rna_ShaderNodeScript_bytecode_set(
PointerRNA *
ptr,
const char *value)
4915 if (nss->bytecode) {
4919 if (value && value[0]) {
4923 nss->bytecode =
nullptr;
4933 if (engine_type && engine_type->update_script_node) {
4936 engine_type->update_script_node(engine, ntree, node);
4959static void rna_ShaderNode_is_active_output_set(
PointerRNA *
ptr,
bool value)
4966 for (
bNode *other_node : ntree->all_nodes()) {
4967 if (other_node->type_legacy == node->
type_legacy) {
4978static void rna_GroupOutput_is_active_output_set(
PointerRNA *
ptr,
bool value)
4984 for (
bNode *other_node : ntree->all_nodes()) {
4985 if (other_node->is_group_output()) {
5004 if (ob && shader_point_density->particle_system) {
5013static void rna_ShaderNodePointDensity_psys_set(
PointerRNA *
ptr,
5026 shader_point_density->particle_system = 0;
5030static int point_density_particle_color_source_from_shader(
5046static int point_density_vertex_color_source_from_shader(
5084 pd->
color_source = point_density_particle_color_source_from_shader(shader_point_density);
5090 pd->
ob_color_source = point_density_vertex_color_source_from_shader(shader_point_density);
5101void rna_ShaderNodePointDensity_density_calc(
bNode *
self,
5117 *values_num = 4 * resolution * resolution * resolution;
5119 if (*values ==
nullptr) {
5128 *pd = blender::dna::shallow_zero_initialize();
5133void rna_ShaderNodePointDensity_density_minmax(
bNode *
self,
5151static int rna_NodeConvertColorSpace_from_color_space_get(
PointerRNA *
ptr)
5158static void rna_NodeConvertColorSpace_from_color_space_set(
PointerRNA *
ptr,
int value)
5164 if (name && name[0]) {
5165 STRNCPY(node_storage->from_color_space, name);
5168static int rna_NodeConvertColorSpace_to_color_space_get(
PointerRNA *
ptr)
5175static void rna_NodeConvertColorSpace_to_color_space_set(
PointerRNA *
ptr,
int value)
5181 if (name && name[0]) {
5182 STRNCPY(node_storage->to_color_space, name);
5186static void rna_reroute_node_socket_type_set(
PointerRNA *
ptr,
const char *value)
5193 if (value ==
nullptr) {
5197 if (socket_type ==
nullptr) {
5252 {0,
"PLACEHOLDER", 0,
"Placeholder",
""},
5253 {0,
nullptr, 0,
nullptr,
nullptr},
5257 {0,
"ALL", 0,
"All",
""},
5258 {0,
nullptr, 0,
nullptr,
nullptr},
5262 {0,
"PLACEHOLDER", 0,
"Placeholder",
""},
5263 {0,
nullptr, 0,
nullptr,
nullptr},
5267 {1,
"R", 0,
"R",
"Red"},
5268 {2,
"G", 0,
"G",
"Green"},
5269 {3,
"B", 0,
"B",
"Blue"},
5270 {0,
nullptr, 0,
nullptr,
nullptr},
5274 {0,
"X", 0,
"Flip X",
""},
5275 {1,
"Y", 0,
"Flip Y",
""},
5276 {2,
"XY", 0,
"Flip X & Y",
""},
5277 {0,
nullptr, 0,
nullptr,
nullptr},
5281 {0,
"ITUBT601", 0,
"ITU 601",
""},
5282 {1,
"ITUBT709", 0,
"ITU 709",
""},
5283 {2,
"JFIF", 0,
"JPEG",
""},
5284 {0,
nullptr, 0,
nullptr,
nullptr},
5294 "GGX with additional correction to account for multiple scattering, preserve energy and "
5295 "prevent unexpected darkening at high roughness"},
5296 {0,
nullptr, 0,
nullptr,
nullptr},
5301 "PHYSICAL_CONDUCTOR",
5303 "Physical Conductor",
5304 "Fresnel conductor based on the complex refractive index per color channel"},
5309 "An approximation of the Fresnel conductor curve based on the colors at perpendicular and "
5310 "near-grazing (roughly 82°) angles"},
5311 {0,
nullptr, 0,
nullptr,
nullptr},
5322 "GGX with additional correction to account for multiple scattering, preserve energy and "
5323 "prevent unexpected darkening at high roughness"},
5324 {0,
nullptr, 0,
nullptr,
nullptr},
5334 "GGX with additional correction to account for multiple scattering, preserve energy and "
5335 "prevent unexpected darkening at high roughness"},
5336 {0,
nullptr, 0,
nullptr,
nullptr},
5342 {0,
nullptr, 0,
nullptr,
nullptr},
5346 {
SHD_SHEEN_ASHIKHMIN,
"ASHIKHMIN", 0,
"Ashikhmin",
"Classic Ashikhmin velvet (legacy model)"},
5351 "Microflake-based model of multiple scattering between normal-oriented fibers"},
5352 {0,
nullptr, 0,
nullptr,
nullptr},
5358 {0,
nullptr, 0,
nullptr,
nullptr},
5366 "The light that bounces off the surface of the hair"},
5371 "The light that passes through the hair and exits on the other side"},
5372 {0,
nullptr, 0,
nullptr,
nullptr},
5380 "Near-field hair scattering model by Chiang et al. 2016, suitable for close-up looks, but is "
5381 "more noisy when viewing from a distance."},
5386 "Multi-scale hair scattering model by Huang et al. 2022, suitable for viewing both up close "
5387 "and from a distance, supports elliptical cross-sections and has more precise highlight in "
5388 "forward scattering directions."},
5389 {0,
nullptr, 0,
nullptr,
nullptr},
5396 "Absorption Coefficient",
5397 "Directly set the absorption coefficient \"sigma_a\" (this is not the most intuitive way to "
5402 "Melanin Concentration",
5403 "Define the melanin concentrations below to get the most realistic-looking hair (you can get "
5404 "the concentrations for different types of hair online)"},
5409 "Choose the color of your preference, and the shader will approximate the absorption "
5410 "coefficient to render lookalike hair"},
5411 {0,
nullptr, 0,
nullptr,
nullptr},
5417 {0,
nullptr, 0,
nullptr,
nullptr},
5423 {0,
nullptr, 0,
nullptr,
nullptr},
5432 "GGX with additional correction to account for multiple scattering, preserve energy and "
5433 "prevent unexpected darkening at high roughness"},
5434 {0,
nullptr, 0,
nullptr,
nullptr},
5441 "Christensen-Burley",
5442 "Approximation to physically based volume scattering"},
5447 "Volumetric approximation to physically based volume scattering, using the scattering radius "
5452 "Random Walk (Skin)",
5453 "Volumetric approximation to physically based volume scattering, with scattering radius "
5454 "automatically adjusted to match color textures. Designed for skin shading."},
5455 {0,
nullptr, 0,
nullptr,
nullptr}};
5462 "Cause the image to repeat horizontally and vertically"},
5467 "Extend by repeating edge pixels of the image"},
5472 "Clip to image size and set exterior pixels as transparent"},
5477 "Repeatedly flip the image horizontally and vertically"},
5478 {0,
nullptr, 0,
nullptr,
nullptr},
5483 "HENYEY_GREENSTEIN",
5485 "Henyey-Greenstein",
5486 "Henyey-Greenstein, default phase function for the scattering of light"},
5491 "Fournier-Forand phase function, used for the scattering of light in underwater "
5497 "Draine phase functions, mostly used for the scattering of light in interstellar dust"},
5502 "Rayleigh phase function, mostly used for particles smaller than the wavelength of light, "
5503 "such as scattering of sunlight in earth's atmosphere"},
5508 "Approximation of Mie scattering in water droplets, used for scattering in clouds and fog"},
5509 {0,
nullptr, 0,
nullptr,
nullptr},
5523 prop,
"Active Output",
"True if this node is used as the active group output");
5536 prop,
nullptr,
"rna_NodeGroup_node_tree_set",
nullptr,
"rna_NodeGroup_node_tree_poll");
5544 const char *struct_name,
5545 const char *base_name,
5546 const char *ui_name,
5547 const char *ui_desc,
5548 const char *reg_func)
5602 {
CD_PROP_FLOAT,
"FLOAT", 0,
"Float",
"Floating-point value"},
5603 {
CD_PROP_FLOAT3,
"FLOAT_VECTOR", 0,
"Vector",
"3D vector with floating-point values"},
5604 {0,
nullptr, 0,
nullptr,
nullptr},
5652 {0,
nullptr, 0,
nullptr,
nullptr},
5697 prop,
"Rounding Mode",
"Method used to convert the float to an integer");
5760 "rna_node_property_to_input_getter<int, node_input_start_frame>",
5761 "rna_node_property_to_input_setter<int, node_input_start_frame>",
5768 "rna_node_property_to_input_getter<int, node_input_end_frame>",
5769 "rna_node_property_to_input_setter<int, node_input_end_frame>",
5822 prop,
"Node Output",
"For node-based textures, which output node to use");
5909 prop,
"Active Output",
"True if this node is used as the active output");
5917 prop,
"Target",
"Which renderer and viewport shading types to use the shaders for");
5961 "The attribute is associated with the object geometry, and its value "
5962 "varies from vertex to vertex, or within the object volume"},
5967 "The attribute is associated with the object or mesh data-block itself, "
5968 "and its value is uniform"},
5973 "The attribute is associated with the instancer particle system or object, "
5974 "falling back to the Object mode if the attribute isn't found, or the object "
5975 "is not instanced"},
5980 "The attribute is associated with the View Layer, Scene or World that is being rendered"},
5981 {0,
nullptr, 0,
nullptr,
nullptr},
6018 {
SHD_SKY_HOSEK,
"HOSEK_WILKIE", 0,
"Hosek / Wilkie",
"Hosek / Wilkie 2012"},
6020 {0,
nullptr, 0,
nullptr,
nullptr},
6022 static float default_dir[3] = {0.0f, 0.0f, 1.0f};
6050 prop,
"Ground Albedo",
"Ground color that is subtly reflected in the sky");
6091 "Density of air molecules.\n"
6092 "\u2022 0 - No air.\n"
6093 "\u2022 1 - Clear day atmosphere.\n"
6094 "\u2022 2 - Highly polluted day");
6102 "Density of dust molecules and water droplets.\n"
6103 "\u2022 0 - No dust.\n"
6104 "\u2022 1 - Clear day atmosphere.\n"
6105 "\u2022 5 - City like atmosphere.\n"
6106 "\u2022 10 - Hazy day");
6114 "Density of ozone layer.\n"
6115 "\u2022 0 - No ozone.\n"
6116 "\u2022 1 - Clear day atmosphere.\n"
6117 "\u2022 2 - City like atmosphere");
6125 {
SHD_INTERP_CLOSEST,
"Closest", 0,
"Closest",
"No interpolation (sample closest texel)"},
6127 {
SHD_INTERP_SMART,
"Smart", 0,
"Smart",
"Bicubic when magnifying, else bilinear (OSL only)"},
6128 {0,
nullptr, 0,
nullptr,
nullptr},
6138 "Equirectangular or latitude-longitude projection"},
6143 "Projection from an orthographic photo of a mirror ball"},
6144 {0,
nullptr, 0,
nullptr,
nullptr},
6176 "Parameters defining which layer, pass and frame of the image is displayed");
6187 "Use the 2D vector (X, Y) as input. The Z component is ignored."},
6189 {0,
nullptr, 0,
nullptr,
nullptr},
6210 "Image is projected flat using the X and Y coordinates of the texture vector"},
6215 "Image is projected using different components for each side of the object space bounding "
6221 "Image is projected spherically using the Z axis as central"},
6226 "Image is projected from the tube using the Z axis as central"},
6227 {0,
nullptr, 0,
nullptr,
nullptr},
6246 prop,
"Projection",
"Method to project 2D image on object with a 3D texture vector");
6257 prop,
"Projection Blend",
"For box projection, amount of blend to use between sides");
6263 prop,
"Extension",
"How the image is extrapolated past its original bounds");
6273 "Parameters defining which layer, pass and frame of the image is displayed");
6292 {
SHD_INTERP_CLOSEST,
"Closest", 0,
"Closest",
"No interpolation (sample closest texel)"},
6294 {0,
nullptr, 0,
nullptr,
nullptr},
6309 prop,
"Extension",
"How the image is extrapolated past its original bounds");
6375 "Create a progression easing from one step to the next"},
6382 "Create a quadratic progression in the shape of a sphere"},
6384 {0,
nullptr, 0,
nullptr,
nullptr},
6405 "More uneven result (varies with location), more similar to a real terrain"},
6407 "RIDGED_MULTIFRACTAL",
6409 "Ridged Multifractal",
6410 "Create sharp peaks"},
6412 "HYBRID_MULTIFRACTAL",
6414 "Hybrid Multifractal",
6415 "Create peaks and valleys with different roughness values"},
6416 {
SHD_NOISE_FBM,
"FBM", 0,
"fBM",
"The standard fractal Perlin noise"},
6421 "Similar to Hybrid Multifractal creates a heterogeneous terrain, but with the likeness of "
6423 {0,
nullptr, 0,
nullptr,
nullptr},
6470 "How often rows are offset. A value of 2 gives an even/uneven pattern of rows.");
6478 prop,
"Squash Frequency",
"How often rows consist of \"squished\" bricks");
6486 prop,
"Offset Amount",
"Determines the brick offset of the various rows");
6496 "Factor to adjust the brick's width for particular rows determined by the Offset Frequency");
6521 {0,
nullptr, 0,
nullptr,
nullptr}};
6528 "Computes the distance to the closest point as well as its position and color"},
6533 "Computes the distance to the second closest point as well as its position and color"},
6538 "Smoothed version of F1. Weighted sum of neighbor voronoi cells."},
6543 "Computes the distance to the edge of the voronoi cell"},
6548 "Computes the radius of the n-sphere inscribed in the voronoi cell"},
6549 {0,
nullptr, 0,
nullptr,
nullptr}};
6567 prop,
"Distance Metric",
"The distance metric used to compute the texture");
6574 prop,
"Feature Output",
"The Voronoi feature that the node will compute");
6586 {
SHD_WAVE_BANDS,
"BANDS", 0,
"Bands",
"Use standard wave texture in bands"},
6587 {
SHD_WAVE_RINGS,
"RINGS", 0,
"Rings",
"Use wave texture in rings"},
6588 {0,
nullptr, 0,
nullptr,
nullptr},
6596 {0,
nullptr, 0,
nullptr,
nullptr},
6607 "Rings along spherical distance"},
6608 {0,
nullptr, 0,
nullptr,
nullptr},
6615 {0,
nullptr, 0,
nullptr,
nullptr},
6670 prop,
"Object",
"Use coordinates from this object (for object texture coordinates output)");
6676 prop,
"From Instancer",
"Use the parent of the instance object if possible");
6689 "Transform a normal vector with unit length"},
6690 {0,
nullptr, 0,
nullptr,
nullptr},
6697 {0,
nullptr, 0,
nullptr,
nullptr},
6744 "Generate point density from a particle system"},
6749 "Generate point density from an object's vertices"},
6750 {0,
nullptr, 0,
nullptr,
nullptr},
6754 {
SHD_INTERP_CLOSEST,
"Closest", 0,
"Closest",
"No interpolation (sample closest texel)"},
6757 {0,
nullptr, 0,
nullptr,
nullptr},
6763 {0,
nullptr, 0,
nullptr,
nullptr},
6771 "Lifetime mapped as 0.0 to 1.0 intensity"},
6776 "Particle speed (absolute magnitude of velocity) mapped as 0.0 to 1.0 intensity"},
6778 "PARTICLE_VELOCITY",
6780 "Particle Velocity",
6781 "XYZ velocity mapped to RGB colors"},
6782 {0,
nullptr, 0,
nullptr,
nullptr},
6791 "Vertex group weight"},
6796 "XYZ normal vector mapped to RGB colors"},
6797 {0,
nullptr, 0,
nullptr,
nullptr},
6819 "rna_ShaderNodePointDensity_psys_get",
6820 "rna_ShaderNodePointDensity_psys_set",
6830 prop,
"Resolution",
"Resolution used by the texture holding the point density");
6837 prop,
"Radius",
"Radius from the shaded sample to look for points within");
6866 func =
RNA_def_function(srna,
"cache_point_density",
"rna_ShaderNodePointDensity_density_cache");
6870 func =
RNA_def_function(srna,
"calc_point_density",
"rna_ShaderNodePointDensity_density_calc");
6874 parm =
RNA_def_float_array(func,
"rgba_values", 1,
nullptr, 0, 0,
"",
"RGBA Values", 0, 0);
6879 srna,
"calc_point_density_minmax",
"rna_ShaderNodePointDensity_density_minmax");
6956 prop,
"Subsurface Method",
"Method for rendering subsurface scattering");
7011 prop,
"Invert",
"Invert the bump mapping direction to push into the surface instead of out");
7045 prop,
"Color Parametrization",
"Select the shader's color parametrization");
7058 prop,
"From Instancer",
"Use the parent of the instance object if possible");
7090 prop,
"Use Tips",
"Lower half of the texture is for tips of the stroke");
7097 {
SHD_SPACE_TANGENT,
"TANGENT", 0,
"Tangent Space",
"Tangent space normal mapping"},
7098 {
SHD_SPACE_OBJECT,
"OBJECT", 0,
"Object Space",
"Object space normal mapping"},
7099 {
SHD_SPACE_WORLD,
"WORLD", 0,
"World Space",
"World space normal mapping"},
7103 "Blender Object Space",
7104 "Object space normal mapping, compatible with Blender render baking"},
7108 "Blender World Space",
7109 "World space normal mapping, compatible with Blender render baking"},
7110 {0,
nullptr, 0,
nullptr,
nullptr},
7136 "Displacement is in object space, affected by object scale"},
7141 "Displacement is in world space, not affected by object scale"},
7142 {0,
nullptr, 0,
nullptr,
nullptr},
7163 "Tangent space vector displacement mapping"},
7164 {
SHD_SPACE_OBJECT,
"OBJECT", 0,
"Object Space",
"Object space vector displacement mapping"},
7165 {
SHD_SPACE_WORLD,
"WORLD", 0,
"World Space",
"World space vector displacement mapping"},
7166 {0,
nullptr, 0,
nullptr,
nullptr},
7183 {
SHD_TANGENT_RADIAL,
"RADIAL", 0,
"Radial",
"Radial tangent around the X, Y or Z axis"},
7185 {0,
nullptr, 0,
nullptr,
nullptr},
7192 {0,
nullptr, 0,
nullptr,
nullptr},
7246 prop,
"Only Local",
"Only consider the object itself when computing AO");
7284 prop,
"Source",
"Whether the IES file is loaded from disk or from a text data-block");
7311 "Use RGB (Red, Green, Blue) color processing"},
7316 "Use HSV (Hue, Saturation, Value) color processing"},
7321 "Use HSL (Hue, Saturation, Lightness) color processing"},
7322 {0,
nullptr, 0,
nullptr,
nullptr},
7365 "Automatically update the shader when the .osl file changes (external scripts only)");
7369 "rna_ShaderNodeScript_bytecode_get",
7370 "rna_ShaderNodeScript_bytecode_length",
7371 "rna_ShaderNodeScript_bytecode_set");
7377 prop,
"Bytecode Hash",
"Hash of compile bytecode, for quick equality checking");
7386 func =
RNA_def_function(srna,
"find_socket",
"rna_ShaderNodeScript_find_socket");
7388 parm =
RNA_def_string(func,
"name",
nullptr, 0,
"Socket name",
"");
7390 RNA_def_boolean(func,
"is_output",
false,
"Output",
"Whether the socket is an output");
7394 func =
RNA_def_function(srna,
"add_socket",
"rna_ShaderNodeScript_add_socket");
7401 RNA_def_boolean(func,
"is_output",
false,
"Output",
"Whether the socket is an output");
7405 func =
RNA_def_function(srna,
"remove_socket",
"rna_ShaderNodeScript_remove_socket");
7422 "rna_node_property_to_input_getter<bool, node_input_straight_alpha>",
7423 "rna_node_property_to_input_setter<bool, node_input_straight_alpha>");
7425 prop,
"Convert Premultiplied",
"(Deprecated: Use Straight Alpha input instead.)");
7448 {0,
nullptr, 0,
nullptr,
nullptr},
7455 {0,
nullptr, 0,
nullptr,
nullptr},
7464 "Support variable blur per pixel when using an image for size input. (Deprecated: Unused.)");
7470 "rna_node_property_to_input_getter<bool, node_input_extend_bounds>",
7471 "rna_node_property_to_input_setter<bool, node_input_extend_bounds>");
7474 "Extend bounds of the input image to fully fit blurred image. "
7475 "(Deprecated: Use Extend Bounds input instead.)");
7497 "Use relative (percent) values to define blur radius. (Deprecated: Unused.)");
7504 prop,
"Aspect Correction",
"Type of aspect correction to use. (Deprecated: Unused.)");
7535 prop,
"Bokeh",
"Use circular filter (slower). (Deprecated: Use Separable input instead.)");
7543 "Apply filter on gamma corrected values. (Deprecated: Unused. Use Gamma node instead.)");
7619 "rna_node_property_to_input_getter<int, node_input_samples>",
7620 "rna_node_property_to_input_setter<int, node_input_samples>",
7631 "Minimum speed for a pixel to be blurred (used to separate background "
7632 "from foreground). (Deprecated.)");
7643 prop,
"rna_NodeVectorBlur_shutter_get",
"rna_NodeVectorBlur_shutter_set",
nullptr);
7648 "Scaling factor for motion vectors (actually, 'shutter speed', in "
7649 "frames). (Deprecated: Use Shutter input instead.)");
7657 "Interpolate between frames in a Bézier curve, rather than linearly. (Deprecated.)");
7670 "Multiply the input image's RGBA channels by the alpha input value"},
7675 "Replace the input image's alpha channel by the alpha input value"},
7676 {0,
nullptr, 0,
nullptr,
nullptr},
7697 {0,
nullptr, 0,
nullptr,
nullptr},
7715 prop,
"Frames",
"Number of images of a movie to use");
7725 "Global starting frame of the movie/sequence, assuming first picture has a #1");
7733 prop,
"Offset",
"Offset the number of the frame to use in the animation");
7739 prop,
"Cyclic",
"Cycle the images in the movie");
7785 {0,
nullptr, 0,
nullptr,
nullptr},
7800 "Straight Alpha Output",
7801 "Put node output buffer to straight alpha instead of premultiplied");
7841 srna,
"Output File Slot",
"Single layer file slot of the file output node");
7851 prop,
"Save as Render",
"Apply render part of display transform when saving byte image");
7875 srna,
"Output File Layer Slot",
"Multilayer slot of the file output node");
7886 const char *struct_name)
7903 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"New socket");
7912 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"The socket to remove");
7923 func,
"from_index", -1, 0, INT_MAX,
"From Index",
"Index of the socket to move", 0, 10000);
7926 func,
"to_index", -1, 0, INT_MAX,
"To Index",
"Target index for the socket", 0, 10000);
7957 prop,
"Save as Render",
"Apply render part of display transform when saving byte image");
7966 "rna_NodeOutputFile_slots_begin",
7967 "rna_iterator_listbase_next",
7968 "rna_iterator_listbase_end",
7969 "rna_NodeOutputFile_slot_file_get",
7980 "rna_NodeOutputFile_slots_begin",
7981 "rna_iterator_listbase_next",
7982 "rna_iterator_listbase_end",
7983 "rna_NodeOutputFile_slot_layer_get",
8002 {0,
nullptr, 0,
nullptr,
nullptr},
8013 "rna_node_property_to_input_getter<int, node_input_size>",
8014 "rna_node_property_to_input_setter<int, node_input_size>",
8021 "Distance to grow/shrink (number of iterations). (Deprecated: Use Size input instead.)");
8027 "rna_node_property_to_input_getter<float, node_input_falloff_size>",
8028 "rna_node_property_to_input_setter<float, node_input_falloff_size>",
8032 prop,
"Edge",
"Edge to inset. (Deprecated: Use Falloff Size input instead.)");
8063 "rna_node_property_to_input_getter<int, node_input_size>",
8064 "rna_node_property_to_input_setter<int, node_input_size>",
8070 "Distance to inpaint (number of iterations). (Deprecated: Use Size input instead.)");
8081 "rna_node_property_to_input_getter<float, node_input_color_threshold>",
8082 "rna_node_property_to_input_setter<float, node_input_color_threshold>",
8087 "Threshold for detecting pixels to despeckle. (Deprecated: Use Color "
8088 "Threshold input instead.)");
8094 "rna_node_property_to_input_getter<float, node_input_neighbor_threshold>",
8095 "rna_node_property_to_input_setter<float, node_input_neighbor_threshold>",
8100 "Threshold for the number of neighbor pixels that must match. "
8101 "(Deprecated: Use Neighbor Threshold instead.)");
8114 {0,
nullptr, 0,
nullptr,
nullptr},
8122 {0,
nullptr, 0,
nullptr,
nullptr},
8142 "Offset image horizontally (factor of image size). (Deprecated: Use a "
8143 "Translate node instead.)");
8151 "Offset image vertically (factor of image size). (Deprecated: Use Translate node instead.)");
8180 "rna_node_property_to_input_getter<float, node_input_tolerance>",
8181 "rna_node_property_to_input_setter<float, node_input_tolerance>",
8186 "Color distances below this threshold are keyed. (Deprecated: Use "
8187 "Tolerance input instead.)");
8192 "rna_node_property_to_input_getter<float, node_input_falloff>",
8193 "rna_node_property_to_input_setter<float, node_input_falloff>",
8198 "Color distances below this additional threshold are partially keyed. "
8199 "(Deprecated: Use Falloff input instead.)");
8209 "rna_node_property_to_input_getter<float, node_input_hue>",
8210 "rna_node_property_to_input_setter<float, node_input_hue>",
8215 "Hue tolerance for colors to be considered a keying color. "
8216 "(Deprecated: Use Hue input instead.)");
8221 "rna_node_property_to_input_getter<float, node_input_saturation>",
8222 "rna_node_property_to_input_setter<float, node_input_saturation>",
8228 "Saturation tolerance for the color. (Deprecated: Use Saturation input instead.)");
8233 "rna_node_property_to_input_getter<float, node_input_value>",
8234 "rna_node_property_to_input_setter<float, node_input_value>",
8238 prop,
"V",
"Value tolerance for the color. (Deprecated: Use Value input instead.)");
8249 {0,
nullptr, 0,
nullptr,
nullptr},
8262 "rna_node_property_to_input_getter<float, node_input_tolerance>",
8263 "rna_node_property_to_input_setter<float, node_input_tolerance>",
8268 "Color distances below this threshold are keyed. (Deprecated: Use "
8269 "Tolerance input instead.)");
8274 "rna_node_property_to_input_getter<float, node_input_falloff>",
8275 "rna_node_property_to_input_setter<float, node_input_falloff>",
8280 "Color distances below this additional threshold are partially keyed. "
8281 "(Deprecated: Use Falloff input instead.)");
8294 "rna_NodeConvertColorSpace_from_color_space_get",
8295 "rna_NodeConvertColorSpace_from_color_space_set",
8296 "rna_NodeConvertColorSpace_color_space_itemf");
8304 "rna_NodeConvertColorSpace_to_color_space_get",
8305 "rna_NodeConvertColorSpace_to_color_space_set",
8306 "rna_NodeConvertColorSpace_color_space_itemf");
8316 {1,
"R", 0,
"R",
"Red spill suppression"},
8317 {2,
"G", 0,
"G",
"Green spill suppression"},
8318 {3,
"B", 0,
"B",
"Blue spill suppression"},
8319 {0,
nullptr, 0,
nullptr,
nullptr},
8323 {0,
"R", 0,
"R",
"Limit by red"},
8324 {1,
"G", 0,
"G",
"Limit by green"},
8325 {2,
"B", 0,
"B",
"Limit by blue"},
8326 {0,
nullptr, 0,
nullptr,
nullptr},
8330 {0,
"SIMPLE", 0,
"Simple",
"Simple limit algorithm"},
8331 {1,
"AVERAGE", 0,
"Average",
"Average limit algorithm"},
8332 {0,
nullptr, 0,
nullptr,
nullptr},
8360 "rna_node_property_to_input_getter<float, node_input_limit_strength>",
8361 "rna_node_property_to_input_setter<float, node_input_limit_strength>",
8365 prop,
"Ratio",
"Scale limit by value. (Deprecated: Use Limit Strength input instead.)");
8371 "rna_node_property_to_input_getter<bool, node_input_use_spill_strength>",
8372 "rna_node_property_to_input_setter<bool, node_input_use_spill_strength>");
8375 "Compensate all channels (differently) by hand. "
8376 "(Deprecated: Use \"Use Spill Strength\" input instead.)");
8381 prop,
"rna_NodeColorSpill_unspill_red_get",
"rna_NodeColorSpill_unspill_red_set",
nullptr);
8384 prop,
"R",
"Red spillmap scale. (Deprecated: Use Spill Strength input instead.)");
8390 "rna_NodeColorSpill_unspill_green_get",
8391 "rna_NodeColorSpill_unspill_green_set",
8395 prop,
"G",
"Green spillmap scale. (Deprecated: Use Spill Strength input instead.)");
8401 prop,
"rna_NodeColorSpill_unspill_blue_get",
"rna_NodeColorSpill_unspill_blue_set",
nullptr);
8404 prop,
"B",
"Blue spillmap scale. (Deprecated: Use Spill Strength input instead.)");
8415 "rna_node_property_to_input_getter<float, node_input_maximum>",
8416 "rna_node_property_to_input_setter<float, node_input_maximum>",
8424 "rna_node_property_to_input_getter<float, node_input_minimum>",
8425 "rna_node_property_to_input_setter<float, node_input_minimum>",
8439 "Convert Premultiplied",
8440 "Keep output image premultiplied alpha. (Deprecated: Unused.)");
8450 "rna_node_property_to_input_getter<float, node_input_maximum>",
8451 "rna_node_property_to_input_setter<float, node_input_maximum>",
8456 "Tolerance for a color to be considered a keying color. (Deprecated: "
8457 "Use Maximum input instead.)");
8462 "rna_node_property_to_input_getter<float, node_input_minimum>",
8463 "rna_node_property_to_input_setter<float, node_input_minimum>",
8468 "Tolerance below which colors will be considered as exact matches. "
8469 "(Deprecated: Use Minimum input instead.)");
8480 "rna_node_property_to_input_getter<float, node_input_falloff>",
8481 "rna_node_property_to_input_setter<float, node_input_falloff>",
8485 prop,
"Falloff",
"Alpha falloff. (Deprecated: Use Minimum input instead.)");
8494 "Adjusts the brightness of any shadows captured. (Deprecated: Unused.)");
8509 "YCbCr (Y - luma, Cb - blue-difference chroma, Cr - red-difference chroma) color space"},
8510 {0,
nullptr, 0,
nullptr,
nullptr},
8514 {0,
"SINGLE", 0,
"Single",
"Limit by single channel"},
8515 {1,
"MAX", 0,
"Max",
"Limit by maximum of other channels"},
8516 {0,
nullptr, 0,
nullptr,
nullptr},
8551 "rna_node_property_to_input_getter<float, node_input_maximum>",
8552 "rna_node_property_to_input_setter<float, node_input_maximum>",
8558 "Values higher than this setting are 100% opaque. (Deprecated: Use Maximum input instead.)");
8563 "rna_node_property_to_input_getter<float, node_input_minimum>",
8564 "rna_node_property_to_input_setter<float, node_input_minimum>",
8570 "Values lower than this setting are 100% keyed. (Deprecated: Use Minimum input instead.)");
8597 prop,
"rna_NodeSplit_factor_get",
"rna_NodeSplit_factor_set",
nullptr);
8609 "rna_node_property_to_input_getter<int, node_input_index>",
8610 "rna_node_property_to_input_setter<int, node_input_index>",
8616 "Pass index number to convert to alpha. (Deprecated: Use Index input instead.)");
8621 "rna_node_property_to_input_getter<bool, node_input_anti_alias>",
8622 "rna_node_property_to_input_setter<bool, node_input_anti_alias>");
8626 "Apply an anti-aliasing filter to the mask. (Deprecated: Use Anti-Aliasing input instead.)");
8635 {0,
"BLEED_OUT", 0,
"Bleed Out",
"Allow mask pixels to bleed along edges"},
8636 {1,
"KEEP_IN", 0,
"Keep In",
"Restrict mask pixels from touching edges"},
8637 {0,
nullptr, 0,
nullptr,
nullptr},
8641 {0,
"ALL", 0,
"All",
"All pixels on inner mask edge are considered during mask calculation"},
8646 "Only inner mask pixels adjacent to outer mask pixels are considered during mask "
8648 {0,
nullptr, 0,
nullptr,
nullptr},
8671 {0,
nullptr, 0,
nullptr,
nullptr},
8693 {8,
"OCTAGON", 0,
"Octagonal",
"8 sides"},
8694 {7,
"HEPTAGON", 0,
"Heptagonal",
"7 sides"},
8695 {6,
"HEXAGON", 0,
"Hexagonal",
"6 sides"},
8696 {5,
"PENTAGON", 0,
"Pentagonal",
"5 sides"},
8697 {4,
"SQUARE", 0,
"Square",
"4 sides"},
8698 {3,
"TRIANGLE", 0,
"Triangular",
"3 sides"},
8699 {0,
"CIRCLE", 0,
"Circular",
""},
8700 {0,
nullptr, 0,
nullptr,
nullptr},
8710 prop,
"Scene",
"Scene from which to select the active camera (render scene if undefined)");
8731 "Enable gamma correction before and after main process. (Deprecated: "
8732 "Unused. Use Gamma node instead.)");
8742 "Amount of focal blur, 128 (infinity) is perfect focus, half the value doubles "
8757 "CoC radius threshold, prevents background bleed on in-focus "
8758 "midground, 0 is disabled. (Deprecated: Unused.)");
8764 prop,
"Preview",
"Enable low quality mode, useful for preview. (Deprecated: Unused.)");
8771 "Disable when using an image as input instead of actual z-buffer "
8772 "(auto enabled if node not image based, eg. time node)");
8781 "Scale the Z input when not using a z-buffer, controls maximum blur designated "
8782 "by the color white or input value 1");
8793 "rna_node_property_to_input_getter<bool, node_input_invert_color>",
8794 "rna_node_property_to_input_setter<bool, node_input_invert_color>");
8801 "rna_node_property_to_input_getter<bool, node_input_invert_alpha>",
8802 "rna_node_property_to_input_setter<bool, node_input_invert_alpha>");
8813 prop,
"rna_NodeCrop_use_crop_size_get",
"rna_NodeCrop_use_crop_size_set");
8820 prop,
"Relative",
"Use relative values to crop image. (Deprecated: Unused.)");
8825 "rna_node_property_to_input_getter<int, node_input_x>",
8826 "rna_node_property_to_input_setter<int, node_input_x>",
8830 prop,
"X1",
"Left edge of the cropping rectangle. (Deprecated: Use X input instead.)");
8837 prop,
"X2",
"Right edge of the cropping rectangle. (Deprecated: Use Width input instead.)");
8844 prop,
"Y1",
"Top edge of the cropping rectangle. (Deprecated: Use Y input instead.)");
8849 "rna_node_property_to_input_getter<int, node_input_y>",
8850 "rna_node_property_to_input_setter<int, node_input_y>",
8856 "Bottom edge of the cropping rectangle. (Deprecated: Use Height input instead.)");
8863 prop,
"X1",
"Left edge of the cropping rectangle. (Deprecated: Unused.)");
8870 prop,
"X2",
"Right edge of the cropping rectangle. (Deprecated: Unused.)");
8877 prop,
"Y1",
"Top edge of the cropping rectangle. (Deprecated: Unused.)");
8884 prop,
"Y2",
"Bottom edge of the cropping rectangle. (Deprecated: Unused.)");
8894 "rna_node_property_to_input_getter<int, node_input_samples>",
8895 "rna_node_property_to_input_setter<int, node_input_samples>",
8903 "rna_node_property_to_vector_input_getter<node_input_center, 0>",
8904 "rna_node_property_to_vector_input_setter<node_input_center, 0>",
8912 "rna_node_property_to_vector_input_getter<node_input_center, 1>",
8913 "rna_node_property_to_vector_input_setter<node_input_center, 1>",
8922 "rna_node_property_to_input_getter<float, node_input_translation_amount>",
8923 "rna_node_property_to_input_setter<float, node_input_translation_amount>",
8927 prop,
"Distance",
"(Deprecated: Use Translation Amount input instead.)");
8933 "rna_node_property_to_input_getter<float, node_input_translation_direction>",
8934 "rna_node_property_to_input_setter<float, node_input_translation_direction>",
8938 prop,
"Angle",
"(Deprecated: Use Translation Direction input instead.)");
8943 "rna_node_property_to_input_getter<float, node_input_rotation>",
8944 "rna_node_property_to_input_setter<float, node_input_rotation>",
8952 prop,
"rna_NodeDirectionalBlur_scale_get",
"rna_NodeDirectionalBlur_scale_set",
nullptr);
8964 "rna_node_property_to_input_getter<int, node_input_size>",
8965 "rna_node_property_to_input_setter<int, node_input_size>",
8973 prop,
"rna_NodeBilateralBlur_threshold_get",
"rna_NodeBilateralBlur_threshold_set",
nullptr);
8980 "rna_NodeBilateralBlur_sigma_space_get",
8981 "rna_NodeBilateralBlur_sigma_space_set",
8993 {0,
"STRAIGHT_TO_PREMUL", 0,
"To Premultiplied",
"Convert straight to premultiplied"},
8994 {1,
"PREMUL_TO_STRAIGHT", 0,
"To Straight",
"Convert premultiplied to straight"},
8995 {0,
nullptr, 0,
nullptr,
nullptr},
9002 prop,
"Mapping",
"Conversion between premultiplied alpha and key alpha");
9016 {0,
nullptr, 0,
nullptr,
nullptr},
9020 {0,
"HIGH", 0,
"High",
""},
9021 {1,
"MEDIUM", 0,
"Medium",
""},
9022 {2,
"LOW", 0,
"Low",
""},
9023 {0,
nullptr, 0,
nullptr,
nullptr},
9040 "If not set to high quality, the effect will be applied to a low-res copy "
9041 "of the source image");
9046 prop,
"rna_NodeGlare_iterations_get",
"rna_NodeGlare_iterations_set",
nullptr);
9052 prop,
"rna_NodeGlare_color_modulation_get",
"rna_NodeGlare_color_modulation_set",
nullptr);
9057 "Amount of Color Modulation, modulates colors of streaks and ghosts for "
9058 "a spectral dispersion effect. (Deprecated: Use Color Modulation input instead)");
9065 "1 is original image only, 0 is exact 50/50 mix, 1 is processed image "
9066 "only. (Deprecated: Use Strength input instead)");
9070 prop,
"rna_NodeGlare_threshold_get",
"rna_NodeGlare_threshold_set",
nullptr);
9074 "The glare filter will only be applied to pixels brighter than this "
9075 "value. (Deprecated: Use Threshold input instead)");
9079 prop,
"rna_NodeGlare_streaks_get",
"rna_NodeGlare_streaks_set",
nullptr);
9082 prop,
"Streaks",
"Total number of streaks. (Deprecated: Use Streaks input instead)");
9086 prop,
"rna_NodeGlare_angle_offset_get",
"rna_NodeGlare_angle_offset_set",
nullptr);
9089 prop,
"Angle Offset",
"Streak angle offset. (Deprecated: Use Streaks Angle input instead)");
9095 prop,
"Fade",
"Streak fade-out factor. (Deprecated: Use Fade input instead)");
9100 "rna_node_property_to_input_getter<bool, node_input_diagonal_star>",
9101 "rna_node_property_to_input_setter<bool, node_input_diagonal_star>");
9104 "Simple star filter: add 45 degree rotation offset. (Deprecated: Use "
9105 "Diagonal input instead)");
9113 "Glow/glare size (not actual size; relative to initial size of bright "
9114 "area of pixels). (Deprecated: Use Size input instead)");
9125 "R/D Photoreceptor",
9126 "More advanced algorithm based on eye physiology, by Reinhard and Devlin"},
9127 {0,
"RH_SIMPLE", 0,
"Rh Simple",
"Simpler photographic algorithm by Reinhard"},
9128 {0,
nullptr, 0,
nullptr,
nullptr},
9141 "rna_node_property_to_input_getter<float, node_input_key>",
9142 "rna_node_property_to_input_setter<float, node_input_key>",
9148 "The value the average luminance is mapped to. (Deprecated: Use Key input instead.)");
9153 "rna_node_property_to_input_getter<float, node_input_balance>",
9154 "rna_node_property_to_input_setter<float, node_input_balance>",
9159 "Normally always 1, but can be used as an extra control to alter the "
9160 "brightness curve. (Deprecated: Use Balance input instead.)");
9165 "rna_node_property_to_input_getter<float, node_input_gamma>",
9166 "rna_node_property_to_input_setter<float, node_input_gamma>",
9170 prop,
"Gamma",
"If not used, set to 1. (Deprecated: Use Gamma input instead.)");
9175 "rna_node_property_to_input_getter<float, node_input_intensity>",
9176 "rna_node_property_to_input_setter<float, node_input_intensity>",
9181 "If less than zero, darkens image; otherwise, makes it brighter. "
9182 "(Deprecated: Use Intensity input instead.)");
9187 "rna_node_property_to_input_getter<float, node_input_contrast>",
9188 "rna_node_property_to_input_setter<float, node_input_contrast>",
9194 "Set to 0 to use estimate from input image. (Deprecated: Use Contrast input instead.)");
9200 "rna_node_property_to_input_getter<float, node_input_light_adaptation>",
9201 "rna_node_property_to_input_setter<float, node_input_light_adaptation>",
9206 "If 0, global; if 1, based on pixel intensity. (Deprecated: Use Light "
9207 "Adaptation input instead.)");
9213 "rna_node_property_to_input_getter<float, node_input_chromatic_adaptation>",
9214 "rna_node_property_to_input_setter<float, node_input_chromatic_adaptation>",
9219 "If 0, same for all channels; if 1, each independent (Deprecated: Use "
9220 "Chromatic Adaptation input instead.)");
9233 "Radially distorts the image to create a barrel or a Pincushion distortion"},
9238 "Horizontally distorts the image to create a channel/color shifting effect"},
9239 {0,
nullptr, 0,
nullptr,
nullptr},
9252 prop,
"rna_NodeLensDistortion_projector_get",
"rna_NodeLensDistortion_projector_set");
9255 "Enable/disable projector mode (the effect is applied in horizontal "
9256 "direction only). (Deprecated: Use distortion_type property instead.)");
9261 "rna_node_property_to_input_getter<bool, node_input_jitter>",
9262 "rna_node_property_to_input_setter<bool, node_input_jitter>");
9265 "Enable/disable jittering (faster, but also noisier). (Deprecated: Use "
9266 "Jitter input instead.)");
9272 "rna_node_property_to_input_getter<bool, node_input_fit>",
9273 "rna_node_property_to_input_setter<bool, node_input_fit>");
9276 "For positive distortion factor only: scale image such that black "
9277 "areas are not visible. (Deprecated: Use Fit input instead.)");
9284 static float default_1[3] = {1.0f, 1.0f, 1.0f};
9289 "OFFSET_POWER_SLOPE",
9291 "Offset/Power/Slope (ASC-CDL)",
9292 "ASC-CDL standard color correction"},
9297 "Chromatic adaption from a different white point"},
9298 {0,
nullptr, 0,
nullptr,
nullptr},
9312 "rna_node_array_property_to_input_getter<float, node_input_color_lift>",
9313 "rna_node_array_property_to_input_setter<float, node_input_color_lift>",
9319 prop,
"Lift",
"Correction for shadows. (Deprecated: Use Lift input instead.)");
9325 "rna_node_array_property_to_input_getter<float, node_input_color_gamma>",
9326 "rna_node_array_property_to_input_setter<float, node_input_color_gamma>",
9332 prop,
"Gamma",
"Correction for midtones. (Deprecated: Use Gamma input instead.)");
9338 "rna_node_array_property_to_input_getter<float, node_input_color_gain>",
9339 "rna_node_array_property_to_input_setter<float, node_input_color_gain>",
9345 prop,
"Gain",
"Correction for highlights. (Deprecated: Use Gain input instead.)");
9351 "rna_node_array_property_to_input_getter<float, node_input_color_offset>",
9352 "rna_node_array_property_to_input_setter<float, node_input_color_offset>",
9359 "Correction for entire tonal range. (Deprecated: Use Offset input instead.)");
9365 "rna_node_array_property_to_input_getter<float, node_input_color_power>",
9366 "rna_node_array_property_to_input_setter<float, node_input_color_power>",
9373 prop,
"Power",
"Correction for midtones. (Deprecated: Use Power input instead.)");
9380 "rna_node_array_property_to_input_getter<float, node_input_color_slope>",
9381 "rna_node_array_property_to_input_setter<float, node_input_color_slope>",
9388 prop,
"Slope",
"Correction for highlights. (Deprecated: Use Slope input instead.)");
9393 "rna_node_property_to_input_getter<float, node_input_base_offset>",
9394 "rna_node_property_to_input_setter<float, node_input_base_offset>",
9400 "Support negative color by using this as the RGB basis. (Deprecated: "
9401 "Use Offset Basis input instead.)");
9407 "rna_node_property_to_input_getter<float, node_input_input_temperature>",
9408 "rna_node_property_to_input_setter<float, node_input_input_temperature>",
9414 "Input Temperature",
9415 "Color temperature of the input's white point. (Deprecated: Use Input "
9416 "Temperature input instead.)");
9421 "rna_node_property_to_input_getter<float, node_input_input_tint>",
9422 "rna_node_property_to_input_setter<float, node_input_input_tint>",
9429 "Color tint of the input's white point (the default of 10 matches "
9430 "daylight). (Deprecated: Use Input Tint input instead.)");
9436 "rna_NodeColorBalance_input_whitepoint_get",
9437 "rna_NodeColorBalance_input_whitepoint_set",
9440 "Input White Point",
9441 "The color which gets mapped to white "
9442 "(automatically converted to/from temperature and tint)");
9448 "rna_node_property_to_input_getter<float, node_input_output_temperature>",
9449 "rna_node_property_to_input_setter<float, node_input_output_temperature>",
9455 "Output Temperature",
9456 "Color temperature of the output's white point. (Deprecated: Use "
9457 "Output Temperature input instead.)");
9462 "rna_node_property_to_input_getter<float, node_input_output_tint>",
9463 "rna_node_property_to_input_setter<float, node_input_output_tint>",
9470 "Color tint of the output's white point (the default of 10 matches "
9471 "daylight). (Deprecated: Use Output Tint input instead.)");
9477 "rna_NodeColorBalance_output_whitepoint_get",
9478 "rna_NodeColorBalance_output_whitepoint_set",
9481 "Output White Point",
9482 "The color which gets white gets mapped to "
9483 "(automatically converted to/from temperature and tint)");
9504 "rna_node_property_to_input_getter<bool, node_input_use_alpha>",
9505 "rna_node_property_to_input_setter<bool, node_input_use_alpha>");
9508 "Take alpha channel into account when doing the Z operation. "
9509 "(Deprecated: Use \"Use Alpha\" input instead.)");
9514 "rna_node_property_to_input_getter<bool, node_input_anti_alias>",
9515 "rna_node_property_to_input_setter<bool, node_input_anti_alias>");
9518 "Anti-alias the z-buffer to try to avoid artifacts, mostly useful for "
9519 "Blender renders. (Deprecated: Use Anti-Alias input instead.)");
9541 "Use RGB (Red, Green, Blue) color processing"},
9546 "Use HSV (Hue, Saturation, Value) color processing"},
9551 "Use HSL (Hue, Saturation, Lightness) color processing"},
9556 "Use YCbCr (Y - luma, Cb - blue-difference chroma, Cr - red-difference chroma) color "
9562 "Use YUV (Y - luma, U V - chroma) color processing"},
9563 {0,
nullptr, 0,
nullptr,
nullptr},
9616 "rna_node_property_to_input_getter<bool, node_input_invert>",
9617 "rna_node_property_to_input_setter<bool, node_input_invert>");
9620 "Invert stabilization to re-introduce motion to the frame. "
9621 "(Deprecated: Use Invert input instead.)");
9630 {0,
"UNDISTORT", 0,
"Undistort",
""},
9631 {1,
"DISTORT", 0,
"Distort",
""},
9632 {0,
nullptr, 0,
nullptr,
nullptr},
9655 {0,
"SCENE", 0,
"Scene Size",
""},
9661 "Pixel size scaled by scene percentage"},
9662 {0,
nullptr, 0,
nullptr,
nullptr},
9675 "rna_node_property_to_input_getter<bool, node_input_feather>",
9676 "rna_node_property_to_input_setter<bool, node_input_feather>");
9680 "Use feather information from the mask. (Deprecated: Use Feather input instead.)");
9686 "rna_node_property_to_input_getter<bool, node_input_motion_blur>",
9687 "rna_node_property_to_input_setter<bool, node_input_motion_blur>");
9691 "Use multi-sampled motion blur of the mask. (Deprecated: Use Motion Blur input instead.)");
9697 "rna_node_property_to_input_getter<int, node_input_motion_blur_samples>",
9698 "rna_node_property_to_input_setter<int, node_input_motion_blur_samples>",
9704 "Number of motion blur samples. (Deprecated: Use Motion Blur Samples input instead.)");
9710 "rna_node_property_to_input_getter<float, node_input_motion_blur_shutter>",
9711 "rna_node_property_to_input_setter<float, node_input_motion_blur_shutter>",
9716 "Exposure for motion blur as a factor of FPS. (Deprecated: Use Motion "
9717 "Blur Shutter input instead.)");
9724 prop,
"Size Source",
"Where to get the mask size from for aspect/size information");
9729 "rna_node_property_to_input_getter<int, node_input_size_x>",
9730 "rna_node_property_to_input_setter<int, node_input_size_x>",
9738 "rna_node_property_to_input_getter<int, node_input_size_y>",
9739 "rna_node_property_to_input_setter<int, node_input_size_y>",
9760 {0,
"ADD", 0,
"Add",
""},
9761 {1,
"SUBTRACT", 0,
"Subtract",
""},
9762 {2,
"MULTIPLY", 0,
"Multiply",
""},
9763 {3,
"NOT", 0,
"Not",
""},
9764 {0,
nullptr, 0,
nullptr,
nullptr},
9779 "rna_node_property_to_vector_input_getter<node_input_position, 0>",
9780 "rna_node_property_to_vector_input_setter<node_input_position, 0>",
9785 prop,
"X",
"X position of the middle of the box. (Deprecated: Use Position input instead.)");
9790 "rna_node_property_to_vector_input_getter<node_input_position, 1>",
9791 "rna_node_property_to_vector_input_setter<node_input_position, 1>",
9796 prop,
"Y",
"Y position of the middle of the box. (Deprecated: Use Position input instead.)");
9801 "rna_node_property_to_vector_input_getter<node_input_size, 0>",
9802 "rna_node_property_to_vector_input_setter<node_input_size, 0>",
9807 prop,
"Width",
"Width of the box. (Deprecated: Use Size input instead.)");
9812 "rna_node_property_to_vector_input_getter<node_input_size, 1>",
9813 "rna_node_property_to_vector_input_setter<node_input_size, 1>",
9818 prop,
"Height",
"Height of the box. (Deprecated: Use Size input instead.)");
9823 "rna_node_property_to_input_getter<float, node_input_rotation>",
9824 "rna_node_property_to_input_setter<float, node_input_rotation>",
9829 prop,
"Rotation",
"Rotation angle of the box. (Deprecated: Use Rotation input instead.)");
9844 "rna_node_property_to_vector_input_getter<node_input_position, 0>",
9845 "rna_node_property_to_vector_input_setter<node_input_position, 0>",
9852 "X position of the middle of the ellipse. (Deprecated: Use Position input instead.)");
9857 "rna_node_property_to_vector_input_getter<node_input_position, 1>",
9858 "rna_node_property_to_vector_input_setter<node_input_position, 1>",
9865 "Y position of the middle of the ellipse. (Deprecated: Use Position input instead.)");
9870 "rna_node_property_to_vector_input_getter<node_input_size, 0>",
9871 "rna_node_property_to_vector_input_setter<node_input_size, 0>",
9876 prop,
"Width",
"Width of the ellipse. (Deprecated: Use Size input instead.)");
9881 "rna_node_property_to_vector_input_getter<node_input_size, 1>",
9882 "rna_node_property_to_vector_input_setter<node_input_size, 1>",
9887 prop,
"Height",
"Height of the ellipse. (Deprecated: Use Size input instead.)");
9892 "rna_node_property_to_input_getter<float, node_input_rotation>",
9893 "rna_node_property_to_input_setter<float, node_input_rotation>",
9900 "Rotation angle of the ellipse. (Deprecated: Use Rotation input instead.)");
9914 "Support variable blur per pixel when using an image for size input. (Deprecated: Unused.)");
9920 "rna_node_property_to_input_getter<bool, node_input_extend_bounds>",
9921 "rna_node_property_to_input_setter<bool, node_input_extend_bounds>");
9924 "Extend bounds of the input image to fully fit blurred image. "
9925 "(Deprecated: Use Extend Bounds input instead.)");
9932 prop,
"Max Blur",
"Blur limit, maximum CoC radius. (Deprecated: Unused.)");
9942 "rna_node_property_to_input_getter<float, node_input_angle>",
9943 "rna_node_property_to_input_setter<float, node_input_angle>",
9948 prop,
"Angle",
"Angle of the bokeh. (Deprecated: Use Angle input instead)");
9953 "rna_node_property_to_input_getter<int, node_input_flaps>",
9954 "rna_node_property_to_input_setter<int, node_input_flaps>",
9959 prop,
"Flaps",
"Number of flaps. (Deprecated: Use Flaps input instead)");
9964 "rna_node_property_to_input_getter<float, node_input_roundness>",
9965 "rna_node_property_to_input_setter<float, node_input_roundness>",
9972 "Level of rounding of the bokeh. (Deprecated: Use Roundness input instead)");
9978 "rna_node_property_to_input_getter<float, node_input_catadioptric_size>",
9979 "rna_node_property_to_input_setter<float, node_input_catadioptric_size>",
9986 "Level of catadioptric of the bokeh. (Deprecated: Use Catadioptric Size input instead)");
9991 "rna_node_property_to_input_getter<float, node_input_color_shift>",
9992 "rna_node_property_to_input_setter<float, node_input_color_shift>",
9999 "Shift of the lens components. (Deprecated: Use Color Shift input instead)");
10009 "rna_node_property_to_input_getter<bool, node_input_switch>",
10010 "rna_node_property_to_input_setter<bool, node_input_switch>");
10014 "Off: first socket, On: second socket. (Deprecated: Use Switch input instead.)");
10026 "rna_node_property_to_input_getter<bool, node_input_apply_on_red>",
10027 "rna_node_property_to_input_setter<bool, node_input_apply_on_red>");
10030 prop,
"Red",
"Red channel active. (Deprecated: Use Apply On Red input instead.)");
10036 "rna_node_property_to_input_getter<bool, node_input_apply_on_green>",
10037 "rna_node_property_to_input_setter<bool, node_input_apply_on_green>");
10040 prop,
"Green",
"Green channel active. (Deprecated: Use Apply On Green input instead.)");
10046 "rna_node_property_to_input_getter<bool, node_input_apply_on_blue>",
10047 "rna_node_property_to_input_setter<bool, node_input_apply_on_blue>");
10050 prop,
"Blue",
"Blue channel active. (Deprecated: Use Apply On Blue input instead.)");
10056 "rna_node_property_to_input_getter<float, node_input_midtones_start>",
10057 "rna_node_property_to_input_setter<float, node_input_midtones_start>",
10063 "Start of midtones. (Deprecated: Use Midtones Start input instead.)");
10068 "rna_node_property_to_input_getter<float, node_input_midtones_end>",
10069 "rna_node_property_to_input_setter<float, node_input_midtones_end>",
10074 prop,
"Midtones End",
"End of midtones. (Deprecated: Use Midtones End input instead.)");
10080 "rna_node_property_to_input_getter<float, node_input_master_saturation>",
10081 "rna_node_property_to_input_setter<float, node_input_master_saturation>",
10087 "Master Saturation",
10088 "Master saturation. (Deprecated: Use Master Saturation input instead.)");
10094 "rna_node_property_to_input_getter<float, node_input_master_contrast>",
10095 "rna_node_property_to_input_setter<float, node_input_master_contrast>",
10101 "Master contrast. (Deprecated: Use Master Contrast input instead.)");
10106 "rna_node_property_to_input_getter<float, node_input_master_gamma>",
10107 "rna_node_property_to_input_setter<float, node_input_master_gamma>",
10112 prop,
"Master Gamma",
"Master gamma. (Deprecated: Use Master Gamma input instead.)");
10117 "rna_node_property_to_input_getter<float, node_input_master_gain>",
10118 "rna_node_property_to_input_setter<float, node_input_master_gain>",
10123 prop,
"Master Gain",
"Master gain. (Deprecated: Use Master Gain input instead.)");
10128 "rna_node_property_to_input_getter<float, node_input_master_lift>",
10129 "rna_node_property_to_input_setter<float, node_input_master_lift>",
10134 prop,
"Master Lift",
"Master lift. (Deprecated: Use Master Lift input instead.)");
10141 "rna_node_property_to_input_getter<float, node_input_shadows_saturation>",
10142 "rna_node_property_to_input_setter<float, node_input_shadows_saturation>",
10148 "Shadows Saturation",
10149 "Shadows saturation. (Deprecated: Use Shadows Saturation input instead.)");
10155 "rna_node_property_to_input_getter<float, node_input_shadows_contrast>",
10156 "rna_node_property_to_input_setter<float, node_input_shadows_contrast>",
10161 "Shadows Contrast",
10162 "Shadows contrast. (Deprecated: Use Shadows Contrast input instead.)");
10168 "rna_node_property_to_input_getter<float, node_input_shadows_gamma>",
10169 "rna_node_property_to_input_setter<float, node_input_shadows_gamma>",
10174 prop,
"Shadows Gamma",
"Shadows gamma. (Deprecated: Use Shadows Gamma input instead.)");
10179 "rna_node_property_to_input_getter<float, node_input_shadows_gain>",
10180 "rna_node_property_to_input_setter<float, node_input_shadows_gain>",
10185 prop,
"Shadows Gain",
"Shadows gain. (Deprecated: Use Shadows Gain input instead.)");
10190 "rna_node_property_to_input_getter<float, node_input_shadows_lift>",
10191 "rna_node_property_to_input_setter<float, node_input_shadows_lift>",
10196 prop,
"Shadows Lift",
"Shadows lift. (Deprecated: Use Shadows Lift input instead.)");
10202 "rna_node_property_to_input_getter<float, node_input_midtones_saturation>",
10203 "rna_node_property_to_input_setter<float, node_input_midtones_saturation>",
10209 "Midtones Saturation",
10210 "Midtones saturation. (Deprecated: Use Midtones Saturation input instead.)");
10216 "rna_node_property_to_input_getter<float, node_input_midtones_contrast>",
10217 "rna_node_property_to_input_setter<float, node_input_midtones_contrast>",
10223 "Midtones Contrast",
10224 "Midtones contrast. (Deprecated: Use Midtones Contrast input instead.)");
10230 "rna_node_property_to_input_getter<float, node_input_midtones_gamma>",
10231 "rna_node_property_to_input_setter<float, node_input_midtones_gamma>",
10236 prop,
"Midtones Gamma",
"Midtones gamma. (Deprecated: Use Midtones Gamma input instead.)");
10242 "rna_node_property_to_input_getter<float, node_input_midtones_gain>",
10243 "rna_node_property_to_input_setter<float, node_input_midtones_gain>",
10248 prop,
"Midtones Gain",
"Midtones gain. (Deprecated: Use Midtones Gain input instead.)");
10254 "rna_node_property_to_input_getter<float, node_input_midtones_lift>",
10255 "rna_node_property_to_input_setter<float, node_input_midtones_lift>",
10260 prop,
"Midtones Lift",
"Midtones lift. (Deprecated: Use Midtones Lift input instead.)");
10266 "rna_node_property_to_input_getter<float, node_input_highlights_saturation>",
10267 "rna_node_property_to_input_setter<float, node_input_highlights_saturation>",
10273 "Highlights Saturation",
10274 "Highlights saturation. (Deprecated: Use Highlights Saturation input instead.)");
10280 "rna_node_property_to_input_getter<float, node_input_highlights_contrast>",
10281 "rna_node_property_to_input_setter<float, node_input_highlights_contrast>",
10287 "Highlights Contrast",
10288 "Highlights contrast. (Deprecated: Use Highlights Contrast input instead.)");
10294 "rna_node_property_to_input_getter<float, node_input_highlights_gamma>",
10295 "rna_node_property_to_input_setter<float, node_input_highlights_gamma>",
10300 "Highlights Gamma",
10301 "Highlights gamma. (Deprecated: Use Highlights Gamma input instead.)");
10307 "rna_node_property_to_input_getter<float, node_input_highlights_gain>",
10308 "rna_node_property_to_input_setter<float, node_input_highlights_gain>",
10314 "Highlights gain. (Deprecated: Use Highlights Gain input instead.)");
10320 "rna_node_property_to_input_getter<float, node_input_highlights_lift>",
10321 "rna_node_property_to_input_setter<float, node_input_highlights_lift>",
10327 "Highlights lift. (Deprecated: Use Highlights Lift input instead.)");
10338 "Use Nearest interpolation"},
10343 "Use Bilinear interpolation"},
10348 "Use Cubic B-Spline interpolation"},
10353 "Use Anisotropic interpolation"},
10354 {0,
nullptr, 0,
nullptr,
nullptr},
10375 "Colors are treated alpha premultiplied, or colors output straight "
10376 "(alpha gets set to 1). (Deprecated: Unused.)");
10396 "Colors are treated alpha premultiplied, or colors output straight "
10397 "(alpha gets set to 1). (Deprecated: Unused.)");
10422 "rna_node_property_to_input_getter<float, node_input_smoothness>",
10423 "rna_node_property_to_input_setter<float, node_input_smoothness>",
10438 "rna_node_property_to_input_getter<float, node_input_key_balance>",
10439 "rna_node_property_to_input_setter<float, node_input_key_balance>",
10444 "Balance between two non-primary channels primary channel is comparing "
10445 "against. (Deprecated: Use Key Balance input instead.)");
10451 "rna_node_property_to_input_getter<float, node_input_despill_strength>",
10452 "rna_node_property_to_input_setter<float, node_input_despill_strength>",
10457 "Factor of despilling screen color from image. (Deprecated: Use "
10458 "Despill Strength input instead.)");
10464 "rna_node_property_to_input_getter<float, node_input_despill_balance>",
10465 "rna_node_property_to_input_setter<float, node_input_despill_balance>",
10470 "Balance between non-key colors used to detect amount of key color to "
10471 "be removed. (Deprecated: Use Despill Balance input instead.)");
10476 "rna_node_property_to_input_getter<float, node_input_black_level>",
10477 "rna_node_property_to_input_setter<float, node_input_black_level>",
10482 "Value of non-scaled matte pixel which considers as fully background "
10483 "pixel. (Deprecated: Use Black Level input instead.)");
10488 "rna_node_property_to_input_getter<float, node_input_white_level>",
10489 "rna_node_property_to_input_setter<float, node_input_white_level>",
10494 "Value of non-scaled matte pixel which considers as fully foreground "
10495 "pixel. (Deprecated: Use White Level input instead.)");
10501 "rna_node_property_to_input_getter<int, node_input_preprocess_blur_size>",
10502 "rna_node_property_to_input_setter<int, node_input_preprocess_blur_size>",
10507 "Chroma pre-blur size which applies before running keyer. (Deprecated: "
10508 "Use Preprocess Blur Size input instead.)");
10514 "rna_node_property_to_input_getter<int, node_input_postprocess_blur_size>",
10515 "rna_node_property_to_input_setter<int, node_input_postprocess_blur_size>",
10520 "Matte blur size which applies after clipping and dilate/eroding. "
10521 "(Deprecated: Use Postprocess Blur Size input instead.)");
10527 "rna_node_property_to_input_getter<int, node_input_postprocess_dilate_size>",
10528 "rna_node_property_to_input_setter<int, node_input_postprocess_dilate_size>",
10533 "Distance to grow/shrink the matte. (Deprecated: Use Postprocess "
10534 "Dilate Size input instead.)");
10539 "rna_node_property_to_input_getter<int, node_input_edge_search_size>",
10540 "rna_node_property_to_input_setter<int, node_input_edge_search_size>",
10544 "Edge Kernel Radius",
10545 "Radius of kernel used to detect whether pixel belongs to edge. "
10546 "(Deprecated: Use Edge Search Size input instead.)");
10552 "rna_node_property_to_input_getter<float, node_input_edge_tolerance>",
10553 "rna_node_property_to_input_setter<float, node_input_edge_tolerance>",
10557 "Edge Kernel Tolerance",
10558 "Tolerance to pixels inside kernel which are treating as belonging to "
10559 "the same plane. (Deprecated: Use Edge Tolerance input instead.)");
10573 "rna_node_property_to_input_getter<int, node_input_postprocess_feather_size>",
10574 "rna_node_property_to_input_setter<int, node_input_postprocess_feather_size>",
10578 "Feather Distance",
10579 "Distance to grow/shrink the feather. (Deprecated: Use Postprocess "
10580 "Feather Size input instead.)");
10593 "Output absolute position of a marker"},
10598 "Output position of a marker relative to first marker of a track"},
10603 "Output position of a marker relative to marker at given frame number"},
10608 "Output absolute position of a marker at given frame number"},
10609 {0,
nullptr, 0,
nullptr,
nullptr},
10654 "rna_node_property_to_input_getter<int, node_input_size>",
10655 "rna_node_property_to_input_setter<int, node_input_size>",
10660 prop,
"Pixel Size",
"Pixel size of the output image. (Deprecated: Use Size input instead.)");
10671 {0,
nullptr, 0,
nullptr,
nullptr},
10688 "Use relative (fraction of input image size) values to define "
10689 "translation. (Deprecated: Unused.)");
10726 "rna_node_property_to_input_getter<bool, node_input_motion_blur>",
10727 "rna_node_property_to_input_setter<bool, node_input_motion_blur>");
10731 "Use multi-sampled motion blur of the mask. (Deprecated: Use Motion Blur input instead.)");
10737 "rna_node_property_to_input_getter<int, node_input_motion_blur_samples>",
10738 "rna_node_property_to_input_setter<int, node_input_motion_blur_samples>",
10744 "Number of motion blur samples. (Deprecated: Use Motion Blur Samples input instead.)");
10750 "rna_node_property_to_input_getter<float, node_input_motion_blur_shutter>",
10751 "rna_node_property_to_input_setter<float, node_input_motion_blur_shutter>",
10756 "Exposure for motion blur as a factor of FPS. (Deprecated: Use Motion "
10757 "Blur Shutter input instead.)");
10768 "rna_node_array_property_to_input_getter<float, node_input_source>",
10769 "rna_node_array_property_to_input_setter<float, node_input_source>",
10775 "Source point of rays as a factor of the image width and height. "
10776 "(Deprecated: Use Source input instead.)");
10781 "rna_node_property_to_input_getter<float, node_input_length>",
10782 "rna_node_property_to_input_setter<float, node_input_length>",
10789 "Length of rays as a factor of the image size. (Deprecated: Use Length input instead.)");
10814 static float default_1[3] = {1.0f, 1.0f, 1.0f};
10818 "rna_NodeCryptomatte_matte_get",
10819 "rna_NodeCryptomatte_matte_length",
10820 "rna_NodeCryptomatte_matte_set");
10822 prop,
"Matte Objects",
"List of object and material crypto IDs to include in matte");
10830 prop,
"Add",
"Add object or material to matte, by picking a color from the Pick output");
10841 "Remove object or material from matte, by picking a color from the Pick output");
10861 "Use Cryptomatte passes from a render"},
10866 "Use Cryptomatte passes from an image"},
10867 {0,
nullptr, 0,
nullptr,
nullptr}};
10878 prop,
"rna_NodeCryptomatte_scene_get",
"rna_NodeCryptomatte_scene_set",
nullptr,
nullptr);
10887 "rna_NodeCryptomatte_image_get",
10888 "rna_NodeCryptomatte_image_set",
10890 "rna_NodeCryptomatte_image_poll");
10903 "rna_NodeCryptomatte_layer_name_get",
10904 "rna_NodeCryptomatte_layer_name_set",
10905 "rna_NodeCryptomatte_layer_name_itemf");
10933 "No prefiltering, use when guiding passes are noise-free"},
10938 "Denoise image and guiding passes together. Improves quality when guiding passes are noisy "
10939 "using least amount of extra processing time."},
10944 "Prefilter noisy guiding passes before denoising image. Improves quality when guiding "
10945 "passes are noisy using extra processing time."},
10946 {0,
nullptr, 0,
nullptr,
nullptr}};
10953 "Use the scene's denoising quality setting"},
10959 "Balanced between performance and quality"},
10961 {0,
nullptr, 0,
nullptr,
nullptr}};
10967 "rna_node_property_to_input_getter<bool, node_input_hdr>",
10968 "rna_node_property_to_input_setter<bool, node_input_hdr>");
10993 {0,
"CLASSIC", 0,
"Classic",
"Fast but less accurate variation"},
10994 {1,
"ANISOTROPIC", 0,
"Anisotropic",
"Accurate but slower variation"},
10995 {0,
nullptr, 0,
nullptr,
nullptr},
11007 "rna_node_property_to_input_getter<bool, node_input_high_precision>",
11008 "rna_node_property_to_input_setter<bool, node_input_high_precision>");
11011 "Uses a more precise but slower method. Use if the output contains "
11012 "undesirable noise. (Deprecated: Use High Precision input instead.)");
11017 "rna_node_property_to_input_getter<int, node_input_uniformity>",
11018 "rna_node_property_to_input_setter<int, node_input_uniformity>",
11025 "Controls the uniformity of the direction of the filter. Higher values "
11026 "produces more uniform directions. (Deprecated: Use Uniformity input instead.)");
11031 "rna_node_property_to_input_getter<float, node_input_sharpness>",
11032 "rna_node_property_to_input_setter<float, node_input_sharpness>",
11038 "Controls the sharpness of the filter. 0 means completely smooth while "
11039 "1 means completely sharp. (Deprecated: Use Sharpness input instead.)");
11044 "rna_node_property_to_input_getter<float, node_input_eccentricity>",
11045 "rna_node_property_to_input_setter<float, node_input_eccentricity>",
11052 "Controls how directional the filter is. 0 means the filter is completely omnidirectional "
11053 "while 2 means it is maximally directed along the edges of the image. (Deprecated: Use "
11054 "Eccentricity input instead.)");
11064 "rna_node_property_to_input_getter<float, node_input_threshold>",
11065 "rna_node_property_to_input_setter<float, node_input_threshold>",
11070 "Threshold to detect edges (smaller threshold makes more sensitive "
11071 "detection). (Deprecated: Use Threshold input instead.)");
11076 "rna_NodeAntiAlias_contrast_limit_get",
11077 "rna_NodeAntiAlias_contrast_limit_set",
11084 "How much to eliminate spurious edges to avoid artifacts (the larger value makes less "
11085 "active; the value 2.0, for example, means discard a detected edge if there is a "
11086 "neighboring edge that has 2.0 times bigger contrast than the current one). (Deprecated: "
11087 "Use Contrast Limit input instead.)");
11093 "rna_node_property_to_input_getter<float, node_input_corner_rounding>",
11094 "rna_node_property_to_input_setter<float, node_input_corner_rounding>",
11101 "How much sharp corners will be rounded. (Deprecated: Use Corner Rounding input instead.)");
11135 prop,
"Image User",
"Parameters defining the image duration, offset and related settings");
11147 prop,
"Offset Amount",
"Determines the brick offset of the various rows");
11162 "Factor to adjust the brick's width for particular rows determined by the Offset Frequency");
11182 "Find sample positions on the curve using a factor of its total length"},
11187 "Find sample positions on the curve using a distance from its beginning"},
11188 {0,
nullptr, 0,
nullptr,
nullptr},
11203 "Sample lengths based on the total length of all curves, rather than "
11204 "using a length inside each selected curve");
11211 prop,
nullptr,
nullptr,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
11237 static const EnumPropertyItem rna_node_geometry_distribute_points_on_faces_mode_items[] = {
11242 "Distribute points randomly on the surface"},
11247 "Distribute the points randomly on the surface while taking a minimum distance between "
11248 "points into account"},
11249 {0,
nullptr, 0,
nullptr,
nullptr},
11264 "Output the normal and rotation values that have been output "
11265 "before the node started taking smooth normals into account");
11302 prop,
"Paired Output",
"Zone output node that this input node is paired with");
11304 func =
RNA_def_function(srna,
"pair_with_output",
"rna_Node_pair_with_output");
11308 func,
"output_node",
"GeometryNode",
"Output Node",
"Zone output node to pair with");
11312 func,
"result",
false,
"Result",
"True if pairing the node was successful");
11345 const char *accessor,
11346 const bool add_socket_type)
11351 char name_set_func[128];
11352 SNPRINTF(name_set_func,
"rna_Node_ItemArray_item_name_set<%s>", accessor);
11354 char item_update_func[128];
11355 SNPRINTF(item_update_func,
"rna_Node_ItemArray_item_update<%s>", accessor);
11356 const char *item_update_func_ptr = allocator.
copy_string(item_update_func).
c_str();
11358 char socket_type_itemf[128];
11359 SNPRINTF(socket_type_itemf,
"rna_Node_ItemArray_socket_type_itemf<%s>", accessor);
11361 char color_get_func[128];
11362 SNPRINTF(color_get_func,
"rna_Node_ItemArray_item_color_get<%s>", accessor);
11371 if (add_socket_type) {
11375 prop,
nullptr,
nullptr, allocator.
copy_string(socket_type_itemf).
c_str());
11387 prop,
"Color",
"Color of the corresponding socket type in the node editor");
11391 const char *item_name,
11392 const char *accessor_name)
11398 char remove_call[128];
11399 SNPRINTF(remove_call,
"rna_Node_ItemArray_remove<%s>", accessor_name);
11400 char clear_call[128];
11401 SNPRINTF(clear_call,
"rna_Node_ItemArray_clear<%s>", accessor_name);
11402 char move_call[128];
11403 SNPRINTF(move_call,
"rna_Node_ItemArray_move<%s>", accessor_name);
11408 parm =
RNA_def_pointer(func,
"item", item_name,
"Item",
"The item to remove");
11419 func,
"from_index", -1, 0, INT_MAX,
"From Index",
"Index of the item to move", 0, 10000);
11422 func,
"to_index", -1, 0, INT_MAX,
"To Index",
"Target index for the item", 0, 10000);
11427 const char *item_name,
11428 const char *accessor_name)
11435 SNPRINTF(name,
"rna_Node_ItemArray_new_with_socket_and_name<%s>", accessor_name);
11445 "Socket type of the item");
11467 prop,
nullptr,
nullptr,
"rna_GeometryNodeAttributeDomain_attribute_domain_itemf");
11470 "Attribute Domain",
11471 "Attribute domain where the attribute is stored in the simulation state");
11474 prop,
NC_NODE |
NA_EDITED,
"rna_Node_ItemArray_item_update<SimulationItemsAccessor>");
11481 srna =
RNA_def_struct(brna,
"NodeGeometrySimulationOutputItems",
nullptr);
11486 srna,
"SimulationStateItem",
"SimulationItemsAccessor");
11515 "rna_Node_ItemArray_active_get<SimulationItemsAccessor>",
11516 "rna_Node_ItemArray_active_set<SimulationItemsAccessor>",
11537 srna =
RNA_def_struct(brna,
"NodeGeometryRepeatOutputItems",
nullptr);
11570 "rna_Node_ItemArray_active_get<RepeatItemsAccessor>",
11571 "rna_Node_ItemArray_active_set<RepeatItemsAccessor>",
11581 "Inspection Index",
11582 "Iteration index that is used by inspection features like the viewer "
11583 "node or socket inspection");
11594 srna,
"ForeachGeometryElementInputItemsAccessor",
true);
11601 srna =
RNA_def_struct(brna,
"NodeGeometryForeachGeometryElementInputItems",
nullptr);
11606 srna,
"ForeachGeometryElementInputItem",
"ForeachGeometryElementInputItemsAccessor");
11608 srna,
"ForeachGeometryElementInputItem",
"ForeachGeometryElementInputItemsAccessor");
11615 srna =
RNA_def_struct(brna,
"ForeachGeometryElementMainItem",
nullptr);
11620 srna,
"ForeachGeometryElementMainItemsAccessor",
true);
11627 srna =
RNA_def_struct(brna,
"NodeGeometryForeachGeometryElementMainItems",
nullptr);
11632 srna,
"ForeachGeometryElementMainItem",
"ForeachGeometryElementMainItemsAccessor");
11634 srna,
"ForeachGeometryElementMainItem",
"ForeachGeometryElementMainItemsAccessor");
11642 srna =
RNA_def_struct(brna,
"ForeachGeometryElementGenerationItem",
nullptr);
11647 srna,
"ForeachGeometryElementGenerationItemsAccessor",
true);
11655 "rna_Node_ItemArray_item_update<ForeachGeometryElementGenerationItemsAccessor>");
11662 srna =
RNA_def_struct(brna,
"NodeGeometryForeachGeometryElementGenerationItems",
nullptr);
11668 "ForeachGeometryElementGenerationItem",
11669 "ForeachGeometryElementGenerationItemsAccessor");
11671 "ForeachGeometryElementGenerationItem",
11672 "ForeachGeometryElementGenerationItemsAccessor");
11702 prop,
nullptr,
"generation_items.items",
"generation_items.items_num");
11735 "Inspection Index",
11736 "Iteration index that is used by inspection features like the viewer "
11737 "node or socket inspection");
11757 srna,
"NodeGeometryClosureInputItem",
"ClosureInputItemsAccessor");
11759 srna,
"NodeGeometryClosureInputItem",
"ClosureInputItemsAccessor");
11778 srna,
"NodeGeometryClosureOutputItem",
"ClosureOutputItemsAccessor");
11780 srna,
"NodeGeometryClosureOutputItem",
"ClosureOutputItemsAccessor");
11830 prop,
nullptr,
nullptr,
"rna_NodeGeometryCaptureAttributeItem_data_type_itemf");
11834 prop,
NC_NODE |
NA_EDITED,
"rna_Node_ItemArray_item_update<CaptureAttributeItemsAccessor>");
11844 srna,
"NodeGeometryCaptureAttributeItem",
"CaptureAttributeItemsAccessor");
11846 srna,
"NodeGeometryCaptureAttributeItem",
"CaptureAttributeItemsAccessor");
11874 "rna_Node_ItemArray_active_get<CaptureAttributeItemsAccessor>",
11875 "rna_Node_ItemArray_active_set<CaptureAttributeItemsAccessor>",
11886 prop,
nullptr,
nullptr,
"rna_GeometryNodeAttributeDomain_attribute_domain_itemf");
11894 srna =
RNA_def_struct(brna,
"NodeGeometryEvaluateClosureInputItem",
nullptr);
11904 srna =
RNA_def_struct(brna,
"NodeGeometryEvaluateClosureInputItems",
nullptr);
11909 srna,
"NodeGeometryEvaluateClosureInputItem",
"EvaluateClosureInputItemsAccessor");
11911 srna,
"NodeGeometryEvaluateClosureInputItem",
"EvaluateClosureInputItemsAccessor");
11918 srna =
RNA_def_struct(brna,
"NodeGeometryEvaluateClosureOutputItem",
nullptr);
11928 srna =
RNA_def_struct(brna,
"NodeGeometryEvaluateClosureOutputItems",
nullptr);
11933 srna,
"NodeGeometryEvaluateClosureOutputItem",
"EvaluateClosureOutputItemsAccessor");
11935 srna,
"NodeGeometryEvaluateClosureOutputItem",
"EvaluateClosureOutputItemsAccessor");
11989 prop,
nullptr,
nullptr,
"rna_GeometryNodeAttributeDomain_attribute_domain_itemf");
11991 "Attribute Domain",
11992 "Attribute domain where the attribute is stored in the baked data");
11995 prop,
NC_NODE |
NA_EDITED,
"rna_Node_ItemArray_item_update<BakeItemsAccessor>");
12001 prop,
NC_NODE |
NA_EDITED,
"rna_Node_ItemArray_item_update<BakeItemsAccessor>");
12013 srna,
"NodeGeometryBakeItem",
"BakeItemsAccessor");
12042 "rna_Node_ItemArray_active_get<BakeItemsAccessor>",
12043 "rna_Node_ItemArray_active_set<BakeItemsAccessor>",
12067 srna,
"NodeGeometryCombineBundleItem",
"CombineBundleItemsAccessor");
12069 srna,
"NodeGeometryCombineBundleItem",
"CombineBundleItemsAccessor");
12110 srna,
"NodeGeometrySeparateBundleItem",
"SeparateBundleItemsAccessor");
12112 srna,
"NodeGeometrySeparateBundleItem",
"SeparateBundleItemsAccessor");
12167 parm =
RNA_def_pointer(func,
"item",
"IndexSwitchItem",
"Item",
"New item");
12193 srna =
RNA_def_struct(brna,
"NodeFunctionFormatStringItem",
nullptr);
12203 srna =
RNA_def_struct(brna,
"NodeFunctionFormatStringItems",
nullptr);
12208 srna,
"NodeFunctionFormatStringItem",
"FormatStringItemsAccessor");
12210 srna,
"NodeFunctionFormatStringItem",
"FormatStringItemsAccessor");
12262 "Rotate around an axis by an angle"},
12267 "Rotate around the X, Y, and Z axes"},
12268 {0,
nullptr, 0,
nullptr,
nullptr},
12276 "Rotate the input rotation in the local space of the object"},
12281 "Rotate the input rotation in its local space"},
12282 {0,
nullptr, 0,
nullptr,
nullptr},
12310 prop,
nullptr,
nullptr,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
12319 prop,
nullptr,
nullptr,
"rna_GeometryNodeAttributeDomain_attribute_domain_itemf");
12327 "Clamp the indices to the size of the attribute domain instead of "
12328 "outputting a default value for invalid indices");
12364 "Flat Corner Normals",
12365 "Always use face normals for the face corner domain, matching old behavior of the node");
12396 static const EnumPropertyItem rna_node_geometry_string_to_curves_overflow_items[] = {
12401 "Let the text use more space than the specified height"},
12406 "Scale the text size to fit inside the width and height"},
12411 "Only output curves that fit within the width and height. Output the remainder to the "
12412 "\"Remainder\" output."},
12413 {0,
nullptr, 0,
nullptr,
nullptr},
12416 static const EnumPropertyItem rna_node_geometry_string_to_curves_align_x_items[] = {
12421 "Align text to the left"},
12426 "Align text to the center"},
12431 "Align text to the right"},
12434 ICON_ALIGN_JUSTIFY,
12436 "Align text to the left and the right"},
12441 "Align text to the left and the right, with equal character spacing"},
12442 {0,
nullptr, 0,
nullptr,
nullptr},
12445 static const EnumPropertyItem rna_node_geometry_string_to_curves_align_y_items[] = {
12450 "Align text to the top"},
12455 "Align text to the top line's baseline"},
12460 "Align text to the middle"},
12465 "Align text to the bottom line's baseline"},
12470 "Align text to the bottom"},
12471 {0,
nullptr, 0,
nullptr,
nullptr},
12474 static const EnumPropertyItem rna_node_geometry_string_to_curves_pivot_mode[] = {
12498 {0,
nullptr, 0,
nullptr,
nullptr},
12507 prop,
"Font",
"Font of the text. Falls back to the UI font by default.");
12519 prop,
"Textbox Overflow",
"Handle the text behavior when it doesn't fit in the text boxes");
12527 "Horizontal Alignment",
12528 "Text horizontal alignment from the object or text box center");
12536 prop,
"Vertical Alignment",
"Text vertical alignment from the object center");
12556 prop,
nullptr,
nullptr,
"rna_Node_ItemArray_item_name_set<MenuSwitchItemsAccessor>");
12560 prop,
NC_NODE |
NA_EDITED,
"rna_Node_ItemArray_item_update<MenuSwitchItemsAccessor>");
12566 prop,
NC_NODE |
NA_EDITED,
"rna_Node_ItemArray_item_update<MenuSwitchItemsAccessor>");
12578 srna,
"Enum Definition Items",
"Collection of items that make up an enum");
12586 parm =
RNA_def_pointer(func,
"item",
"NodeEnumItem",
"Item",
"New item");
12603 prop,
nullptr,
"enum_definition.items_array",
"enum_definition.items_num");
12617 "rna_Node_ItemArray_active_get<MenuSwitchItemsAccessor>",
12618 "rna_Node_ItemArray_active_set<MenuSwitchItemsAccessor>",
12629 prop,
"rna_NodeMenuSwitch_enum_definition_get",
nullptr,
nullptr,
nullptr);
12632 "Enum Definition (deprecated)",
12633 "The enum definition can now be accessed directly on the node. This "
12634 "exists for backward compatibility.");
12656 srna,
"rna_CompositorNode_register",
"rna_Node_unregister",
nullptr);
12659 func =
RNA_def_function(srna,
"tag_need_exec",
"rna_CompositorNode_tag_need_exec");
12714 srna =
RNA_def_struct(brna,
"NodeInternalSocketTemplate",
nullptr);
12719 "rna_NodeInternalSocketTemplate_name_get",
12720 "rna_NodeInternalSocketTemplate_name_length",
12727 "rna_NodeInternalSocketTemplate_identifier_get",
12728 "rna_NodeInternalSocketTemplate_identifier_length",
12754 func,
"If non-null output is returned, the node type can be added to the tree");
12757 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
12760 func =
RNA_def_function(srna,
"poll_instance",
"rna_NodeInternal_poll_instance");
12762 func,
"If non-null output is returned, the node can be added to the tree");
12764 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
12770 func,
"Update on node graph topology changes (adding or removing nodes and links)");
12774 func =
RNA_def_function(srna,
"draw_buttons",
"rna_NodeInternal_draw_buttons");
12785 func =
RNA_def_function(srna,
"draw_buttons_ext",
"rna_NodeInternal_draw_buttons_ext");
12801 const char *structtype = (in_out ==
SOCK_IN ?
"NodeInputs" :
"NodeOutputs");
12802 const char *uiname = (in_out ==
SOCK_IN ?
"Node Inputs" :
"Node Outputs");
12803 const char *newfunc = (in_out ==
SOCK_IN ?
"rna_Node_inputs_new" :
"rna_Node_outputs_new");
12804 const char *clearfunc = (in_out ==
SOCK_IN ?
"rna_Node_inputs_clear" :
"rna_Node_outputs_clear");
12805 const char *movefunc = (in_out ==
SOCK_IN ?
"rna_Node_inputs_move" :
"rna_Node_outputs_move");
12821 func,
"use_multi_input",
false,
"",
"Make the socket multi-input (valid for inputs only)");
12823 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"New socket");
12829 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"The socket to remove");
12840 func,
"from_index", -1, 0, INT_MAX,
"From Index",
"Index of the socket to move", 0, 10000);
12843 func,
"to_index", -1, 0, INT_MAX,
"To Index",
"Target index for the socket", 0, 10000);
12859 "ERRORS_AND_WARNINGS",
12861 "Errors and Warnings",
12863 {0,
nullptr, 0,
nullptr,
nullptr},
12879 prop,
"Type",
"Legacy unique node type identifier, redundant with bl_idname property");
12933 "rna_NodeInputs_lookup_string",
12949 "rna_NodeOutputs_lookup_string",
12958 "rna_Node_internal_links_begin",
12959 "rna_iterator_array_next",
12960 "rna_iterator_array_end",
12961 "rna_iterator_array_get",
12968 prop,
"Internal Links",
"Internal input-to-output connections for muting");
12973 prop,
nullptr,
"rna_Node_parent_set",
nullptr,
"rna_Node_parent_poll");
12984 "Warning Propagation",
12985 "The kinds of messages that should be propagated from this node to the parent group node");
13039 func =
RNA_def_function(srna,
"socket_value_update",
"rna_Node_socket_value_update");
13045 func =
RNA_def_function(srna,
"is_registered_node_type",
"rna_Node_is_registered_node_type");
13054 prop,
"rna_Node_bl_idname_get",
"rna_Node_bl_idname_length",
"rna_Node_bl_idname_set");
13060 prop,
"rna_Node_bl_label_get",
"rna_Node_bl_label_length",
"rna_Node_bl_label_set");
13066 "rna_Node_bl_description_get",
13067 "rna_Node_bl_description_length",
13068 "rna_Node_bl_description_set");
13084 "Legacy unique node type identifier, redundant with bl_idname property");
13114 func,
"If non-null output is returned, the node type can be added to the tree");
13117 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
13122 func,
"If non-null output is returned, the node can be added to the tree");
13125 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
13131 func,
"Update on node graph topology changes (adding or removing nodes and links)");
13138 parm =
RNA_def_pointer(func,
"link",
"NodeLink",
"Link",
"Node link that will be inserted");
13151 "Initialize a new instance of this node from an existing node");
13153 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Existing node to copy");
13193 "debug_zone_body_lazy_function_graph",
13194 "rna_NodeTree_debug_zone_body_lazy_function_graph");
13196 func,
"Get the internal lazy-function graph for the body of this zone");
13204 srna,
"debug_zone_lazy_function_graph",
"rna_NodeTree_debug_zone_lazy_function_graph");
13278 "Multi Input Sort ID",
13279 "Used to sort multiple links coming into the same input. The highest ID is at the top.");
13282 srna,
"swap_multi_input_sort_id",
"rna_NodeLink_swap_multi_input_sort_id");
13284 func,
"Swap the order of two links connected to the same multi-input socket");
13290 "The other link. Must link to the same multi-input socket.");
13317 "Type of node to add (Warning: should be same as node.bl_idname, not node.type!)");
13326 parm =
RNA_def_pointer(func,
"node",
"Node",
"",
"The node to remove");
13337 prop,
"rna_NodeTree_active_node_get",
"rna_NodeTree_active_node_set",
nullptr,
nullptr);
13357 parm =
RNA_def_pointer(func,
"input",
"NodeSocket",
"",
"The input socket");
13359 parm =
RNA_def_pointer(func,
"output",
"NodeSocket",
"",
"The output socket");
13365 "Remove existing links if connection limit is exceeded");
13367 "handle_dynamic_sockets",
13369 "Handle Dynamic Sockets",
13370 "Handle node specific features like virtual sockets");
13372 parm =
RNA_def_pointer(func,
"link",
"NodeLink",
"",
"New node link");
13378 parm =
RNA_def_pointer(func,
"link",
"NodeLink",
"",
"The node link to remove");
13399 "Undefined type of nodes (can happen e.g. when a linked node tree goes missing)"},
13400 {
NTREE_CUSTOM,
"CUSTOM", ICON_NONE,
"Custom",
"Custom nodes"},
13401 {
NTREE_SHADER,
"SHADER", ICON_MATERIAL,
"Shader",
"Shader nodes"},
13402 {
NTREE_TEXTURE,
"TEXTURE", ICON_TEXTURE,
"Texture",
"Texture nodes"},
13403 {
NTREE_COMPOSIT,
"COMPOSITING", ICON_RENDERLAYERS,
"Compositing",
"Compositing nodes"},
13404 {
NTREE_GEOMETRY,
"GEOMETRY", ICON_GEOMETRY_NODES,
"Geometry",
"Geometry nodes"},
13405 {0,
nullptr, 0,
nullptr,
nullptr},
13412 "Node tree consisting of linked nodes used for shading, textures and compositing");
13422 prop,
"Color Tag",
"Color tag of the node group which influences the header color");
13429 prop,
"Default Group Node Width",
"The width for newly created group nodes");
13436 prop,
"",
"The current location (offset) of the view for this Node Tree");
13465 prop,
nullptr,
nullptr,
nullptr,
"rna_GPencil_datablocks_annotations_poll");
13477 "Node Tree type (deprecated, bl_idname is the actual node tree type identifier)");
13485 func =
RNA_def_function(srna,
"interface_update",
"rna_NodeTree_interface_update");
13490 func =
RNA_def_function(srna,
"contains_tree",
"rna_NodeTree_contains_tree");
13493 "Check if the node tree contains another. Used to avoid creating recursive node groups.");
13495 func,
"sub_tree",
"NodeTree",
"Node Tree",
"Node tree for recursive check");
13503 "rna_NodeTree_bl_idname_get",
13504 "rna_NodeTree_bl_idname_length",
13505 "rna_NodeTree_bl_idname_set");
13511 "rna_NodeTree_bl_label_get",
13512 "rna_NodeTree_bl_label_length",
13513 "rna_NodeTree_bl_label_set");
13519 "rna_NodeTree_bl_description_get",
13520 "rna_NodeTree_bl_description_length",
13521 "rna_NodeTree_bl_description_set");
13536 "Use Group Interface",
13537 "Determines the visibility of some UI elements related to node groups");
13559 func,
"result_1",
"NodeTree",
"Node Tree",
"Active node tree from context");
13562 func,
"result_2",
"ID",
"Owner ID",
"ID data-block that owns the node tree");
13565 func,
"result_3",
"ID",
"From ID",
"Original ID data-block selected from the context");
13573 func,
"idname",
"NodeSocket",
MAX_NAME,
"Socket Type",
"Identifier of the socket type");
13578 srna,
"debug_lazy_function_graph",
"rna_NodeTree_debug_lazy_function_graph");
13594 srna,
"Compositor Node Tree",
"Node tree consisting of linked nodes used for compositing");
13601 prop,
"Viewer Region",
"Use boundaries for viewer nodes and composite backdrop");
13614 "Shader Node Tree",
13615 "Node tree consisting of linked nodes used for materials (and other shading data-blocks)");
13619 func =
RNA_def_function(srna,
"get_output_node",
"ntreeShaderOutputNode");
13621 "Return active shader output node for the specified target");
13635 srna,
"Texture Node Tree",
"Node tree consisting of linked nodes used for textures");
13647 srna,
"Geometry Node Tree",
"Node tree consisting of linked nodes used for geometries");
13656 prop,
"rna_GeometryNodeTree_is_tool_get",
"rna_GeometryNodeTree_is_tool_set");
13664 prop,
"rna_GeometryNodeTree_is_modifier_get",
"rna_GeometryNodeTree_is_modifier_set");
13672 prop,
"rna_GeometryNodeTree_is_mode_object_get",
"rna_GeometryNodeTree_is_mode_object_set");
13680 prop,
"rna_GeometryNodeTree_is_mode_edit_get",
"rna_GeometryNodeTree_is_mode_edit_set");
13688 prop,
"rna_GeometryNodeTree_is_mode_sculpt_get",
"rna_GeometryNodeTree_is_mode_sculpt_set");
13696 prop,
"rna_GeometryNodeTree_is_mode_paint_get",
"rna_GeometryNodeTree_is_mode_paint_set");
13704 prop,
"rna_GeometryNodeTree_is_type_mesh_get",
"rna_GeometryNodeTree_is_type_mesh_set");
13712 prop,
"rna_GeometryNodeTree_is_type_curve_get",
"rna_GeometryNodeTree_is_type_curve_set");
13720 "rna_GeometryNodeTree_is_type_pointcloud_get",
13721 "rna_GeometryNodeTree_is_type_pointcloud_set");
13729 "Wait for mouse click input before running the operator from a menu");
13731 "rna_GeometryNodeTree_use_wait_for_click_get",
13732 "rna_GeometryNodeTree_use_wait_for_click_set");
13740 "rna_GeometryNodeTree_is_type_grease_pencil_get",
13741 "rna_GeometryNodeTree_is_type_grease_pencil_set");
13746 const char *struct_name,
13747 const char *base_name)
13756 func =
RNA_def_function(srna,
"is_registered_node_type",
"rna_Node_is_registered_node_type");
13765 func =
RNA_def_function(srna,
"input_template",
"rna_NodeInternal_input_template");
13776 func =
RNA_def_function(srna,
"output_template",
"rna_NodeInternal_output_template");
13805 const auto define = [&](
const char *base_name,
13806 const char *struct_name,
13821 define(
"NodeInternal",
"NodeFrame",
def_frame);
13822 define(
"NodeInternal",
"NodeGroup",
def_group);
13825 define(
"NodeInternal",
"NodeReroute",
def_reroute);
13827 define(
"ShaderNode",
"ShaderNodeAddShader");
13830 define(
"ShaderNode",
"ShaderNodeBackground");
13831 define(
"ShaderNode",
"ShaderNodeBevel",
def_sh_bevel);
13832 define(
"ShaderNode",
"ShaderNodeBlackbody");
13833 define(
"ShaderNode",
"ShaderNodeBrightContrast");
13834 define(
"ShaderNode",
"ShaderNodeBsdfAnisotropic",
def_glossy);
13835 define(
"ShaderNode",
"ShaderNodeBsdfDiffuse");
13836 define(
"ShaderNode",
"ShaderNodeBsdfGlass",
def_glass);
13837 define(
"ShaderNode",
"ShaderNodeBsdfHair",
def_hair);
13839 define(
"ShaderNode",
"ShaderNodeBsdfMetallic",
def_metallic);
13840 define(
"ShaderNode",
"ShaderNodeBsdfPrincipled",
def_principled);
13841 define(
"ShaderNode",
"ShaderNodeBsdfRayPortal");
13842 define(
"ShaderNode",
"ShaderNodeBsdfRefraction",
def_refraction);
13843 define(
"ShaderNode",
"ShaderNodeBsdfSheen",
def_sheen);
13844 define(
"ShaderNode",
"ShaderNodeBsdfToon",
def_toon);
13845 define(
"ShaderNode",
"ShaderNodeBsdfTranslucent");
13846 define(
"ShaderNode",
"ShaderNodeBsdfTransparent");
13847 define(
"ShaderNode",
"ShaderNodeBump",
def_sh_bump);
13848 define(
"ShaderNode",
"ShaderNodeCameraData");
13849 define(
"ShaderNode",
"ShaderNodeClamp",
def_clamp);
13851 define(
"ShaderNode",
"ShaderNodeCombineHSV");
13852 define(
"ShaderNode",
"ShaderNodeCombineRGB");
13853 define(
"ShaderNode",
"ShaderNodeCombineXYZ");
13855 define(
"ShaderNode",
"ShaderNodeEeveeSpecular");
13856 define(
"ShaderNode",
"ShaderNodeEmission");
13858 define(
"ShaderNode",
"ShaderNodeFresnel");
13859 define(
"ShaderNode",
"ShaderNodeGamma");
13860 define(
"ShaderNode",
"ShaderNodeHairInfo");
13861 define(
"ShaderNode",
"ShaderNodeHoldout");
13862 define(
"ShaderNode",
"ShaderNodeHueSaturation");
13863 define(
"ShaderNode",
"ShaderNodeInvert");
13864 define(
"ShaderNode",
"ShaderNodeLayerWeight");
13865 define(
"ShaderNode",
"ShaderNodeLightFalloff");
13866 define(
"ShaderNode",
"ShaderNodeLightPath");
13869 define(
"ShaderNode",
"ShaderNodeMath",
def_math);
13870 define(
"ShaderNode",
"ShaderNodeMix",
def_sh_mix);
13871 define(
"ShaderNode",
"ShaderNodeMixRGB",
def_mix_rgb);
13872 define(
"ShaderNode",
"ShaderNodeMixShader");
13873 define(
"ShaderNode",
"ShaderNodeNewGeometry");
13874 define(
"ShaderNode",
"ShaderNodeNormal");
13876 define(
"ShaderNode",
"ShaderNodeObjectInfo");
13878 define(
"ShaderNode",
"ShaderNodeOutputLight",
def_sh_output);
13880 define(
"ShaderNode",
"ShaderNodeOutputMaterial",
def_sh_output);
13881 define(
"ShaderNode",
"ShaderNodeOutputWorld",
def_sh_output);
13882 define(
"ShaderNode",
"ShaderNodeParticleInfo");
13883 define(
"ShaderNode",
"ShaderNodePointInfo");
13884 define(
"ShaderNode",
"ShaderNodeRGB");
13886 define(
"ShaderNode",
"ShaderNodeRGBToBW");
13889 define(
"ShaderNode",
"ShaderNodeSeparateHSV");
13890 define(
"ShaderNode",
"ShaderNodeSeparateRGB");
13891 define(
"ShaderNode",
"ShaderNodeSeparateXYZ");
13892 define(
"ShaderNode",
"ShaderNodeShaderToRGB");
13893 define(
"ShaderNode",
"ShaderNodeSqueeze");
13912 define(
"ShaderNode",
"ShaderNodeUVMap",
def_sh_uvmap);
13914 define(
"ShaderNode",
"ShaderNodeValue");
13921 define(
"ShaderNode",
"ShaderNodeVolumeAbsorption");
13922 define(
"ShaderNode",
"ShaderNodeVolumeInfo");
13923 define(
"ShaderNode",
"ShaderNodeVolumePrincipled");
13924 define(
"ShaderNode",
"ShaderNodeVolumeScatter",
def_scatter);
13926 define(
"ShaderNode",
"ShaderNodeWavelength");
13932 define(
"CompositorNode",
"CompositorNodeBlur",
def_cmp_blur);
13943 define(
"CompositorNode",
"CompositorNodeCombHSVA");
13945 define(
"CompositorNode",
"CompositorNodeCombineXYZ");
13946 define(
"CompositorNode",
"CompositorNodeCombRGBA");
13947 define(
"CompositorNode",
"CompositorNodeCombYCCA",
def_cmp_ycc);
13948 define(
"CompositorNode",
"CompositorNodeCombYUVA");
13952 define(
"CompositorNode",
"CompositorNodeCrop",
def_cmp_crop);
13955 define(
"CompositorNode",
"CompositorNodeCurveRGB",
def_rgb_curve);
13957 define(
"CompositorNode",
"CompositorNodeDBlur",
def_cmp_dblur);
13963 define(
"CompositorNode",
"CompositorNodeDisplace");
13967 define(
"CompositorNode",
"CompositorNodeExposure");
13968 define(
"CompositorNode",
"CompositorNodeFilter",
def_cmp_filter);
13969 define(
"CompositorNode",
"CompositorNodeFlip",
def_cmp_flip);
13970 define(
"CompositorNode",
"CompositorNodeGamma");
13971 define(
"CompositorNode",
"CompositorNodeGlare",
def_cmp_glare);
13973 define(
"CompositorNode",
"CompositorNodeHueSat");
13975 define(
"CompositorNode",
"CompositorNodeImage",
def_cmp_image);
13976 define(
"CompositorNode",
"CompositorNodeImageCoordinates");
13977 define(
"CompositorNode",
"CompositorNodeImageInfo");
13979 define(
"CompositorNode",
"CompositorNodeInvert",
def_cmp_invert);
13980 define(
"CompositorNode",
"CompositorNodeKeying",
def_cmp_keying);
13984 define(
"CompositorNode",
"CompositorNodeLevels",
def_cmp_levels);
13987 define(
"CompositorNode",
"CompositorNodeMapUV",
def_cmp_map_uv);
13989 define(
"CompositorNode",
"CompositorNodeMask",
def_cmp_mask);
13990 define(
"CompositorNode",
"CompositorNodeMath",
def_math);
13991 define(
"CompositorNode",
"CompositorNodeMixRGB",
def_mix_rgb);
13994 define(
"CompositorNode",
"CompositorNodeNormal");
13995 define(
"CompositorNode",
"CompositorNodeNormalize");
13999 define(
"CompositorNode",
"CompositorNodePosterize");
14001 define(
"CompositorNode",
"CompositorNodeRelativeToPixel");
14002 define(
"CompositorNode",
"CompositorNodeRGB");
14003 define(
"CompositorNode",
"CompositorNodeRGBToBW");
14005 define(
"CompositorNode",
"CompositorNodeRotate",
def_cmp_rotate);
14006 define(
"CompositorNode",
"CompositorNodeScale",
def_cmp_scale);
14007 define(
"CompositorNode",
"CompositorNodeSceneTime");
14009 define(
"CompositorNode",
"CompositorNodeSeparateXYZ");
14010 define(
"CompositorNode",
"CompositorNodeSepHSVA");
14011 define(
"CompositorNode",
"CompositorNodeSepRGBA");
14012 define(
"CompositorNode",
"CompositorNodeSepYCCA",
def_cmp_ycc);
14013 define(
"CompositorNode",
"CompositorNodeSepYUVA");
14015 define(
"CompositorNode",
"CompositorNodeSplit",
def_cmp_split);
14018 define(
"CompositorNode",
"CompositorNodeSwitch",
def_cmp_switch);
14020 define(
"CompositorNode",
"CompositorNodeTexture",
def_texture);
14021 define(
"CompositorNode",
"CompositorNodeTime",
def_time);
14026 define(
"CompositorNode",
"CompositorNodeValToRGB",
def_colorramp);
14027 define(
"CompositorNode",
"CompositorNodeValue");
14029 define(
"CompositorNode",
"CompositorNodeViewer",
def_cmp_viewer);
14032 define(
"TextureNode",
"TextureNodeAt");
14034 define(
"TextureNode",
"TextureNodeChecker");
14036 define(
"TextureNode",
"TextureNodeCompose");
14037 define(
"TextureNode",
"TextureNodeCoordinates");
14038 define(
"TextureNode",
"TextureNodeCurveRGB",
def_rgb_curve);
14039 define(
"TextureNode",
"TextureNodeCurveTime",
def_time);
14040 define(
"TextureNode",
"TextureNodeDecompose");
14041 define(
"TextureNode",
"TextureNodeDistance");
14042 define(
"TextureNode",
"TextureNodeHueSaturation");
14044 define(
"TextureNode",
"TextureNodeInvert");
14045 define(
"TextureNode",
"TextureNodeMath",
def_math);
14046 define(
"TextureNode",
"TextureNodeMixRGB",
def_mix_rgb);
14048 define(
"TextureNode",
"TextureNodeRGBToBW");
14049 define(
"TextureNode",
"TextureNodeRotate");
14050 define(
"TextureNode",
"TextureNodeScale");
14052 define(
"TextureNode",
"TextureNodeTexBlend");
14053 define(
"TextureNode",
"TextureNodeTexClouds");
14054 define(
"TextureNode",
"TextureNodeTexDistNoise");
14055 define(
"TextureNode",
"TextureNodeTexMagic");
14056 define(
"TextureNode",
"TextureNodeTexMarble");
14057 define(
"TextureNode",
"TextureNodeTexMusgrave");
14058 define(
"TextureNode",
"TextureNodeTexNoise");
14059 define(
"TextureNode",
"TextureNodeTexStucci");
14060 define(
"TextureNode",
"TextureNodeTexture",
def_texture);
14061 define(
"TextureNode",
"TextureNodeTexVoronoi");
14062 define(
"TextureNode",
"TextureNodeTexWood");
14063 define(
"TextureNode",
"TextureNodeTranslate");
14064 define(
"TextureNode",
"TextureNodeValToNor");
14065 define(
"TextureNode",
"TextureNodeValToRGB",
def_colorramp);
14066 define(
"TextureNode",
"TextureNodeViewer");
14068 define(
"FunctionNode",
"FunctionNodeAlignEulerToVector");
14069 define(
"FunctionNode",
"FunctionNodeAlignRotationToVector");
14070 define(
"FunctionNode",
"FunctionNodeAxesToRotation");
14071 define(
"FunctionNode",
"FunctionNodeAxisAngleToRotation");
14072 define(
"FunctionNode",
"FunctionNodeBitMath");
14073 define(
"FunctionNode",
"FunctionNodeBooleanMath");
14074 define(
"FunctionNode",
"FunctionNodeCombineColor");
14075 define(
"FunctionNode",
"FunctionNodeCombineMatrix");
14076 define(
"FunctionNode",
"FunctionNodeCombineTransform");
14077 define(
"FunctionNode",
"FunctionNodeCompare");
14078 define(
"FunctionNode",
"FunctionNodeEulerToRotation");
14079 define(
"FunctionNode",
"FunctionNodeFindInString");
14082 define(
"FunctionNode",
"FunctionNodeHashValue");
14087 define(
"FunctionNode",
"FunctionNodeInputSpecialCharacters");
14090 define(
"FunctionNode",
"FunctionNodeIntegerMath");
14091 define(
"FunctionNode",
"FunctionNodeInvertMatrix");
14092 define(
"FunctionNode",
"FunctionNodeInvertRotation");
14093 define(
"FunctionNode",
"FunctionNodeMatchString");
14094 define(
"FunctionNode",
"FunctionNodeMatrixDeterminant");
14095 define(
"FunctionNode",
"FunctionNodeMatrixMultiply");
14096 define(
"FunctionNode",
"FunctionNodeProjectPoint");
14097 define(
"FunctionNode",
"FunctionNodeQuaternionToRotation");
14099 define(
"FunctionNode",
"FunctionNodeReplaceString");
14101 define(
"FunctionNode",
"FunctionNodeRotateRotation");
14102 define(
"FunctionNode",
"FunctionNodeRotateVector");
14103 define(
"FunctionNode",
"FunctionNodeRotationToAxisAngle");
14104 define(
"FunctionNode",
"FunctionNodeRotationToEuler");
14105 define(
"FunctionNode",
"FunctionNodeRotationToQuaternion");
14106 define(
"FunctionNode",
"FunctionNodeSeparateColor");
14107 define(
"FunctionNode",
"FunctionNodeSeparateMatrix");
14108 define(
"FunctionNode",
"FunctionNodeSeparateTransform");
14109 define(
"FunctionNode",
"FunctionNodeSliceString");
14110 define(
"FunctionNode",
"FunctionNodeStringLength");
14111 define(
"FunctionNode",
"FunctionNodeTransformDirection");
14112 define(
"FunctionNode",
"FunctionNodeTransformPoint");
14113 define(
"FunctionNode",
"FunctionNodeTransposeMatrix");
14114 define(
"FunctionNode",
"FunctionNodeValueToString");
14116 define(
"GeometryNode",
"GeometryNodeAccumulateField");
14117 define(
"GeometryNode",
"GeometryNodeAttributeDomainSize");
14118 define(
"GeometryNode",
"GeometryNodeAttributeStatistic");
14120 define(
"GeometryNode",
"GeometryNodeBlurAttribute");
14121 define(
"GeometryNode",
"GeometryNodeBoundBox");
14122 define(
"GeometryNode",
"GeometryNodeCameraInfo");
14126 define(
"GeometryNode",
"GeometryNodeCollectionInfo");
14128 define(
"GeometryNode",
"GeometryNodeConvexHull");
14129 define(
"GeometryNode",
"GeometryNodeCornersOfEdge");
14130 define(
"GeometryNode",
"GeometryNodeCornersOfFace");
14131 define(
"GeometryNode",
"GeometryNodeCornersOfVertex");
14132 define(
"GeometryNode",
"GeometryNodeCurveArc");
14133 define(
"GeometryNode",
"GeometryNodeCurveEndpointSelection");
14135 define(
"GeometryNode",
"GeometryNodeCurveLength");
14136 define(
"GeometryNode",
"GeometryNodeCurveOfPoint");
14137 define(
"GeometryNode",
"GeometryNodeCurvePrimitiveBezierSegment");
14138 define(
"GeometryNode",
"GeometryNodeCurvePrimitiveCircle");
14139 define(
"GeometryNode",
"GeometryNodeCurvePrimitiveLine");
14140 define(
"GeometryNode",
"GeometryNodeCurvePrimitiveQuadrilateral");
14141 define(
"GeometryNode",
"GeometryNodeCurveQuadraticBezier");
14143 define(
"GeometryNode",
"GeometryNodeCurveSpiral");
14144 define(
"GeometryNode",
"GeometryNodeCurveSplineType");
14145 define(
"GeometryNode",
"GeometryNodeCurveStar");
14146 define(
"GeometryNode",
"GeometryNodeCurvesToGreasePencil");
14147 define(
"GeometryNode",
"GeometryNodeCurveToMesh");
14148 define(
"GeometryNode",
"GeometryNodeCurveToPoints");
14149 define(
"GeometryNode",
"GeometryNodeDeformCurvesOnSurface");
14150 define(
"GeometryNode",
"GeometryNodeDeleteGeometry");
14151 define(
"GeometryNode",
"GeometryNodeDistributePointsInGrid");
14152 define(
"GeometryNode",
"GeometryNodeDistributePointsInVolume");
14154 define(
"GeometryNode",
"GeometryNodeDualMesh");
14155 define(
"GeometryNode",
"GeometryNodeDuplicateElements");
14156 define(
"GeometryNode",
"GeometryNodeEdgePathsToCurves");
14157 define(
"GeometryNode",
"GeometryNodeEdgePathsToSelection");
14158 define(
"GeometryNode",
"GeometryNodeEdgesOfCorner");
14159 define(
"GeometryNode",
"GeometryNodeEdgesOfVertex");
14160 define(
"GeometryNode",
"GeometryNodeEdgesToFaceGroups");
14162 define(
"GeometryNode",
"GeometryNodeExtrudeMesh");
14163 define(
"GeometryNode",
"GeometryNodeFaceOfCorner");
14164 define(
"GeometryNode",
"GeometryNodeFieldAtIndex");
14165 define(
"GeometryNode",
"GeometryNodeFieldAverage");
14166 define(
"GeometryNode",
"GeometryNodeFieldMinAndMax");
14167 define(
"GeometryNode",
"GeometryNodeFieldOnDomain");
14168 define(
"GeometryNode",
"GeometryNodeFieldVariance");
14169 define(
"GeometryNode",
"GeometryNodeFillCurve");
14170 define(
"GeometryNode",
"GeometryNodeFilletCurve");
14171 define(
"GeometryNode",
"GeometryNodeFlipFaces");
14174 define(
"GeometryNode",
"GeometryNodeGeometryToInstance");
14175 define(
"GeometryNode",
"GeometryNodeGetNamedGrid");
14176 define(
"GeometryNode",
"GeometryNodeGizmoDial");
14177 define(
"GeometryNode",
"GeometryNodeGizmoLinear");
14179 define(
"GeometryNode",
"GeometryNodeGreasePencilToCurves");
14180 define(
"GeometryNode",
"GeometryNodeGridInfo");
14181 define(
"GeometryNode",
"GeometryNodeGridToMesh");
14182 define(
"GeometryNode",
"GeometryNodeImageInfo");
14184 define(
"GeometryNode",
"GeometryNodeImportCSV");
14185 define(
"GeometryNode",
"GeometryNodeImportOBJ");
14186 define(
"GeometryNode",
"GeometryNodeImportPLY");
14187 define(
"GeometryNode",
"GeometryNodeImportSTL");
14188 define(
"GeometryNode",
"GeometryNodeImportText");
14189 define(
"GeometryNode",
"GeometryNodeImportVDB");
14190 define(
"GeometryNode",
"GeometryNodeIndexOfNearest");
14192 define(
"GeometryNode",
"GeometryNodeInputActiveCamera");
14194 define(
"GeometryNode",
"GeometryNodeInputCurveHandlePositions");
14195 define(
"GeometryNode",
"GeometryNodeInputCurveTilt");
14196 define(
"GeometryNode",
"GeometryNodeInputEdgeSmooth");
14197 define(
"GeometryNode",
"GeometryNodeInputID");
14198 define(
"GeometryNode",
"GeometryNodeInputImage",
def_geo_image);
14199 define(
"GeometryNode",
"GeometryNodeInputIndex");
14200 define(
"GeometryNode",
"GeometryNodeInputInstanceBounds");
14201 define(
"GeometryNode",
"GeometryNodeInputInstanceRotation");
14202 define(
"GeometryNode",
"GeometryNodeInputInstanceScale");
14204 define(
"GeometryNode",
"GeometryNodeInputMaterialIndex");
14205 define(
"GeometryNode",
"GeometryNodeInputMeshEdgeAngle");
14206 define(
"GeometryNode",
"GeometryNodeInputMeshEdgeNeighbors");
14207 define(
"GeometryNode",
"GeometryNodeInputMeshEdgeVertices");
14208 define(
"GeometryNode",
"GeometryNodeInputMeshFaceArea");
14209 define(
"GeometryNode",
"GeometryNodeInputMeshFaceIsPlanar");
14210 define(
"GeometryNode",
"GeometryNodeInputMeshFaceNeighbors");
14211 define(
"GeometryNode",
"GeometryNodeInputMeshIsland");
14212 define(
"GeometryNode",
"GeometryNodeInputMeshVertexNeighbors");
14213 define(
"GeometryNode",
"GeometryNodeInputNamedAttribute");
14214 define(
"GeometryNode",
"GeometryNodeInputNamedLayerSelection");
14217 define(
"GeometryNode",
"GeometryNodeInputPosition");
14218 define(
"GeometryNode",
"GeometryNodeInputRadius");
14219 define(
"GeometryNode",
"GeometryNodeInputSceneTime");
14220 define(
"GeometryNode",
"GeometryNodeInputShadeSmooth");
14221 define(
"GeometryNode",
"GeometryNodeInputShortestEdgePaths");
14222 define(
"GeometryNode",
"GeometryNodeInputSplineCyclic");
14223 define(
"GeometryNode",
"GeometryNodeInputSplineResolution");
14224 define(
"GeometryNode",
"GeometryNodeInputTangent");
14225 define(
"GeometryNode",
"GeometryNodeInstanceOnPoints");
14226 define(
"GeometryNode",
"GeometryNodeInstancesToPoints");
14227 define(
"GeometryNode",
"GeometryNodeInstanceTransform");
14228 define(
"GeometryNode",
"GeometryNodeInterpolateCurves");
14229 define(
"GeometryNode",
"GeometryNodeIsViewport");
14230 define(
"GeometryNode",
"GeometryNodeJoinGeometry");
14231 define(
"GeometryNode",
"GeometryNodeMaterialSelection");
14233 define(
"GeometryNode",
"GeometryNodeMergeByDistance");
14234 define(
"GeometryNode",
"GeometryNodeMergeLayers");
14235 define(
"GeometryNode",
"GeometryNodeMeshBoolean");
14236 define(
"GeometryNode",
"GeometryNodeMeshCircle");
14237 define(
"GeometryNode",
"GeometryNodeMeshCone");
14238 define(
"GeometryNode",
"GeometryNodeMeshCube");
14239 define(
"GeometryNode",
"GeometryNodeMeshCylinder");
14240 define(
"GeometryNode",
"GeometryNodeMeshFaceSetBoundaries");
14241 define(
"GeometryNode",
"GeometryNodeMeshGrid");
14242 define(
"GeometryNode",
"GeometryNodeMeshIcoSphere");
14243 define(
"GeometryNode",
"GeometryNodeMeshLine");
14244 define(
"GeometryNode",
"GeometryNodeMeshToCurve");
14245 define(
"GeometryNode",
"GeometryNodeMeshToDensityGrid");
14246 define(
"GeometryNode",
"GeometryNodeMeshToPoints");
14247 define(
"GeometryNode",
"GeometryNodeMeshToSDFGrid");
14248 define(
"GeometryNode",
"GeometryNodeMeshToVolume");
14249 define(
"GeometryNode",
"GeometryNodeMeshUVSphere");
14250 define(
"GeometryNode",
"GeometryNodeObjectInfo");
14251 define(
"GeometryNode",
"GeometryNodeOffsetCornerInFace");
14252 define(
"GeometryNode",
"GeometryNodeOffsetPointInCurve");
14253 define(
"GeometryNode",
"GeometryNodePoints");
14254 define(
"GeometryNode",
"GeometryNodePointsOfCurve");
14255 define(
"GeometryNode",
"GeometryNodePointsToCurves");
14256 define(
"GeometryNode",
"GeometryNodePointsToSDFGrid");
14257 define(
"GeometryNode",
"GeometryNodePointsToVertices");
14258 define(
"GeometryNode",
"GeometryNodePointsToVolume");
14259 define(
"GeometryNode",
"GeometryNodeProximity");
14260 define(
"GeometryNode",
"GeometryNodeRaycast");
14261 define(
"GeometryNode",
"GeometryNodeRealizeInstances");
14262 define(
"GeometryNode",
"GeometryNodeRemoveAttribute");
14265 define(
"GeometryNode",
"GeometryNodeReplaceMaterial");
14266 define(
"GeometryNode",
"GeometryNodeResampleCurve");
14267 define(
"GeometryNode",
"GeometryNodeReverseCurve");
14268 define(
"GeometryNode",
"GeometryNodeRotateInstances");
14270 define(
"GeometryNode",
"GeometryNodeSampleGrid");
14271 define(
"GeometryNode",
"GeometryNodeSampleGridIndex");
14273 define(
"GeometryNode",
"GeometryNodeSampleNearest");
14274 define(
"GeometryNode",
"GeometryNodeSampleNearestSurface");
14275 define(
"GeometryNode",
"GeometryNodeSampleUVSurface");
14276 define(
"GeometryNode",
"GeometryNodeScaleElements");
14277 define(
"GeometryNode",
"GeometryNodeScaleInstances");
14278 define(
"GeometryNode",
"GeometryNodeSDFGridBoolean");
14279 define(
"GeometryNode",
"GeometryNodeSelfObject");
14281 define(
"GeometryNode",
"GeometryNodeSeparateComponents");
14282 define(
"GeometryNode",
"GeometryNodeSeparateGeometry");
14283 define(
"GeometryNode",
"GeometryNodeSetCurveHandlePositions");
14284 define(
"GeometryNode",
"GeometryNodeSetCurveNormal");
14285 define(
"GeometryNode",
"GeometryNodeSetCurveRadius");
14286 define(
"GeometryNode",
"GeometryNodeSetCurveTilt");
14287 define(
"GeometryNode",
"GeometryNodeSetGeometryName");
14288 define(
"GeometryNode",
"GeometryNodeSetGreasePencilColor");
14289 define(
"GeometryNode",
"GeometryNodeSetGreasePencilDepth");
14290 define(
"GeometryNode",
"GeometryNodeSetGreasePencilSoftness");
14291 define(
"GeometryNode",
"GeometryNodeSetID");
14292 define(
"GeometryNode",
"GeometryNodeSetInstanceTransform");
14293 define(
"GeometryNode",
"GeometryNodeSetMaterial");
14294 define(
"GeometryNode",
"GeometryNodeSetMaterialIndex");
14295 define(
"GeometryNode",
"GeometryNodeSetMeshNormal");
14296 define(
"GeometryNode",
"GeometryNodeSetPointRadius");
14297 define(
"GeometryNode",
"GeometryNodeSetPosition");
14298 define(
"GeometryNode",
"GeometryNodeSetShadeSmooth");
14299 define(
"GeometryNode",
"GeometryNodeSetSplineCyclic");
14300 define(
"GeometryNode",
"GeometryNodeSetSplineResolution");
14303 define(
"GeometryNode",
"GeometryNodeSortElements");
14304 define(
"GeometryNode",
"GeometryNodeSplineLength");
14305 define(
"GeometryNode",
"GeometryNodeSplineParameter");
14306 define(
"GeometryNode",
"GeometryNodeSplitEdges");
14307 define(
"GeometryNode",
"GeometryNodeSplitToInstances");
14308 define(
"GeometryNode",
"GeometryNodeStoreNamedAttribute");
14309 define(
"GeometryNode",
"GeometryNodeStoreNamedGrid");
14310 define(
"GeometryNode",
"GeometryNodeStringJoin");
14312 define(
"GeometryNode",
"GeometryNodeSubdivideCurve");
14313 define(
"GeometryNode",
"GeometryNodeSubdivideMesh");
14314 define(
"GeometryNode",
"GeometryNodeSubdivisionSurface");
14315 define(
"GeometryNode",
"GeometryNodeSwitch");
14316 define(
"GeometryNode",
"GeometryNodeTool3DCursor");
14317 define(
"GeometryNode",
"GeometryNodeToolActiveElement");
14318 define(
"GeometryNode",
"GeometryNodeToolFaceSet");
14319 define(
"GeometryNode",
"GeometryNodeToolMousePosition");
14320 define(
"GeometryNode",
"GeometryNodeToolSelection");
14321 define(
"GeometryNode",
"GeometryNodeToolSetFaceSet");
14322 define(
"GeometryNode",
"GeometryNodeToolSetSelection");
14323 define(
"GeometryNode",
"GeometryNodeTransform");
14324 define(
"GeometryNode",
"GeometryNodeTranslateInstances");
14325 define(
"GeometryNode",
"GeometryNodeTriangulate");
14326 define(
"GeometryNode",
"GeometryNodeTrimCurve");
14327 define(
"GeometryNode",
"GeometryNodeUVPackIslands");
14328 define(
"GeometryNode",
"GeometryNodeUVUnwrap");
14329 define(
"GeometryNode",
"GeometryNodeVertexOfCorner");
14330 define(
"GeometryNode",
"GeometryNodeViewer");
14331 define(
"GeometryNode",
"GeometryNodeViewportTransform");
14332 define(
"GeometryNode",
"GeometryNodeVolumeCube");
14333 define(
"GeometryNode",
"GeometryNodeVolumeToMesh");
14334 define(
"GeometryNode",
"GeometryNodeWarning");
14338 define(
"ShaderNode",
"ShaderNodeGroup",
def_group);
14339 define(
"CompositorNode",
"CompositorNodeGroup",
def_group);
14340 define(
"TextureNode",
"TextureNodeGroup",
def_group);
14341 define(
"GeometryNode",
"GeometryNodeGroup",
def_group);
14368 "ShaderNodeCustomGroup",
14370 "Shader Custom Group",
14371 "Custom Shader Group Node for Python nodes",
14372 "rna_ShaderNodeCustomGroup_register");
14374 "CompositorNodeCustomGroup",
14376 "Compositor Custom Group",
14377 "Custom Compositor Group Node for Python nodes",
14378 "rna_CompositorNodeCustomGroup_register");
14383 "Base node type for custom registered node group types",
14384 "rna_NodeCustomGroup_register");
14386 "GeometryNodeCustomGroup",
14388 "Geometry Custom Group",
14389 "Custom Geometry Group Node for Python nodes",
14390 "rna_GeometryNodeCustomGroup_register");
14396# undef NODE_DEFINE_SUBTYPES
void BKE_animdata_fix_paths_rename_all(struct ID *ref_id, const char *prefix, const char *oldName, const char *newName)
Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
void BKE_cryptomatte_matte_id_to_entries(struct NodeCryptomatte *node_storage, const char *matte_id)
char * BKE_cryptomatte_entries_to_matte_id(struct NodeCryptomatte *node_storage)
RenderPass * BKE_image_multilayer_index(RenderResult *rr, ImageUser *iuser)
#define IMA_SIGNAL_SRC_CHANGE
void BKE_image_signal(Main *bmain, Image *ima, ImageUser *iuser, int signal)
const char * BKE_main_blendfile_path_from_global()
void BKE_main_ensure_invariants(Main &bmain, std::optional< blender::Span< ID * > > modified_ids=std::nullopt)
#define NODE_CLASS_OUTPUT
constexpr int GROUP_NODE_MIN_WIDTH
#define NODE_CLASS_INTERFACE
constexpr int GROUP_NODE_DEFAULT_WIDTH
#define NODE_CUSTOM_GROUP
#define NODE_CLASS_CONVERTER
constexpr int GROUP_NODE_MAX_WIDTH
#define NODE_CLASS_PATTERN
#define NODE_CLASS_GEOMETRY
#define NODE_CLASS_DISTORT
#define NODE_CLASS_OP_VECTOR
#define NODE_CLASS_LAYOUT
#define NODE_CLASS_OP_COLOR
#define NODE_CLASS_OP_FILTER
#define NODE_CLASS_ATTRIBUTE
#define NODE_CLASS_TEXTURE
#define NODE_CLASS_SHADER
#define NODE_CLASS_SCRIPT
#define SH_NODE_TEX_IMAGE
#define CMP_NODE_CRYPTOMATTE
#define FN_NODE_RANDOM_VALUE
#define SH_NODE_MAP_RANGE
#define SH_NODE_TEX_ENVIRONMENT
#define CMP_NODE_OUTPUT_FILE
void BKE_ntree_update_tag_active_output_changed(bNodeTree *ntree)
void BKE_ntree_update_tag_all(bNodeTree *ntree)
void BKE_ntree_update_tag_link_changed(bNodeTree *ntree)
void BKE_ntree_update_tag_node_property(bNodeTree *ntree, bNode *node)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_scene_graph_evaluated_ensure(Depsgraph *depsgraph, Main *bmain)
void BKE_texture_pointdensity_init_data(struct PointDensity *pd)
void BKE_texture_pointdensity_free_data(struct PointDensity *pd)
#define BLI_assert_unreachable()
#define BLI_assert_msg(a, msg)
void BLI_kdtree_nd_ free(KDTree *tree)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
void BLI_insertlinkafter(ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
int BLI_listbase_count_at_most(const ListBase *listbase, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_remlink(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_insertlinkbefore(ListBase *listbase, void *vnextlink, void *vnewlink) ATTR_NONNULL(1)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void zero_v3(float r[3])
#define BLI_SCOPED_DEFER(function_to_defer)
bool void BLI_path_rel(char path[FILE_MAX], const char *basepath) ATTR_NONNULL(1)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC
#define SNPRINTF(dst, format,...)
char * STRNCPY(char(&dst)[N], const char *src)
size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
#define STRNCPY_UTF8(dst, src)
#define STREQLEN(a, b, n)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define CTX_N_(context, msgid)
#define BLT_I18NCONTEXT_ID_NODETREE
#define BLT_I18NCONTEXT_ID_IMAGE
#define BLT_I18NCONTEXT_ID_CURVE_LEGACY
#define BLT_I18NCONTEXT_OPERATOR_DEFAULT
#define BLT_I18NCONTEXT_UNIT
#define BLT_I18NCONTEXT_ID_MOVIECLIP
#define BLT_I18NCONTEXT_ID_TEXTURE
#define BLT_I18NCONTEXT_EDITOR_FILEBROWSER
#define BLT_I18NCONTEXT_COLOR
void DEG_id_tag_update_for_side_effect_request(Depsgraph *depsgraph, ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
bool DEG_is_original(const T *id)
T * DEG_get_evaluated(const Depsgraph *depsgraph, T *id)
@ NODE_VECTOR_MATH_NORMALIZE
@ NODE_VECTOR_MATH_LENGTH
@ NODE_VECTOR_MATH_CROSS_PRODUCT
@ NODE_VECTOR_MATH_MODULO
@ NODE_VECTOR_MATH_COSINE
@ NODE_VECTOR_MATH_REFLECT
@ NODE_VECTOR_MATH_REFRACT
@ NODE_VECTOR_MATH_DOT_PRODUCT
@ NODE_VECTOR_MATH_ABSOLUTE
@ NODE_VECTOR_MATH_DIVIDE
@ NODE_VECTOR_MATH_TANGENT
@ NODE_VECTOR_MATH_DISTANCE
@ NODE_VECTOR_MATH_FRACTION
@ NODE_VECTOR_MATH_PROJECT
@ NODE_VECTOR_MATH_MULTIPLY
@ NODE_VECTOR_MATH_MAXIMUM
@ NODE_VECTOR_MATH_FACEFORWARD
@ NODE_VECTOR_MATH_SUBTRACT
@ NODE_VECTOR_MATH_MULTIPLY_ADD
@ NODE_VECTOR_MATH_MINIMUM
@ CMP_NODE_OUTPUT_IGNORE_ALPHA
@ CMP_NODE_INTERPOLATION_NEAREST
@ CMP_NODE_INTERPOLATION_BILINEAR
@ CMP_NODE_INTERPOLATION_BICUBIC
@ GEO_NODE_MESH_CIRCLE_FILL_NGON
@ GEO_NODE_MESH_CIRCLE_FILL_TRIANGLE_FAN
@ GEO_NODE_MESH_CIRCLE_FILL_NONE
@ SHD_VECT_TRANSFORM_SPACE_WORLD
@ SHD_VECT_TRANSFORM_SPACE_OBJECT
@ SHD_VECT_TRANSFORM_SPACE_CAMERA
@ CMP_NODE_COMBSEP_COLOR_YCC
@ CMP_NODE_COMBSEP_COLOR_YUV
@ CMP_NODE_COMBSEP_COLOR_RGB
@ CMP_NODE_COMBSEP_COLOR_HSV
@ CMP_NODE_COMBSEP_COLOR_HSL
@ SHD_ATTRIBUTE_VIEW_LAYER
@ SHD_ATTRIBUTE_INSTANCER
#define SHD_SHEEN_ASHIKHMIN
@ SHD_PRINCIPLED_HAIR_REFLECTANCE
@ SHD_PRINCIPLED_HAIR_DIRECT_ABSORPTION
@ SHD_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION
@ SHD_WAVE_BANDS_DIRECTION_Y
@ SHD_WAVE_BANDS_DIRECTION_X
@ SHD_WAVE_BANDS_DIRECTION_Z
@ SHD_WAVE_BANDS_DIRECTION_DIAGONAL
@ SHD_BLEND_QUADRATIC_SPHERE
@ SHD_SPACE_BLENDER_OBJECT
@ SHD_SPACE_BLENDER_WORLD
@ GEO_NODE_STRING_TO_CURVES_ALIGN_X_CENTER
@ GEO_NODE_STRING_TO_CURVES_ALIGN_X_JUSTIFY
@ GEO_NODE_STRING_TO_CURVES_ALIGN_X_FLUSH
@ GEO_NODE_STRING_TO_CURVES_ALIGN_X_LEFT
@ GEO_NODE_STRING_TO_CURVES_ALIGN_X_RIGHT
@ NODE_MATH_FLOORED_MODULO
GeometryNodeAssetTraitFlag
@ GEO_NODE_ASSET_WAIT_FOR_CURSOR
@ GEO_NODE_ASSET_GREASE_PENCIL
@ GEO_NODE_ASSET_POINTCLOUD
@ GEO_NODE_ASSET_MODIFIER
@ SHD_POINTDENSITY_SPACE_WORLD
@ SHD_POINTDENSITY_SPACE_OBJECT
@ SHD_SUBSURFACE_RANDOM_WALK_SKIN
@ SHD_SUBSURFACE_RANDOM_WALK
@ SHD_PHASE_HENYEY_GREENSTEIN
@ SHD_PHASE_FOURNIER_FORAND
@ SHD_VECT_TRANSFORM_TYPE_VECTOR
@ SHD_VECT_TRANSFORM_TYPE_NORMAL
@ SHD_VECT_TRANSFORM_TYPE_POINT
@ GEO_NODE_CURVE_HANDLE_RIGHT
@ GEO_NODE_CURVE_HANDLE_LEFT
@ CMP_NODE_CRYPTOMATTE_SOURCE_IMAGE
@ CMP_NODE_CRYPTOMATTE_SOURCE_RENDER
@ CMP_NODE_IMAGE_USE_STRAIGHT_OUTPUT
@ CMP_NODE_DILATE_ERODE_STEP
@ CMP_NODE_DILATE_ERODE_DISTANCE_FEATHER
@ CMP_NODE_DILATE_ERODE_DISTANCE_THRESHOLD
@ CMP_NODE_DILATE_ERODE_DISTANCE
@ CMP_NODE_SCALE_RENDER_SIZE_STRETCH
@ CMP_NODE_SCALE_RENDER_SIZE_FIT
@ CMP_NODE_SCALE_RENDER_SIZE_CROP
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_MIDPOINT
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_BOTTOM_RIGHT
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_BOTTOM_CENTER
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_TOP_LEFT
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_TOP_CENTER
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_TOP_RIGHT
@ GEO_NODE_STRING_TO_CURVES_PIVOT_MODE_BOTTOM_LEFT
@ SHD_PRINCIPLED_HAIR_HUANG
@ SHD_PRINCIPLED_HAIR_CHIANG
@ CMP_NODE_DISTANCE_MATTE_COLOR_SPACE_YCCA
@ CMP_NODE_DISTANCE_MATTE_COLOR_SPACE_RGBA
@ CMP_NODE_CORNER_PIN_INTERPOLATION_BILINEAR
@ CMP_NODE_CORNER_PIN_INTERPOLATION_BICUBIC
@ CMP_NODE_CORNER_PIN_INTERPOLATION_ANISOTROPIC
@ CMP_NODE_CORNER_PIN_INTERPOLATION_NEAREST
@ SHD_PROJ_EQUIRECTANGULAR
@ FN_NODE_ROTATE_EULER_TYPE_EULER
@ FN_NODE_ROTATE_EULER_TYPE_AXIS_ANGLE
@ CMP_NODE_DENOISE_QUALITY_BALANCED
@ CMP_NODE_DENOISE_QUALITY_FAST
@ CMP_NODE_DENOISE_QUALITY_SCENE
@ CMP_NODE_DENOISE_QUALITY_HIGH
@ SHD_POINTDENSITY_COLOR_PARTSPEED
@ SHD_POINTDENSITY_COLOR_PARTVEL
@ SHD_POINTDENSITY_COLOR_PARTAGE
@ NODE_MAPPING_TYPE_POINT
@ NODE_MAPPING_TYPE_VECTOR
@ NODE_MAPPING_TYPE_TEXTURE
@ NODE_MAPPING_TYPE_NORMAL
@ CMP_NODE_MAP_UV_FILTERING_NEAREST
@ CMP_NODE_MAP_UV_FILTERING_ANISOTROPIC
@ NODE_MAP_RANGE_SMOOTHERSTEP
@ NODE_MAP_RANGE_SMOOTHSTEP
@ GEO_NODE_CURVE_SAMPLE_FACTOR
@ GEO_NODE_CURVE_SAMPLE_LENGTH
@ CMP_NODE_TRANSLATE_REPEAT_AXIS_XY
@ CMP_NODE_TRANSLATE_REPEAT_AXIS_Y
@ CMP_NODE_TRANSLATE_REPEAT_AXIS_NONE
@ CMP_NODE_TRANSLATE_REPEAT_AXIS_X
@ GEO_NODE_BAKE_ITEM_IS_ATTRIBUTE
@ CMP_NODE_BLUR_ASPECT_NONE
@ CMP_NODE_MASK_FLAG_SIZE_FIXED
@ CMP_NODE_MASK_FLAG_SIZE_FIXED_SCENE
@ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM
@ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON
#define SHD_SHEEN_MICROFIBER
@ NODE_VIEWER_SHORTCUT_NONE
@ SHD_VORONOI_DISTANCE_TO_EDGE
@ SHD_VORONOI_N_SPHERE_RADIUS
@ SHD_POINTDENSITY_COLOR_VERTNOR
@ SHD_POINTDENSITY_COLOR_VERTWEIGHT
@ SHD_POINTDENSITY_COLOR_VERTCOL
@ CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA
@ CMP_NODE_SETALPHA_MODE_APPLY
@ NODE_MIX_MODE_NON_UNIFORM
@ GEO_NODE_GIZMO_COLOR_PRIMARY
@ GEO_NODE_GIZMO_COLOR_SECONDARY
#define CMP_NODE_MASK_MBLUR_SAMPLES_MAX
@ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_BOTTOM_BASELINE
@ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_TOP_BASELINE
@ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_TOP
@ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_BOTTOM
@ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_MIDDLE
@ NODE_VECTOR_ROTATE_TYPE_AXIS
@ NODE_VECTOR_ROTATE_TYPE_AXIS_Z
@ NODE_VECTOR_ROTATE_TYPE_AXIS_X
@ NODE_VECTOR_ROTATE_TYPE_EULER_XYZ
@ NODE_VECTOR_ROTATE_TYPE_AXIS_Y
@ CMP_NODE_CHANNEL_MATTE_CS_YUV
@ CMP_NODE_CHANNEL_MATTE_CS_RGB
@ CMP_NODE_CHANNEL_MATTE_CS_HSV
@ CMP_NODE_CHANNEL_MATTE_CS_YCC
@ NODE_WARNING_PROPAGATION_NONE
@ NODE_WARNING_PROPAGATION_ONLY_ERRORS_AND_WARNINGS
@ NODE_WARNING_PROPAGATION_ONLY_ERRORS
@ NODE_WARNING_PROPAGATION_ALL
@ SHD_POINTDENSITY_SOURCE_PSYS
@ SHD_POINTDENSITY_SOURCE_OBJECT
@ GEO_NODE_LINEAR_GIZMO_DRAW_STYLE_CROSS
@ GEO_NODE_LINEAR_GIZMO_DRAW_STYLE_BOX
@ GEO_NODE_LINEAR_GIZMO_DRAW_STYLE_ARROW
@ CMP_NODE_COLOR_BALANCE_LGG
@ CMP_NODE_COLOR_BALANCE_ASC_CDL
@ CMP_NODE_COLOR_BALANCE_WHITEPOINT
@ SHD_GLOSSY_ASHIKHMIN_SHIRLEY
@ FN_NODE_ROTATE_EULER_SPACE_OBJECT
@ FN_NODE_ROTATE_EULER_SPACE_LOCAL
@ CMP_NODE_SCALE_RENDER_SIZE
@ CMP_NODE_SCALE_RELATIVE
@ CMP_NODE_SCALE_ABSOLUTE
@ CMP_NODE_SCALE_RENDER_PERCENT
@ NODE_SCRIPT_AUTO_UPDATE
@ CMP_NODE_TRACK_POSITION_RELATIVE_START
@ CMP_NODE_TRACK_POSITION_ABSOLUTE_FRAME
@ CMP_NODE_TRACK_POSITION_RELATIVE_FRAME
@ CMP_NODE_TRACK_POSITION_ABSOLUTE
@ SHD_IMAGE_EXTENSION_MIRROR
@ SHD_IMAGE_EXTENSION_CLIP
@ SHD_IMAGE_EXTENSION_REPEAT
@ SHD_IMAGE_EXTENSION_EXTEND
@ GEO_NODE_STRING_TO_CURVES_MODE_TRUNCATE
@ GEO_NODE_STRING_TO_CURVES_MODE_SCALE_TO_FIT
@ GEO_NODE_STRING_TO_CURVES_MODE_OVERFLOW
@ CMP_NODE_LEVLES_LUMINANCE
@ CMP_NODE_LEVLES_LUMINANCE_BT709
@ GEO_NODE_TRANSFORM_GIZMO_USE_ROTATION_Z
@ GEO_NODE_TRANSFORM_GIZMO_USE_SCALE_Z
@ GEO_NODE_TRANSFORM_GIZMO_USE_ROTATION_X
@ GEO_NODE_TRANSFORM_GIZMO_USE_ROTATION_Y
@ GEO_NODE_TRANSFORM_GIZMO_USE_TRANSLATION_Z
@ GEO_NODE_TRANSFORM_GIZMO_USE_TRANSLATION_Y
@ GEO_NODE_TRANSFORM_GIZMO_USE_SCALE_X
@ GEO_NODE_TRANSFORM_GIZMO_USE_SCALE_Y
@ GEO_NODE_TRANSFORM_GIZMO_USE_TRANSLATION_X
@ GEO_NODE_CURVE_HANDLE_ALIGN
@ GEO_NODE_CURVE_HANDLE_AUTO
@ GEO_NODE_CURVE_HANDLE_FREE
@ GEO_NODE_CURVE_HANDLE_VECTOR
@ NODE_BOOLEAN_MATH_IMPLY
@ NODE_BOOLEAN_MATH_NIMPLY
@ FN_NODE_FLOAT_TO_INT_TRUNCATE
@ FN_NODE_FLOAT_TO_INT_CEIL
@ FN_NODE_FLOAT_TO_INT_ROUND
@ FN_NODE_FLOAT_TO_INT_FLOOR
@ NODE_INTEGER_MATH_ABSOLUTE
@ NODE_INTEGER_MATH_MODULO
@ NODE_INTEGER_MATH_POWER
@ NODE_INTEGER_MATH_MINIMUM
@ NODE_INTEGER_MATH_MULTIPLY_ADD
@ NODE_INTEGER_MATH_SUBTRACT
@ NODE_INTEGER_MATH_MULTIPLY
@ NODE_INTEGER_MATH_DIVIDE_FLOOR
@ NODE_INTEGER_MATH_DIVIDE_CEIL
@ NODE_INTEGER_MATH_NEGATE
@ NODE_INTEGER_MATH_MAXIMUM
@ NODE_INTEGER_MATH_FLOORED_MODULO
@ NODE_INTEGER_MATH_DIVIDE_ROUND
@ NODE_INTEGER_MATH_DIVIDE
@ SHD_NOISE_HYBRID_MULTIFRACTAL
@ SHD_NOISE_RIDGED_MULTIFRACTAL
@ SHD_NOISE_HETERO_TERRAIN
@ SHD_WAVE_RINGS_DIRECTION_Z
@ SHD_WAVE_RINGS_DIRECTION_Y
@ SHD_WAVE_RINGS_DIRECTION_X
@ SHD_WAVE_RINGS_DIRECTION_SPHERICAL
@ CMP_NODE_LENS_DISTORTION_RADIAL
@ CMP_NODE_LENS_DISTORTION_HORIZONTAL
@ NODE_COMPARE_LESS_EQUAL
@ NODE_COMPARE_COLOR_BRIGHTER
@ NODE_COMPARE_GREATER_EQUAL
@ NODE_COMPARE_GREATER_THAN
@ NODE_COMPARE_COLOR_DARKER
@ CMP_NODE_GLARE_SIMPLE_STAR
@ CMP_NODE_GLARE_FOG_GLOW
@ CMP_NODE_DENOISE_PREFILTER_FAST
@ CMP_NODE_DENOISE_PREFILTER_NONE
@ CMP_NODE_DENOISE_PREFILTER_ACCURATE
Object is a sort of wrapper for general info.
@ TEX_PD_COLOR_VERTWEIGHT
@ RPT_ERROR_INVALID_INPUT
void ED_node_type_draw_color(const char *idname, float *r_color)
void ED_init_custom_node_type(blender::bke::bNodeType *ntype)
void IMB_colormanagement_colorspace_items_add(EnumPropertyItem **items, int *totitem)
bool IMB_colormanagement_set_whitepoint(const float whitepoint[3], float &temperature, float &tint)
const char * IMB_colormanagement_colorspace_get_indexed_name(int index)
void IMB_colormanagement_get_whitepoint(const float temperature, const float tint, float whitepoint[3])
int IMB_colormanagement_colorspace_get_named_index(const char *name)
void rna_Node_socket_update(Main *bmain, Scene *scene, PointerRNA *ptr)
int rna_Node_Viewer_shortcut_node_get(PointerRNA *ptr, PropertyRNA *prop)
void rna_Node_Viewer_shortcut_node_set(PointerRNA *ptr, PropertyRNA *prop, int value)
void rna_Node_update_relations(Main *bmain, Scene *scne, PointerRNA *ptr)
void rna_Node_update(Main *bmain, Scene *scene, PointerRNA *ptr)
void register_node_type_sh_custom_group(blender::bke::bNodeType *ntype)
void ntreeTexCheckCyclics(struct bNodeTree *ntree)
int rna_node_socket_idname_to_enum(const char *idname)
blender::bke::bNodeTreeType * rna_node_tree_type_from_enum(int value)
int rna_node_tree_idname_to_enum(const char *idname)
const EnumPropertyItem * rna_node_tree_type_itemf(void *data, bool(*poll)(void *data, blender::bke::bNodeTreeType *), bool *r_free)
blender::bke::bNodeSocketType * rna_node_socket_type_from_enum(int value)
const EnumPropertyItem * rna_node_socket_type_itemf(void *data, bool(*poll)(void *data, blender::bke::bNodeSocketType *), bool *r_free)
int(*)(PointerRNA *ptr, void *data, bool *have_function) StructValidateFunc
#define RNA_ENUM_ITEM_SEPR
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
void(*)(void *data) StructFreeFunc
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ PROPOVERRIDE_NO_COMPARISON
@ PROP_VARIABLES_RENDER_OUTPUT
@ PROP_PATH_SUPPORTS_BLEND_RELATIVE
@ PROP_PATH_SUPPORTS_TEMPLATES
#define RNA_ENUM_ITEM_HEADING(name, description)
#define ND_NODE_ASSET_DATA
BMesh const char void * data
BPy_StructRNA * depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
StringRefNull copy_string(StringRef str)
void copy_unsafe(char *dst) const
constexpr const char * c_str() const
virtual const int & get_corresponding_output_id(const bNode &input_bnode) const =0
const bNode * get_corresponding_output(const bNodeTree &tree, const bNode &input_bnode) const
VecBase< float, 2 > float2
RenderEngineType * RE_engines_find(const char *idname)
RenderEngine * RE_engine_create(RenderEngineType *type)
void RE_engine_free(RenderEngine *engine)
void * MEM_callocN(size_t len, const char *str)
void * MEM_malloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
void node_tree_set_output(bNodeTree &ntree)
const bNodeZoneType * zone_type_by_node_type(const int node_type)
StringRefNull node_type_find_alias(StringRefNull alias)
bool node_is_parent_and_child(const bNode &parent, const bNode &child)
void node_attach_node(bNodeTree &ntree, bNode &node, bNode &parent)
bool node_tree_is_registered(const bNodeTree &ntree)
bNodeTreeType * node_tree_type_find(StringRef idname)
Span< bNodeSocketType * > node_socket_types_get()
void node_tag_update_id(bNode &node)
bNodeSocket * node_find_socket(bNode &node, eNodeSocketInOut in_out, StringRef identifier)
void node_remove_node(Main *bmain, bNodeTree &ntree, bNode &node, bool do_id_user, bool remove_animation=true)
bNode * node_add_node(const bContext *C, bNodeTree &ntree, StringRef idname)
void node_internal_links(bNode &node, bNodeLink **r_links, int *r_len)
bNode * node_get_active(bNodeTree &ntree)
void node_remove_socket(bNodeTree &ntree, bNode &node, bNodeSocket &sock)
void node_update_asset_metadata(bNodeTree &node_tree)
bool node_group_poll(const bNodeTree *nodetree, const bNodeTree *grouptree, const char **r_disabled_hint)
void node_register_type(bNodeType &ntype)
void node_remove_link(bNodeTree *ntree, bNodeLink &link)
void node_tree_type_add(bNodeTreeType &nt)
int node_count_socket_links(const bNodeTree &ntree, const bNodeSocket &sock)
bNode * node_find_node_try(bNodeTree &ntree, bNodeSocket &socket)
void node_tree_type_free_link(const bNodeTreeType &nt)
bool node_set_selected(bNode &node, bool select)
bNodeSocket * node_add_socket(bNodeTree &ntree, bNode &node, eNodeSocketInOut in_out, StringRefNull idname, StringRefNull identifier, StringRefNull name)
bool node_tree_contains_tree(const bNodeTree &tree_to_search_in, const bNodeTree &tree_to_search_for)
void node_detach_node(bNodeTree &ntree, bNode &node)
bNodeSocketType * node_socket_type_find(StringRef idname)
bNodeLink & node_add_link(bNodeTree &ntree, bNode &fromnode, bNodeSocket &fromsock, bNode &tonode, bNodeSocket &tosock)
bNodeSocketType * node_socket_type_find_static(int type, int subtype=0)
StringRefNull node_socket_type_label(const bNodeSocketType &stype)
Span< bNodeTreeType * > node_tree_types_get()
void node_unregister_type(bNodeType &ntype)
std::optional< StringRefNull > node_static_socket_type(int type, int subtype, std::optional< int > dimensions=std::nullopt)
void node_remove_socket_links(bNodeTree &ntree, bNodeSocket &sock)
void node_set_active(bNodeTree &ntree, bNode &node)
float2 node_dimensions_get(const bNode &node)
bNodeType * node_type_find(StringRef idname)
int node_socket_link_limit(const bNodeSocket &sock)
void node_clear_active(bNodeTree &ntree)
void node_unique_name(bNodeTree &ntree, bNode &node)
bool node_link_is_hidden(const bNodeLink &link)
void node_type_base_custom(bNodeType &ntype, StringRefNull idname, StringRefNull name, StringRefNull enum_name, short nclass)
void remove_index(T **items, int *items_num, int *active_index, const int index, void(*destruct_item)(T *))
void clear(T **items, int *items_num, int *active_index, void(*destruct_item)(T *))
void move_index(T *items, const int items_num, const int from_index, const int to_index)
T pow(const T &x, const T &power)
T clamp(const T &a, const T &min, const T &max)
T max(const T &a, const T &b)
bool generic_attribute_type_supported(const EnumPropertyItem &item)
void set_item_name_and_make_unique(bNode &node, typename Accessor::ItemT &item, const char *value)
Accessor::ItemT * add_item_with_name(bNode &node, const char *name)
Accessor::ItemT * add_item(bNode &node)
Accessor::ItemT * add_item_with_socket_type_and_name(bNode &node, const eNodeSocketDatatype socket_type, const char *name)
bNode * find_node_by_item(bNodeTree &ntree, const typename Accessor::ItemT &item)
VecBase< float, 2 > float2
void register_node_type_cmp_custom_group(blender::bke::bNodeType *ntype)
void ntreeCompositCryptomatteSyncFromRemove(bNode *node)
void ntreeCompositCryptomatteSyncFromAdd(bNode *node)
void ntreeCompositOutputFileSetPath(bNode *node, bNodeSocket *sock, const char *name)
void ntreeCompositOutputFileSetLayer(bNode *node, bNodeSocket *sock, const char *name)
bNodeSocket * ntreeCompositOutputFileAddSocket(bNodeTree *ntree, bNode *node, const char *name, const ImageFormatData *im_format)
void ntreeCompositTagNeedExec(bNode *node)
void ntreeCompositUpdateRLayers(bNodeTree *ntree)
void register_node_type_geo_custom_group(blender::bke::bNodeType *ntype)
void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const bool *values)
void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values)
void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values)
void RNA_boolean_get_array(PointerRNA *ptr, const char *name, bool *values)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, void *data, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
const PointerRNA PointerRNA_NULL
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, ListBase *lb, IteratorSkipFunc skip)
int RNA_int_get(PointerRNA *ptr, const char *name)
int RNA_struct_ui_icon(const StructRNA *type)
float RNA_float_get(PointerRNA *ptr, const char *name)
const char * RNA_struct_ui_description(const StructRNA *type)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void rna_pointer_create_with_ancestors(const PointerRNA &parent, StructRNA *type, void *data, PointerRNA &r_ptr)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *, FunctionRNA *func)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void * rna_iterator_listbase_get(CollectionPropertyIterator *iter)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **r_value)
PointerRNA RNA_pointer_create_with_parent(const PointerRNA &parent, StructRNA *type, void *data)
PointerRNA RNA_id_pointer_create(ID *id)
void rna_def_animdata_common(StructRNA *srna)
const EnumPropertyItem rna_enum_attribute_domain_items[]
const EnumPropertyItem rna_enum_attribute_type_items[]
const EnumPropertyItem rna_enum_color_space_convert_default_items[]
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
FunctionRNA * RNA_def_function_runtime(StructRNA *srna, const char *identifier, CallFunc call)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_enum_default(PropertyRNA *prop, int value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_default(PropertyRNA *prop, bool value)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_int_default(PropertyRNA *prop, int value)
void RNA_def_property_path_template_type(PropertyRNA *prop, PropertyPathTemplateType path_template_type)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname, const char *propname)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_struct_free_extension(StructRNA *srna, ExtensionRNA *rna_ext)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_float_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
void RNA_def_property_float_array_default(PropertyRNA *prop, const float *array)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
std::optional< std::string > rna_Node_ImageUser_path(const PointerRNA *ptr)
const EnumPropertyItem rna_enum_ramp_blend_items[]
const EnumPropertyItem rna_enum_axis_xy_items[]
const EnumPropertyItem rna_enum_node_socket_type_items[]
static const EnumPropertyItem sh_tex_prop_interpolation_items[]
static void def_sh_tex_sky(BlenderRNA *brna, StructRNA *srna)
static void def_custom_group(BlenderRNA *brna, const char *struct_name, const char *base_name, const char *ui_name, const char *ui_desc, const char *reg_func)
static const EnumPropertyItem node_glossy_items[]
static void def_cmp_flip(BlenderRNA *, StructRNA *srna)
static void def_geo_menu_switch(BlenderRNA *brna, StructRNA *srna)
static void def_geo_foreach_geometry_element_output(BlenderRNA *brna, StructRNA *srna)
static void def_vector_math(BlenderRNA *, StructRNA *srna)
static void def_cmp_bilateral_blur(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_magic(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_moviedistortion(BlenderRNA *, StructRNA *srna)
static void def_frame(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_subsurface_method_items[]
static const EnumPropertyItem node_script_mode_items[]
static const EnumPropertyItem prop_image_layer_items[]
static void def_sheen(BlenderRNA *, StructRNA *srna)
static void def_sh_tex(BlenderRNA *, StructRNA *srna)
static void def_cmp_mask(BlenderRNA *, StructRNA *srna)
static void def_scatter(BlenderRNA *, StructRNA *srna)
static EnumPropertyItem node_ies_mode_items[]
static void def_cmp_viewer(BlenderRNA *, StructRNA *srna)
static void def_cmp_map_uv(BlenderRNA *, StructRNA *srna)
static void def_sh_subsurface(BlenderRNA *, StructRNA *srna)
static void def_cmp_glare(BlenderRNA *, StructRNA *srna)
static void rna_def_texture_node(BlenderRNA *brna)
static void rna_def_geo_repeat_item(BlenderRNA *brna)
static void def_cmp_boxmask(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_color_tag_items[]
static void def_glossy(BlenderRNA *, StructRNA *srna)
static void def_group_output(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_separate_bundle_items(BlenderRNA *brna)
static const EnumPropertyItem prop_view_layer_items[]
static void rna_def_geo_evaluate_closure_input_items(BlenderRNA *brna)
static void def_cmp_sunbeams(BlenderRNA *, StructRNA *srna)
static void rna_def_cmp_output_file_slots_api(BlenderRNA *brna, PropertyRNA *cprop, const char *struct_name)
const EnumPropertyItem rna_enum_node_integer_math_items[]
static void def_cmp_color_spill(BlenderRNA *, StructRNA *srna)
static void rna_def_node_link(BlenderRNA *brna)
static const EnumPropertyItem rna_node_geometry_curve_handle_type_items[]
static const EnumPropertyItem prop_image_view_items[]
static void rna_def_geo_combine_bundle_items(BlenderRNA *brna)
static void rna_def_nodetree(BlenderRNA *brna)
static void def_fn_format_string(BlenderRNA *brna, StructRNA *srna)
static void def_geo_repeat_output(BlenderRNA *brna, StructRNA *srna)
static void rna_def_shader_node(BlenderRNA *brna)
static void rna_def_geo_repeat_items(BlenderRNA *brna)
static const EnumPropertyItem prop_shader_output_target_items[]
static void def_cmp_colorcorrection(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_metallic_distribution_items[]
static const EnumPropertyItem node_flip_items[]
static const EnumPropertyItem node_hair_items[]
static void def_cmp_ellipsemask(BlenderRNA *, StructRNA *srna)
static void def_cmp_map_range(BlenderRNA *, StructRNA *srna)
static void def_cmp_inpaint(BlenderRNA *, StructRNA *srna)
static void rna_def_compositor_node(BlenderRNA *brna)
static void def_geo_distribute_points_on_faces(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_simulation_state_item(BlenderRNA *brna)
static void def_sh_vect_transform(BlenderRNA *, StructRNA *srna)
static void def_fn_input_string(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_separate_bundle_item(BlenderRNA *brna)
static void def_texture(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_wave(BlenderRNA *brna, StructRNA *srna)
const EnumPropertyItem rna_enum_node_float_to_int_items[]
static void rna_def_geo_foreach_geometry_element_input_item(BlenderRNA *brna)
static void def_cmp_defocus(BlenderRNA *, StructRNA *srna)
static void def_sh_normal_map(BlenderRNA *, StructRNA *srna)
static void def_cmp_color_matte(BlenderRNA *, StructRNA *srna)
static void def_cmp_keying(BlenderRNA *, StructRNA *srna)
static void def_geo_index_switch(BlenderRNA *brna, StructRNA *srna)
static void rna_def_nodetree_link_api(BlenderRNA *brna, PropertyRNA *cprop)
static void def_sh_attribute(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_voronoi(BlenderRNA *brna, StructRNA *srna)
static void rna_def_node(BlenderRNA *brna)
static void def_cmp_translate(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem rna_enum_node_tex_dimensions_items[]
static void def_sh_bevel(BlenderRNA *, StructRNA *srna)
static void def_group(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_masktype_items[]
static void rna_def_cmp_output_file_slot_layer(BlenderRNA *brna)
static void def_cmp_colorbalance(BlenderRNA *, StructRNA *srna)
static void def_sh_uvalongstroke(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_foreach_geometry_element_generation_item(BlenderRNA *brna)
static void def_float_to_int(BlenderRNA *, StructRNA *srna)
static void def_cmp_filter(BlenderRNA *, StructRNA *srna)
static void def_common_zone_input(BlenderRNA *, StructRNA *srna)
static void def_cmp_levels(BlenderRNA *, StructRNA *srna)
static void def_fn_input_int(BlenderRNA *, StructRNA *srna)
static void def_fn_input_rotation(BlenderRNA *, StructRNA *srna)
static void def_cmp_invert(BlenderRNA *, StructRNA *srna)
static void def_refraction(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_metallic_fresnel_type_items[]
static void rna_def_geo_gizmo_transform(BlenderRNA *, StructRNA *srna)
static void def_tex_image(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_checker(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_chroma_matte(BlenderRNA *, StructRNA *srna)
static void def_float_curve(BlenderRNA *, StructRNA *srna)
static void def_cmp_tonemap(BlenderRNA *, StructRNA *srna)
static void rna_def_internal_node(BlenderRNA *brna)
static void def_cmp_render_layers(BlenderRNA *, StructRNA *srna)
static void def_cmp_dilate_erode(BlenderRNA *, StructRNA *srna)
static void def_cmp_movieclip(BlenderRNA *, StructRNA *srna)
static void def_tex_output(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem cmp_interpolation_items[]
static void def_sh_output_linestyle(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_lensdist(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_mapping_type_items[]
static void rna_def_geo_closure_input_item(BlenderRNA *brna)
static const EnumPropertyItem node_scatter_phase_items[]
static void def_cmp_crop(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem rna_enum_vector_rotate_type_items[]
const EnumPropertyItem rna_enum_node_combsep_color_items[]
static void def_sh_tex_pointdensity(BlenderRNA *, StructRNA *srna)
static void def_geo_simulation_input(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_ycc(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_bake_item(BlenderRNA *brna)
static const EnumPropertyItem node_cryptomatte_layer_name_items[]
static const EnumPropertyItem node_ycc_items[]
static void def_reroute(BlenderRNA *, StructRNA *srna)
static void def_mix_rgb(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_evaluate_closure_output_items(BlenderRNA *brna)
static void def_metallic(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_separate_bundle(BlenderRNA *brna, StructRNA *srna)
static const EnumPropertyItem node_refraction_items[]
static void def_geo_input_collection(BlenderRNA *, StructRNA *srna)
static void rna_def_function_node(BlenderRNA *brna)
static void def_sh_output_aov(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_white_noise(BlenderRNA *, StructRNA *srna)
static void rna_def_node_instance_hash(BlenderRNA *brna)
static void def_vector_curve(BlenderRNA *, StructRNA *srna)
static void def_sh_output(BlenderRNA *, StructRNA *srna)
static void def_geo_input_normal(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_brick(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_bokehimage(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem prop_image_extension[]
static void def_geo_sample_index(BlenderRNA *, StructRNA *srna)
static void def_cmp_convert_color_space(BlenderRNA *, StructRNA *srna)
static void def_cmp_channel_matte(BlenderRNA *, StructRNA *srna)
static void def_hair_principled(BlenderRNA *, StructRNA *srna)
static void def_cmp_planetrackdeform(BlenderRNA *, StructRNA *srna)
static void def_fn_random_value(BlenderRNA *, StructRNA *srna)
static void def_cmp_cryptomatte(BlenderRNA *brna, StructRNA *srna)
static void rna_def_geo_foreach_geometry_element_generation_items(BlenderRNA *brna)
static void def_cmp_antialiasing(BlenderRNA *, StructRNA *srna)
static void def_tex_bricks(BlenderRNA *, StructRNA *srna)
static void dev_cmd_transform(BlenderRNA *, StructRNA *srna)
static void rna_def_fn_format_string_item(BlenderRNA *brna)
static void rna_def_geo_simulation_state_items(BlenderRNA *brna)
static void rna_def_cmp_output_file_slot_file(BlenderRNA *brna)
static void def_cmp_denoise(BlenderRNA *, StructRNA *srna)
static void def_sh_vector_displacement(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_capture_attribute(BlenderRNA *brna, StructRNA *srna)
static void def_geo_closure_input(BlenderRNA *brna, StructRNA *srna)
static void rna_def_texture_nodetree(BlenderRNA *brna)
static void def_sh_uvmap(BlenderRNA *, StructRNA *srna)
static void def_time(BlenderRNA *, StructRNA *srna)
static void def_cmp_trackpos(BlenderRNA *, StructRNA *srna)
static void def_cmp_premul_key(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_socket_in_out_items[]
void RNA_def_nodetree(BlenderRNA *brna)
static void def_sh_tex_coord(BlenderRNA *, StructRNA *srna)
static void def_fn_input_color(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_combine_bundle(BlenderRNA *brna, StructRNA *srna)
const EnumPropertyItem rna_enum_node_math_items[]
static void rna_def_shader_nodetree(BlenderRNA *brna)
static void rna_def_geo_foreach_geometry_element_input_items(BlenderRNA *brna)
static void rna_def_index_switch_item(BlenderRNA *brna)
static void def_cmp_brightcontrast(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_capture_attribute_item(BlenderRNA *brna)
static void rna_def_geo_closure_output_items(BlenderRNA *brna)
static void rna_def_geo_menu_switch_item(BlenderRNA *brna)
const EnumPropertyItem rna_enum_node_geometry_curve_handle_side_items[]
const EnumPropertyItem rna_enum_node_socket_data_type_items[]
const EnumPropertyItem rna_enum_node_vec_math_items[]
const EnumPropertyItem rna_enum_geometry_nodes_linear_gizmo_draw_style_items[]
static void def_cmp_keyingscreen(BlenderRNA *, StructRNA *srna)
static void def_node_image_user(BlenderRNA *, StructRNA *srna)
static void def_sh_vector_rotate(BlenderRNA *, StructRNA *srna)
static void def_group_input(BlenderRNA *, StructRNA *)
static void rna_def_geo_capture_attribute_items(BlenderRNA *brna)
static void rna_def_geometry_nodetree(BlenderRNA *brna)
static void def_cmp_id_mask(BlenderRNA *, StructRNA *srna)
static void def_cmp_diff_matte(BlenderRNA *, StructRNA *srna)
static void rna_def_node_item_array_socket_item_common(StructRNA *srna, const char *accessor, const bool add_socket_type)
static void def_cmp_combsep_color(BlenderRNA *, StructRNA *srna)
static void def_volume_coefficients(BlenderRNA *, StructRNA *srna)
static void def_cmp_cornerpin(BlenderRNA *, StructRNA *srna)
static void def_cmp_map_value(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_ies(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_closure_input_items(BlenderRNA *brna)
static void def_sh_mapping(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_principled_hair_model_items[]
static void def_cmp_despeckle(BlenderRNA *, StructRNA *srna)
static void def_sh_script(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_principled_hair_parametrization_items[]
static const EnumPropertyItem prop_tri_channel_items[]
static void def_cmp_dblur(BlenderRNA *, StructRNA *srna)
static void def_cmp_pixelate(BlenderRNA *, StructRNA *srna)
static void def_cmp_rotate(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_geometry_mesh_circle_fill_type_items[]
static void def_cmp_cryptomatte_legacy(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_composite(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_glass_items[]
static void def_cmp_scale(BlenderRNA *, StructRNA *srna)
static void def_clamp(BlenderRNA *, StructRNA *srna)
static void def_cmp_luma_matte(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_boolean_math_items[]
static void def_geo_curve_sample(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_combine_bundle_item(BlenderRNA *brna)
static void rna_def_geo_bake_items(BlenderRNA *brna)
static void rna_def_geo_index_switch_items(BlenderRNA *brna)
const EnumPropertyItem rna_enum_geometry_nodes_gizmo_color_items[]
static void rna_def_node_item_array_common_functions(StructRNA *srna, const char *item_name, const char *accessor_name)
static void def_cmp_huecorrect(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_map_range_items[]
static void def_cmp_stabilize2d(BlenderRNA *, StructRNA *srna)
static void def_geo_simulation_output(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_bokehblur(BlenderRNA *, StructRNA *srna)
static void def_geo_input_material(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_evaluate_closure_input_item(BlenderRNA *brna)
const EnumPropertyItem rna_enum_node_float_compare_items[]
static void def_sh_mix(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_compare_operation_items[]
static void def_sh_combsep_color(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_evaluate_closure_output_item(BlenderRNA *brna)
static void def_hair(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_filter_items[]
static void def_toon(BlenderRNA *, StructRNA *srna)
static void def_map_range(BlenderRNA *, StructRNA *srna)
static void rna_def_node_sockets_api(BlenderRNA *brna, PropertyRNA *cprop, int in_out)
static void def_cmp_vector_blur(BlenderRNA *, StructRNA *srna)
static void def_cmp_cryptomatte_common(BlenderRNA *, StructRNA *srna)
static void rna_def_nodes(BlenderRNA *brna)
static void def_principled(BlenderRNA *, StructRNA *srna)
static void def_geo_foreach_geometry_element_input(BlenderRNA *brna, StructRNA *srna)
static void rna_def_geo_closure_output_item(BlenderRNA *brna)
static void def_geo_input_object(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_noise(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_distance_matte(BlenderRNA *, StructRNA *srna)
static void def_cmp_set_alpha(BlenderRNA *, StructRNA *srna)
static void def_geo_curve_handle_type_selection(BlenderRNA *, StructRNA *srna)
static void def_rgb_curve(BlenderRNA *, StructRNA *srna)
static void def_cmp_blur(BlenderRNA *, StructRNA *srna)
static void def_glass(BlenderRNA *, StructRNA *srna)
static void def_sh_displacement(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem rna_enum_mix_data_type_items[]
static void def_sh_ambient_occlusion(BlenderRNA *, StructRNA *srna)
static void rna_def_composite_nodetree(BlenderRNA *brna)
static void rna_def_geometry_node(BlenderRNA *brna)
static void def_cmp_switch(BlenderRNA *, StructRNA *srna)
static void def_fn_input_vector(BlenderRNA *, StructRNA *srna)
static void def_colorramp(BlenderRNA *, StructRNA *srna)
const EnumPropertyItem rna_enum_node_clamp_items[]
static void def_tex_combsep_color(BlenderRNA *, StructRNA *srna)
static void def_geo_image_texture(BlenderRNA *, StructRNA *srna)
static void def_math(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_sheen_items[]
static void def_sh_bump(BlenderRNA *, StructRNA *srna)
static void def_sh_tangent(BlenderRNA *, StructRNA *srna)
static void def_geo_string_to_curves(BlenderRNA *, StructRNA *srna)
static void def_fn_rotate_euler(BlenderRNA *, StructRNA *srna)
static void def_geo_evaluate_closure(BlenderRNA *brna, StructRNA *srna)
static void rna_def_geo_bake(BlenderRNA *brna, StructRNA *srna)
static void def_fn_input_bool(BlenderRNA *, StructRNA *srna)
static void rna_def_node_item_array_new_with_socket_and_name(StructRNA *srna, const char *item_name, const char *accessor_name)
static void def_geo_repeat_input(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_cryptomatte_entry(BlenderRNA *brna)
static void def_sh_vertex_color(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_gabor(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_switch_view(BlenderRNA *, StructRNA *)
static void def_cmp_output_file(BlenderRNA *brna, StructRNA *srna)
static void rna_def_geo_foreach_geometry_element_main_items(BlenderRNA *brna)
static void def_cmp_double_edge_mask(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_gradient(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_image(BlenderRNA *brna, StructRNA *srna)
static void rna_def_geo_foreach_geometry_element_main_item(BlenderRNA *brna)
static const EnumPropertyItem node_principled_distribution_items[]
static void def_geo_curve_set_handle_type(BlenderRNA *, StructRNA *srna)
static void def_cmp_kuwahara(BlenderRNA *, StructRNA *srna)
static void rna_def_fn_format_string_items(BlenderRNA *brna)
static void rna_def_nodetree_nodes_api(BlenderRNA *brna, PropertyRNA *cprop)
static void def_sh_tex_wireframe(BlenderRNA *, StructRNA *srna)
static void def_cmp_zcombine(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem node_toon_items[]
static void def_geo_image(BlenderRNA *, StructRNA *srna)
static void def_sh_tex_image(BlenderRNA *brna, StructRNA *srna)
static StructRNA * define_specific_node(BlenderRNA *brna, const char *struct_name, const char *base_name)
static void def_cmp_alpha_over(BlenderRNA *, StructRNA *srna)
static void rna_def_geo_menu_switch_items(BlenderRNA *brna)
static void def_geo_closure_output(BlenderRNA *brna, StructRNA *srna)
static void def_sh_tex_environment(BlenderRNA *brna, StructRNA *srna)
static void def_cmp_split(BlenderRNA *, StructRNA *srna)
static const EnumPropertyItem space_items[]
const EnumPropertyItem rna_enum_dummy_NULL_items[]
const EnumPropertyItem rna_enum_proportional_falloff_curve_only_items[]
static const EnumPropertyItem prop_noise_type[]
const EnumPropertyItem rna_enum_icon_items[]
bool RE_layers_have_name(RenderResult *result)
char vertex_attribute_name[68]
char vertex_attribute_name[68]
struct ImageFormatData im_format
struct RenderLayer * next
struct bNodeTree * nodetree
struct bNodeSocket * next
struct GeometryNodeAssetTraits * geometry_node_asset_traits
bNodeTreeTypeHandle * typeinfo
bNodeTreeInterface tree_interface
bNodeTypeHandle * typeinfo
Compact definition of a node socket.
void(* update)(bNodeTree *ntree)
std::string ui_description
bool(* poll)(const bContext *C, bNodeTreeType *ntreetype)
void(* get_from_context)(const bContext *C, bNodeTreeType *ntreetype, bNodeTree **r_ntree, ID **r_id, ID **r_from)
bool(* valid_socket_type)(bNodeTreeType *ntreetype, bNodeSocketType *socket_type)
void(* freefunc_api)(PointerRNA *ptr)
std::string ui_description
bool(* poll_instance)(const bNode *node, const bNodeTree *nodetree, const char **r_disabled_hint)
bNodeSocketTemplate * inputs
void(* labelfunc)(const bNodeTree *ntree, const bNode *node, char *label, int label_maxncpy)
void(* draw_buttons_ex)(uiLayout *, bContext *C, PointerRNA *ptr)
bNodeSocketTemplate * outputs
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
bool(* poll)(const bNodeType *ntype, const bNodeTree *nodetree, const char **r_disabled_hint)
bool(* insert_link)(bNodeTree *ntree, bNode *node, bNodeLink *link)
void(* copyfunc_api)(PointerRNA *ptr, const bNode *src_node)
void(* free_self)(bNodeType *ntype)
void(* updatefunc)(bNodeTree *ntree, bNode *node)
void(* initfunc_api)(const bContext *C, PointerRNA *ptr)
void RE_point_density_free(PointDensity *pd)
void RE_point_density_minmax(Depsgraph *depsgraph, PointDensity *pd, float r_min[3], float r_max[3])
void RE_point_density_sample(Depsgraph *depsgraph, PointDensity *pd, const int resolution, float *values)
void RE_point_density_cache(Depsgraph *depsgraph, PointDensity *pd)
void WM_main_add_notifier(uint type, void *reference)