Blender  V3.3
DNA_node_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2005 Blender Foundation. All rights reserved. */
3 
8 #pragma once
9 
10 #include "DNA_ID.h"
11 #include "DNA_listBase.h"
12 #include "DNA_scene_types.h" /* for #ImageFormatData */
13 #include "DNA_vec_types.h" /* for #rctf */
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 struct AnimData;
20 struct Collection;
21 struct ID;
22 struct Image;
23 struct ListBase;
24 struct Material;
25 struct PreviewImage;
26 struct Tex;
27 struct bGPdata;
28 struct bNodeInstanceHash;
29 struct bNodeLink;
30 struct bNodePreview;
31 struct bNodeTreeExec;
32 struct bNodeType;
33 struct uiBlock;
34 
35 #define NODE_MAXSTR 64
36 
37 typedef struct bNodeStack {
38  float vec[4];
39  float min, max;
40  void *data;
42  short hasinput;
44  short hasoutput;
46  short datatype;
48  short sockettype;
50  short is_copy;
52  short external;
53  char _pad[4];
55 
56 /* ns->datatype, shadetree only */
57 #define NS_OSA_VECTORS 1
58 #define NS_OSA_VALUES 2
59 
60 /* node socket/node socket type -b conversion rules */
61 #define NS_CR_CENTER 0
62 #define NS_CR_NONE 1
63 #define NS_CR_FIT_WIDTH 2
64 #define NS_CR_FIT_HEIGHT 3
65 #define NS_CR_FIT 4
66 #define NS_CR_STRETCH 5
67 
69 #ifdef __cplusplus
70 namespace blender::nodes {
71 class NodeDeclaration;
72 class SocketDeclaration;
73 } // namespace blender::nodes
74 namespace blender::bke {
75 class bNodeTreeRuntime;
76 class bNodeRuntime;
77 class bNodeSocketRuntime;
78 } // namespace blender::bke
84 #else
90 #endif
91 
92 typedef struct bNodeSocket {
93  struct bNodeSocket *next, *prev;
94 
97 
99  char identifier[64];
100 
102  char name[64];
103 
105  void *storage;
106 
110  short type;
112  short flag;
119  short limit;
121  short in_out;
125  char idname[64];
126 
131  float locx, locy;
132 
135 
136  /* execution data */
138  short stack_index;
139  /* XXX deprecated, kept for forward compatibility */
140  short stack_type DNA_DEPRECATED;
142 
143  /* #eAttrDomain used when the geometry nodes modifier creates an attribute for a group
144  * output. */
146  /* Runtime-only cache of the number of input links, for multi-input sockets. */
148 
150  char label[64];
151  char description[64];
152 
160 
162  void *cache;
163 
164  /* internal data to retrieve relations and groups
165  * DEPRECATED, now uses the generic identifier string instead
166  */
168  int own_index DNA_DEPRECATED;
169  /* XXX deprecated, only used for restoring old group node links */
170  int to_index DNA_DEPRECATED;
171  /* XXX deprecated, still forward compatible since verification
172  * restores pointer from matching own_index. */
173  struct bNodeSocket *groupsock DNA_DEPRECATED;
174 
176  struct bNodeLink *link;
177 
178  /* XXX deprecated, socket input values are stored in default_value now.
179  * kept for forward compatibility */
182 
185 
187 typedef enum eNodeSocketDatatype {
188  SOCK_CUSTOM = -1, /* socket has no integer type */
194  __SOCK_MESH = 5, /* deprecated */
195  SOCK_INT = 6,
204 
214 
216 typedef enum eNodeSocketInOut {
217  SOCK_IN = 1 << 0,
218  SOCK_OUT = 1 << 1,
220 
222 typedef enum eNodeSocketFlag {
224  SOCK_HIDDEN = (1 << 1),
226  SOCK_IN_USE = (1 << 2),
228  SOCK_UNAVAIL = (1 << 3),
229  // /** DEPRECATED dynamic socket (can be modified by user) */
230  // SOCK_DYNAMIC = (1 << 4),
231  // /** DEPRECATED group socket should not be exposed */
232  // SOCK_INTERNAL = (1 << 5),
234  SOCK_COLLAPSED = (1 << 6),
236  SOCK_HIDE_VALUE = (1 << 7),
241  SOCK_COMPACT = (1 << 10),
243  SOCK_MULTI_INPUT = (1 << 11),
248  SOCK_HIDE_LABEL = (1 << 12),
250 
252 typedef struct bNode {
253  struct bNode *next, *prev;
254 
257 
261  char idname[64];
262 
264  char name[64];
265  int flag;
266  short type;
268  short done, level;
269 
272  char _pad2[1];
273 
275  float color[3];
276 
279  struct bNode *parent;
281  struct ID *id;
283  void *storage;
285  struct bNode *original;
288 
290  float locx, locy;
292  float width, height;
294  float miniwidth;
296  float offsetx, offsety;
300  float anim_ofsx;
301 
303  int update;
304 
306  char label[64];
308  short custom1, custom2;
309  float custom3, custom4;
310 
311  char _pad1[4];
312 
329  short tmp_flag;
330 
331  char _pad0;
333  char iter_flag;
334 
337 
338 /* node->flag */
339 #define NODE_SELECT 1
340 #define NODE_OPTIONS 2
341 #define NODE_PREVIEW 4
342 #define NODE_HIDDEN 8
343 #define NODE_ACTIVE 16
344 // #define NODE_ACTIVE_ID 32 /* deprecated */
345 /* Used to indicate which group output node is used and which viewer node is active. */
346 #define NODE_DO_OUTPUT 64
347 #define __NODE_GROUP_EDIT 128 /* DEPRECATED */
348 /* free test flag, undefined */
349 #define NODE_TEST 256
350 /* node is disabled */
351 #define NODE_MUTED 512
352 // #define NODE_CUSTOM_NAME 1024 /* deprecated! */
353 // #define NODE_CONST_OUTPUT (1 << 11) /* deprecated */
354 /* node is always behind others */
355 #define NODE_BACKGROUND (1 << 12)
356 /* automatic flag for nodes included in transforms */
357 #define NODE_TRANSFORM (1 << 13)
358 /* node is active texture */
359 
360 /* NOTE: take care with this flag since its possible it gets
361  * `stuck` inside/outside the active group - which makes buttons
362  * window texture not update, we try to avoid it by clearing the
363  * flag when toggling group editing - Campbell */
364 #define NODE_ACTIVE_TEXTURE (1 << 14)
365 /* use a custom color for the node */
366 #define NODE_CUSTOM_COLOR (1 << 15)
367 /* Node has been initialized
368  * This flag indicates the node->typeinfo->init function has been called.
369  * In case of undefined type at creation time this can be delayed until
370  * until the node type is registered.
371  */
372 #define NODE_INIT (1 << 16)
373 
374 /* do recalc of output, used to skip recalculation of unwanted
375  * composite out nodes when editing tree
376  */
377 #define NODE_DO_OUTPUT_RECALC (1 << 17)
378 /* A preview for the data in this node can be displayed in the spreadsheet editor. */
379 #define __NODE_ACTIVE_PREVIEW (1 << 18) /* deprecated */
380 /* Active node that is used to paint on. */
381 #define NODE_ACTIVE_PAINT_CANVAS (1 << 19)
382 
383 /* node->update */
384 #define NODE_UPDATE_ID 1 /* associated id data block has changed */
385 #define NODE_UPDATE_OPERATOR 2 /* node update triggered from update operator */
386 
387 /* Unique hash key for identifying node instances
388  * Defined as a struct because DNA does not support other typedefs.
389  */
390 typedef struct bNodeInstanceKey {
391  unsigned int value;
393 
394 /* Base struct for entries in node instance hash.
395  * WARNING: pointers are cast to this struct internally,
396  * it must be first member in hash entry structs!
397  */
398 #
399 #
400 typedef struct bNodeInstanceHashEntry {
402 
403  /* tags for cleaning the cache */
404  short tag;
406 
407 #
408 #
409 typedef struct bNodePreview {
412 
413  unsigned char *rect;
414  short xsize, ysize;
416 
417 typedef struct bNodeLink {
418  struct bNodeLink *next, *prev;
419 
422 
423  int flag;
426 
427 /* link->flag */
428 #define NODE_LINKFLAG_HILITE (1 << 0) /* link has been successfully validated */
429 #define NODE_LINK_VALID (1 << 1)
430 #define NODE_LINK_TEST (1 << 2) /* free test flag, undefined */
431 #define NODE_LINK_TEMP_HIGHLIGHT (1 << 3) /* Link is highlighted for picking. */
432 #define NODE_LINK_MUTED (1 << 4) /* Link is muted. */
433 #define NODE_LINK_DRAGGED (1 << 5) /* Node link is being dragged by the user. */
434 
435 /* tree->edit_quality/tree->render_quality */
436 #define NTREE_QUALITY_HIGH 0
437 #define NTREE_QUALITY_MEDIUM 1
438 #define NTREE_QUALITY_LOW 2
439 
440 /* tree->chunksize */
441 #define NTREE_CHUNKSIZE_32 32
442 #define NTREE_CHUNKSIZE_64 64
443 #define NTREE_CHUNKSIZE_128 128
444 #define NTREE_CHUNKSIZE_256 256
445 #define NTREE_CHUNKSIZE_512 512
446 #define NTREE_CHUNKSIZE_1024 1024
447 
448 /* the basis for a Node tree, all links and nodes reside internal here */
449 /* only re-usable node trees are in the library though,
450  * materials and textures allocate own tree struct */
451 typedef struct bNodeTree {
454  struct AnimData *adt;
455 
459  char idname[64];
460 
463 
465  struct bGPdata *gpd;
467  float view_center[2];
468 
470 
471  int type;
472 
478  int flag;
480  short is_updating;
482  short done;
483 
485  int nodetype DNA_DEPRECATED;
486 
495 
497 
498  /* Lists of bNodeSocket to hold default values and own_index.
499  * Warning! Don't make links to these sockets, input/output nodes are used for that.
500  * These sockets are used only for generating external interfaces.
501  */
503 
504  /* Node preview hash table
505  * Only available in base node trees (e.g. scene->node_tree)
506  */
508  /* Defines the node tree instance to use for the "active" context,
509  * in case multiple different editors are used and make context ambiguous.
510  */
512 
513  char _pad[4];
514 
525 
526  /* Callbacks. */
527  void (*progress)(void *, float progress);
529  void (*stats_draw)(void *, const char *str);
530  int (*test_break)(void *);
531  void (*update_draw)(void *);
532  void *tbh, *prh, *sdh, *udh;
533 
536 
539 
542 #define NTREE_UNDEFINED -2 /* Represents #NodeTreeTypeUndefined type. */
543 #define NTREE_CUSTOM -1 /* for dynamically registered custom types */
544 #define NTREE_SHADER 0
545 #define NTREE_COMPOSIT 1
546 #define NTREE_TEXTURE 2
547 #define NTREE_GEOMETRY 3
548 
550 #define NTREE_DS_EXPAND (1 << 0) /* for animation editors */
551 #define NTREE_COM_OPENCL (1 << 1) /* use opencl */
552 #define NTREE_TWO_PASS (1 << 2) /* two pass */
553 #define NTREE_COM_GROUPNODE_BUFFER (1 << 3) /* use groupnode buffers */
554 #define NTREE_VIEWER_BORDER (1 << 4) /* use a border for viewer nodes */
555 /* NOTE: DEPRECATED, use (id->tag & LIB_TAG_LOCALIZED) instead. */
556 
557 /* tree is localized copy, free when deleting node groups */
558 /* #define NTREE_IS_LOCALIZED (1 << 5) */
559 
560 /* tree->execution_mode */
565 
566 typedef enum eNodeTreeRuntimeFlag {
572 
573 /* socket value structs for input buttons
574  * DEPRECATED now using ID properties
575  */
576 
577 typedef struct bNodeSocketValueInt {
579  int subtype;
580  int value;
581  int min, max;
583 
584 typedef struct bNodeSocketValueFloat {
586  int subtype;
587  float value;
588  float min, max;
590 
591 typedef struct bNodeSocketValueBoolean {
592  char value;
594 
595 typedef struct bNodeSocketValueVector {
597  int subtype;
598  float value[3];
599  float min, max;
601 
602 typedef struct bNodeSocketValueRGBA {
603  float value[4];
605 
606 typedef struct bNodeSocketValueString {
607  int subtype;
608  char _pad[4];
610  char value[1024];
612 
613 typedef struct bNodeSocketValueObject {
614  struct Object *value;
616 
617 typedef struct bNodeSocketValueImage {
618  struct Image *value;
620 
622  struct Collection *value;
624 
625 typedef struct bNodeSocketValueTexture {
626  struct Tex *value;
628 
629 typedef struct bNodeSocketValueMaterial {
630  struct Material *value;
632 
633 /* Data structs, for `node->storage`. */
634 
635 enum {
640 };
641 
642 enum {
647 };
648 
649 enum {
651 };
652 
653 enum {
654  /* CMP_NODEFLAG_MASK_AA = (1 << 0), */ /* DEPRECATED */
657 
658  /* We may want multiple aspect options, exposed as an rna enum. */
661 };
662 
663 enum {
666 };
667 
668 typedef struct NodeFrame {
669  short flag;
670  short label_size;
672 
674 typedef struct NodeImageAnim {
675  int frames DNA_DEPRECATED;
676  int sfra DNA_DEPRECATED;
678  char cyclic DNA_DEPRECATED;
679  char movie DNA_DEPRECATED;
680  char _pad[2];
682 
683 typedef struct ColorCorrectionData {
684  float saturation;
685  float contrast;
686  float gamma;
687  float gain;
688  float lift;
689  char _pad[4];
691 
692 typedef struct NodeColorCorrection {
698  float endmidtones;
700 
701 typedef struct NodeBokehImage {
702  float angle;
703  int flaps;
704  float rounding;
706  float lensshift;
708 
709 typedef struct NodeBoxMask {
710  float x;
711  float y;
712  float rotation;
713  float height;
714  float width;
715  char _pad[4];
717 
718 typedef struct NodeEllipseMask {
719  float x;
720  float y;
721  float rotation;
722  float height;
723  float width;
724  char _pad[4];
726 
728 typedef struct NodeImageLayer {
729  /* index in the Image->layers->passes lists */
730  int pass_index DNA_DEPRECATED;
731  /* render pass name */
733  char pass_name[64];
735 
736 typedef struct NodeBlurData {
737  short sizex, sizey;
739  short curved;
741  short filtertype;
742  char bokeh, gamma;
746 
747 typedef struct NodeDBlurData {
749  short iter;
750  char wrap, _pad;
752 
753 typedef struct NodeBilateralBlurData {
755  short iter;
756  char _pad[2];
758 
759 typedef struct NodeAntiAliasingData {
760  float threshold;
764 
766 typedef struct NodeHueSat {
767  float hue, sat, val;
769 
770 typedef struct NodeImageFile {
772  char name[1024];
773  struct ImageFormatData im_format;
774  int sfra, efra;
776 
780 typedef struct NodeImageMultiFile {
782  char base_path[1024];
788  char _pad[4];
790 typedef struct NodeImageMultiFileSocket {
791  /* single layer file output */
792  short use_render_format DNA_DEPRECATED;
796  char _pad1[3];
798  char path[1024];
800 
801  /* multilayer output */
803  char layer[30];
804  char _pad2[2];
806 
807 typedef struct NodeChroma {
808  float t1, t2, t3;
810  float key[4];
813 
814 typedef struct NodeTwoXYs {
815  short x1, x2, y1, y2;
818 
819 typedef struct NodeTwoFloats {
820  float x, y;
822 
823 typedef struct NodeVertexCol {
824  char name[64];
826 
827 typedef struct NodeCMPCombSepColor {
828  /* CMPNodeCombSepColorMode */
832 
834 typedef struct NodeDefocus {
836  short samples, no_zbuf;
838  float rotation;
839  char _pad1[4];
841 
842 typedef struct NodeScriptDict {
844  void *dict;
846  void *node;
848 
850 typedef struct NodeGlare {
851  char quality, type, iter;
852  /* XXX angle is only kept for backward/forward compatibility,
853  * was used for two different things, see T50736. */
856  float angle_ofs;
857  char _pad1[4];
859 
861 typedef struct NodeTonemap {
862  float key, offset, gamma;
863  float f, m, a, c;
864  int type;
866 
868 typedef struct NodeLensDist {
869  short jit, proj, fit;
870  char _pad[2];
872 
873 typedef struct NodeColorBalance {
874  /* ASC CDL parameters */
875  float slope[3];
876  float offset[3];
877  float power[3];
879  char _pad[4];
880 
881  /* LGG parameters */
882  float lift[3];
883  float gamma[3];
884  float gain[3];
886 
887 typedef struct NodeColorspill {
888  short limchan, unspill;
889  float limscale;
892 
893 typedef struct NodeConvertColorSpace {
895  char to_color_space[64];
897 
898 typedef struct NodeDilateErode {
899  char falloff;
901 
902 typedef struct NodeMask {
905 
906 typedef struct NodeSetAlpha {
907  char mode;
909 
910 typedef struct NodeTexBase {
914 
915 typedef struct NodeTexSky {
918  float sun_direction[3];
919  float turbidity;
921  float sun_size;
925  float altitude;
926  float air_density;
929  char sun_disc;
930  char _pad[7];
932 
933 typedef struct NodeTexImage {
936  int color_space DNA_DEPRECATED;
941  char _pad[4];
943 
944 typedef struct NodeTexChecker {
947 
948 typedef struct NodeTexBrick {
951  float offset, squash;
953 
954 typedef struct NodeTexEnvironment {
957  int color_space DNA_DEPRECATED;
960  char _pad[4];
962 
963 typedef struct NodeTexGradient {
966  char _pad[4];
968 
969 typedef struct NodeTexNoise {
972  char _pad[4];
974 
975 typedef struct NodeTexVoronoi {
978  int feature;
979  int distance;
980  int coloring DNA_DEPRECATED;
982 
983 typedef struct NodeTexMusgrave {
988 
989 typedef struct NodeTexWave {
996 
997 typedef struct NodeTexMagic {
999  int depth;
1000  char _pad[4];
1002 
1003 typedef struct NodeShaderAttribute {
1004  char name[64];
1005  int type;
1006  char _pad[4];
1008 
1009 typedef struct NodeShaderVectTransform {
1010  int type;
1012  char _pad[4];
1014 
1018  char _pad[2];
1020  float radius;
1022  short space;
1028  /* Used at runtime only by sampling RNA API. */
1031  char _pad2[4];
1033 
1034 typedef struct NodeShaderPrincipled {
1036  char _pad[3];
1038 
1040 typedef struct TexNodeOutput {
1041  char name[64];
1043 
1044 typedef struct NodeKeyingScreenData {
1047 
1048 typedef struct NodeKeyingData {
1060 
1061 typedef struct NodeTrackPosData {
1063  char track_name[64];
1065 
1066 typedef struct NodeTranslateData {
1068  char relative;
1070 
1074  char flag;
1076  char _pad[2];
1079 
1080 typedef struct NodeShaderScript {
1081  int mode;
1082  int flag;
1083 
1085  char filepath[1024];
1086 
1087  char bytecode_hash[64];
1088  char *bytecode;
1090 
1091 typedef struct NodeShaderTangent {
1093  int axis;
1094  char uv_map[64];
1096 
1097 typedef struct NodeShaderNormalMap {
1098  int space;
1099  char uv_map[64];
1101 
1102 typedef struct NodeShaderUVMap {
1103  char uv_map[64];
1105 
1106 typedef struct NodeShaderVertexColor {
1107  char layer_name[64];
1109 
1110 typedef struct NodeShaderTexIES {
1111  int mode;
1112 
1114  char filepath[1024];
1116 
1117 typedef struct NodeShaderOutputAOV {
1118  char name[64];
1120 
1121 typedef struct NodeSunBeams {
1122  float source[2];
1123 
1124  float ray_length;
1126 
1127 typedef struct CryptomatteEntry {
1131  char name[64];
1132  char _pad[4];
1134 
1135 typedef struct CryptomatteLayer {
1137  char name[64];
1139 
1140 typedef struct NodeCryptomatte_Runtime {
1141  /* Contains `CryptomatteLayer`. */
1143  /* Temp storage for the cryptomatte picker. */
1144  float add[3];
1145  float remove[3];
1147 
1148 typedef struct NodeCryptomatte {
1155 
1156  /* Contains `CryptomatteEntry`. */
1158 
1159  /* MAX_NAME */
1160  char layer_name[64];
1161  /* Stores `entries` as a string for opening in 2.80-2.91. */
1162  char *matte_id;
1163 
1165  /* Number of input sockets. */
1167 
1168  char _pad[4];
1171 
1172 typedef struct NodeDenoise {
1173  char hdr;
1176 
1177 typedef struct NodeMapRange {
1178  /* eCustomDataType */
1180 
1181  /* NodeMapRangeType. */
1184  char _pad[5];
1186 
1187 typedef struct NodeRandomValue {
1188  /* eCustomDataType. */
1191 
1192 typedef struct NodeAccumulateField {
1193  /* eCustomDataType. */
1195  /* eAttrDomain. */
1198 
1199 typedef struct NodeInputBool {
1202 
1203 typedef struct NodeInputInt {
1204  int integer;
1206 
1207 typedef struct NodeInputVector {
1208  float vector[3];
1210 
1211 typedef struct NodeInputColor {
1212  float color[4];
1214 
1215 typedef struct NodeInputString {
1216  char *string;
1218 
1219 typedef struct NodeGeometryExtrudeMesh {
1220  /* GeometryNodeExtrudeMeshMode */
1223 
1224 typedef struct NodeGeometryObjectInfo {
1225  /* GeometryNodeTransformSpace. */
1228 
1230  /* GeometryNodePointsToVolumeResolutionMode */
1232  /* GeometryNodeAttributeInputMode */
1235 
1237  /* GeometryNodeTransformSpace. */
1240 
1241 typedef struct NodeGeometryProximity {
1242  /* GeometryNodeProximityTargetType. */
1245 
1247  /* VolumeToMeshResolutionMode */
1250 
1252  /* MeshToVolumeModifierResolutionMode */
1255 
1257  /* eSubsurfUVSmooth. */
1259  /* eSubsurfBoundarySmooth. */
1262 
1263 typedef struct NodeGeometryMeshCircle {
1264  /* GeometryNodeMeshCircleFillType. */
1267 
1269  /* GeometryNodeMeshCircleFillType. */
1272 
1273 typedef struct NodeGeometryMeshCone {
1274  /* GeometryNodeMeshCircleFillType. */
1277 
1279  /* GeometryNodeMergeByDistanceMode. */
1282 
1283 typedef struct NodeGeometryMeshLine {
1284  /* GeometryNodeMeshLineMode. */
1286  /* GeometryNodeMeshLineCountMode. */
1289 
1290 typedef struct NodeSwitch {
1291  /* NodeSwitch. */
1294 
1296  /* GeometryNodeSplineType. */
1299 
1301  /* GeometryNodeCurveHandleMode. */
1304 
1306  /* GeometryNodeCurveHandleType. */
1308  /* GeometryNodeCurveHandleMode. */
1311 
1313  /* GeometryNodeCurveHandleType. */
1315  /* GeometryNodeCurveHandleMode. */
1318 
1320  /* GeometryNodeCurvePrimitiveArcMode. */
1323 
1325  /* GeometryNodeCurvePrimitiveLineMode. */
1328 
1330  /* GeometryNodeCurvePrimitiveBezierSegmentMode. */
1333 
1335  /* GeometryNodeCurvePrimitiveMode. */
1338 
1340  /* GeometryNodeCurvePrimitiveQuadMode. */
1343 
1345  /* GeometryNodeCurveResampleMode. */
1348 
1349 typedef struct NodeGeometryCurveFillet {
1350  /* GeometryNodeCurveFilletMode. */
1353 
1354 typedef struct NodeGeometryCurveTrim {
1355  /* GeometryNodeCurveSampleMode. */
1358 
1360  /* GeometryNodeCurveResampleMode. */
1363 
1364 typedef struct NodeGeometryCurveSample {
1365  /* GeometryNodeCurveSampleMode. */
1368 
1370  /* eCustomDataType. */
1372  /* eAttrDomain. */
1374  /* GeometryNodeAttributeTransferMode. */
1376  char _pad[1];
1378 
1379 typedef struct NodeGeometryRaycast {
1380  /* GeometryNodeRaycastMapMode. */
1382 
1383  /* eCustomDataType. */
1385 
1386  /* Deprecated input types in new Ray-cast node. Can be removed when legacy nodes are no longer
1387  * supported. */
1391 
1392 typedef struct NodeGeometryCurveFill {
1395 
1397  /* GeometryNodeMeshToPointsMode */
1400 
1402  /* eCustomDataType. */
1404  /* eAttrDomain. */
1407 
1409  /* eCustomDataType. */
1411  /* eAttrDomain. */
1414 
1416  /* eCustomDataType. */
1419 
1421  /* GeometryNodeStringToCurvesOverflowMode */
1423  /* GeometryNodeStringToCurvesAlignXMode */
1425  /* GeometryNodeStringToCurvesAlignYMode */
1427  /* GeometryNodeStringToCurvesPivotMode */
1430 
1432  /* eAttrDomain. */
1434  /* GeometryNodeDeleteGeometryMode. */
1437 
1439  /* eAttrDomain. */
1442 
1444  /* eAttrDomain. */
1447 
1452 
1453 typedef struct NodeGeometryViewer {
1454  /* eCustomDataType. */
1457 
1458 typedef struct NodeGeometryUVUnwrap {
1459  /* GeometryNodeUVUnwrapMethod. */
1462 
1463 typedef struct NodeFunctionCompare {
1464  /* NodeCompareOperation */
1466  /* eNodeSocketDatatype */
1468  /* NodeCompareMode */
1470  char _pad[1];
1472 
1473 typedef struct NodeCombSepColor {
1474  /* NodeCombSepColorMode */
1477 
1478 /* script node mode */
1479 #define NODE_SCRIPT_INTERNAL 0
1480 #define NODE_SCRIPT_EXTERNAL 1
1481 
1482 /* script node flag */
1483 #define NODE_SCRIPT_AUTO_UPDATE 1
1484 
1485 /* IES node mode. */
1486 #define NODE_IES_INTERNAL 0
1487 #define NODE_IES_EXTERNAL 1
1488 
1489 /* Frame node flags. */
1490 
1491 #define NODE_FRAME_SHRINK 1 /* keep the bounding box minimal */
1492 #define NODE_FRAME_RESIZEABLE 2 /* test flag, if frame can be resized by user */
1493 
1494 /* Proxy node flags. */
1495 
1496 #define NODE_PROXY_AUTOTYPE 1 /* automatically change output type based on link */
1497 
1498 /* Comp channel matte. */
1499 
1500 #define CMP_NODE_CHANNEL_MATTE_CS_RGB 1
1501 #define CMP_NODE_CHANNEL_MATTE_CS_HSV 2
1502 #define CMP_NODE_CHANNEL_MATTE_CS_YUV 3
1503 #define CMP_NODE_CHANNEL_MATTE_CS_YCC 4
1504 
1505 /* glossy distributions */
1506 #define SHD_GLOSSY_BECKMANN 0
1507 #define SHD_GLOSSY_SHARP 1
1508 #define SHD_GLOSSY_GGX 2
1509 #define SHD_GLOSSY_ASHIKHMIN_SHIRLEY 3
1510 #define SHD_GLOSSY_MULTI_GGX 4
1511 
1512 /* vector transform */
1513 #define SHD_VECT_TRANSFORM_TYPE_VECTOR 0
1514 #define SHD_VECT_TRANSFORM_TYPE_POINT 1
1515 #define SHD_VECT_TRANSFORM_TYPE_NORMAL 2
1516 
1517 #define SHD_VECT_TRANSFORM_SPACE_WORLD 0
1518 #define SHD_VECT_TRANSFORM_SPACE_OBJECT 1
1519 #define SHD_VECT_TRANSFORM_SPACE_CAMERA 2
1520 
1522 enum {
1526 };
1527 
1528 /* toon modes */
1529 #define SHD_TOON_DIFFUSE 0
1530 #define SHD_TOON_GLOSSY 1
1531 
1532 /* hair components */
1533 #define SHD_HAIR_REFLECTION 0
1534 #define SHD_HAIR_TRANSMISSION 1
1535 
1536 /* principled hair parametrization */
1537 #define SHD_PRINCIPLED_HAIR_REFLECTANCE 0
1538 #define SHD_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION 1
1539 #define SHD_PRINCIPLED_HAIR_DIRECT_ABSORPTION 2
1540 
1541 /* blend texture */
1542 #define SHD_BLEND_LINEAR 0
1543 #define SHD_BLEND_QUADRATIC 1
1544 #define SHD_BLEND_EASING 2
1545 #define SHD_BLEND_DIAGONAL 3
1546 #define SHD_BLEND_RADIAL 4
1547 #define SHD_BLEND_QUADRATIC_SPHERE 5
1548 #define SHD_BLEND_SPHERICAL 6
1549 
1550 /* noise basis for textures */
1551 #define SHD_NOISE_PERLIN 0
1552 #define SHD_NOISE_VORONOI_F1 1
1553 #define SHD_NOISE_VORONOI_F2 2
1554 #define SHD_NOISE_VORONOI_F3 3
1555 #define SHD_NOISE_VORONOI_F4 4
1556 #define SHD_NOISE_VORONOI_F2_F1 5
1557 #define SHD_NOISE_VORONOI_CRACKLE 6
1558 #define SHD_NOISE_CELL_NOISE 7
1559 
1560 #define SHD_NOISE_SOFT 0
1561 #define SHD_NOISE_HARD 1
1562 
1563 /* Voronoi Texture */
1564 
1565 enum {
1570 };
1571 
1572 enum {
1578 };
1579 
1580 /* musgrave texture */
1581 #define SHD_MUSGRAVE_MULTIFRACTAL 0
1582 #define SHD_MUSGRAVE_FBM 1
1583 #define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL 2
1584 #define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3
1585 #define SHD_MUSGRAVE_HETERO_TERRAIN 4
1586 
1587 /* wave texture */
1588 #define SHD_WAVE_BANDS 0
1589 #define SHD_WAVE_RINGS 1
1590 
1591 enum {
1596 };
1597 
1598 enum {
1603 };
1604 
1605 enum {
1609 };
1610 
1611 /* sky texture */
1612 #define SHD_SKY_PREETHAM 0
1613 #define SHD_SKY_HOSEK 1
1614 #define SHD_SKY_NISHITA 2
1615 
1616 /* environment texture */
1617 #define SHD_PROJ_EQUIRECTANGULAR 0
1618 #define SHD_PROJ_MIRROR_BALL 1
1619 
1620 #define SHD_IMAGE_EXTENSION_REPEAT 0
1621 #define SHD_IMAGE_EXTENSION_EXTEND 1
1622 #define SHD_IMAGE_EXTENSION_CLIP 2
1623 
1624 /* image texture */
1625 #define SHD_PROJ_FLAT 0
1626 #define SHD_PROJ_BOX 1
1627 #define SHD_PROJ_SPHERE 2
1628 #define SHD_PROJ_TUBE 3
1629 
1630 /* image texture interpolation */
1631 #define SHD_INTERP_LINEAR 0
1632 #define SHD_INTERP_CLOSEST 1
1633 #define SHD_INTERP_CUBIC 2
1634 #define SHD_INTERP_SMART 3
1635 
1636 /* tangent */
1637 #define SHD_TANGENT_RADIAL 0
1638 #define SHD_TANGENT_UVMAP 1
1639 
1640 /* tangent */
1641 #define SHD_TANGENT_AXIS_X 0
1642 #define SHD_TANGENT_AXIS_Y 1
1643 #define SHD_TANGENT_AXIS_Z 2
1644 
1645 /* normal map, displacement space */
1646 #define SHD_SPACE_TANGENT 0
1647 #define SHD_SPACE_OBJECT 1
1648 #define SHD_SPACE_WORLD 2
1649 #define SHD_SPACE_BLENDER_OBJECT 3
1650 #define SHD_SPACE_BLENDER_WORLD 4
1651 
1652 #define SHD_AO_INSIDE 1
1653 #define SHD_AO_LOCAL 2
1654 
1656 enum {
1661 };
1662 
1664 enum {
1670 };
1671 
1672 /* math node clamp */
1673 #define SHD_MATH_CLAMP 1
1674 
1675 typedef enum NodeMathOperation {
1717 
1723 
1728 
1733 
1750 
1755 
1760 
1764 
1765 typedef enum NodeCompareMode {
1772 
1773 typedef enum NodeCompareOperation {
1783 
1790 
1792 enum {
1795 };
1796 
1798 enum {
1803 };
1804 
1805 /* mix rgb node flags */
1806 #define SHD_MIXRGB_USE_ALPHA 1
1807 #define SHD_MIXRGB_CLAMP 2
1808 
1809 /* Subsurface. */
1810 
1811 enum {
1812 #ifdef DNA_DEPRECATED_ALLOW
1813  SHD_SUBSURFACE_COMPATIBLE = 0, /* Deprecated */
1814  SHD_SUBSURFACE_CUBIC = 1,
1815  SHD_SUBSURFACE_GAUSSIAN = 2,
1816 #endif
1820 };
1821 
1822 /* blur node */
1823 #define CMP_NODE_BLUR_ASPECT_NONE 0
1824 #define CMP_NODE_BLUR_ASPECT_Y 1
1825 #define CMP_NODE_BLUR_ASPECT_X 2
1826 
1827 /* wrapping */
1828 #define CMP_NODE_WRAP_NONE 0
1829 #define CMP_NODE_WRAP_X 1
1830 #define CMP_NODE_WRAP_Y 2
1831 #define CMP_NODE_WRAP_XY 3
1832 
1833 #define CMP_NODE_MASK_MBLUR_SAMPLES_MAX 64
1834 
1835 /* image */
1836 #define CMP_NODE_IMAGE_USE_STRAIGHT_OUTPUT 1
1837 
1838 /* viewer and composite output. */
1839 #define CMP_NODE_OUTPUT_IGNORE_ALPHA 1
1840 
1841 /* Plane track deform node. */
1842 
1843 enum {
1845 };
1846 
1847 /* Stabilization node. */
1848 
1849 enum {
1851 };
1852 
1853 /* Set Alpha Node. */
1854 
1856 typedef enum CMPNodeSetAlphaMode {
1860 
1861 /* Denoise Node. */
1862 
1869 
1870 /* Color combine/separate modes */
1871 
1879 
1880 #define CMP_NODE_PLANETRACKDEFORM_MBLUR_SAMPLES_MAX 64
1881 
1882 /* Point Density shader node */
1883 
1884 enum {
1887 };
1888 
1889 enum {
1892 };
1893 
1894 enum {
1898 };
1899 
1900 enum {
1904 };
1905 
1906 /* Output shader node */
1907 
1913 
1914 /* Geometry Nodes */
1915 
1921 
1927 
1932 
1939 
1942  GEO_NODE_CURVE_HANDLE_RIGHT = (1 << 1)
1944 
1949 
1957 
1962 
1968 
1973 
1978 
1984 
1991 
1996 
2001 
2007 
2012 
2017 
2022 
2027 
2032 
2037 
2045 
2050 
2056 
2061 
2066 
2072 
2077 
2082 
2089 
2095 
2103 
2111 
2121 
2127 
2131 
2136 
2137 typedef enum NodeCombSepColorMode {
2142 
2143 #ifdef __cplusplus
2144 }
2145 #endif
ID and Library types, which are fundamental for sdna.
These structs are the foundation for all linked lists in the library system.
struct bNodeInstanceKey bNodeInstanceKey
@ SHD_POINTDENSITY_SOURCE_PSYS
@ SHD_POINTDENSITY_SOURCE_OBJECT
NodeVectorMathOperation
@ NODE_VECTOR_MATH_NORMALIZE
@ NODE_VECTOR_MATH_LENGTH
@ NODE_VECTOR_MATH_CROSS_PRODUCT
@ NODE_VECTOR_MATH_CEIL
@ NODE_VECTOR_MATH_MODULO
@ NODE_VECTOR_MATH_ADD
@ NODE_VECTOR_MATH_COSINE
@ NODE_VECTOR_MATH_REFLECT
@ NODE_VECTOR_MATH_WRAP
@ 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_FLOOR
@ NODE_VECTOR_MATH_SNAP
@ NODE_VECTOR_MATH_SINE
@ NODE_VECTOR_MATH_FRACTION
@ NODE_VECTOR_MATH_PROJECT
@ NODE_VECTOR_MATH_MULTIPLY
@ NODE_VECTOR_MATH_SCALE
@ NODE_VECTOR_MATH_MAXIMUM
@ NODE_VECTOR_MATH_FACEFORWARD
@ NODE_VECTOR_MATH_SUBTRACT
@ NODE_VECTOR_MATH_MULTIPLY_ADD
@ NODE_VECTOR_MATH_MINIMUM
struct bNodeSocketValueFloat bNodeSocketValueFloat
struct NodeShaderOutputAOV NodeShaderOutputAOV
struct NodeGeometryCurvePrimitiveBezierSegment NodeGeometryCurvePrimitiveBezierSegment
GeometryNodeMeshCircleFillType
@ GEO_NODE_MESH_CIRCLE_FILL_NGON
@ GEO_NODE_MESH_CIRCLE_FILL_TRIANGLE_FAN
@ GEO_NODE_MESH_CIRCLE_FILL_NONE
GeometryNodeTriangulateQuads
@ 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
GeometryNodeProximityTargetType
@ GEO_NODE_PROX_TARGET_EDGES
@ GEO_NODE_PROX_TARGET_POINTS
@ GEO_NODE_PROX_TARGET_FACES
GeometryNodeCurvePrimitiveLineMode
@ GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_POINTS
@ GEO_NODE_CURVE_PRIMITIVE_LINE_MODE_DIRECTION
CMPNodeCombSepColorMode
@ 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
struct NodeShaderVertexColor NodeShaderVertexColor
@ CMP_NODE_DILATEERODE_STEP
@ CMP_NODE_DILATEERODE_DISTANCE_THRESH
@ CMP_NODE_DILATEERODE_DISTANCE_FEATHER
@ CMP_NODE_DILATEERODE_DISTANCE
struct NodeKeyingData NodeKeyingData
struct bNodePreview bNodePreview
eNodeTreeExecutionMode
@ NTREE_EXECUTION_MODE_TILED
@ NTREE_EXECUTION_MODE_FULL_FRAME
struct NodeShaderTexIES NodeShaderTexIES
struct NodeTrackPosData NodeTrackPosData
struct NodeGeometryCurvePrimitiveQuad NodeGeometryCurvePrimitiveQuad
struct NodeEllipseMask NodeEllipseMask
struct NodeImageAnim NodeImageAnim
@ SHD_SUBSURFACE_BURLEY
@ SHD_SUBSURFACE_RANDOM_WALK_FIXED_RADIUS
@ SHD_SUBSURFACE_RANDOM_WALK
struct NodeImageFile NodeImageFile
struct NodeBokehImage NodeBokehImage
struct NodeGeometrySetCurveHandlePositions NodeGeometrySetCurveHandlePositions
struct NodeMapRange NodeMapRange
GeometryNodeUVUnwrapMethod
@ GEO_NODE_UV_UNWRAP_METHOD_CONFORMAL
@ GEO_NODE_UV_UNWRAP_METHOD_ANGLE_BASED
@ NODE_MAP_RANGE_STEPPED
@ NODE_MAP_RANGE_SMOOTHERSTEP
@ NODE_MAP_RANGE_SMOOTHSTEP
@ NODE_MAP_RANGE_LINEAR
GeometryNodeStringToCurvesAlignXMode
@ 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
struct NodeSetAlpha NodeSetAlpha
NodeMathOperation
@ NODE_MATH_SINH
@ NODE_MATH_SMOOTH_MIN
@ NODE_MATH_TRUNC
@ NODE_MATH_COSH
@ NODE_MATH_SIGN
@ NODE_MATH_DEGREES
@ NODE_MATH_MODULO
@ NODE_MATH_ABSOLUTE
@ NODE_MATH_DIVIDE
@ NODE_MATH_SINE
@ NODE_MATH_ARCTAN2
@ NODE_MATH_ARCCOSINE
@ NODE_MATH_MULTIPLY_ADD
@ NODE_MATH_POWER
@ NODE_MATH_WRAP
@ NODE_MATH_ARCTANGENT
@ NODE_MATH_MINIMUM
@ NODE_MATH_SQRT
@ NODE_MATH_CEIL
@ NODE_MATH_TANH
@ NODE_MATH_GREATER_THAN
@ NODE_MATH_ADD
@ NODE_MATH_FRACTION
@ NODE_MATH_EXPONENT
@ NODE_MATH_LESS_THAN
@ NODE_MATH_ARCSINE
@ NODE_MATH_MAXIMUM
@ NODE_MATH_LOGARITHM
@ NODE_MATH_COMPARE
@ NODE_MATH_INV_SQRT
@ NODE_MATH_MULTIPLY
@ NODE_MATH_PINGPONG
@ NODE_MATH_ROUND
@ NODE_MATH_FLOOR
@ NODE_MATH_SUBTRACT
@ NODE_MATH_COSINE
@ NODE_MATH_SNAP
@ NODE_MATH_TANGENT
@ NODE_MATH_SMOOTH_MAX
@ NODE_MATH_RADIANS
struct NodeGeometryPointsToVolume NodeGeometryPointsToVolume
struct NodeCombSepColor NodeCombSepColor
GeometryNodeScaleElementsMode
@ GEO_NODE_SCALE_ELEMENTS_SINGLE_AXIS
@ GEO_NODE_SCALE_ELEMENTS_UNIFORM
struct NodeTexChecker NodeTexChecker
struct NodeTexMusgrave NodeTexMusgrave
struct bNodeSocketRuntimeHandle bNodeSocketRuntimeHandle
struct NodeColorspill NodeColorspill
struct NodeDeclarationHandle NodeDeclarationHandle
@ SHD_WAVE_PROFILE_SIN
@ SHD_WAVE_PROFILE_TRI
@ SHD_WAVE_PROFILE_SAW
struct NodeCMPCombSepColor NodeCMPCombSepColor
struct bNodeSocketValueInt bNodeSocketValueInt
struct NodeGlare NodeGlare
struct NodeTexBrick NodeTexBrick
struct NodeGeometrySeparateGeometry NodeGeometrySeparateGeometry
struct NodeImageMultiFileSocket NodeImageMultiFileSocket
@ 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
struct NodeTexGradient NodeTexGradient
struct NodeTexVoronoi NodeTexVoronoi
struct NodeInputColor NodeInputColor
NodeShaderOutputTarget
@ SHD_OUTPUT_CYCLES
@ SHD_OUTPUT_ALL
@ SHD_OUTPUT_EEVEE
struct NodeAntiAliasingData NodeAntiAliasingData
struct NodeSunBeams NodeSunBeams
struct NodeGeometryMeshCylinder NodeGeometryMeshCylinder
struct NodeBilateralBlurData NodeBilateralBlurData
struct NodeBoxMask NodeBoxMask
@ CMP_NODEFLAG_STABILIZE_INVERSE
struct bNodeSocketValueRGBA bNodeSocketValueRGBA
struct NodeTranslateData NodeTranslateData
struct NodeInputBool NodeInputBool
@ SHD_WAVE_BANDS_DIRECTION_Y
@ SHD_WAVE_BANDS_DIRECTION_X
@ SHD_WAVE_BANDS_DIRECTION_Z
@ SHD_WAVE_BANDS_DIRECTION_DIAGONAL
struct NodeAccumulateField NodeAccumulateField
GeometryNodeCurvePrimitiveArcMode
@ GEO_NODE_CURVE_PRIMITIVE_ARC_TYPE_POINTS
@ GEO_NODE_CURVE_PRIMITIVE_ARC_TYPE_RADIUS
GeometryNodeCurveHandleMode
@ GEO_NODE_CURVE_HANDLE_RIGHT
@ GEO_NODE_CURVE_HANDLE_LEFT
struct bNodeSocketValueImage bNodeSocketValueImage
struct NodeFunctionCompare NodeFunctionCompare
struct NodeGeometryViewer NodeGeometryViewer
struct NodeGeometrySubdivisionSurface NodeGeometrySubdivisionSurface
GeometryNodeRealizeInstancesFlag
@ GEO_NODE_REALIZE_INSTANCES_LEGACY_BEHAVIOR
struct NodeShaderTexPointDensity NodeShaderTexPointDensity
GeometryNodeTriangulateNGons
@ GEO_NODE_TRIANGULATE_NGON_EARCLIP
@ GEO_NODE_TRIANGULATE_NGON_BEAUTY
struct NodeImageLayer NodeImageLayer
struct NodeGeometryCurvePrimitiveArc NodeGeometryCurvePrimitiveArc
struct CryptomatteLayer CryptomatteLayer
struct NodeVertexCol NodeVertexCol
NodeAlignEulerToVectorAxis
@ FN_NODE_ALIGN_EULER_TO_VECTOR_AXIS_Z
@ FN_NODE_ALIGN_EULER_TO_VECTOR_AXIS_Y
@ FN_NODE_ALIGN_EULER_TO_VECTOR_AXIS_X
struct NodeInputString NodeInputString
struct bNodeRuntimeHandle bNodeRuntimeHandle
GeometryNodeStringToCurvesPivotMode
@ 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
struct NodeSwitch NodeSwitch
struct NodeShaderUVMap NodeShaderUVMap
@ SHD_VORONOI_F2
@ SHD_VORONOI_SMOOTH_F1
@ SHD_VORONOI_DISTANCE_TO_EDGE
@ SHD_VORONOI_F1
@ SHD_VORONOI_N_SPHERE_RADIUS
struct SocketDeclarationHandle SocketDeclarationHandle
@ SHD_POINTDENSITY_SPACE_WORLD
@ SHD_POINTDENSITY_SPACE_OBJECT
struct NodeGeometryMeshCircle NodeGeometryMeshCircle
struct NodeGeometryVolumeToMesh NodeGeometryVolumeToMesh
GeometryNodeMeshLineCountMode
@ GEO_NODE_MESH_LINE_COUNT_RESOLUTION
@ GEO_NODE_MESH_LINE_COUNT_TOTAL
struct NodeTexBase NodeTexBase
NodeAlignEulerToVectorPivotAxis
@ 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
struct bNodeSocketValueVector bNodeSocketValueVector
@ NODE_MAPPING_TYPE_POINT
@ NODE_MAPPING_TYPE_VECTOR
@ NODE_MAPPING_TYPE_TEXTURE
@ NODE_MAPPING_TYPE_NORMAL
struct NodeHueSat NodeHueSat
struct bNodeSocketValueString bNodeSocketValueString
FunctionNodeRotateEulerType
@ FN_NODE_ROTATE_EULER_TYPE_EULER
@ FN_NODE_ROTATE_EULER_TYPE_AXIS_ANGLE
@ CMP_NODEFLAG_PLANETRACKDEFORM_MOTION_BLUR
GeometryNodeExtrudeMeshMode
@ GEO_NODE_EXTRUDE_MESH_FACES
@ GEO_NODE_EXTRUDE_MESH_VERTICES
@ GEO_NODE_EXTRUDE_MESH_EDGES
struct NodeGeometryCurveSplineType NodeGeometryCurveSplineType
GeometryNodeCurveResampleMode
@ GEO_NODE_CURVE_RESAMPLE_LENGTH
@ GEO_NODE_CURVE_RESAMPLE_EVALUATED
@ GEO_NODE_CURVE_RESAMPLE_COUNT
struct NodeGeometryRaycast NodeGeometryRaycast
@ SHD_WAVE_RINGS_DIRECTION_Z
@ SHD_WAVE_RINGS_DIRECTION_Y
@ SHD_WAVE_RINGS_DIRECTION_X
@ SHD_WAVE_RINGS_DIRECTION_SPHERICAL
struct NodeGeometryMeshToPoints NodeGeometryMeshToPoints
struct NodeDenoise NodeDenoise
struct NodeKeyingScreenData NodeKeyingScreenData
struct NodeShaderScript NodeShaderScript
struct NodeTexMagic NodeTexMagic
struct NodeGeometryCurveToPoints NodeGeometryCurveToPoints
GeometryNodeCurveSampleMode
@ GEO_NODE_CURVE_SAMPLE_FACTOR
@ GEO_NODE_CURVE_SAMPLE_LENGTH
GeometryNodeMeshToPointsMode
@ 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
struct NodeLensDist NodeLensDist
GeometryNodeCurveFillMode
@ GEO_NODE_CURVE_FILL_MODE_TRIANGULATED
@ GEO_NODE_CURVE_FILL_MODE_NGONS
struct NodeCryptomatte_Runtime NodeCryptomatte_Runtime
struct NodeChroma NodeChroma
GeometryNodeDistributePointsOnFacesMode
@ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM
@ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON
struct NodeShaderPrincipled NodeShaderPrincipled
eNodeSocketInOut
@ SOCK_OUT
@ SOCK_IN
struct NodeGeometryCurveFill NodeGeometryCurveFill
struct NodeGeometryInputNamedAttribute NodeGeometryInputNamedAttribute
struct NodeGeometryStringToCurves NodeGeometryStringToCurves
@ NODE_CLAMP_RANGE
@ NODE_CLAMP_MINMAX
struct NodeMask NodeMask
@ SHD_POINTDENSITY_COLOR_VERTNOR
@ SHD_POINTDENSITY_COLOR_VERTWEIGHT
@ SHD_POINTDENSITY_COLOR_VERTCOL
struct NodeGeometryStoreNamedAttribute NodeGeometryStoreNamedAttribute
struct bNodeLink bNodeLink
struct NodeShaderVectTransform NodeShaderVectTransform
@ CMP_NODE_INPAINT_SIMPLE
CMPNodeSetAlphaMode
@ CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA
@ CMP_NODE_SETALPHA_MODE_APPLY
struct NodeGeometryUVUnwrap NodeGeometryUVUnwrap
eNodeTreeRuntimeFlag
@ NTREE_RUNTIME_FLAG_HAS_MATERIAL_OUTPUT
@ NTREE_RUNTIME_FLAG_HAS_IMAGE_ANIMATION
GeometryNodeMergeByDistanceMode
@ GEO_NODE_MERGE_BY_DISTANCE_MODE_ALL
@ GEO_NODE_MERGE_BY_DISTANCE_MODE_CONNECTED
struct NodeGeometryDeleteGeometry NodeGeometryDeleteGeometry
@ SHD_VORONOI_EUCLIDEAN
@ SHD_VORONOI_CHEBYCHEV
@ SHD_VORONOI_MANHATTAN
@ SHD_VORONOI_MINKOWSKI
struct NodeTwoXYs NodeTwoXYs
GeometryNodeMeshLineMode
@ GEO_NODE_MESH_LINE_MODE_END_POINTS
@ GEO_NODE_MESH_LINE_MODE_OFFSET
eNodeSocketFlag
@ SOCK_HIDE_LABEL
@ SOCK_HIDE_VALUE
@ SOCK_MULTI_INPUT
@ SOCK_IN_USE
@ SOCK_COLLAPSED
@ SOCK_HIDDEN
@ SOCK_COMPACT
@ SOCK_UNAVAIL
@ SOCK_NO_INTERNAL_LINK
@ SOCK_AUTO_HIDDEN__DEPRECATED
GeometryNodeStringToCurvesAlignYMode
@ 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
struct NodeShaderTangent NodeShaderTangent
struct NodeGeometryImageTexture NodeGeometryImageTexture
struct NodeTexEnvironment NodeTexEnvironment
struct bNodeSocketValueCollection bNodeSocketValueCollection
struct bNode bNode
struct CryptomatteEntry CryptomatteEntry
eNodeSocketDisplayShape
@ 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
eNodeSocketDatatype
@ SOCK_INT
@ SOCK_TEXTURE
@ __SOCK_MESH
@ SOCK_VECTOR
@ SOCK_BOOLEAN
@ SOCK_MATERIAL
@ SOCK_SHADER
@ SOCK_FLOAT
@ SOCK_IMAGE
@ SOCK_COLLECTION
@ SOCK_CUSTOM
@ SOCK_GEOMETRY
@ SOCK_OBJECT
@ SOCK_STRING
@ SOCK_RGBA
struct NodeShaderNormalMap NodeShaderNormalMap
struct NodeTonemap NodeTonemap
struct NodeGeometryCurveResample NodeGeometryCurveResample
struct NodeTwoFloats NodeTwoFloats
struct ColorCorrectionData ColorCorrectionData
GeometryNodePointsToVolumeResolutionMode
@ 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
NodeCombSepColorMode
@ NODE_COMBSEP_COLOR_RGB
@ NODE_COMBSEP_COLOR_HSV
@ NODE_COMBSEP_COLOR_HSL
GeometryNodeCurvePrimitiveQuadMode
@ 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
struct NodeRandomValue NodeRandomValue
struct NodeGeometryTransferAttribute NodeGeometryTransferAttribute
struct NodeInputVector NodeInputVector
struct NodeGeometryCurveSetHandles NodeGeometryCurveSetHandles
struct NodeTexNoise NodeTexNoise
struct NodeTexWave NodeTexWave
struct NodeShaderAttribute NodeShaderAttribute
@ SHD_POINTDENSITY_COLOR_PARTSPEED
@ SHD_POINTDENSITY_COLOR_PARTVEL
@ SHD_POINTDENSITY_COLOR_PARTAGE
struct NodeDBlurData NodeDBlurData
struct NodeGeometryObjectInfo NodeGeometryObjectInfo
FunctionNodeRotateEulerSpace
@ FN_NODE_ROTATE_EULER_SPACE_OBJECT
@ FN_NODE_ROTATE_EULER_SPACE_LOCAL
GeometryNodeBooleanOperation
@ GEO_NODE_BOOLEAN_DIFFERENCE
@ GEO_NODE_BOOLEAN_UNION
@ GEO_NODE_BOOLEAN_INTERSECT
struct NodeGeometryMeshLine NodeGeometryMeshLine
struct bNodeSocketValueBoolean bNodeSocketValueBoolean
struct NodeGeometryAttributeCapture NodeGeometryAttributeCapture
struct bNodeTree bNodeTree
struct bNodeInstanceHashEntry bNodeInstanceHashEntry
struct NodeInputInt NodeInputInt
struct NodeBlurData NodeBlurData
struct NodeScriptDict NodeScriptDict
struct NodeDefocus NodeDefocus
struct NodeGeometryProximity NodeGeometryProximity
GeometryNodeRaycastMapMode
@ GEO_NODE_RAYCAST_NEAREST
@ GEO_NODE_RAYCAST_INTERPOLATED
struct NodeColorCorrection NodeColorCorrection
GeometryNodeStringToCurvesOverflowMode
@ GEO_NODE_STRING_TO_CURVES_MODE_TRUNCATE
@ GEO_NODE_STRING_TO_CURVES_MODE_SCALE_TO_FIT
@ GEO_NODE_STRING_TO_CURVES_MODE_OVERFLOW
struct NodeGeometryMergeByDistance NodeGeometryMergeByDistance
struct NodeFrame NodeFrame
struct NodeGeometryExtrudeMesh NodeGeometryExtrudeMesh
struct NodeTexSky NodeTexSky
GeometryNodeCurveHandleType
@ GEO_NODE_CURVE_HANDLE_ALIGN
@ GEO_NODE_CURVE_HANDLE_AUTO
@ GEO_NODE_CURVE_HANDLE_FREE
@ GEO_NODE_CURVE_HANDLE_VECTOR
NodeBooleanMathOperation
@ NODE_BOOLEAN_MATH_IMPLY
@ NODE_BOOLEAN_MATH_AND
@ NODE_BOOLEAN_MATH_NAND
@ NODE_BOOLEAN_MATH_XOR
@ NODE_BOOLEAN_MATH_NOT
@ NODE_BOOLEAN_MATH_OR
@ NODE_BOOLEAN_MATH_NIMPLY
@ NODE_BOOLEAN_MATH_XNOR
@ NODE_BOOLEAN_MATH_NOR
GeometryNodeTransformSpace
@ GEO_NODE_TRANSFORM_SPACE_RELATIVE
@ GEO_NODE_TRANSFORM_SPACE_ORIGINAL
FloatToIntRoundingMode
@ FN_NODE_FLOAT_TO_INT_TRUNCATE
@ FN_NODE_FLOAT_TO_INT_CEIL
@ FN_NODE_FLOAT_TO_INT_ROUND
@ FN_NODE_FLOAT_TO_INT_FLOOR
struct NodeGeometryCurveFillet NodeGeometryCurveFillet
struct NodeGeometryCurvePrimitiveLine NodeGeometryCurvePrimitiveLine
struct NodeGeometryCollectionInfo NodeGeometryCollectionInfo
struct NodeGeometryMeshCone NodeGeometryMeshCone
GeometryNodeDeleteGeometryMode
@ GEO_NODE_DELETE_GEOMETRY_MODE_EDGE_FACE
@ GEO_NODE_DELETE_GEOMETRY_MODE_ONLY_FACE
@ GEO_NODE_DELETE_GEOMETRY_MODE_ALL
struct NodeGeometryDuplicateElements NodeGeometryDuplicateElements
struct NodeGeometryCurvePrimitiveCircle NodeGeometryCurvePrimitiveCircle
GeometryNodeCurvePrimitiveBezierSegmentMode
@ GEO_NODE_CURVE_PRIMITIVE_BEZIER_SEGMENT_POSITION
@ GEO_NODE_CURVE_PRIMITIVE_BEZIER_SEGMENT_OFFSET
@ SHD_ATTRIBUTE_OBJECT
@ SHD_ATTRIBUTE_GEOMETRY
@ SHD_ATTRIBUTE_INSTANCER
struct NodeGeometryMeshToVolume NodeGeometryMeshToVolume
struct NodeGeometryCurveSelectHandles NodeGeometryCurveSelectHandles
struct NodeDilateErode NodeDilateErode
struct bNodeTreeRuntimeHandle bNodeTreeRuntimeHandle
struct NodeGeometryCurveSample NodeGeometryCurveSample
struct NodeTexImage NodeTexImage
struct TexNodeOutput TexNodeOutput
struct NodeImageMultiFile NodeImageMultiFile
@ CMP_NODE_MASKTYPE_NOT
@ CMP_NODE_MASKTYPE_SUBTRACT
@ CMP_NODE_MASKTYPE_MULTIPLY
@ CMP_NODE_MASKTYPE_ADD
struct bNodeSocketValueTexture bNodeSocketValueTexture
struct bNodeSocketValueMaterial bNodeSocketValueMaterial
struct NodeColorBalance NodeColorBalance
struct bNodeSocket bNodeSocket
struct NodeConvertColorSpace NodeConvertColorSpace
NodeCompareMode
@ NODE_COMPARE_MODE_ELEMENT
@ NODE_COMPARE_MODE_LENGTH
@ NODE_COMPARE_MODE_DOT_PRODUCT
@ NODE_COMPARE_MODE_AVERAGE
@ NODE_COMPARE_MODE_DIRECTION
struct bNodeSocketValueObject bNodeSocketValueObject
struct NodePlaneTrackDeformData NodePlaneTrackDeformData
struct NodeCryptomatte NodeCryptomatte
struct NodeGeometryCurveTrim NodeGeometryCurveTrim
GeometryNodeAttributeTransferMode
@ GEO_NODE_ATTRIBUTE_TRANSFER_NEAREST_FACE_INTERPOLATED
@ GEO_NODE_ATTRIBUTE_TRANSFER_INDEX
@ GEO_NODE_ATTRIBUTE_TRANSFER_NEAREST
struct bNodeStack bNodeStack
GeometryNodeCurvePrimitiveCircleMode
@ GEO_NODE_CURVE_PRIMITIVE_CIRCLE_TYPE_RADIUS
@ GEO_NODE_CURVE_PRIMITIVE_CIRCLE_TYPE_POINTS
NodeCompareOperation
@ NODE_COMPARE_NOT_EQUAL
@ NODE_COMPARE_LESS_EQUAL
@ NODE_COMPARE_COLOR_BRIGHTER
@ NODE_COMPARE_EQUAL
@ NODE_COMPARE_GREATER_EQUAL
@ NODE_COMPARE_GREATER_THAN
@ NODE_COMPARE_COLOR_DARKER
@ NODE_COMPARE_LESS_THAN
CMPNodeDenoisePrefilter
@ CMP_NODE_DENOISE_PREFILTER_FAST
@ CMP_NODE_DENOISE_PREFILTER_NONE
@ CMP_NODE_DENOISE_PREFILTER_ACCURATE
GeometryNodeCurveFilletMode
@ GEO_NODE_CURVE_FILLET_BEZIER
@ GEO_NODE_CURVE_FILLET_POLY
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
Definition: btVector3.h:356
SyclQueue void void size_t num_bytes void
#define str(s)
unsigned char uint8_t
Definition: stdint.h:78
signed char int8_t
Definition: stdint.h:75
struct CryptomatteEntry * next
struct CryptomatteEntry * prev
struct CryptomatteEntry * next
struct CryptomatteEntry * prev
Definition: DNA_ID.h:368
float key[4]
ColorCorrectionData shadows
ColorCorrectionData midtones
ColorCorrectionData master
ColorCorrectionData highlights
NodeCryptomatte_Runtime runtime
short label_size
uint8_t input_type_ray_direction
char _pad1[4]
char angle DNA_DEPRECATED
char angle size
float angle_ofs
char angle _pad0
char angle streaks
float threshold
char angle star_45
int frames DNA_DEPRECATED
char cyclic DNA_DEPRECATED
int nr DNA_DEPRECATED
int sfra DNA_DEPRECATED
char movie DNA_DEPRECATED
char name[1024]
struct ImageFormatData im_format
char pass_name[64]
int pass_index DNA_DEPRECATED
short use_render_format DNA_DEPRECATED
ImageFormatData format
float edge_kernel_tolerance
uint8_t interpolation_type
uint8_t input_type
TexMapping tex_mapping
ColorMapping color_mapping
NodeTexBase base
NodeTexBase base
int color_space DNA_DEPRECATED
NodeTexBase base
ImageUser iuser
NodeTexBase base
int color_space DNA_DEPRECATED
float projection_blend
NodeTexBase base
NodeTexBase base
NodeTexBase base
float sun_elevation
float ozone_density
float air_density
float sun_rotation
NodeTexBase base
float ground_albedo
float dust_density
float sun_intensity
float sun_direction[3]
char _pad[7]
NodeTexBase base
int coloring DNA_DEPRECATED
NodeTexBase base
char tracking_object[64]
bNodeInstanceKey key
unsigned int value
bNodeInstanceHashEntry hash_entry
unsigned char * rect
Defines a socket type.
Definition: BKE_node.h:143
struct Collection * value
struct Image * value
struct Material * value
struct Object * value
char name[64]
IDProperty * prop
char attribute_domain
bNodeSocketRuntimeHandle * runtime
struct bNodeLink * link
struct bNodeSocket *groupsock DNA_DEPRECATED
char description[64]
int own_index DNA_DEPRECATED
char * default_attribute_name
struct bNodeSocket * next
struct bNodeSocket * prev
short stack_type DNA_DEPRECATED
void * default_value
struct bNodeSocketType * typeinfo
short total_inputs
char identifier[64]
char idname[64]
bNodeStack ns DNA_DEPRECATED
int to_index DNA_DEPRECATED
char label[64]
short external
short hasoutput
short hasinput
short sockettype
float vec[4]
short datatype
char _pad[4]
void(* progress)(void *, float progress)
float view_center[2]
bNodeTreeRuntimeHandle * runtime
char idname[64]
short render_quality
int(* test_break)(void *)
short is_updating
void(* update_draw)(void *)
struct bNodeInstanceHash * previews
struct PreviewImage * preview
char _pad[4]
struct bNodeTreeType * typeinfo
struct bGPdata * gpd
short edit_quality
void(* stats_draw)(void *, const char *str)
struct StructRNA * interface_type
ListBase nodes
ListBase inputs
int nodetype DNA_DEPRECATED
ListBase links
bNodeInstanceKey active_viewer_key
rctf viewer_border
ListBase outputs
struct bNodeTreeExec * execdata
struct AnimData * adt
int execution_mode
Defines a node type.
Definition: BKE_node.h:226
short level
short custom1
float locy
int update
float width
struct bNode * original
IDProperty * prop
ListBase inputs
char _pad1[4]
float height
struct bNodeType * typeinfo
struct ID * id
short tmp_flag
float miniwidth
float color[3]
char _pad0
struct bNode * parent
char name[64]
ListBase internal_links
float locx
float anim_init_locx
rctf totr
char iter_flag
short done
struct bNode * prev
rctf prvr
short type
struct bNode * next
bNodeRuntimeHandle * runtime
float custom4
void * storage
char idname[64]
char label[64]
float offsetx
short custom2
ListBase outputs
short preview_ysize
char _pad2[1]
float anim_ofsx
float custom3
float offsety
short preview_xsize
uint8_t need_exec