55 {
SOCK_IN,
"IN", 0,
"Input",
""}, {
SOCK_OUT,
"OUT", 0,
"Output",
""}, {0,
NULL, 0,
NULL,
NULL}};
124 "Compositing is tiled, having as priority to display first tiles as fast as possible"},
129 "Composites full image result as fast as possible"},
139 "Transform a texture by inverse mapping the texture coordinate"},
144 "Transform a direction vector. Location is ignored"},
149 "Transform a unit normal vector. Location is ignored"},
158 "Rotate a point using axis angle"},
177 {
NODE_MATH_INV_SQRT,
"INVERSE_SQRT", 0,
"Inverse Square Root",
"1 / Square root of A"},
186 {
NODE_MATH_COMPARE,
"COMPARE", 0,
"Compare",
"1 if (A == B) within tolerance C else 0"},
191 "The minimum from A and B with smoothing C"},
196 "The maximum from A and B with smoothing C"},
202 "Round A to the nearest integer. Round upward if the fraction part is 0.5"},
203 {
NODE_MATH_FLOOR,
"FLOOR", 0,
"Floor",
"The largest integer smaller than or equal A"},
204 {
NODE_MATH_CEIL,
"CEIL", 0,
"Ceil",
"The smallest integer greater than or equal A"},
205 {
NODE_MATH_TRUNC,
"TRUNC", 0,
"Truncate",
"The integer part of A, removing fractional digits"},
209 {
NODE_MATH_WRAP,
"WRAP", 0,
"Wrap",
"Wrap value to range, wrap(A,B)"},
210 {
NODE_MATH_SNAP,
"SNAP", 0,
"Snap",
"Snap to increment, snap(A,B)"},
215 "Wraps a value and reverses every other cycle (A,B)"},
230 {
NODE_MATH_RADIANS,
"RADIANS", 0,
"To Radians",
"Convert from degrees to radians"},
231 {
NODE_MATH_DEGREES,
"DEGREES", 0,
"To Degrees",
"Convert from radians to degrees"},
248 "Reflect A around the normal B. B doesn't need to be normalized"},
253 "For a given incident vector A, surface normal B and ratio of indices of refraction, Ior, "
254 "refract returns the refraction vector, R"},
259 "Orients a vector A to point away from a surface B as defined by its normal C. "
260 "Returns (dot(B, C) < 0) ? A : -A"},
280 "Round A to the largest integer multiple of B less than or equal A"},
299 "True when both inputs are equal (exclusive nor)"},
304 "True when both inputs are different (exclusive or)"},
310 "True unless the first input is true and the second is false"},
315 "True when the first input is true and the second is false (not imply)"},
324 "True when the first input is smaller than second input"},
328 "Less Than or Equal",
329 "True when the first input is smaller than the second input or equal"},
334 "True when the first input is greater than the second input"},
338 "Greater Than or Equal",
339 "True when the first input is greater than the second input or equal"},
340 {
NODE_COMPARE_EQUAL,
"EQUAL", 0,
"Equal",
"True when both inputs are approximately equal"},
345 "True when both inputs are not approximately equal"},
354 "True when the first input is smaller than second input"},
358 "Less Than or Equal",
359 "True when the first input is smaller than the second input or equal"},
364 "True when the first input is greater than the second input"},
368 "Greater Than or Equal",
369 "True when the first input is greater than the second input or equal"},
370 {
NODE_COMPARE_EQUAL,
"EQUAL", 0,
"Equal",
"True when both inputs are approximately equal"},
375 "True when both inputs are not approximately equal"},
380 "True when the first input is brighter"},
390 "Round the float up or down to the nearest integer"},
395 "Round the float down to the next smallest integer"},
400 "Round the float up to the next largest integer"},
405 "Round the float to the closest integer in the direction of zero (floor if positive; ceiling "
415 "Linear interpolation between From Min and From Max values"},
420 "Stepped linear interpolation between From Min and From Max values"},
425 "Smooth Hermite edge interpolation between From Min and From Max values"},
430 "Smoother Hermite edge interpolation between From Min and From Max values"},
435 {
NODE_CLAMP_MINMAX,
"MINMAX", 0,
"Min Max",
"Constrain value between min and max"},
440 "Constrain value between min and max, swapping arguments when min > max"},
445 {1,
"1D", 0,
"1D",
"Use the scalar value W as input"},
446 {2,
"2D", 0,
"2D",
"Use the 2D vector (X, Y) as input. The Z component is ignored"},
447 {3,
"3D", 0,
"3D",
"Use the 3D vector (X, Y, Z) as input"},
448 {4,
"4D", 0,
"4D",
"Use the 4D vector (X, Y, Z, W) as input"},
453 {0,
"SOFTEN", 0,
"Soften",
""},
454 {1,
"SHARPEN", 0,
"Box Sharpen",
"An aggressive sharpening filter"},
455 {7,
"SHARPEN_DIAMOND", 0,
"Diamond Sharpen",
"A moderate sharpening filter"},
456 {2,
"LAPLACE", 0,
"Laplace",
""},
457 {3,
"SOBEL", 0,
"Sobel",
""},
458 {4,
"PREWITT", 0,
"Prewitt",
""},
459 {5,
"KIRSCH", 0,
"Kirsch",
""},
460 {6,
"SHADOW", 0,
"Shadow",
""},
469 "The handle can be moved anywhere, and doesn't influence the point's other handle"},
474 "The location is automatically calculated to be smooth"},
479 "The location is calculated to point to the next/previous control point"},
484 "The location is constrained to point in the opposite direction as the other handle"},
501 {0,
"NEAREST", 0,
"Nearest",
""},
502 {1,
"BILINEAR", 0,
"Bilinear",
""},
503 {2,
"BICUBIC", 0,
"Bicubic",
""},
512 "Use shaders for all renderers and viewports, unless there exists a more specific output"},
519 {0,
"CryptoObject", 0,
"Object",
"Use Object layer"},
520 {1,
"CryptoMaterial", 0,
"Material",
"Use Material layer"},
521 {2,
"CryptoAsset", 0,
"Asset",
"Use Asset layer"},
537 #undef ITEM_ATTRIBUTE
577 if (nt == typeinfo) {
591 if (
STREQ(nt->idname, idname)) {
622 int totitem = 0, i = 0;
625 if (poll && !poll(
data, nt)) {
632 tmp.
icon = nt->ui_icon;
633 tmp.
name = nt->ui_name;
657 if (ntype == typeinfo) {
671 if (
STREQ(ntype->idname, idname)) {
702 int totitem = 0, i = 0;
705 if (poll && !poll(
data, ntype)) {
712 tmp.
icon = ntype->ui_icon;
713 tmp.
name = ntype->ui_name;
737 if (stype == typeinfo) {
751 if (
STREQ(stype->idname, idname)) {
782 int totitem = 0, i = 0;
786 if (poll && !poll(
data, stype)) {
791 srna = stype->ext_socket.srna;
832 tmp.
icon = ICON_NONE;
837 tmp.
name =
"CustomGroup";
839 tmp.
icon = ICON_NONE;
844 tmp.
name =
"UNDEFINED";
846 tmp.
icon = ICON_NONE;
849 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
850 if (STREQ(#Category, "Node")) { \
852 tmp.identifier = EnumName; \
854 tmp.description = UIDesc; \
855 tmp.icon = ICON_NONE; \
856 RNA_enum_item_add(&item, &totitem, &tmp); \
858 # include "../../nodes/NOD_static_types.h"
862 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
863 if (STREQ(#Category, "ShaderNode")) { \
865 tmp.identifier = EnumName; \
867 tmp.description = UIDesc; \
868 tmp.icon = ICON_NONE; \
869 RNA_enum_item_add(&item, &totitem, &tmp); \
871 # include "../../nodes/NOD_static_types.h"
876 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
877 if (STREQ(#Category, "CompositorNode")) { \
879 tmp.identifier = EnumName; \
881 tmp.description = UIDesc; \
882 tmp.icon = ICON_NONE; \
883 RNA_enum_item_add(&item, &totitem, &tmp); \
885 # include "../../nodes/NOD_static_types.h"
890 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
891 if (STREQ(#Category, "TextureNode")) { \
893 tmp.identifier = EnumName; \
895 tmp.description = UIDesc; \
896 tmp.icon = ICON_NONE; \
897 RNA_enum_item_add(&item, &totitem, &tmp); \
899 # include "../../nodes/NOD_static_types.h"
904 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
905 if (STREQ(#Category, "GeometryNode")) { \
907 tmp.identifier = EnumName; \
909 tmp.description = UIDesc; \
910 tmp.icon = ICON_NONE; \
911 RNA_enum_item_add(&item, &totitem, &tmp); \
913 # include "../../nodes/NOD_static_types.h"
918 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
919 if (STREQ(#Category, "FunctionNode")) { \
921 tmp.identifier = EnumName; \
923 tmp.description = UIDesc; \
924 tmp.icon = ICON_NONE; \
925 RNA_enum_item_add(&item, &totitem, &tmp); \
927 # include "../../nodes/NOD_static_types.h"
947 return &RNA_NodeTree;
962 func = &rna_NodeTree_poll_func;
969 visible = *(
bool *)
ret;
985 func = &rna_NodeTree_update_func;
993 static void rna_NodeTree_get_from_context(
996 extern FunctionRNA rna_NodeTree_get_from_context_func;
1001 void *ret1, *ret2, *ret3;
1005 func = &rna_NodeTree_get_from_context_func;
1015 *r_id = *(
ID **)ret2;
1016 *r_from = *(
ID **)ret3;
1023 extern FunctionRNA rna_NodeTree_valid_socket_type_func;
1032 func = &rna_NodeTree_valid_socket_type_func;
1039 valid = *(
bool *)
ret;
1066 const char *identifier,
1074 int have_function[4];
1078 memset(&dummyntree, 0,
sizeof(
bNodeTree));
1083 if (validate(&dummyptr,
data, have_function) != 0) {
1087 if (strlen(identifier) >=
sizeof(dummynt.
idname)) {
1090 "Registering node tree class: '%s' is too long, maximum length is %d",
1092 (
int)
sizeof(dummynt.
idname));
1104 memcpy(nt, &dummynt,
sizeof(dummynt));
1117 nt->
poll = (have_function[0]) ? rna_NodeTree_poll :
NULL;
1118 nt->
update = (have_function[1]) ? rna_NodeTree_update_reg :
NULL;
1136 "Node tree '%s' has undefined type %s",
1165 if (!rna_NodeTree_check(
ntree, reports)) {
1175 const char *disabled_hint =
NULL;
1176 if (ntype->
poll && !ntype->
poll(ntype,
ntree, &disabled_hint)) {
1177 if (disabled_hint) {
1180 "Cannot add node of type %s to node tree '%s'\n %s",
1189 "Cannot add node of type %s to node tree '%s'",
1217 if (!rna_NodeTree_check(
ntree, reports)) {
1238 if (!rna_NodeTree_check(
ntree, reports)) {
1276 if (other_node->type ==
node->type) {
1300 if (!rna_NodeTree_check(
ntree, reports)) {
1309 if (!fromnode || !tonode) {
1318 if (verify_limits) {
1328 if (link->fromsock == fromsock && link->tosock == tosock) {
1356 if (!rna_NodeTree_check(
ntree, reports)) {
1376 if (!rna_NodeTree_check(
ntree, reports)) {
1396 if (socket->flag &
SELECT) {
1403 static void rna_NodeTree_active_input_set(
PointerRNA *
ptr,
int value)
1418 if (socket->flag &
SELECT) {
1425 static void rna_NodeTree_active_output_set(
PointerRNA *
ptr,
int value)
1438 if (!rna_NodeTree_check(
ntree, reports)) {
1458 if (!rna_NodeTree_check(
ntree, reports)) {
1480 if (!rna_NodeTree_check(
ntree, reports)) {
1497 if (!rna_NodeTree_check(
ntree, reports)) {
1511 if (!rna_NodeTree_check(
ntree, reports)) {
1523 static void rna_NodeTree_inputs_move(
bNodeTree *
ntree,
Main *bmain,
int from_index,
int to_index)
1525 if (from_index == to_index) {
1528 if (from_index < 0 || to_index < 0) {
1533 if (to_index < from_index) {
1554 static void rna_NodeTree_outputs_move(
bNodeTree *
ntree,
Main *bmain,
int from_index,
int to_index)
1556 if (from_index == to_index) {
1559 if (from_index < 0 || to_index < 0) {
1564 if (to_index < from_index) {
1607 if (
node->typeinfo->rna_ext.srna) {
1608 return node->typeinfo->rna_ext.srna;
1618 char name_esc[
sizeof(
node->name) * 2];
1632 switch (
node->type) {
1651 char name_esc[
sizeof(
node->name) * 2];
1653 return BLI_sprintfN(
"nodes[\"%s\"].image_user", name_esc);
1670 func = &rna_Node_poll_func;
1677 visible = *(
bool *)
ret;
1684 static bool rna_Node_poll_instance(
bNode *
node,
1686 const char **
UNUSED(disabled_info))
1697 func = &rna_Node_poll_instance_func;
1701 node->typeinfo->rna_ext.call(
NULL, &
ptr, func, &list);
1704 visible = *(
bool *)
ret;
1711 static bool rna_Node_poll_instance_default(
bNode *
node,
1713 const char **disabled_info)
1716 return rna_Node_poll(
node->typeinfo,
ntree, disabled_info);
1728 func = &rna_Node_update_func;
1731 node->typeinfo->rna_ext.call(
NULL, &
ptr, func, &list);
1745 func = &rna_Node_insert_link_func;
1749 node->typeinfo->rna_ext.call(
NULL, &
ptr, func, &list);
1762 func = &rna_Node_init_func;
1778 func = &rna_Node_copy_func;
1782 node->typeinfo->rna_ext.call(
NULL,
ptr, func, &list);
1795 func = &rna_Node_free_func;
1798 node->typeinfo->rna_ext.call(
NULL,
ptr, func, &list);
1811 func = &rna_Node_draw_buttons_func;
1816 node->typeinfo->rna_ext.call(
C,
ptr, func, &list);
1823 extern FunctionRNA rna_Node_draw_buttons_ext_func;
1829 func = &rna_Node_draw_buttons_ext_func;
1834 node->typeinfo->rna_ext.call(
C,
ptr, func, &list);
1849 func = &rna_Node_draw_label_func;
1853 node->typeinfo->rna_ext.call(
NULL, &
ptr, func, &list);
1856 rlabel = (
char *)
ret;
1862 static bool rna_Node_is_registered_node_type(
StructRNA *
type)
1867 static void rna_Node_is_registered_node_type_runtime(
bContext *
UNUSED(
C),
1901 const char *identifier,
1911 int have_function[10];
1918 memset(&dummynode, 0,
sizeof(
bNode));
1923 if (validate(&dummyptr,
data, have_function) != 0) {
1927 if (strlen(identifier) >=
sizeof(dummynt.
idname)) {
1930 "Registering node class: '%s' is too long, maximum length is %d",
1932 (
int)
sizeof(dummynt.
idname));
1944 memcpy(nt, &dummynt,
sizeof(dummynt));
1957 nt->
rna_ext.
srna,
"is_registered_node_type", rna_Node_is_registered_node_type_runtime);
1966 nt->
poll = (have_function[0]) ? rna_Node_poll :
NULL;
1967 nt->
poll_instance = (have_function[1]) ? rna_Node_poll_instance : rna_Node_poll_instance_default;
1968 nt->
updatefunc = (have_function[2]) ? rna_Node_update_reg :
NULL;
1975 nt->
labelfunc = (have_function[9]) ? rna_Node_draw_label :
NULL;
1993 const char *identifier,
1999 bmain, reports, &RNA_Node,
data, identifier, validate, call,
free);
2020 if (value_supported(item)) {
2074 static bool compare_string_operation_supported(
const EnumPropertyItem *item)
2104 compare_main_operation_supported);
2108 compare_string_operation_supported);
2112 compare_rgba_operation_supported);
2116 compare_other_operation_supported);
2168 rna_Node_socket_update(bmain,
scene,
ptr);
2190 static bool generic_attribute_type_supported_with_socket(
const EnumPropertyItem *item)
2194 static const EnumPropertyItem *rna_GeometryNodeAttributeType_type_with_socket_itemf(
2199 generic_attribute_type_supported_with_socket);
2202 static bool transfer_attribute_type_supported(
const EnumPropertyItem *item)
2207 static const EnumPropertyItem *rna_NodeGeometryTransferAttribute_type_itemf(
2214 static bool attribute_statistic_type_supported(
const EnumPropertyItem *item)
2218 static const EnumPropertyItem *rna_GeometryNodeAttributeStatistic_type_itemf(
2228 const char *identifier,
2234 bmain, reports, &RNA_ShaderNode,
data, identifier, validate, call,
free);
2250 const char *identifier,
2256 bmain, reports, &RNA_CompositorNode,
data, identifier, validate, call,
free);
2272 const char *identifier,
2278 bmain, reports, &RNA_TextureNode,
data, identifier, validate, call,
free);
2294 const char *identifier,
2300 bmain, reports, &RNA_GeometryNode,
data, identifier, validate, call,
free);
2316 const char *identifier,
2322 bmain, reports, &RNA_FunctionNode,
data, identifier, validate, call,
free);
2398 rna_Node_update(bmain,
scene,
ptr);
2408 static void rna_Node_select_set(
PointerRNA *
ptr,
bool value)
2414 static void rna_Node_name_set(
PointerRNA *
ptr,
const char *value)
2418 char oldname[
sizeof(
node->name)];
2437 const char *identifier)
2447 return rna_NodeTree_inputs_new((
bNodeTree *)
node->id, bmain, reports,
type, name);
2472 const char *identifier)
2481 return rna_NodeTree_outputs_new((
bNodeTree *)
node->id, bmain, reports,
type, name);
2500 static void rna_Node_socket_remove(
2521 for (sock =
node->inputs.first; sock; sock = nextsock) {
2522 nextsock = sock->
next;
2535 for (sock =
node->outputs.first; sock; sock = nextsock) {
2536 nextsock = sock->
next;
2544 static void rna_Node_inputs_move(
ID *
id,
bNode *
node,
Main *bmain,
int from_index,
int to_index)
2549 if (from_index == to_index) {
2552 if (from_index < 0 || to_index < 0) {
2557 if (to_index < from_index) {
2576 static void rna_Node_outputs_move(
ID *
id,
bNode *
node,
Main *bmain,
int from_index,
int to_index)
2581 if (from_index == to_index) {
2584 if (from_index < 0 || to_index < 0) {
2589 if (to_index < from_index) {
2608 static void rna_Node_width_range(
2612 *
min = *softmin =
node->typeinfo->minwidth;
2613 *
max = *softmax =
node->typeinfo->maxwidth;
2616 static void rna_Node_height_range(
2620 *
min = *softmin =
node->typeinfo->minheight;
2621 *
max = *softmax =
node->typeinfo->maxheight;
2624 static void rna_Node_dimensions_get(
PointerRNA *
ptr,
float *value)
2627 value[0] =
node->totr.xmax -
node->totr.xmin;
2628 value[1] =
node->totr.ymax -
node->totr.ymin;
2633 static void rna_NodeSocket_draw(
2642 func = &rna_NodeSocket_draw_func;
2654 static void rna_NodeSocket_draw_color(
bContext *
C,
2659 extern FunctionRNA rna_NodeSocket_draw_color_func;
2666 func = &rna_NodeSocket_draw_color_func;
2698 const char *identifier,
2706 int have_function[2];
2717 if (validate(&dummyptr,
data, have_function) != 0) {
2721 if (strlen(identifier) >=
sizeof(dummyst.
idname)) {
2724 "Registering node socket class: '%s' is too long, maximum length is %d",
2726 (
int)
sizeof(dummyst.
idname));
2735 memcpy(
st, &dummyst,
sizeof(dummyst));
2743 if (
st->ext_socket.srna) {
2749 st->ext_socket.data =
data;
2750 st->ext_socket.call = call;
2751 st->ext_socket.free =
free;
2757 st->draw = (have_function[0]) ? rna_NodeSocket_draw :
NULL;
2758 st->draw_color = (have_function[1]) ? rna_NodeSocket_draw_color :
NULL;
2763 return st->ext_socket.srna;
2774 return &RNA_NodeSocket;
2784 char name_esc[
sizeof(
node->name) * 2];
2793 return BLI_sprintfN(
"nodes[\"%s\"].inputs[%d]", name_esc, socketindex);
2796 return BLI_sprintfN(
"nodes[\"%s\"].outputs[%d]", name_esc, socketindex);
2819 static void rna_NodeSocket_type_set(
PointerRNA *
ptr,
int value)
2843 static void rna_NodeSocket_link_limit_set(
PointerRNA *
ptr,
int value)
2846 sock->
limit = (value == 0 ? 0xFFF : value);
2849 static void rna_NodeSocket_hide_set(
PointerRNA *
ptr,
bool value)
2868 extern FunctionRNA rna_NodeSocketInterface_draw_func;
2878 func = &rna_NodeSocketInterface_draw_func;
2890 extern FunctionRNA rna_NodeSocketInterface_draw_color_func;
2902 &rna_NodeSocketInterface_draw_color_func;
2914 static void rna_NodeSocketInterface_register_properties(
bNodeTree *
ntree,
2918 extern FunctionRNA rna_NodeSocketInterface_register_properties_func;
2930 func = &rna_NodeSocketInterface_register_properties_func;
2939 static void rna_NodeSocketInterface_init_socket(
bNodeTree *
ntree,
2943 const char *data_path)
2945 extern FunctionRNA rna_NodeSocketInterface_init_socket_func;
2959 func = &rna_NodeSocketInterface_init_socket_func;
2970 static void rna_NodeSocketInterface_from_socket(
bNodeTree *
ntree,
2975 extern FunctionRNA rna_NodeSocketInterface_from_socket_func;
2989 func = &rna_NodeSocketInterface_from_socket_func;
3017 const char *identifier,
3025 int have_function[5];
3035 if (validate(&dummyptr,
data, have_function) != 0) {
3047 memcpy(
st, &dummyst,
sizeof(dummyst));
3055 if (
st->ext_interface.srna) {
3061 st->ext_interface.data =
data;
3062 st->ext_interface.call = call;
3063 st->ext_interface.free =
free;
3066 st->interface_draw = (have_function[0]) ? rna_NodeSocketInterface_draw :
NULL;
3067 st->interface_draw_color = (have_function[1]) ? rna_NodeSocketInterface_draw_color :
NULL;
3068 st->interface_register_properties = (have_function[2]) ?
3069 rna_NodeSocketInterface_register_properties :
3071 st->interface_init_socket = (have_function[3]) ? rna_NodeSocketInterface_init_socket :
NULL;
3072 st->interface_from_socket = (have_function[4]) ? rna_NodeSocketInterface_from_socket :
NULL;
3077 return st->ext_interface.srna;
3088 return &RNA_NodeSocketInterface;
3092 static char *rna_NodeSocketInterface_path(
const PointerRNA *
ptr)
3099 if (socketindex != -1) {
3104 if (socketindex != -1) {
3132 static void rna_NodeSocketStandard_draw(
ID *
id,
3144 static void rna_NodeSocketStandard_draw_color(
3152 static void rna_NodeSocketInterfaceStandard_draw(
ID *
id,
3162 static void rna_NodeSocketInterfaceStandard_draw_color(
ID *
id,
3172 static void rna_NodeSocketStandard_float_range(
3179 if (dval->
max < dval->
min) {
3185 *softmin = dval->
min;
3186 *softmax = dval->
max;
3189 static void rna_NodeSocketStandard_int_range(
3196 if (dval->
max < dval->
min) {
3202 *softmin = dval->
min;
3203 *softmax = dval->
max;
3206 static void rna_NodeSocketStandard_vector_range(
3212 if (dval->
max < dval->
min) {
3218 *softmin = dval->
min;
3219 *softmax = dval->
max;
3231 rna_NodeSocketStandard_value_update(
C,
ptr);
3238 static void rna_NodeInternalSocketTemplate_name_get(
PointerRNA *
ptr,
char *value)
3241 strcpy(value, stemp->
name);
3244 static int rna_NodeInternalSocketTemplate_name_length(
PointerRNA *
ptr)
3247 return strlen(stemp->
name);
3250 static void rna_NodeInternalSocketTemplate_identifier_get(
PointerRNA *
ptr,
char *value)
3256 static int rna_NodeInternalSocketTemplate_identifier_length(
PointerRNA *
ptr)
3262 static int rna_NodeInternalSocketTemplate_type_get(
PointerRNA *
ptr)
3271 if (ntype && ntype->
inputs) {
3274 while (i < index && stemp->
type >= 0) {
3278 if (i == index && stemp->
type >= 0) {
3290 if (ntype && ntype->
outputs) {
3293 while (i < index && stemp->
type >= 0) {
3297 if (i == index && stemp->
type >= 0) {
3309 const char *disabled_hint;
3310 return ntype && (!ntype->
poll || ntype->
poll(ntype,
ntree, &disabled_hint));
3316 const char *disabled_hint;
3322 return !ntype->
poll || ntype->
poll(ntype,
ntree, &disabled_hint);
3333 static void rna_NodeInternal_draw_buttons(
ID *
id,
3338 if (
node->typeinfo->draw_buttons) {
3341 node->typeinfo->draw_buttons(layout,
C, &
ptr);
3345 static void rna_NodeInternal_draw_buttons_ext(
ID *
id,
3350 if (
node->typeinfo->draw_buttons_ex) {
3353 node->typeinfo->draw_buttons_ex(layout,
C, &
ptr);
3355 else if (
node->typeinfo->draw_buttons) {
3358 node->typeinfo->draw_buttons(layout,
C, &
ptr);
3365 const char *identifier,
3371 bmain, reports, &RNA_NodeCustomGroup,
data, identifier, validate, call,
free);
3387 static StructRNA *rna_GeometryNodeCustomGroup_register(
Main *bmain,
3390 const char *identifier,
3396 bmain, reports, &RNA_GeometryNodeCustomGroup,
data, identifier, validate, call,
free);
3416 static StructRNA *rna_ShaderNodeCustomGroup_register(
Main *bmain,
3419 const char *identifier,
3425 bmain, reports, &RNA_ShaderNodeCustomGroup,
data, identifier, validate, call,
free);
3443 static StructRNA *rna_CompositorNodeCustomGroup_register(
Main *bmain,
3446 const char *identifier,
3452 bmain, reports, &RNA_CompositorNodeCustomGroup,
data, identifier, validate, call,
free);
3469 static void rna_CompositorNode_tag_need_exec(
bNode *
node)
3471 node->need_exec =
true;
3502 const char *disabled_hint =
NULL;
3511 node->id = &ngroup->id;
3525 const char *disabled_hint =
NULL;
3556 static void rna_distance_matte_t1_set(
PointerRNA *
ptr,
float value)
3564 static void rna_distance_matte_t2_set(
PointerRNA *
ptr,
float value)
3572 static void rna_difference_matte_t1_set(
PointerRNA *
ptr,
float value)
3580 static void rna_difference_matte_t2_set(
PointerRNA *
ptr,
float value)
3596 if (value < chroma->t2) {
3606 if (value > chroma->t1) {
3642 rna_Node_update(bmain,
scene,
ptr);
3653 int i = 0, totitem = 0;
3659 if (rl->
name[0] ==
'\0') {
3689 if (ima ==
NULL || ima->rr ==
NULL) {
3694 rl = ima->rr->layers.first;
3695 item = renderresult_layers_add_enum(rl);
3711 if (!ima || !(ima->rr)) {
3727 if (!ima || !(ima->rr)) {
3738 int i = 1, totitem = 0;
3747 if (rv->
name[0] ==
'\0') {
3777 if (ima ==
NULL || ima->rr ==
NULL) {
3782 rv = ima->rr->views.first;
3783 item = renderresult_views_add_enum(rv);
3805 rl = sce->view_layers.first;
3806 item = renderresult_layers_add_enum(rl);
3815 rna_Node_update(bmain,
scene,
ptr);
3831 switch (
node->custom1) {
3903 rna_Node_update(bmain,
scene,
ptr);
3923 rna_Node_update(bmain,
scene,
ptr);
3929 rna_Node_update(bmain,
scene,
ptr);
3932 static void rna_NodeCryptomatte_source_set(
PointerRNA *
ptr,
int value)
3939 node->custom1 = value;
3942 static int rna_NodeCryptomatte_layer_name_get(
PointerRNA *
ptr)
3948 if (
STREQLEN(storage->layer_name, layer->name,
sizeof(storage->layer_name))) {
3955 static void rna_NodeCryptomatte_layer_name_set(
PointerRNA *
ptr,
int new_value)
3962 STRNCPY(storage->layer_name, layer->name);
3980 template.value = layer_index;
3981 template.identifier = layer->name;
3982 template.name = layer->name;
4007 rna_Node_scene_set(
ptr, value, reports);
4041 static void rna_NodeCryptomatte_matte_get(
PointerRNA *
ptr,
char *value)
4046 strcpy(value, matte_id);
4050 static int rna_NodeCryptomatte_matte_length(
PointerRNA *
ptr)
4055 int result = strlen(matte_id);
4060 static void rna_NodeCryptomatte_matte_set(
PointerRNA *
ptr,
const char *value)
4070 rna_Node_update(bmain,
scene,
ptr);
4076 rna_Node_update(bmain,
scene,
ptr);
4098 for (sock =
node->inputs.first; sock; sock = sock->
next) {
4100 if (sockdata ==
data) {
4113 static void rna_NodeOutputFileSlotFile_path_set(
PointerRNA *
ptr,
const char *value)
4120 if (rna_NodeOutputFileSocket_find_node(
ntree, sockdata, &
node, &sock)) {
4125 static void rna_NodeOutputFileSlotLayer_name_set(
PointerRNA *
ptr,
const char *value)
4132 if (rna_NodeOutputFileSocket_find_node(
ntree, sockdata, &
node, &sock)) {
4156 static void rna_ShaderNodeTexIES_mode_set(
PointerRNA *
ptr,
int value)
4161 if (nss->mode != value) {
4163 nss->filepath[0] =
'\0';
4180 static void rna_ShaderNodeScript_mode_set(
PointerRNA *
ptr,
int value)
4185 if (nss->mode != value) {
4187 nss->filepath[0] =
'\0';
4204 if (nss->bytecode) {
4206 nss->bytecode =
NULL;
4209 nss->bytecode_hash[0] =
'\0';
4213 static void rna_ShaderNodeScript_bytecode_get(
PointerRNA *
ptr,
char *value)
4218 strcpy(value, (nss->bytecode) ? nss->bytecode :
"");
4221 static int rna_ShaderNodeScript_bytecode_length(
PointerRNA *
ptr)
4226 return (nss->bytecode) ? strlen(nss->bytecode) : 0;
4229 static void rna_ShaderNodeScript_bytecode_set(
PointerRNA *
ptr,
const char *value)
4234 if (nss->bytecode) {
4238 if (value && value[0]) {
4242 nss->bytecode =
NULL;
4265 rna_Node_update(bmain,
scene,
ptr);
4270 rna_Node_update(bmain,
scene,
ptr);
4275 rna_Node_update(bmain,
scene,
ptr);
4280 rna_Node_update(bmain,
scene,
ptr);
4283 static void rna_ShaderNode_is_active_output_set(
PointerRNA *
ptr,
bool value)
4291 if (other_node->type ==
node->type) {
4302 static void rna_GroupOutput_is_active_output_set(
PointerRNA *
ptr,
bool value)
4336 static void rna_ShaderNodePointDensity_psys_set(
PointerRNA *
ptr,
4352 static int point_density_particle_color_source_from_shader(
4368 static int point_density_vertex_color_source_from_shader(
4405 pd->
color_source = point_density_particle_color_source_from_shader(shader_point_density);
4411 pd->
ob_color_source = point_density_vertex_color_source_from_shader(shader_point_density);
4424 void rna_ShaderNodePointDensity_density_calc(
bNode *
self,
4439 *
length = 4 * resolution * resolution * resolution;
4441 if (*values ==
NULL) {
4442 *values =
MEM_mallocN(
sizeof(
float) * (*
length),
"point density dynamic array");
4450 memset(pd, 0,
sizeof(*pd));
4454 void rna_ShaderNodePointDensity_density_minmax(
bNode *
self,
4478 static int rna_NodeConvertColorSpace_from_color_space_get(
struct PointerRNA *
ptr)
4485 static void rna_NodeConvertColorSpace_from_color_space_set(
struct PointerRNA *
ptr,
int value)
4491 if (name && name[0]) {
4492 BLI_strncpy(node_storage->from_color_space, name,
sizeof(node_storage->from_color_space));
4495 static int rna_NodeConvertColorSpace_to_color_space_get(
struct PointerRNA *
ptr)
4502 static void rna_NodeConvertColorSpace_to_color_space_set(
struct PointerRNA *
ptr,
int value)
4508 if (name && name[0]) {
4509 BLI_strncpy(node_storage->to_color_space, name,
sizeof(node_storage->to_color_space));
4513 static const EnumPropertyItem *rna_NodeConvertColorSpace_color_space_itemf(
4530 {0,
"PLACEHOLDER", 0,
"Placeholder",
""},
4535 {0,
"ALL", 0,
"All",
""},
4540 {0,
"PLACEHOLDER", 0,
"Placeholder",
""},
4545 {1,
"R", 0,
"R",
"Red"},
4546 {2,
"G", 0,
"G",
"Green"},
4547 {3,
"B", 0,
"B",
"Blue"},
4552 {0,
"X", 0,
"Flip X",
""},
4553 {1,
"Y", 0,
"Flip Y",
""},
4554 {2,
"XY", 0,
"Flip X & Y",
""},
4559 {0,
"ITUBT601", 0,
"ITU 601",
""},
4560 {1,
"ITUBT709", 0,
"ITU 709",
""},
4561 {2,
"JFIF", 0,
"Jpeg",
""},
4570 "Results in perfectly sharp reflections like a mirror. The Roughness value is not used"},
4578 "Slower than GGX but gives a more energy conserving results, which would otherwise be "
4579 "visible as excessive darkening"},
4590 "Slower than GGX but gives a more energy conserving results, which would otherwise be "
4591 "visible as excessive darkening"},
4601 "Results in perfectly sharp reflections like a mirror. The Roughness value is not used"},
4608 "Slower than GGX but gives a more energy conserving results, which would otherwise be "
4609 "visible as excessive darkening"},
4618 "Results in perfectly sharp reflections like a mirror. The Roughness value is not used"},
4635 "The light that bounces off the surface of the hair"},
4640 "The light that passes through the hair and exits on the other side"},
4648 "Absorption Coefficient",
4649 "Directly set the absorption coefficient \"sigma_a\" (this is not the most intuitive way to "
4654 "Melanin Concentration",
4655 "Define the melanin concentrations below to get the most realistic-looking hair "
4656 "(you can get the concentrations for different types of hair online)"},
4661 "Choose the color of your preference, and the shader will approximate the absorption "
4662 "coefficient to render lookalike hair"},
4684 "Slower than GGX but gives a more energy conserving results, which would otherwise be "
4685 "visible as excessive darkening"},
4693 "Christensen-Burley",
4694 "Approximation to physically based volume scattering"},
4696 "RANDOM_WALK_FIXED_RADIUS",
4698 "Random Walk (Fixed Radius)",
4699 "Volumetric approximation to physically based volume scattering, using the scattering radius "
4705 "Volumetric approximation to physically based volume scattering, with scattering radius "
4706 "automatically adjusted to match color textures"},
4717 prop,
NULL,
NULL,
"rna_NodeGroupInputOutput_interface_typef",
NULL);
4729 prop,
NULL,
NULL,
"rna_NodeGroupInputOutput_interface_typef",
NULL);
4737 prop,
"Active Output",
"True if this node is used as the active group output");
4750 prop,
NULL,
"rna_NodeGroup_node_tree_set",
NULL,
"rna_NodeGroup_node_tree_poll");
4764 const char *struct_name,
4765 const char *base_name,
4766 const char *ui_name,
4767 const char *ui_desc,
4768 const char *reg_func)
4822 {
CD_PROP_FLOAT,
"FLOAT", 0,
"Float",
"Floating-point value"},
4823 {
CD_PROP_FLOAT3,
"FLOAT_VECTOR", 0,
"Vector",
"3D vector with floating-point values"},
4885 "Compare each element of the input vectors"},
4891 "Compare the average of the input vectors elements"},
4896 "Compare the dot products of the input vectors"},
4901 "Compare the direction of the input vectors"},
4938 prop,
"Rounding Mode",
"Method used to convert the float to an integer");
5054 prop,
"Node Output",
"For node-based textures, which output node to use");
5141 prop,
"Active Output",
"True if this node is used as the active output");
5149 prop,
"Target",
"Which renderer and viewport shading types to use the shaders for");
5193 "The attribute is associated with the object geometry, and its value "
5194 "varies from vertex to vertex, or within the object volume"},
5199 "The attribute is associated with the object or mesh data-block itself, "
5200 "and its value is uniform"},
5205 "The attribute is associated with the instancer particle system or object, "
5206 "falling back to the Object mode if the attribute isn't found, or the object "
5207 "is not instanced"},
5245 {
SHD_SKY_HOSEK,
"HOSEK_WILKIE", 0,
"Hosek / Wilkie",
"Hosek / Wilkie 2012"},
5249 static float default_dir[3] = {0.0f, 0.0f, 1.0f};
5277 prop,
"Ground Albedo",
"Ground color that is subtly reflected in the sky");
5336 {
SHD_INTERP_CLOSEST,
"Closest", 0,
"Closest",
"No interpolation (sample closest texel)"},
5338 {
SHD_INTERP_SMART,
"Smart", 0,
"Smart",
"Bicubic when magnifying, else bilinear (OSL only)"},
5349 "Equirectangular or latitude-longitude projection"},
5354 "Projection from an orthographic photo of a mirror ball"},
5387 "Parameters defining which layer, pass and frame of the image is displayed");
5398 "Image is projected flat using the X and Y coordinates of the texture vector"},
5403 "Image is projected using different components for each side of the object space bounding "
5409 "Image is projected spherically using the Z axis as central"},
5414 "Image is projected from the tube using the Z axis as central"},
5423 "Cause the image to repeat horizontally and vertically"},
5428 "Extend by repeating edge pixels of the image"},
5433 "Clip to image size and set exterior pixels as transparent"},
5453 prop,
"Projection",
"Method to project 2D image on object with a 3D texture vector");
5463 prop,
"Projection Blend",
"For box projection, amount of blend to use between sides");
5469 prop,
"Extension",
"How the image is extrapolated past its original bounds");
5478 "Parameters defining which layer, pass and frame of the image is displayed");
5497 {
SHD_INTERP_CLOSEST,
"Closest", 0,
"Closest",
"No interpolation (sample closest texel)"},
5507 "Cause the image to repeat horizontally and vertically"},
5512 "Extend by repeating edge pixels of the image"},
5517 "Clip to image size and set exterior pixels as transparent"},
5533 prop,
"Extension",
"How the image is extrapolated past its original bounds");
5546 "Create a progression easing from one step to the next"},
5553 "Create a quadratic progression in the shape of a sphere"},
5646 "More uneven result (varies with location), more similar to a real terrain"},
5648 "RIDGED_MULTIFRACTAL",
5650 "Ridged Multifractal",
5651 "Create sharp peaks"},
5653 "HYBRID_MULTIFRACTAL",
5655 "Hybrid Multifractal",
5656 "Create peaks and valleys with different roughness values"},
5657 {
SHD_MUSGRAVE_FBM,
"FBM", 0,
"fBM",
"Produce an unnatural homogeneous and isotropic result"},
5662 "Similar to Hybrid Multifractal creates a heterogeneous terrain, but with the likeness of "
5699 "Computes the distance to the closest point as well as its position and color"},
5704 "Computes the distance to the second closest point as well as its position and color"},
5709 "Smoothed version of F1. Weighted sum of neighbor voronoi cells"},
5714 "Computes the distance to the edge of the voronoi cell"},
5719 "Computes the radius of the n-sphere inscribed in the voronoi cell"},
5737 prop,
"Distance Metric",
"The distance metric used to compute the texture");
5744 prop,
"Feature Output",
"The Voronoi feature that the node will compute");
5751 {
SHD_WAVE_BANDS,
"BANDS", 0,
"Bands",
"Use standard wave texture in bands"},
5752 {
SHD_WAVE_RINGS,
"RINGS", 0,
"Rings",
"Use wave texture in rings"},
5772 "Rings along spherical distance"},
5834 prop,
"Object",
"Use coordinates from this object (for object texture coordinates output)");
5840 prop,
"From Instancer",
"Use the parent of the instance object if possible");
5853 "Transform a normal vector with unit length"},
5907 "Generate point density from a particle system"},
5912 "Generate point density from an object's vertices"},
5917 {
SHD_INTERP_CLOSEST,
"Closest", 0,
"Closest",
"No interpolation (sample closest texel)"},
5934 "Lifetime mapped as 0.0 to 1.0 intensity"},
5939 "Particle speed (absolute magnitude of velocity) mapped as 0.0 to 1.0 intensity"},
5941 "PARTICLE_VELOCITY",
5943 "Particle Velocity",
5944 "XYZ velocity mapped to RGB colors"},
5954 "Vertex group weight"},
5959 "XYZ normal vector mapped to RGB colors"},
5982 "rna_ShaderNodePointDensity_psys_get",
5983 "rna_ShaderNodePointDensity_psys_set",
5993 prop,
"Resolution",
"Resolution used by the texture holding the point density");
6000 prop,
"Radius",
"Radius from the shaded sample to look for points within");
6029 func =
RNA_def_function(srna,
"cache_point_density",
"rna_ShaderNodePointDensity_density_cache");
6033 func =
RNA_def_function(srna,
"calc_point_density",
"rna_ShaderNodePointDensity_density_calc");
6042 srna,
"calc_point_density_minmax",
"rna_ShaderNodePointDensity_density_minmax");
6091 prop,
"Subsurface Method",
"Method for rendering subsurface scattering");
6135 prop,
"Invert",
"Invert the bump mapping direction to push into the surface instead of out");
6158 prop,
"Color Parametrization",
"Select the shader's color parametrization");
6173 prop,
"From Instancer",
"Use the parent of the instance object if possible");
6205 prop,
"Use Tips",
"Lower half of the texture is for tips of the stroke");
6212 {
SHD_SPACE_TANGENT,
"TANGENT", 0,
"Tangent Space",
"Tangent space normal mapping"},
6213 {
SHD_SPACE_OBJECT,
"OBJECT", 0,
"Object Space",
"Object space normal mapping"},
6214 {
SHD_SPACE_WORLD,
"WORLD", 0,
"World Space",
"World space normal mapping"},
6218 "Blender Object Space",
6219 "Object space normal mapping, compatible with Blender render baking"},
6223 "Blender World Space",
6224 "World space normal mapping, compatible with Blender render baking"},
6251 "Displacement is in object space, affected by object scale"},
6256 "Displacement is in world space, not affected by object scale"},
6278 "Tangent space vector displacement mapping"},
6279 {
SHD_SPACE_OBJECT,
"OBJECT", 0,
"Object Space",
"Object space vector displacement mapping"},
6280 {
SHD_SPACE_WORLD,
"WORLD", 0,
"World Space",
"World space vector displacement mapping"},
6298 {
SHD_TANGENT_RADIAL,
"RADIAL", 0,
"Radial",
"Radial tangent around the X, Y or Z axis"},
6361 prop,
"Only Local",
"Only consider the object itself when computing AO");
6398 prop,
"Source",
"Whether the IES file is loaded from disk or from a text data-block");
6465 "Automatically update the shader when the .osl file changes (external scripts only)");
6469 "rna_ShaderNodeScript_bytecode_get",
6470 "rna_ShaderNodeScript_bytecode_length",
6471 "rna_ShaderNodeScript_bytecode_set");
6477 prop,
"Bytecode Hash",
"Hash of compile bytecode, for quick equality checking");
6486 func =
RNA_def_function(srna,
"find_socket",
"rna_ShaderNodeScript_find_socket");
6490 RNA_def_boolean(func,
"is_output",
false,
"Output",
"Whether the socket is an output");
6494 func =
RNA_def_function(srna,
"add_socket",
"rna_ShaderNodeScript_add_socket");
6501 RNA_def_boolean(func,
"is_output",
false,
"Output",
"Whether the socket is an output");
6505 func =
RNA_def_function(srna,
"remove_socket",
"rna_ShaderNodeScript_remove_socket");
6561 prop,
"Variable Size",
"Support variable blur per pixel when using an image for size input");
6567 prop,
"Extend Bounds",
"Extend bounds of the input image to fully fit blurred image");
6587 prop,
"Relative",
"Use relative (percent) values to define blur radius");
6715 "Minimum speed for a pixel to be blurred (used to separate background from foreground)");
6731 "Scaling factor for motion vectors (actually, 'shutter speed', in frames)");
6737 prop,
"Curved",
"Interpolate between frames in a Bezier curve, rather than linearly");
6750 "Multiply the input image's RGBA channels by the alpha input value"},
6755 "Replace the input image's alpha channel by the alpha input value"},
6772 {1,
"COMBINED_RGB", 0,
"Combined",
"Combined RGB"},
6773 {2,
"RED", 0,
"Red",
"Red Channel"},
6774 {3,
"GREEN", 0,
"Green",
"Green Channel"},
6775 {4,
"BLUE", 0,
"Blue",
"Blue Channel"},
6776 {5,
"LUMINANCE", 0,
"Luminance",
"Luminance Channel"},
6795 prop,
"Frames",
"Number of images of a movie to use");
6805 "Global starting frame of the movie/sequence, assuming first picture has a #1");
6813 prop,
"Offset",
"Offset the number of the frame to use in the animation");
6819 prop,
"Cyclic",
"Cycle the images in the movie");
6880 "Straight Alpha Output",
6881 "Put node output buffer to straight alpha instead of premultiplied");
6921 srna,
"Output File Slot",
"Single layer file slot of the file output node");
6931 prop,
"Save as Render",
"Apply render part of display transform when saving byte image");
6952 srna,
"Output File Layer Slot",
"Multilayer slot of the file output node");
6963 const char *struct_name)
6980 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"New socket");
6989 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"The socket to remove");
7000 func,
"from_index", -1, 0, INT_MAX,
"From Index",
"Index of the socket to move", 0, 10000);
7003 func,
"to_index", -1, 0, INT_MAX,
"To Index",
"Target index for the socket", 0, 10000);
7031 "rna_NodeOutputFile_slots_begin",
7032 "rna_iterator_listbase_next",
7033 "rna_iterator_listbase_end",
7034 "rna_NodeOutputFile_slot_file_get",
7045 "rna_NodeOutputFile_slots_begin",
7046 "rna_iterator_listbase_next",
7047 "rna_iterator_listbase_end",
7048 "rna_NodeOutputFile_slot_layer_get",
7136 prop,
"Neighbor",
"Threshold for the number of neighbor pixels that must match");
7154 {0,
"STRETCH", 0,
"Stretch",
""},
7213 prop,
"Falloff",
"Color distances below this additional threshold are partially keyed");
7247 {1,
"RGB", 0,
"RGB",
"RGB color space"},
7248 {2,
"YCC", 0,
"YCC",
"YCbCr suppression"},
7272 prop,
"Falloff",
"Color distances below this additional threshold are partially keyed");
7286 "Do not perform any color transform on load, treat colors as in scene linear space "
7295 "rna_NodeConvertColorSpace_from_color_space_get",
7296 "rna_NodeConvertColorSpace_from_color_space_set",
7297 "rna_NodeConvertColorSpace_color_space_itemf");
7305 "rna_NodeConvertColorSpace_to_color_space_get",
7306 "rna_NodeConvertColorSpace_to_color_space_set",
7307 "rna_NodeConvertColorSpace_color_space_itemf");
7317 {1,
"R", 0,
"R",
"Red spill suppression"},
7318 {2,
"G", 0,
"G",
"Green spill suppression"},
7319 {3,
"B", 0,
"B",
"Blue spill suppression"},
7324 {0,
"R", 0,
"R",
"Limit by red"},
7325 {1,
"G", 0,
"G",
"Limit by green"},
7326 {2,
"B", 0,
"B",
"Limit by blue"},
7331 {0,
"SIMPLE", 0,
"Simple",
"Simple limit algorithm"},
7332 {1,
"AVERAGE", 0,
"Average",
"Average limit algorithm"},
7428 prop,
"Acceptance",
"Tolerance for a color to be considered a keying color");
7436 prop,
"Cutoff",
"Tolerance below which colors will be considered as exact matches");
7455 prop,
"Shadow Adjust",
"Adjusts the brightness of any shadows captured");
7472 {0,
"SINGLE", 0,
"Single",
"Limit by single channel"},
7473 {1,
"MAX", 0,
"Max",
"Limit by maximum of other channels"},
7569 {0,
"BLEED_OUT", 0,
"Bleed Out",
"Allow mask pixels to bleed along edges"},
7570 {1,
"KEEP_IN", 0,
"Keep In",
"Restrict mask pixels from touching edges"},
7575 {0,
"ALL", 0,
"All",
"All pixels on inner mask edge are considered during mask calculation"},
7580 "Only inner mask pixels adjacent to outer mask pixels are considered during mask "
7614 {8,
"OCTAGON", 0,
"Octagonal",
"8 sides"},
7615 {7,
"HEPTAGON", 0,
"Heptagonal",
"7 sides"},
7616 {6,
"HEXAGON", 0,
"Hexagonal",
"6 sides"},
7617 {5,
"PENTAGON", 0,
"Pentagonal",
"5 sides"},
7618 {4,
"SQUARE", 0,
"Square",
"4 sides"},
7619 {3,
"TRIANGLE", 0,
"Triangular",
"3 sides"},
7620 {0,
"CIRCLE", 0,
"Circular",
""},
7631 prop,
"Scene",
"Scene from which to select the active camera (render scene if undefined)");
7651 prop,
"Gamma Correction",
"Enable gamma correction before and after main process");
7661 "Amount of focal blur, 128 (infinity) is perfect focus, half the value doubles "
7677 "CoC radius threshold, prevents background bleed on in-focus midground, 0 is disabled");
7689 "Disable when using an image as input instead of actual z-buffer "
7690 "(auto enabled if node not image based, eg. time node)");
7699 "Scale the Z input when not using a z-buffer, controls maximum blur designated "
7700 "by the color white or input value 1");
7868 {0,
"STRAIGHT_TO_PREMUL", 0,
"To Premultiplied",
"Convert straight to premultiplied"},
7869 {1,
"PREMUL_TO_STRAIGHT", 0,
"To Straight",
"Convert premultiplied to straight"},
7877 prop,
"Mapping",
"Conversion between premultiplied alpha and key alpha");
7886 {3,
"GHOSTS", 0,
"Ghosts",
""},
7887 {2,
"STREAKS", 0,
"Streaks",
""},
7888 {1,
"FOG_GLOW", 0,
"Fog Glow",
""},
7889 {0,
"SIMPLE_STAR", 0,
"Simple Star",
""},
7894 {0,
"HIGH", 0,
"High",
""},
7895 {1,
"MEDIUM", 0,
"Medium",
""},
7896 {2,
"LOW", 0,
"Low",
""},
7914 "If not set to high quality, the effect will be applied to a low-res copy "
7915 "of the source image");
7930 "Amount of Color Modulation, modulates colors of streaks and ghosts for "
7931 "a spectral dispersion effect");
7938 prop,
"Mix",
"-1 is original image only, 0 is exact 50/50 mix, 1 is processed image only");
7947 "The glare filter will only be applied to pixels brighter than this value");
7979 "Glow/glare size (not actual size; relative to initial size of bright area of pixels)");
7990 {1,
"RD_PHOTORECEPTOR", 0,
"R/D Photoreceptor",
""},
7991 {0,
"RH_SIMPLE", 0,
"Rh Simple",
""},
8015 "Normally always 1, but can be used as an extra control to alter the brightness curve");
8028 prop,
"Intensity",
"If less than zero, darkens image; otherwise, makes it brighter");
8047 prop,
"Color Correction",
"If 0, same for all channels; if 1, each independent");
8062 "Enable/disable projector mode (the effect is applied in horizontal direction only)");
8075 "For positive distortion factor only: scale image such that black areas are not visible");
8082 static float default_1[3] = {1.0f, 1.0f, 1.0f};
8085 {0,
"LIFT_GAMMA_GAIN", 0,
"Lift/Gamma/Gain",
""},
8087 "OFFSET_POWER_SLOPE",
8089 "Offset/Power/Slope (ASC-CDL)",
8090 "ASC-CDL standard color correction"},
8176 prop,
"Use Alpha",
"Take alpha channel into account when doing the Z operation");
8184 "Anti-alias the z-buffer to try to avoid artifacts, mostly useful for Blender renders");
8261 prop,
"Invert",
"Invert stabilization to re-introduce motion to the frame");
8270 {0,
"UNDISTORT", 0,
"Undistort",
""},
8271 {1,
"DISTORT", 0,
"Distort",
""},
8295 {0,
"SCENE", 0,
"Scene Size",
""},
8301 "Pixel size scaled by scene percentage"},
8338 prop,
"Size Source",
"Where to get the mask size from for aspect/size information");
8368 {0,
"ADD", 0,
"Add",
""},
8369 {1,
"SUBTRACT", 0,
"Subtract",
""},
8370 {2,
"MULTIPLY", 0,
"Multiply",
""},
8371 {3,
"NOT", 0,
"Not",
""},
8478 prop,
"Variable Size",
"Support variable blur per pixel when using an image for size input");
8484 prop,
"Extend Bounds",
"Extend bounds of the input image to fully fit blurred image");
8494 "Amount of focal blur, 128 (infinity) is perfect focus, half the value doubles "
8745 {0,
"CENTEROUT", 0,
"Center",
"Expand from center"},
8746 {1,
"RANDOM", 0,
"Random",
"Random tiles"},
8747 {2,
"BOTTOMUP", 0,
"Bottom Up",
"Expand from bottom"},
8748 {3,
"RULE_OF_THIRDS", 0,
"Rule of Thirds",
"Expand from 9 places"},
8777 "Colors are treated alpha premultiplied, or colors output straight (alpha gets set to 1)");
8790 "Colors are treated alpha premultiplied, or colors output straight (alpha gets set to 1)");
8826 "Balance between two non-primary channels primary channel is comparing against");
8841 "Balance between non-key colors used to detect amount of key color to be removed");
8850 "Value of non-scaled matte pixel which considers as fully background pixel");
8859 "Value of non-scaled matte pixel which considers as fully foreground pixel");
8866 prop,
"Pre Blur",
"Chroma pre-blur size which applies before running keyer");
8873 prop,
"Post Blur",
"Matte blur size which applies after clipping and dilate/eroding");
8886 prop,
"Edge Kernel Radius",
"Radius of kernel used to detect whether pixel belongs to edge");
8894 "Edge Kernel Tolerance",
8895 "Tolerance to pixels inside kernel which are treating as belonging to the same plane");
8923 "Output position of a marker relative to first marker of a track"},
8928 "Output position of a marker relative to marker at given frame number"},
8933 "Output absolute position of a marker at given frame number"},
8973 {
CMP_NODE_WRAP_X,
"XAXIS", 0,
"X Axis",
"Wrap all pixels on the X axis"},
8974 {
CMP_NODE_WRAP_Y,
"YAXIS", 0,
"Y Axis",
"Wrap all pixels on the Y axis"},
8975 {
CMP_NODE_WRAP_XY,
"BOTH", 0,
"Both Axes",
"Wrap all pixels on both axes"},
8988 "Use relative (fraction of input image size) values to define translation");
9049 prop,
"Source",
"Source point of rays as a factor of the image width and height");
9081 static float default_1[3] = {1.0f, 1.0f, 1.0f};
9085 "rna_NodeCryptomatte_matte_get",
9086 "rna_NodeCryptomatte_matte_length",
9087 "rna_NodeCryptomatte_matte_set");
9089 prop,
"Matte Objects",
"List of object and material crypto IDs to include in matte");
9097 prop,
"Add",
"Add object or material to matte, by picking a color from the Pick output");
9107 "Remove object or material from matte, by picking a color from the Pick output");
9134 prop,
"rna_NodeCryptomatte_scene_get",
"rna_NodeCryptomatte_scene_set",
NULL,
NULL);
9143 "rna_NodeCryptomatte_image_get",
9144 "rna_NodeCryptomatte_image_set",
9146 "rna_NodeCryptomatte_image_poll");
9159 "rna_NodeCryptomatte_layer_name_get",
9160 "rna_NodeCryptomatte_layer_name_set",
9161 "rna_NodeCryptomatte_layer_name_itemf");
9189 "No prefiltering, use when guiding passes are noise-free"},
9194 "Denoise image and guiding passes together. Improves quality when guiding passes are noisy "
9195 "using least amount of extra processing time"},
9200 "Prefilter noisy guiding passes before denoising image. Improves quality when guiding "
9201 "passes are noisy using extra processing time"},
9229 "Threshold to detect edges (smaller threshold makes more sensitive detection)");
9239 "How much to eliminate spurious edges to avoid artifacts (the larger value makes less "
9240 "active; the value 2.0, for example, means discard a detected edge if there is a "
9241 "neighboring edge that has 2.0 times bigger contrast than the current one)");
9282 prop,
"Image User",
"Parameters defining the image duration, offset and related settings");
9326 "Keep the part of the mesh that is common between all operands"},
9332 "Combine meshes in a subtractive way"},
9362 "The start and end handles are fixed positions"},
9367 "The start and end handles are offsets from the spline's control points"},
9388 "Find sample positions on the curve using a factor of its total length"},
9393 "Find sample positions on the curve using a distance from its beginning"},
9409 static const EnumPropertyItem rna_node_geometry_triangulate_quad_method_items[] = {
9414 "Split the quads in nice triangles, slower method"},
9419 "Split the quads on the first and third vertices"},
9424 "Split the quads on the 2nd and 4th vertices"},
9426 "SHORTEST_DIAGONAL",
9428 "Shortest Diagonal",
9429 "Split the quads along their shortest diagonal"},
9434 "Split the quads along their longest diagonal"},
9438 static const EnumPropertyItem rna_node_geometry_triangulate_ngon_method_items[] = {
9443 "Arrange the new triangles evenly (slow)"},
9448 "Split the polygons with an ear clipping algorithm"},
9536 "The data type the attribute is converted to before calculating the results");
9572 static const EnumPropertyItem rna_node_geometry_distribute_points_on_faces_mode_items[] = {
9577 "Distribute points randomly on the surface"},
9582 "Distribute the points randomly on the surface while taking a minimum distance between "
9583 "points into account"},
9663 "Define the radius and location with three points"},
9668 "Define the radius with a float"},
9690 "Define arc by 3 points on circle. Arc is calculated between start and end points"},
9695 "Define radius with a float"},
9716 "Define the start and end points of the line"},
9721 "Define a line with a start point, direction and length"},
9742 "Rotate around an axis by an angle"},
9747 "Rotate around the X, Y, and Z axes"},
9756 "Rotate the input rotation in the local space of the object"},
9761 "Rotate the input rotation in its local space"},
9787 "Align the X axis with the vector"},
9792 "Align the Y axis with the vector"},
9797 "Align the Z axis with the vector"},
9806 "Automatically detect the best rotation axis to rotate towards the vector"},
9811 "Rotate around the local X axis"},
9816 "Rotate around the local Y axis"},
9821 "Rotate around the local Z axis"},
9844 static const EnumPropertyItem rna_node_geometry_object_info_transform_space_items[] = {
9849 "Output the geometry relative to the input object transform, and the location, rotation "
9851 "scale relative to the world origin"},
9856 "Bring the input object geometry, location, rotation and scale into the modified object, "
9857 "maintaining the relative position between the two objects in the scene"},
9866 prop,
"Transform Space",
"The transformation of the vector and geometry outputs");
9879 "Specify the approximate number of voxels along the diagonal"},
9884 "Specify the voxel side length"},
9905 "This method gives a good 2D representation of a mesh"},
9910 "Uses LSCM (Least Squares Conformal Mapping). This usually gives a less accurate UV "
9911 "mapping than Angle Based, but works better for simpler objects"},
9927 static const EnumPropertyItem rna_node_geometry_collection_info_transform_space_items[] = {
9932 "Output the geometry relative to the collection offset"},
9937 "Bring the input collection geometry into the modified object, maintaining the relative "
9938 "position between the objects in the scene"},
9957 "Calculate the proximity to the target's points (faster than the other modes)"},
9962 "Calculate the proximity to the target's edges"},
9967 "Calculate the proximity to the target's faces"},
9979 prop,
"Target Geometry",
"Element of the target geometry to calculate the distance from");
9992 "Use resolution of the volume grid"},
9997 "Desired number of voxels along one axis"},
10002 "Desired voxel side length"},
10023 "Desired number of voxels along one axis"},
10028 "Desired voxel side length"},
10085 "Merge all close selected points, whether or not they are connected"},
10090 "Only merge mesh vertices along existing edges. This method can be much faster"},
10111 "Specify the offset from one vertex to the next"},
10116 "Specify the line's start and end points"},
10125 "Specify the total number of vertices"},
10130 "Specify the distance between vertices"},
10169 "Create a rectangle"},
10174 "Create a parallelogram"},
10179 "Create a trapezoid"},
10185 "Create a quadrilateral from four points"},
10208 "Output the input spline's evaluated points, based on the resolution attribute for NURBS "
10209 "and Bezier splines. Poly splines are unchanged"},
10214 "Sample the specified number of points along each spline"},
10219 "Calculate the number of samples by splitting each spline into segments with the specified "
10241 "Align Bezier handles to create circular arcs at each control point"},
10246 "Add control points along a circular arc (handle type is vector if Bezier Spline)"},
10267 "Create points from the curve's evaluated points, based on the resolution attribute for "
10268 "NURBS and Bezier splines"},
10273 "Sample each spline by evenly distributing the specified number of points"},
10278 "Sample each spline by splitting it into segments with the specified length"},
10299 "Create a point in the point cloud for each selected vertex"},
10304 "Create a point in the point cloud for each selected edge"},
10309 "Create a point in the point cloud for each selected face"},
10314 "Create a point in the point cloud for each selected face corner"},
10335 "Find the endpoint positions using a factor of each spline's length"},
10340 "Find the endpoint positions using a length from the start of each spline"},
10356 "NEAREST_FACE_INTERPOLATED",
10358 "Nearest Face Interpolated",
10359 "Transfer the attribute from the nearest face on a surface (loose points and edges are "
10365 "Transfer the element from the nearest element (using face and edge centers for the "
10366 "distance computation)"},
10371 "Transfer the data from the element with the corresponding index in the target geometry"},
10419 "Interpolate the attribute from the corners of the hit face"},
10424 "Use the attribute value of the closest mesh element"},
10440 prop,
NULL,
NULL,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
10493 prop,
NULL,
NULL,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
10508 prop,
NULL,
NULL,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
10568 static const EnumPropertyItem rna_node_geometry_string_to_curves_overflow_items[] = {
10573 "Let the text use more space than the specified height"},
10578 "Scale the text size to fit inside the width and height"},
10583 "Only output curves that fit within the width and height. Output the remainder to the "
10584 "\"Remainder\" output"},
10588 static const EnumPropertyItem rna_node_geometry_string_to_curves_align_x_items[] = {
10593 "Align text to the left"},
10598 "Align text to the center"},
10603 "Align text to the right"},
10606 ICON_ALIGN_JUSTIFY,
10608 "Align text to the left and the right"},
10613 "Align text to the left and the right, with equal character spacing"},
10617 static const EnumPropertyItem rna_node_geometry_string_to_curves_align_y_items[] = {
10622 "Align text to the top baseline"},
10627 "Align text to the top"},
10632 "Align text to the middle"},
10637 "Align text to the bottom baseline"},
10642 "Align text to the bottom"},
10646 static const EnumPropertyItem rna_node_geometry_string_to_curves_pivot_mode[] = {
10736 prop,
NULL,
NULL,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
10749 prop,
"Legacy Behavior",
"Behave like before instance attributes existed");
10767 prop,
NULL,
NULL,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
10786 prop,
NULL,
NULL,
"rna_GeometryNodeAttributeType_type_with_socket_itemf");
10800 "Scale individual faces or neighboring face islands"},
10805 "Scale individual edges or neighboring edge islands"},
10814 "Scale elements by the same factor in every direction"},
10819 "Scale elements in a single direction"},
10861 func =
RNA_def_function(srna,
"tag_need_exec",
"rna_CompositorNode_tag_need_exec");
10906 static float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
10915 srna,
"rna_NodeSocket_register",
"rna_NodeSocket_unregister",
NULL);
10970 prop,
"Multi Input",
"True if the socket can accept multiple ordered input links");
11051 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
11062 static float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
11075 srna,
"rna_NodeSocketInterface_register",
"rna_NodeSocketInterface_unregister",
NULL);
11101 prop,
"Hide Value",
"Hide the socket input value even when the socket is not connected");
11108 "Attribute Domain",
11109 "Attribute domain used by the geometry nodes modifier to create an attribute output");
11115 "Default Attribute",
11116 "The attribute name used by default when the node group is used by a "
11117 "geometry nodes modifier");
11147 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
11154 func,
"data_rna_type",
"Struct",
"Data RNA Type",
"RNA type for special socket properties");
11160 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Node of the socket to initialize");
11162 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"Socket",
"Socket to initialize");
11165 func,
"data_path",
NULL, 0,
"Data Path",
"Path to specialized socket data");
11171 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Node of the original socket");
11173 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"Socket",
"Original socket");
11178 const char *idname,
11179 const char *interface_idname,
11184 float value_default;
11189 value_default = 1.0f;
11192 value_default = 100.0f;
11195 value_default = 0.0f;
11215 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11217 srna,
"Float Node Socket Interface",
"Floating-point number socket of a node");
11246 const char *identifier,
11247 const char *interface_idname,
11260 value_default = 100;
11284 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11313 const char *identifier,
11314 const char *interface_idname)
11334 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11350 const char *identifier,
11351 const char *interface_idname,
11356 const float *value_default;
11361 static const float default_direction[3] = {0.0f, 0.0f, 1.0f};
11362 value_default = default_direction;
11366 static const float default_vector[3] = {0.0f, 0.0f, 0.0f};
11367 value_default = default_vector;
11389 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11418 const char *identifier,
11419 const char *interface_idname)
11439 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11455 const char *identifier,
11456 const char *interface_idname)
11476 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11492 const char *identifier,
11493 const char *interface_idname)
11502 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11517 const char *identifier,
11518 const char *interface_idname)
11534 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
11539 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11555 const char *identifier,
11556 const char *interface_idname)
11572 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
11577 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11593 const char *identifier,
11594 const char *interface_idname)
11602 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11608 const char *identifier,
11609 const char *interface_idname)
11625 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
11630 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11646 const char *identifier,
11647 const char *interface_idname)
11663 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
11668 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11684 const char *identifier,
11685 const char *interface_idname)
11700 prop,
NULL,
NULL,
NULL,
"rna_NodeSocketMaterial_default_value_poll");
11703 prop,
NC_NODE |
NA_EDITED,
"rna_NodeSocketStandard_value_and_relation_update");
11708 srna =
RNA_def_struct(brna, interface_idname,
"NodeSocketInterfaceStandard");
11718 prop,
NULL,
NULL,
NULL,
"rna_NodeSocketMaterial_default_value_poll");
11739 static float default_draw_color[] = {0.0f, 0.0f, 0.0f, 1.0f};
11741 srna =
RNA_def_struct(brna,
"NodeSocketStandard",
"NodeSocket");
11763 func =
RNA_def_function(srna,
"draw_color",
"rna_NodeSocketStandard_draw_color");
11773 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
11776 srna =
RNA_def_struct(brna,
"NodeSocketInterfaceStandard",
"NodeSocketInterface");
11787 func =
RNA_def_function(srna,
"draw",
"rna_NodeSocketInterfaceStandard_draw");
11797 func =
RNA_def_function(srna,
"draw_color",
"rna_NodeSocketInterfaceStandard_draw_color");
11803 func,
"color", 4, default_draw_color, 0.0f, 1.0f,
"Color",
"", 0.0f, 1.0f);
11814 brna,
"NodeSocketFloatUnsigned",
"NodeSocketInterfaceFloatUnsigned",
PROP_UNSIGNED);
11816 brna,
"NodeSocketFloatPercentage",
"NodeSocketInterfaceFloatPercentage",
PROP_PERCENTAGE);
11818 brna,
"NodeSocketFloatFactor",
"NodeSocketInterfaceFloatFactor",
PROP_FACTOR);
11820 brna,
"NodeSocketFloatAngle",
"NodeSocketInterfaceFloatAngle",
PROP_ANGLE);
11822 brna,
"NodeSocketFloatTime",
"NodeSocketInterfaceFloatTime",
PROP_TIME);
11824 "NodeSocketFloatTimeAbsolute",
11825 "NodeSocketInterfaceFloatTimeAbsolute",
11828 brna,
"NodeSocketFloatDistance",
"NodeSocketInterfaceFloatDistance",
PROP_DISTANCE);
11832 brna,
"NodeSocketIntUnsigned",
"NodeSocketInterfaceIntUnsigned",
PROP_UNSIGNED);
11834 brna,
"NodeSocketIntPercentage",
"NodeSocketInterfaceIntPercentage",
PROP_PERCENTAGE);
11836 brna,
"NodeSocketIntFactor",
"NodeSocketInterfaceIntFactor",
PROP_FACTOR);
11842 "NodeSocketVectorTranslation",
11843 "NodeSocketInterfaceVectorTranslation",
11846 brna,
"NodeSocketVectorDirection",
"NodeSocketInterfaceVectorDirection",
PROP_DIRECTION);
11848 brna,
"NodeSocketVectorVelocity",
"NodeSocketInterfaceVectorVelocity",
PROP_VELOCITY);
11850 "NodeSocketVectorAcceleration",
11851 "NodeSocketInterfaceVectorAcceleration",
11854 brna,
"NodeSocketVectorEuler",
"NodeSocketInterfaceVectorEuler",
PROP_EULER);
11856 brna,
"NodeSocketVectorXYZ",
"NodeSocketInterfaceVectorXYZ",
PROP_XYZ);
11890 "rna_NodeInternalSocketTemplate_name_get",
11891 "rna_NodeInternalSocketTemplate_name_length",
11898 "rna_NodeInternalSocketTemplate_identifier_get",
11899 "rna_NodeInternalSocketTemplate_identifier_length",
11925 func,
"If non-null output is returned, the node type can be added to the tree");
11928 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
11931 func =
RNA_def_function(srna,
"poll_instance",
"rna_NodeInternal_poll_instance");
11933 func,
"If non-null output is returned, the node can be added to the tree");
11935 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
11941 func,
"Update on node graph topology changes (adding or removing nodes and links)");
11945 func =
RNA_def_function(srna,
"draw_buttons",
"rna_NodeInternal_draw_buttons");
11956 func =
RNA_def_function(srna,
"draw_buttons_ext",
"rna_NodeInternal_draw_buttons_ext");
11972 const char *structtype = (in_out ==
SOCK_IN ?
"NodeInputs" :
"NodeOutputs");
11973 const char *uiname = (in_out ==
SOCK_IN ?
"Node Inputs" :
"Node Outputs");
11974 const char *newfunc = (in_out ==
SOCK_IN ?
"rna_Node_inputs_new" :
"rna_Node_outputs_new");
11975 const char *clearfunc = (in_out ==
SOCK_IN ?
"rna_Node_inputs_clear" :
"rna_Node_outputs_clear");
11976 const char *movefunc = (in_out ==
SOCK_IN ?
"rna_Node_inputs_move" :
"rna_Node_outputs_move");
11992 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"New socket");
11998 parm =
RNA_def_pointer(func,
"socket",
"NodeSocket",
"",
"The socket to remove");
12009 func,
"from_index", -1, 0, INT_MAX,
"From Index",
"Index of the socket to move", 0, 10000);
12012 func,
"to_index", -1, 0, INT_MAX,
"To Index",
"Target index for the socket", 0, 10000);
12024 {
NODE_CUSTOM,
"CUSTOM", 0,
"Custom",
"Custom Node"},
12046 "Node type (deprecated, use bl_static_type or bl_idname for the actual identifier string)");
12108 prop,
"Internal Links",
"Internal input-to-output connections for muting");
12163 func =
RNA_def_function(srna,
"socket_value_update",
"rna_Node_socket_value_update");
12169 func =
RNA_def_function(srna,
"is_registered_node_type",
"rna_Node_is_registered_node_type");
12233 func,
"If non-null output is returned, the node type can be added to the tree");
12236 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
12241 func,
"If non-null output is returned, the node can be added to the tree");
12244 parm =
RNA_def_pointer(func,
"node_tree",
"NodeTree",
"Node Tree",
"");
12250 func,
"Update on node graph topology changes (adding or removing nodes and links)");
12257 parm =
RNA_def_pointer(func,
"link",
"NodeLink",
"Link",
"Node link that will be inserted");
12270 "Initialize a new instance of this node from an existing node");
12272 parm =
RNA_def_pointer(func,
"node",
"Node",
"Node",
"Existing node to copy");
12394 "Type of node to add (Warning: should be same as node.bl_idname, not node.type!)");
12403 parm =
RNA_def_pointer(func,
"node",
"Node",
"",
"The node to remove");
12414 prop,
"rna_NodeTree_active_node_get",
"rna_NodeTree_active_node_set",
NULL,
NULL);
12434 parm =
RNA_def_pointer(func,
"input",
"NodeSocket",
"",
"The input socket");
12436 parm =
RNA_def_pointer(func,
"output",
"NodeSocket",
"",
"The output socket");
12442 "Remove existing links if connection limit is exceeded");
12444 parm =
RNA_def_pointer(func,
"link",
"NodeLink",
"",
"New node link");
12450 parm =
RNA_def_pointer(func,
"link",
"NodeLink",
"",
"The node link to remove");
12464 const char *structtype = (in_out ==
SOCK_IN ?
"NodeTreeInputs" :
"NodeTreeOutputs");
12465 const char *uiname = (in_out ==
SOCK_IN ?
"Node Tree Inputs" :
"Node Tree Outputs");
12466 const char *newfunc = (in_out ==
SOCK_IN ?
"rna_NodeTree_inputs_new" :
12467 "rna_NodeTree_outputs_new");
12468 const char *clearfunc = (in_out ==
SOCK_IN ?
"rna_NodeTree_inputs_clear" :
12469 "rna_NodeTree_outputs_clear");
12470 const char *movefunc = (in_out ==
SOCK_IN ?
"rna_NodeTree_inputs_move" :
12471 "rna_NodeTree_outputs_move");
12486 parm =
RNA_def_pointer(func,
"socket",
"NodeSocketInterface",
"",
"New socket");
12492 parm =
RNA_def_pointer(func,
"socket",
"NodeSocketInterface",
"",
"The socket to remove");
12503 func,
"from_index", -1, 0, INT_MAX,
"From Index",
"Index of the socket to move", 0, 10000);
12506 func,
"to_index", -1, 0, INT_MAX,
"To Index",
"Target index for the socket", 0, 10000);
12522 "Undefined type of nodes (can happen e.g. when a linked node tree goes missing)"},
12523 {
NTREE_SHADER,
"SHADER", ICON_MATERIAL,
"Shader",
"Shader nodes"},
12524 {
NTREE_TEXTURE,
"TEXTURE", ICON_TEXTURE,
"Texture",
"Texture nodes"},
12525 {
NTREE_COMPOSIT,
"COMPOSITING", ICON_RENDERLAYERS,
"Compositing",
"Compositing nodes"},
12526 {
NTREE_GEOMETRY,
"GEOMETRY", ICON_GEOMETRY_NODES,
"Geometry",
"Geometry nodes"},
12534 "Node tree consisting of linked nodes used for shading, textures and compositing");
12544 prop,
"",
"The current location (offset) of the view for this Node Tree");
12570 prop,
NULL,
NULL,
NULL,
"rna_GPencil_datablocks_annotations_poll");
12582 "Node Tree type (deprecated, bl_idname is the actual node tree type identifier)");
12593 prop,
"rna_NodeTree_active_input_get",
"rna_NodeTree_active_input_set",
NULL);
12607 prop,
"rna_NodeTree_active_output_get",
"rna_NodeTree_active_output_set",
NULL);
12613 func =
RNA_def_function(srna,
"interface_update",
"rna_NodeTree_interface_update");
12660 func,
"result_1",
"NodeTree",
"Node Tree",
"Active node tree from context");
12663 func,
"result_2",
"ID",
"Owner ID",
"ID data-block that owns the node tree");
12666 func,
"result_3",
"ID",
"From ID",
"Original ID data-block selected from the context");
12674 func,
"idname",
"NodeSocket",
MAX_NAME,
"Socket Type",
"Identifier of the socket type");
12686 srna,
"Compositor Node Tree",
"Node tree consisting of linked nodes used for compositing");
12711 "Max size of a tile (smaller values gives better distribution "
12712 "of multiple threads, but more overhead)");
12726 "Use two pass execution during editing: first calculate fast nodes, "
12727 "second pass calculate all nodes");
12732 prop,
"Viewer Region",
"Use boundaries for viewer nodes and composite backdrop");
12745 "Shader Node Tree",
12746 "Node tree consisting of linked nodes used for materials (and other shading data-blocks)");
12750 func =
RNA_def_function(srna,
"get_output_node",
"ntreeShaderOutputNode");
12752 "Return active shader output node for the specified target");
12766 srna,
"Texture Node Tree",
"Node tree consisting of linked nodes used for textures");
12777 srna,
"Geometry Node Tree",
"Node tree consisting of linked nodes used for geometries");
12783 const char *struct_name,
12784 const char *base_name,
12785 const char *ui_name,
12786 const char *ui_desc,
12795 if (
STREQ(base_name,
"Node")) {
12796 base_name =
"NodeInternal";
12803 func =
RNA_def_function(srna,
"is_registered_node_type",
"rna_Node_is_registered_node_type");
12812 func =
RNA_def_function(srna,
"input_template",
"rna_NodeInternal_input_template");
12823 func =
RNA_def_function(srna,
"output_template",
"rna_NodeInternal_output_template");
12880 # define DefNode(Category, ID, DefFunc, EnumName, StructName, UIName, UIDesc) \
12882 srna = define_specific_node( \
12883 brna, #Category #StructName, #Category, UIName, UIDesc, DefFunc); \
12884 if (ID == CMP_NODE_OUTPUT_FILE) { \
12886 def_cmp_output_file(brna, srna); \
12893 # include "../../nodes/NOD_static_types.h"
12903 "ShaderNodeCustomGroup",
12905 "Shader Custom Group",
12906 "Custom Shader Group Node for Python nodes",
12907 "rna_ShaderNodeCustomGroup_register");
12909 "CompositorNodeCustomGroup",
12911 "Compositor Custom Group",
12912 "Custom Compositor Group Node for Python nodes",
12913 "rna_CompositorNodeCustomGroup_register");
12918 "Base node type for custom registered node group types",
12919 "rna_NodeCustomGroup_register");
12921 "GeometryNodeCustomGroup",
12923 "Geometry Custom Group",
12924 "Custom Geometry Group Node for Python nodes",
12925 "rna_GeometryNodeCustomGroup_register");
12935 # undef NODE_DEFINE_SUBTYPES
void BKE_animdata_fix_paths_rename_all(struct ID *ref_id, const char *prefix, const char *oldName, const char *newName)
Generic geometry attributes built on CustomData.
struct Scene * CTX_data_scene(const bContext *C)
struct 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)
@ GEO_COMPONENT_TYPE_MESH
struct RenderPass * BKE_image_multilayer_index(struct RenderResult *rr, struct ImageUser *iuser)
#define IMA_SIGNAL_SRC_CHANGE
void BKE_image_signal(struct Main *bmain, struct Image *ima, struct ImageUser *iuser, int signal)
void id_us_min(struct ID *id)
void id_us_plus(struct ID *id)
const char * BKE_main_blendfile_path_from_global(void)
#define CMP_SCALE_ABSOLUTE
void ntreeTypeAdd(struct bNodeTreeType *nt)
#define NODE_TYPES_BEGIN(ntype)
void nodeUniqueName(struct bNodeTree *ntree, struct bNode *node)
#define CMP_SCALE_SCENEPERCENT
#define NODE_CLASS_OUTPUT
const char * nodeSocketTypeLabel(const bNodeSocketType *stype)
void nodeRegisterSocketType(struct bNodeSocketType *stype)
#define CMP_TRACKPOS_ABSOLUTE_FRAME
void node_type_base_custom(struct bNodeType *ntype, const char *idname, const char *name, short nclass)
bool nodeLinkIsHidden(const struct bNodeLink *link)
bool nodeAttachNodeCheck(const struct bNode *node, const struct bNode *parent)
struct bNodeSocket * nodeAddSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, const char *idname, const char *identifier, const char *name)
bool nodeGroupPoll(struct bNodeTree *nodetree, struct bNodeTree *grouptree, const char **r_disabled_hint)
#define CMP_SCALE_RENDERSIZE_FRAME_CROP
void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock)
#define NODE_CUSTOM_GROUP
#define CMP_NODE_CRYPTOMATTE
struct bNodeTreeType * ntreeTypeFind(const char *idname)
#define CMP_TRACKPOS_RELATIVE_START
#define CMP_TRACKPOS_RELATIVE_FRAME
struct StructRNA * ntreeInterfaceTypeGet(struct bNodeTree *ntree, bool create)
#define SH_NODE_TEX_ENVIRONMENT
void ntreeRemoveSocketInterface(struct bNodeTree *ntree, struct bNodeSocket *sock)
void nodeAttachNode(struct bNode *node, struct bNode *parent)
struct bNode * nodeGetActive(struct bNodeTree *ntree)
void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link)
#define CMP_SCALE_RENDERSIZE_FRAME_ASPECT
#define CMP_SCALE_RENDERPERCENT
void nodeRemoveNode(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node, bool do_id_user)
#define CMP_SCALE_RELATIVE
void nodeModifySocketTypeStatic(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock, int type, int subtype)
int nodeSocketLinkLimit(const struct bNodeSocket *sock)
struct bNodeType * nodeTypeFind(const char *idname)
#define CMP_NODE_OUTPUT_FILE
void ntreeSetOutput(struct bNodeTree *ntree)
#define NODE_TREE_TYPES_BEGIN(ntype)
struct bNodeLink * nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock)
void nodeClearActive(struct bNodeTree *ntree)
void nodeRemoveSocket(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock)
#define NODE_SOCKET_TYPES_BEGIN(stype)
struct bNode * nodeAddNode(const struct bContext *C, struct bNodeTree *ntree, const char *idname)
void ntreeTypeFreeLink(const struct bNodeTreeType *nt)
bool ntreeIsRegistered(struct bNodeTree *ntree)
void nodeSetSelected(struct bNode *node, bool select)
#define CMP_CRYPTOMATTE_SRC_RENDER
#define NODE_TREE_TYPES_END
bool nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **r_node, int *r_sockindex)
void nodeUnregisterSocketType(struct bNodeSocketType *stype)
struct bNodeSocket * ntreeAddSocketInterface(struct bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, const char *name)
#define NODE_SOCKET_TYPES_END
int nodeCountSocketLinks(const struct bNodeTree *ntree, const struct bNodeSocket *sock)
void nodeDetachNode(struct bNode *node)
#define CMP_CRYPTOMATTE_SRC_IMAGE
struct bNodeSocketType * nodeSocketTypeFind(const char *idname)
void nodeUnregisterType(struct bNodeType *ntype)
void nodeRegisterType(struct bNodeType *ntype)
void nodeSetActive(struct bNodeTree *ntree, struct bNode *node)
#define CMP_TRACKPOS_ABSOLUTE
void BKE_ntree_update_tag_interface(struct bNodeTree *ntree)
void BKE_ntree_update_tag_all(struct bNodeTree *ntree)
void BKE_ntree_update_tag_node_property(struct bNodeTree *ntree, struct bNode *node)
void BKE_ntree_update_tag_socket_property(struct bNodeTree *ntree, struct bNodeSocket *socket)
void BKE_ntree_update_tag_active_output_changed(struct bNodeTree *ntree)
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_texture_pointdensity_init_data(struct PointDensity *pd)
void BKE_texture_pointdensity_free_data(struct PointDensity *pd)
#define BLI_assert_msg(a, msg)
void BLI_kdtree_nd_() free(KDTree *tree)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
int BLI_listbase_count_at_most(const struct ListBase *listbase, int count_max) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_insertlinkbefore(struct ListBase *listbase, void *vnextlink, void *vnewlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void zero_v3(float r[3])
void BLI_path_rel(char *file, const char *relfile) ATTR_NONNULL()
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
#define STRNCPY(dst, src)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
#define STREQLEN(a, b, n)
#define SET_FLAG_FROM_TEST(value, test, flag)
#define BLT_I18NCONTEXT_ID_NODETREE
#define BLT_I18NCONTEXT_ID_CURVE_LEGACY
struct Depsgraph Depsgraph
void DEG_relations_tag_update(struct Main *bmain)
@ SUBSURF_BOUNDARY_SMOOTH_ALL
@ MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_SIZE
@ MESH_TO_VOLUME_RESOLUTION_MODE_VOXEL_AMOUNT
@ VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE
@ VOLUME_TO_MESH_RESOLUTION_MODE_GRID
@ VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT
@ SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES
@ SHD_POINTDENSITY_SOURCE_PSYS
@ SHD_POINTDENSITY_SOURCE_OBJECT
#define SHD_HAIR_TRANSMISSION
@ 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
@ GEO_NODE_MESH_CIRCLE_FILL_NGON
@ GEO_NODE_MESH_CIRCLE_FILL_TRIANGLE_FAN
@ GEO_NODE_MESH_CIRCLE_FILL_NONE
#define CMP_NODE_BLUR_ASPECT_X
@ GEO_NODE_TRIANGULATE_QUAD_SHORTEDGE
@ GEO_NODE_TRIANGULATE_QUAD_BEAUTY
@ GEO_NODE_TRIANGULATE_QUAD_ALTERNATE
@ GEO_NODE_TRIANGULATE_QUAD_LONGEDGE
@ GEO_NODE_TRIANGULATE_QUAD_FIXED
@ GEO_NODE_PROX_TARGET_EDGES
@ GEO_NODE_PROX_TARGET_POINTS
@ GEO_NODE_PROX_TARGET_FACES
@ GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_POINTS
@ GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_DIRECTION
@ 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
#define SHD_GLOSSY_ASHIKHMIN_SHIRLEY
@ CMP_NODE_DILATEERODE_STEP
@ CMP_NODE_DILATEERODE_DISTANCE_THRESH
@ CMP_NODE_DILATEERODE_DISTANCE_FEATHER
@ CMP_NODE_DILATEERODE_DISTANCE
#define SHD_BLEND_DIAGONAL
@ NTREE_EXECUTION_MODE_TILED
@ NTREE_EXECUTION_MODE_FULL_FRAME
#define NTREE_QUALITY_LOW
#define CMP_NODE_PLANETRACKDEFORM_MBLUR_SAMPLES_MAX
@ SHD_SUBSURFACE_RANDOM_WALK_FIXED_RADIUS
@ SHD_SUBSURFACE_RANDOM_WALK
#define SHD_PROJ_EQUIRECTANGULAR
@ GEO_NODE_UV_UNWRAP_METHOD_CONFORMAL
@ GEO_NODE_UV_UNWRAP_METHOD_ANGLE_BASED
@ NODE_MAP_RANGE_SMOOTHERSTEP
@ NODE_MAP_RANGE_SMOOTHSTEP
@ 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
#define SHD_TANGENT_AXIS_Z
@ GEO_NODE_SCALE_ELEMENTS_SINGLE_AXIS
@ GEO_NODE_SCALE_ELEMENTS_UNIFORM
#define CMP_NODE_CHANNEL_MATTE_CS_HSV
#define NODE_CUSTOM_COLOR
#define NTREE_CHUNKSIZE_512
#define SHD_VECT_TRANSFORM_TYPE_VECTOR
#define NTREE_CHUNKSIZE_128
#define SHD_VECT_TRANSFORM_TYPE_NORMAL
#define SHD_HAIR_REFLECTION
@ 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
#define SHD_TANGENT_AXIS_X
#define NTREE_QUALITY_MEDIUM
#define SHD_MUSGRAVE_MULTIFRACTAL
#define CMP_NODE_CHANNEL_MATTE_CS_YUV
@ CMP_NODEFLAG_STABILIZE_INVERSE
@ SHD_WAVE_BANDS_DIRECTION_Y
@ SHD_WAVE_BANDS_DIRECTION_X
@ SHD_WAVE_BANDS_DIRECTION_Z
@ SHD_WAVE_BANDS_DIRECTION_DIAGONAL
@ GEO_NODE_CURVE_PRIMITIVE_ARC_TYPE_POINTS
@ GEO_NODE_CURVE_PRIMITIVE_ARC_TYPE_RADIUS
#define SHD_PRINCIPLED_HAIR_DIRECT_ABSORPTION
#define NODE_SCRIPT_EXTERNAL
@ GEO_NODE_CURVE_HANDLE_RIGHT
@ GEO_NODE_CURVE_HANDLE_LEFT
@ GEO_NODE_REALIZE_INSTANCES_LEGACY_BEHAVIOR
@ GEO_NODE_TRIANGULATE_NGON_EARCLIP
@ GEO_NODE_TRIANGULATE_NGON_BEAUTY
@ FN_NODE_ALIGN_EULER_TO_VECTOR_AXIS_Z
@ FN_NODE_ALIGN_EULER_TO_VECTOR_AXIS_Y
@ FN_NODE_ALIGN_EULER_TO_VECTOR_AXIS_X
#define CMP_NODE_BLUR_ASPECT_Y
#define CMP_NODE_CHANNEL_MATTE_CS_RGB
@ 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_VORONOI_DISTANCE_TO_EDGE
@ SHD_VORONOI_N_SPHERE_RADIUS
@ SHD_POINTDENSITY_SPACE_WORLD
@ SHD_POINTDENSITY_SPACE_OBJECT
#define SHD_BLEND_SPHERICAL
#define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL
@ GEO_NODE_MESH_LINE_COUNT_RESOLUTION
@ GEO_NODE_MESH_LINE_COUNT_TOTAL
@ FN_NODE_ALIGN_EULER_TO_VECTOR_PIVOT_AXIS_Y
@ FN_NODE_ALIGN_EULER_TO_VECTOR_PIVOT_AXIS_AUTO
@ FN_NODE_ALIGN_EULER_TO_VECTOR_PIVOT_AXIS_X
@ FN_NODE_ALIGN_EULER_TO_VECTOR_PIVOT_AXIS_Z
#define NODE_ACTIVE_TEXTURE
#define SHD_VECT_TRANSFORM_TYPE_POINT
@ NODE_MAPPING_TYPE_POINT
@ NODE_MAPPING_TYPE_VECTOR
@ NODE_MAPPING_TYPE_TEXTURE
@ NODE_MAPPING_TYPE_NORMAL
#define SHD_MIXRGB_USE_ALPHA
@ FN_NODE_ROTATE_EULER_TYPE_EULER
@ FN_NODE_ROTATE_EULER_TYPE_AXIS_ANGLE
#define SHD_IMAGE_EXTENSION_CLIP
#define NTREE_VIEWER_BORDER
@ CMP_NODEFLAG_PLANETRACKDEFORM_MOTION_BLUR
@ GEO_NODE_EXTRUDE_MESH_FACES
@ GEO_NODE_EXTRUDE_MESH_VERTICES
@ GEO_NODE_EXTRUDE_MESH_EDGES
#define SHD_VECT_TRANSFORM_SPACE_OBJECT
#define SHD_IMAGE_EXTENSION_EXTEND
@ GEO_NODE_CURVE_RESAMPLE_LENGTH
@ GEO_NODE_CURVE_RESAMPLE_EVALUATED
@ GEO_NODE_CURVE_RESAMPLE_COUNT
@ SHD_WAVE_RINGS_DIRECTION_Z
@ SHD_WAVE_RINGS_DIRECTION_Y
@ SHD_WAVE_RINGS_DIRECTION_X
@ SHD_WAVE_RINGS_DIRECTION_SPHERICAL
#define NTREE_COM_GROUPNODE_BUFFER
#define CMP_NODE_IMAGE_USE_STRAIGHT_OUTPUT
#define CMP_NODE_WRAP_NONE
#define SHD_IMAGE_EXTENSION_REPEAT
@ GEO_NODE_CURVE_SAMPLE_FACTOR
@ GEO_NODE_CURVE_SAMPLE_LENGTH
@ GEO_NODE_MESH_TO_POINTS_FACES
@ GEO_NODE_MESH_TO_POINTS_VERTICES
@ GEO_NODE_MESH_TO_POINTS_CORNERS
@ GEO_NODE_MESH_TO_POINTS_EDGES
@ CMP_NODEFLAG_MASK_FIXED_SCENE
@ CMP_NODEFLAG_MASK_NO_FEATHER
@ CMP_NODEFLAG_MASK_FIXED
@ CMP_NODEFLAG_MASK_MOTION_BLUR
#define CMP_NODE_BLUR_ASPECT_NONE
@ GEO_NODE_CURVE_FILL_MODE_TRIANGULATED
@ GEO_NODE_CURVE_FILL_MODE_NGONS
#define SHD_PRINCIPLED_HAIR_REFLECTANCE
#define SHD_SPACE_TANGENT
@ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM
@ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON
#define NTREE_QUALITY_HIGH
@ SHD_POINTDENSITY_COLOR_VERTNOR
@ SHD_POINTDENSITY_COLOR_VERTWEIGHT
@ SHD_POINTDENSITY_COLOR_VERTCOL
#define SHD_VECT_TRANSFORM_SPACE_CAMERA
@ CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA
@ CMP_NODE_SETALPHA_MODE_APPLY
@ GEO_NODE_MERGE_BY_DISTANCE_MODE_ALL
@ GEO_NODE_MERGE_BY_DISTANCE_MODE_CONNECTED
#define CMP_NODE_MASK_MBLUR_SAMPLES_MAX
@ GEO_NODE_MESH_LINE_MODE_END_POINTS
@ GEO_NODE_MESH_LINE_MODE_OFFSET
#define CMP_NODE_CHANNEL_MATTE_CS_YCC
#define NODE_FRAME_SHRINK
@ 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
#define SHD_GLOSSY_BECKMANN
@ SOCK_DISPLAY_SHAPE_CIRCLE_DOT
@ SOCK_DISPLAY_SHAPE_CIRCLE
@ SOCK_DISPLAY_SHAPE_SQUARE_DOT
@ SOCK_DISPLAY_SHAPE_SQUARE
@ SOCK_DISPLAY_SHAPE_DIAMOND
@ SOCK_DISPLAY_SHAPE_DIAMOND_DOT
#define SHD_TANGENT_UVMAP
@ GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT
@ GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE
@ CMP_NODEFLAG_BLUR_VARIABLE_SIZE
@ CMP_NODEFLAG_BLUR_EXTEND_BOUNDS
@ GEO_NODE_CURVE_PRIMITIVE_QUAD_MODE_KITE
@ GEO_NODE_CURVE_PRIMITIVE_QUAD_MODE_TRAPEZOID
@ GEO_NODE_CURVE_PRIMITIVE_QUAD_MODE_POINTS
@ GEO_NODE_CURVE_PRIMITIVE_QUAD_MODE_RECTANGLE
@ GEO_NODE_CURVE_PRIMITIVE_QUAD_MODE_PARALLELOGRAM
#define SHD_SPACE_BLENDER_OBJECT
#define NTREE_CHUNKSIZE_256
#define SHD_SPACE_BLENDER_WORLD
#define NTREE_CHUNKSIZE_32
#define NODE_SCRIPT_AUTO_UPDATE
#define SHD_PROJ_MIRROR_BALL
#define SHD_BLEND_QUADRATIC
@ SHD_POINTDENSITY_COLOR_PARTSPEED
@ SHD_POINTDENSITY_COLOR_PARTVEL
@ SHD_POINTDENSITY_COLOR_PARTAGE
@ FN_NODE_ROTATE_EULER_SPACE_OBJECT
@ FN_NODE_ROTATE_EULER_SPACE_LOCAL
#define NTREE_CHUNKSIZE_1024
@ GEO_NODE_BOOLEAN_DIFFERENCE
@ GEO_NODE_BOOLEAN_INTERSECT
#define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL
#define NODE_IES_EXTERNAL
#define SHD_BLEND_QUADRATIC_SPHERE
@ GEO_NODE_RAYCAST_NEAREST
@ GEO_NODE_RAYCAST_INTERPOLATED
@ GEO_NODE_STRING_TO_CURVES_MODE_TRUNCATE
@ GEO_NODE_STRING_TO_CURVES_MODE_SCALE_TO_FIT
@ GEO_NODE_STRING_TO_CURVES_MODE_OVERFLOW
#define SHD_VECT_TRANSFORM_SPACE_WORLD
#define SHD_GLOSSY_MULTI_GGX
#define SHD_INTERP_CLOSEST
@ GEO_NODE_CURVE_HANDLE_ALIGN
@ GEO_NODE_CURVE_HANDLE_AUTO
@ GEO_NODE_CURVE_HANDLE_FREE
@ GEO_NODE_CURVE_HANDLE_VECTOR
#define NODE_SCRIPT_INTERNAL
@ NODE_BOOLEAN_MATH_IMPLY
@ NODE_BOOLEAN_MATH_NIMPLY
@ GEO_NODE_TRANSFORM_SPACE_RELATIVE
@ GEO_NODE_TRANSFORM_SPACE_ORIGINAL
@ FN_NODE_FLOAT_TO_INT_TRUNCATE
@ FN_NODE_FLOAT_TO_INT_CEIL
@ FN_NODE_FLOAT_TO_INT_ROUND
@ FN_NODE_FLOAT_TO_INT_FLOOR
#define SHD_TANGENT_AXIS_Y
#define SHD_TANGENT_RADIAL
#define SHD_MUSGRAVE_HETERO_TERRAIN
@ GEO_NODE_DELETE_GEOMETRY_MODE_EDGE_FACE
@ GEO_NODE_DELETE_GEOMETRY_MODE_ONLY_FACE
@ GEO_NODE_DELETE_GEOMETRY_MODE_ALL
#define NTREE_CHUNKSIZE_64
@ GEO_NODE_CURVE_PRIMITIVE_BEZIER_SEGMENT_POSITION
@ GEO_NODE_CURVE_PRIMITIVE_BEZIER_SEGMENT_OFFSET
@ SHD_ATTRIBUTE_INSTANCER
#define NODE_IES_INTERNAL
@ NODE_COMPARE_MODE_ELEMENT
@ NODE_COMPARE_MODE_LENGTH
@ NODE_COMPARE_MODE_DOT_PRODUCT
@ NODE_COMPARE_MODE_AVERAGE
@ NODE_COMPARE_MODE_DIRECTION
@ GEO_NODE_ATTRIBUTE_TRANSFER_NEAREST_FACE_INTERPOLATED
@ GEO_NODE_ATTRIBUTE_TRANSFER_INDEX
@ GEO_NODE_ATTRIBUTE_TRANSFER_NEAREST
#define CMP_NODE_OUTPUT_IGNORE_ALPHA
#define SHD_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION
@ GEO_NODE_CURVE_PRIMITIVE_CIRCLE_TYPE_RADIUS
@ GEO_NODE_CURVE_PRIMITIVE_CIRCLE_TYPE_POINTS
@ NODE_COMPARE_LESS_EQUAL
@ NODE_COMPARE_COLOR_BRIGHTER
@ NODE_COMPARE_GREATER_EQUAL
@ NODE_COMPARE_GREATER_THAN
@ NODE_COMPARE_COLOR_DARKER
#define SHD_INTERP_LINEAR
@ CMP_NODE_DENOISE_PREFILTER_FAST
@ CMP_NODE_DENOISE_PREFILTER_NONE
@ CMP_NODE_DENOISE_PREFILTER_ACCURATE
@ GEO_NODE_CURVE_FILLET_BEZIER
@ GEO_NODE_CURVE_FILLET_POLY
Object is a sort of wrapper for general info.
#define R_FILTER_FAST_GAUSS
#define TEX_PD_OBJECTSPACE
@ TEX_PD_COLOR_VERTWEIGHT
void ED_init_custom_node_socket_type(struct bNodeSocketType *stype)
void ED_init_custom_node_type(struct bNodeType *ntype)
void ED_node_tree_propagate_change(const struct bContext *C, struct Main *bmain, struct bNodeTree *ntree)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
const char * IMB_colormanagement_colorspace_get_indexed_name(int index)
int IMB_colormanagement_colorspace_get_named_index(const char *name)
void IMB_colormanagement_colorspace_items_add(struct EnumPropertyItem **items, int *totitem)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
void register_node_type_sh_custom_group(bNodeType *ntype)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block SH_NODE_TEX_IMAGE
void ntreeTexCheckCyclics(struct bNodeTree *ntree)
#define RNA_POINTER_INVALIDATE(ptr)
struct bNodeSocketType * rna_node_socket_type_from_enum(int value)
const EnumPropertyItem * rna_node_tree_type_itemf(void *data, bool(*poll)(void *data, struct bNodeTreeType *), bool *r_free)
struct bNodeTreeType * rna_node_tree_type_from_enum(int value)
int rna_node_socket_idname_to_enum(const char *idname)
int rna_node_socket_type_to_enum(struct bNodeSocketType *typeinfo)
const EnumPropertyItem * rna_node_type_itemf(void *data, bool(*poll)(void *data, struct bNodeType *), bool *r_free)
int rna_node_tree_idname_to_enum(const char *idname)
int rna_node_type_to_enum(struct bNodeType *typeinfo)
const EnumPropertyItem * rna_node_socket_type_itemf(void *data, bool(*poll)(void *data, struct bNodeSocketType *), bool *r_free)
struct bNodeType * rna_node_type_from_enum(int value)
int rna_node_idname_to_enum(const char *idname)
int rna_node_tree_type_to_enum(struct bNodeTreeType *typeinfo)
void(* StructFreeFunc)(void *data)
int(* StructValidateFunc)(struct PointerRNA *ptr, void *data, int *have_function)
int(* StructCallbackFunc)(struct bContext *C, struct PointerRNA *ptr, struct FunctionRNA *func, ParameterList *list)
#define RNA_ENUM_ITEM_SEPR
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ PROPOVERRIDE_NO_COMPARISON
#define RNA_ENUM_ITEM_HEADING(name, description)
return(oflags[bm->toolflag_index].f &oflag) !=0
const Depsgraph * depsgraph
SyclQueue void void size_t num_bytes void
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
RenderEngine * RE_engine_create(RenderEngineType *type)
RenderEngineType * RE_engines_find(const char *idname)
void RE_engine_free(RenderEngine *engine)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
T length(const vec_base< T, Size > &a)
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
void node_group_update(struct bNodeTree *ntree, struct bNode *node)
void ntreeCompositColorBalanceSyncFromLGG(bNodeTree *UNUSED(ntree), bNode *node)
void ntreeCompositColorBalanceSyncFromCDL(bNodeTree *UNUSED(ntree), bNode *node)
void register_node_type_cmp_custom_group(bNodeType *ntype)
void ntreeCompositCryptomatteSyncFromRemove(bNode *node)
void ntreeCompositCryptomatteSyncFromAdd(const Scene *scene, bNode *node)
void ntreeCompositCryptomatteUpdateLayerNames(const Scene *scene, bNode *node)
void ntreeCompositOutputFileSetPath(bNode *node, bNodeSocket *sock, const char *name)
bNodeSocket * ntreeCompositOutputFileAddSocket(bNodeTree *ntree, bNode *node, const char *name, const ImageFormatData *im_format)
void ntreeCompositOutputFileSetLayer(bNode *node, bNodeSocket *sock, const char *name)
void ntreeCompositUpdateRLayers(bNodeTree *ntree)
void register_node_type_geo_custom_group(bNodeType *ntype)
static const EnumPropertyItem mode_items[]
bool RE_layers_have_name(struct RenderResult *rr)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSED(ptr), FunctionRNA *func)
const char * RNA_struct_ui_description(const StructRNA *type)
const PointerRNA PointerRNA_NULL
void * RNA_struct_blender_type_get(StructRNA *srna)
void RNA_parameter_list_free(ParameterList *parms)
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, ListBase *lb, IteratorSkipFunc skip)
int RNA_struct_ui_icon(const StructRNA *type)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
void * rna_iterator_listbase_get(CollectionPropertyIterator *iter)
void rna_def_animdata_common(StructRNA *srna)
const EnumPropertyItem rna_enum_attribute_domain_items[]
const EnumPropertyItem rna_enum_attribute_domain_without_corner_items[]
const EnumPropertyItem rna_enum_attribute_type_items[]
const EnumPropertyItem rna_enum_curves_types[]
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)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
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)
PropertyRNA * RNA_def_float_array(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
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)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
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_function_output(FunctionRNA *UNUSED(func), PropertyRNA *ret)
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)
void RNA_def_property_int_default(PropertyRNA *prop, int value)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
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)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
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)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
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)
FunctionRNA * RNA_def_function_runtime(StructRNA *srna, const char *identifier, CallFunc call)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
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_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
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)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
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)
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)
StructRNA RNA_PropertyGroup
char * rna_Node_ImageUser_path(const struct PointerRNA *ptr)
const EnumPropertyItem rna_enum_ramp_blend_items[]
const EnumPropertyItem rna_enum_axis_xy_items[]
const EnumPropertyItem rna_enum_subdivision_uv_smooth_items[]
const EnumPropertyItem rna_enum_subdivision_boundary_smooth_items[]
static void def_geo_string_to_curves(StructRNA *srna)
static const EnumPropertyItem sh_tex_prop_interpolation_items[]
static void def_tex_output(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_geo_store_named_attribute(StructRNA *srna)
static void def_geo_separate_geometry(StructRNA *srna)
static void def_cmp_filter(StructRNA *srna)
static void def_geo_curve_primitive_bezier_segment(StructRNA *srna)
static void def_principled(StructRNA *srna)
static void def_refraction(StructRNA *srna)
static void def_geo_boolean(StructRNA *srna)
static const EnumPropertyItem node_subsurface_method_items[]
static const EnumPropertyItem node_script_mode_items[]
static void def_cmp_dblur(StructRNA *srna)
static const EnumPropertyItem prop_image_layer_items[]
static void def_geo_extrude_mesh(StructRNA *srna)
static void def_node_image_user(StructRNA *srna)
static void def_geo_accumulate_field(StructRNA *srna)
static void def_cmp_double_edge_mask(StructRNA *srna)
static void def_cmp_flip(StructRNA *srna)
static EnumPropertyItem node_ies_mode_items[]
static void def_geo_curve_set_handle_positions(StructRNA *srna)
static void def_group(StructRNA *srna)
static void rna_def_node_socket_virtual(BlenderRNA *brna, const char *identifier)
static void rna_def_texture_node(BlenderRNA *brna)
static void def_fn_input_int(StructRNA *srna)
static void def_geo_delete_geometry(StructRNA *srna)
static void def_geo_curve_primitive_quadrilateral(StructRNA *srna)
static void def_geo_field_at_index(StructRNA *srna)
static void def_geo_transfer_attribute(StructRNA *srna)
static void def_rgb_curve(StructRNA *srna)
static void def_sh_tex_image(StructRNA *srna)
static const EnumPropertyItem prop_view_layer_items[]
static void rna_def_cmp_output_file_slots_api(BlenderRNA *brna, PropertyRNA *cprop, const char *struct_name)
static void def_cmp_rotate(StructRNA *srna)
static void def_geo_curve_primitive_arc(StructRNA *srna)
static void rna_def_node_link(BlenderRNA *brna)
static const EnumPropertyItem rna_node_geometry_curve_handle_type_items[]
static void def_sh_tex_checker(StructRNA *srna)
static const EnumPropertyItem prop_image_view_items[]
static const EnumPropertyItem rna_node_combsep_color_items[]
static void def_geo_interpolate_domain(StructRNA *srna)
static void rna_def_nodetree(BlenderRNA *brna)
static void def_cmp_alpha_over(StructRNA *srna)
static void rna_def_shader_node(BlenderRNA *brna)
static const EnumPropertyItem node_sampler_type_items[]
static void def_geo_curve_set_handle_type(StructRNA *srna)
static void def_sh_uvalongstroke(StructRNA *srna)
static const EnumPropertyItem prop_shader_output_target_items[]
static void def_geo_collection_info(StructRNA *srna)
static const EnumPropertyItem node_flip_items[]
static void def_cmp_bilateral_blur(StructRNA *srna)
static const EnumPropertyItem node_hair_items[]
static void def_sh_tex_white_noise(StructRNA *srna)
static void def_cmp_zcombine(StructRNA *srna)
static void rna_def_compositor_node(BlenderRNA *brna)
static void def_geo_points_to_volume(StructRNA *srna)
static void def_cmp_switch_view(StructRNA *UNUSED(srna))
static void def_cmp_boxmask(StructRNA *srna)
static void def_cmp_ycc(StructRNA *srna)
static void def_geo_curve_handle_type_selection(StructRNA *srna)
static void def_geo_curve_trim(StructRNA *srna)
static void def_time(StructRNA *srna)
static void def_sh_tex_gradient(StructRNA *srna)
const EnumPropertyItem rna_enum_node_float_to_int_items[]
static void def_cmp_brightcontrast(StructRNA *srna)
static void def_anisotropic(StructRNA *srna)
static void dev_cmd_transform(StructRNA *srna)
static void def_sh_normal_map(StructRNA *srna)
static void def_cmp_id_mask(StructRNA *srna)
static const EnumPropertyItem node_principled_hair_items[]
static void def_geo_attribute_domain_size(StructRNA *srna)
static void def_cmp_denoise(StructRNA *srna)
static void def_fn_input_color(StructRNA *srna)
static void def_cmp_viewer(StructRNA *srna)
static void def_sh_tex(StructRNA *srna)
static void def_vector_math(StructRNA *srna)
static void rna_def_nodetree_link_api(BlenderRNA *brna, PropertyRNA *cprop)
static void def_sh_vertex_color(StructRNA *srna)
static void def_geo_attribute_capture(StructRNA *srna)
static void rna_def_node(BlenderRNA *brna)
static void def_cmp_map_uv(StructRNA *srna)
static const EnumPropertyItem rna_enum_node_tex_dimensions_items[]
static void def_group_input(StructRNA *srna)
static void def_sh_tex_magic(StructRNA *srna)
static void def_geo_curve_primitive_circle(StructRNA *srna)
static void def_geo_triangulate(StructRNA *srna)
static const EnumPropertyItem node_masktype_items[]
static void def_geo_mesh_line(StructRNA *srna)
static void rna_def_cmp_output_file_slot_layer(BlenderRNA *brna)
static void def_cmp_premul_key(StructRNA *srna)
static void def_sh_bump(StructRNA *srna)
static void def_sh_uvmap(StructRNA *srna)
static void def_sh_output(StructRNA *srna)
static void def_math(StructRNA *srna)
static void def_geo_mesh_to_points(StructRNA *srna)
static void def_sh_tangent(StructRNA *srna)
static void def_mix_rgb(StructRNA *srna)
static void def_geo_distribute_points_on_faces(StructRNA *srna)
static const EnumPropertyItem rna_node_geometry_curve_handle_side_items[]
static void rna_def_node_socket_color(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_geo_switch(StructRNA *srna)
static void def_sh_vector_displacement(StructRNA *srna)
static void def_cmp_set_alpha(StructRNA *srna)
static void def_fn_input_vector(StructRNA *srna)
static const EnumPropertyItem rna_enum_node_socket_display_shape_items[]
static void def_geo_curve_fill(StructRNA *srna)
static void def_sh_tex_wireframe(StructRNA *srna)
static void rna_def_node_socket_geometry(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void rna_def_internal_node(BlenderRNA *brna)
static void def_cmp_colorcorrection(StructRNA *srna)
static const EnumPropertyItem node_quality_items[]
static void def_cmp_sunbeams(StructRNA *srna)
static void def_geo_proximity(StructRNA *srna)
static void def_cmp_levels(StructRNA *srna)
static void def_frame(StructRNA *srna)
const EnumPropertyItem rna_enum_mapping_type_items[]
static void def_geo_raycast(StructRNA *srna)
static void def_sh_attribute(StructRNA *srna)
static const EnumPropertyItem rna_enum_vector_rotate_type_items[]
static const EnumPropertyItem rna_enum_execution_mode_items[]
static void rna_def_node_tree_sockets_api(BlenderRNA *brna, PropertyRNA *cprop, int in_out)
static void def_cmp_blur(StructRNA *srna)
static void rna_def_node_socket_texture(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_cmp_composite(StructRNA *srna)
static void def_geo_curve_sample(StructRNA *srna)
static void def_sh_tex_voronoi(StructRNA *srna)
static void def_fn_input_string(StructRNA *srna)
static void def_geo_uv_unwrap(StructRNA *srna)
static const EnumPropertyItem node_cryptomatte_layer_name_items[]
static void def_geo_duplicate_elements(StructRNA *srna)
static void def_cmp_combsep_color(StructRNA *srna)
static const EnumPropertyItem node_ycc_items[]
static void def_cmp_lensdist(StructRNA *srna)
static void def_cmp_color_matte(StructRNA *srna)
static void def_geo_curve_to_points(StructRNA *srna)
static void def_toon(StructRNA *srna)
static void def_geo_attribute_statistic(StructRNA *srna)
static void def_sh_subsurface(StructRNA *srna)
static const EnumPropertyItem node_refraction_items[]
static void def_cmp_map_range(StructRNA *srna)
static void def_cmp_cryptomatte(StructRNA *srna)
static void def_texture(StructRNA *srna)
static void rna_def_function_node(BlenderRNA *brna)
static void def_cmp_defocus(StructRNA *srna)
static void def_cmp_invert(StructRNA *srna)
static EnumPropertyItem rna_node_geometry_mesh_circle_fill_type_items[]
static void def_geo_viewer(StructRNA *srna)
static void rna_def_node_instance_hash(BlenderRNA *brna)
static void def_cmp_scale(StructRNA *srna)
static void def_colorramp(StructRNA *srna)
static void def_sh_tex_noise(StructRNA *srna)
static void def_geo_merge_by_distance(StructRNA *srna)
static void def_sh_ambient_occlusion(StructRNA *srna)
static void rna_def_node_socket_string(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_fn_random_value(StructRNA *srna)
static void rna_def_node_socket_standard_types(BlenderRNA *brna)
static void def_group_output(StructRNA *srna)
static void rna_def_node_socket_interface(BlenderRNA *brna)
static void def_geo_input_named_attribute(StructRNA *srna)
static void def_cmp_render_layers(StructRNA *srna)
static void def_glossy(StructRNA *srna)
static void rna_def_cmp_output_file_slot_file(BlenderRNA *brna)
static void def_cmp_inpaint(StructRNA *srna)
static void def_geo_mesh_cone(StructRNA *srna)
static void def_clamp(StructRNA *srna)
static void def_compare(StructRNA *srna)
static void def_sh_tex_ies(StructRNA *srna)
static void def_sh_tex_musgrave(StructRNA *srna)
static void def_cmp_image(StructRNA *srna)
static void rna_def_texture_nodetree(BlenderRNA *brna)
static void def_cmp_keying(StructRNA *srna)
static void def_geo_scale_elements(StructRNA *srna)
const EnumPropertyItem rna_enum_node_socket_in_out_items[]
static void rna_def_node_socket_image(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void rna_def_node_socket_int(BlenderRNA *brna, const char *identifier, const char *interface_idname, PropertySubType subtype)
static void def_geo_subdivision_surface(StructRNA *srna)
static void rna_def_node_socket_vector(BlenderRNA *brna, const char *identifier, const char *interface_idname, PropertySubType subtype)
static void def_sh_output_aov(StructRNA *srna)
void RNA_def_nodetree(BlenderRNA *brna)
static void def_sh_output_linestyle(StructRNA *srna)
static void rna_def_node_socket(BlenderRNA *brna)
static void rna_def_node_socket_object(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_tex_combsep_color(StructRNA *srna)
static void def_cmp_vector_blur(StructRNA *srna)
const EnumPropertyItem rna_enum_node_math_items[]
static void rna_def_shader_nodetree(BlenderRNA *brna)
static void def_geo_image_texture(StructRNA *srna)
static void def_geo_curve_spline_type(StructRNA *srna)
static void def_geo_mesh_to_volume(StructRNA *srna)
static void def_boolean_math(StructRNA *srna)
static void def_cmp_huecorrect(StructRNA *srna)
static void def_cmp_channel_matte(StructRNA *srna)
static void def_fn_align_euler_to_vector(StructRNA *srna)
static void def_cmp_convert_color_space(StructRNA *srna)
const EnumPropertyItem rna_enum_node_vec_math_items[]
static void def_sh_displacement(StructRNA *srna)
static void def_geo_volume_to_mesh(StructRNA *srna)
static void def_cmp_glare(StructRNA *srna)
static void def_sh_tex_sky(StructRNA *srna)
static void def_cmp_splitviewer(StructRNA *srna)
static void def_cmp_crop(StructRNA *srna)
static void def_map_range(StructRNA *srna)
static void def_float_to_int(StructRNA *srna)
static void def_hair(StructRNA *srna)
static void rna_def_geometry_nodetree(BlenderRNA *brna)
static void def_sh_combsep_color(StructRNA *srna)
static void def_sh_script(StructRNA *srna)
static void rna_def_node_socket_bool(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_cmp_distance_matte(StructRNA *srna)
static void def_cmp_antialiasing(StructRNA *srna)
static void def_sh_vector_rotate(StructRNA *srna)
static void def_cmp_stabilize2d(StructRNA *srna)
static const EnumPropertyItem node_anisotropic_items[]
static void rna_def_node_socket_material(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_cmp_tonemap(StructRNA *srna)
static void def_cmp_trackpos(StructRNA *srna)
static void def_cmp_switch(StructRNA *srna)
static void def_cmp_luma_matte(StructRNA *srna)
static const EnumPropertyItem prop_tri_channel_items[]
static void def_sh_bevel(StructRNA *srna)
static void def_geo_mesh_circle(StructRNA *srna)
static void def_sh_mapping(StructRNA *srna)
static void def_fn_rotate_euler(StructRNA *srna)
static const EnumPropertyItem node_glass_items[]
static void rna_def_node_socket_shader(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_geo_input_material(StructRNA *srna)
static void def_cmp_bokehimage(StructRNA *srna)
static void def_cmp_moviedistortion(StructRNA *srna)
const EnumPropertyItem rna_enum_node_boolean_math_items[]
static void def_cmp_dilate_erode(StructRNA *srna)
static void def_cmp_planetrackdeform(StructRNA *srna)
static void def_cmp_movieclip(StructRNA *srna)
static void def_hair_principled(StructRNA *srna)
static void def_cmp_despeckle(StructRNA *srna)
const EnumPropertyItem rna_enum_node_map_range_items[]
const EnumPropertyItem rna_enum_node_float_compare_items[]
static void def_sh_vect_transform(StructRNA *srna)
const EnumPropertyItem rna_enum_node_compare_operation_items[]
static void def_geo_curve_resample(StructRNA *srna)
const EnumPropertyItem rna_enum_node_filter_items[]
static const EnumPropertyItem node_socket_data_type_items[]
static void rna_def_node_sockets_api(BlenderRNA *brna, PropertyRNA *cprop, int in_out)
static StructRNA * define_specific_node(BlenderRNA *brna, const char *struct_name, const char *base_name, const char *ui_name, const char *ui_desc, void(*def_func)(StructRNA *))
static void def_cmp_ellipsemask(StructRNA *srna)
static void def_float_curve(StructRNA *srna)
static void def_cmp_bokehblur(StructRNA *srna)
static void def_cmp_map_value(StructRNA *srna)
static void def_tex_bricks(StructRNA *srna)
static void def_geo_mesh_cylinder(StructRNA *srna)
static void rna_def_node_socket_collection(BlenderRNA *brna, const char *identifier, const char *interface_idname)
static void def_cmp_diff_matte(StructRNA *srna)
static void def_cmp_keyingscreen(StructRNA *srna)
static void def_cmp_cryptomatte_legacy(StructRNA *srna)
static void def_cmp_colorbalance(StructRNA *srna)
static void def_cmp_mask(StructRNA *srna)
static void def_geo_curve_fillet(StructRNA *srna)
static void rna_def_composite_nodetree(BlenderRNA *brna)
static void def_fn_input_bool(StructRNA *srna)
static void rna_def_geometry_node(BlenderRNA *brna)
static void def_tex_image(StructRNA *srna)
const EnumPropertyItem rna_enum_node_clamp_items[]
static void def_geo_object_info(StructRNA *srna)
static void def_vector_curve(StructRNA *srna)
static void def_cmp_chroma_matte(StructRNA *srna)
static void def_cmp_color_spill(StructRNA *srna)
static void def_cmp_cryptomatte_entry(BlenderRNA *brna)
static const EnumPropertyItem node_chunksize_items[]
static void def_sh_tex_wave(StructRNA *srna)
static void def_cmp_output_file(BlenderRNA *brna, StructRNA *srna)
static void def_geo_curve_primitive_line(StructRNA *srna)
static void def_sh_tex_pointdensity(StructRNA *srna)
static const EnumPropertyItem node_socket_type_items[]
static void def_sh_tex_coord(StructRNA *srna)
static const EnumPropertyItem node_principled_distribution_items[]
static void def_sh_tex_brick(StructRNA *srna)
static void def_geo_realize_instances(StructRNA *srna)
static void rna_def_nodetree_nodes_api(BlenderRNA *brna, PropertyRNA *cprop)
static const EnumPropertyItem node_toon_items[]
static void def_glass(StructRNA *srna)
static void def_cmp_cryptomatte_common(StructRNA *srna)
static void def_fn_combsep_color(StructRNA *srna)
static void rna_def_node_socket_float(BlenderRNA *brna, const char *idname, const char *interface_idname, PropertySubType subtype)
static void def_cmp_translate(StructRNA *srna)
static void def_sh_tex_environment(StructRNA *srna)
static const EnumPropertyItem space_items[]
const EnumPropertyItem DummyRNA_NULL_items[]
const EnumPropertyItem rna_enum_proportional_falloff_curve_only_items[]
const EnumPropertyItem rna_enum_geometry_component_type_items[]
const EnumPropertyItem rna_enum_icon_items[]
struct MaterialGPencilStyle * gp_style
char vertex_attribute_name[64]
char vertex_attribute_name[64]
struct ImageFormatData im_format
void(* update_script_node)(struct RenderEngine *engine, struct bNodeTree *ntree, struct bNode *node)
struct RenderLayer * next
struct bNodeTree * nodetree
Compact definition of a node socket.
void(* draw_color)(struct bContext *C, struct PointerRNA *ptr, struct PointerRNA *node_ptr, float *r_color)
ExtensionRNA ext_interface
void(* interface_draw_color)(struct bContext *C, struct PointerRNA *ptr, float *r_color)
void(* draw)(struct bContext *C, struct uiLayout *layout, struct PointerRNA *ptr, struct PointerRNA *node_ptr, const char *text)
void(* interface_draw)(struct bContext *C, struct uiLayout *layout, struct PointerRNA *ptr)
struct bNodeSocket * next
struct bNodeSocketType * typeinfo
bool(* poll)(const struct bContext *C, struct bNodeTreeType *ntreetype)
void(* update)(struct bNodeTree *ntree)
void(* get_from_context)(const struct bContext *C, struct bNodeTreeType *ntreetype, struct bNodeTree **r_ntree, struct ID **r_id, struct ID **r_from)
bool(* valid_socket_type)(struct bNodeTreeType *ntreetype, struct bNodeSocketType *socket_type)
struct bNodeTreeType * typeinfo
void(* group_update_func)(struct bNodeTree *ntree, struct bNode *node)
bool(* poll)(struct bNodeType *ntype, struct bNodeTree *nodetree, const char **r_disabled_hint)
void(* updatefunc)(struct bNodeTree *ntree, struct bNode *node)
bNodeSocketTemplate * outputs
void(* initfunc_api)(const struct bContext *C, struct PointerRNA *ptr)
void(* free_self)(struct bNodeType *ntype)
void(* insert_link)(struct bNodeTree *ntree, struct bNode *node, struct bNodeLink *link)
void(* labelfunc)(const struct bNodeTree *ntree, const struct bNode *node, char *label, int maxlen)
void(* draw_buttons_ex)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)
void(* draw_buttons)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)
void(* freefunc_api)(struct PointerRNA *ptr)
bNodeSocketTemplate * inputs
bool(* poll_instance)(struct bNode *node, struct bNodeTree *nodetree, const char **r_disabled_hint)
void(* copyfunc_api)(struct PointerRNA *ptr, const struct bNode *src_node)
struct bNodeType * typeinfo
void RE_point_density_sample(Depsgraph *depsgraph, PointDensity *pd, const int resolution, float *values)
void RE_point_density_minmax(struct Depsgraph *depsgraph, struct PointDensity *pd, float r_min[3], float r_max[3])
void RE_point_density_cache(struct Depsgraph *depsgraph, PointDensity *pd)
void RE_point_density_free(struct PointDensity *pd)
void WM_main_add_notifier(unsigned int type, void *reference)