Blender  V2.93
DNA_node_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2005 Blender Foundation.
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #include "DNA_ID.h"
27 #include "DNA_listBase.h"
28 #include "DNA_scene_types.h" /* for #ImageFormatData */
29 #include "DNA_vec_types.h" /* for #rctf */
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct AnimData;
36 struct Collection;
37 struct ID;
38 struct Image;
39 struct ListBase;
40 struct NodeTreeUIStorage;
41 struct bGPdata;
42 struct bNodeInstanceHash;
43 struct bNodeLink;
44 struct bNodePreview;
45 struct bNodeTreeExec;
46 struct bNodeType;
47 struct uiBlock;
48 
49 #define NODE_MAXSTR 64
50 
51 typedef struct bNodeStack {
52  float vec[4];
53  float min, max;
54  void *data;
56  short hasinput;
58  short hasoutput;
60  short datatype;
62  short sockettype;
64  short is_copy;
66  short external;
67  char _pad[4];
69 
70 /* ns->datatype, shadetree only */
71 #define NS_OSA_VECTORS 1
72 #define NS_OSA_VALUES 2
73 
74 /* node socket/node socket type -b conversion rules */
75 #define NS_CR_CENTER 0
76 #define NS_CR_NONE 1
77 #define NS_CR_FIT_WIDTH 2
78 #define NS_CR_FIT_HEIGHT 3
79 #define NS_CR_FIT 4
80 #define NS_CR_STRETCH 5
81 
82 typedef struct bNodeSocket {
84 
87 
89  char identifier[64];
90 
92  char name[64];
93 
94  /* XXX deprecated, only used for the Image and OutputFile nodes,
95  * should be removed at some point.
96  */
98  void *storage;
99 
100  short type, flag;
103  short limit;
105  short in_out;
109  char idname[64];
110 
111  float locx, locy;
112 
115 
116  /* execution data */
118  short stack_index;
119  /* XXX deprecated, kept for forward compatibility */
120  short stack_type DNA_DEPRECATED;
122  char _pad[1];
123  /* Runtime-only cache of the number of input links, for multi-input sockets. */
125 
127  char label[64];
128  char description[64];
129 
131  void *cache;
132 
133  /* internal data to retrieve relations and groups
134  * DEPRECATED, now uses the generic identifier string instead
135  */
137  int own_index DNA_DEPRECATED;
138  /* XXX deprecated, only used for restoring old group node links */
139  int to_index DNA_DEPRECATED;
140  /* XXX deprecated, still forward compatible since verification
141  * restores pointer from matching own_index. */
142  struct bNodeSocket *groupsock DNA_DEPRECATED;
143 
145  struct bNodeLink *link;
146 
147  /* XXX deprecated, socket input values are stored in default_value now.
148  * kept for forward compatibility */
152 
153 /* sock->type */
154 typedef enum eNodeSocketDatatype {
155  SOCK_CUSTOM = -1, /* socket has no integer type */
161  __SOCK_MESH = 5, /* deprecated */
162  SOCK_INT = 6,
169 
170 /* socket shape */
179 
180 /* socket side (input/output) */
181 typedef enum eNodeSocketInOut {
182  SOCK_IN = 1 << 0,
183  SOCK_OUT = 1 << 1,
185 
186 /* sock->flag, first bit is select */
187 typedef enum eNodeSocketFlag {
189  SOCK_HIDDEN = (1 << 1),
191  SOCK_IN_USE = (1 << 2),
193  SOCK_UNAVAIL = (1 << 3),
194  // /** DEPRECATED dynamic socket (can be modified by user) */
195  // SOCK_DYNAMIC = (1 << 4),
196  // /** DEPRECATED group socket should not be exposed */
197  // SOCK_INTERNAL = (1 << 5),
199  SOCK_COLLAPSED = (1 << 6),
201  SOCK_HIDE_VALUE = (1 << 7),
206  SOCK_COMPACT = (1 << 10),
208  SOCK_MULTI_INPUT = (1 << 11),
210 
211 /* limit data in bNode to what we want to see saved? */
212 typedef struct bNode {
213  struct bNode *next, *prev, *new_node;
214 
217 
221  char idname[64];
222 
224  char name[64];
225  int flag;
226  short type;
228  short done, level;
229 
232 
233  char _pad[1];
234 
236  float color[3];
237 
240  struct bNode *parent;
242  struct ID *id;
244  void *storage;
246  struct bNode *original;
249 
251  float locx, locy;
253  float width, height;
255  float miniwidth;
257  float offsetx, offsety;
261  float anim_ofsx;
262 
264  int update;
265 
267  char label[64];
269  short custom1, custom2;
270  float custom3, custom4;
271 
272  char _pad1[4];
273 
292  short tmp_flag;
296  char iter_flag;
298  struct uiBlock *block;
299 
304  float ssr_id;
309  float sss_id;
311 
312 /* node->flag */
313 #define NODE_SELECT 1
314 #define NODE_OPTIONS 2
315 #define NODE_PREVIEW 4
316 #define NODE_HIDDEN 8
317 #define NODE_ACTIVE 16
318 #define NODE_ACTIVE_ID 32
319 #define NODE_DO_OUTPUT 64
320 #define __NODE_GROUP_EDIT 128 /* DEPRECATED */
321 /* free test flag, undefined */
322 #define NODE_TEST 256
323 /* node is disabled */
324 #define NODE_MUTED 512
325 // #define NODE_CUSTOM_NAME 1024 /* deprecated! */
326 /* group node types: use const outputs by default */
327 #define NODE_CONST_OUTPUT (1 << 11)
328 /* node is always behind others */
329 #define NODE_BACKGROUND (1 << 12)
330 /* automatic flag for nodes included in transforms */
331 #define NODE_TRANSFORM (1 << 13)
332 /* node is active texture */
333 
334 /* note: take care with this flag since its possible it gets
335  * `stuck` inside/outside the active group - which makes buttons
336  * window texture not update, we try to avoid it by clearing the
337  * flag when toggling group editing - Campbell */
338 #define NODE_ACTIVE_TEXTURE (1 << 14)
339 /* use a custom color for the node */
340 #define NODE_CUSTOM_COLOR (1 << 15)
341 /* Node has been initialized
342  * This flag indicates the node->typeinfo->init function has been called.
343  * In case of undefined type at creation time this can be delayed until
344  * until the node type is registered.
345  */
346 #define NODE_INIT (1 << 16)
347 
348 /* do recalc of output, used to skip recalculation of unwanted
349  * composite out nodes when editing tree
350  */
351 #define NODE_DO_OUTPUT_RECALC (1 << 17)
352 /* A preview for the data in this node can be displayed in the spreadsheet editor. */
353 #define NODE_ACTIVE_PREVIEW (1 << 18)
354 
355 /* node->update */
356 /* XXX NODE_UPDATE is a generic update flag. More fine-grained updates
357  * might be used in the future, but currently all work the same way.
358  */
359 #define NODE_UPDATE 0xFFFF /* generic update flag (includes all others) */
360 #define NODE_UPDATE_ID 1 /* associated id data block has changed */
361 #define NODE_UPDATE_OPERATOR 2 /* node update triggered from update operator */
362 
363 /* Unique hash key for identifying node instances
364  * Defined as a struct because DNA does not support other typedefs.
365  */
366 typedef struct bNodeInstanceKey {
367  unsigned int value;
369 
370 /* Base struct for entries in node instance hash.
371  * WARNING: pointers are cast to this struct internally,
372  * it must be first member in hash entry structs!
373  */
374 #
375 #
376 typedef struct bNodeInstanceHashEntry {
378 
379  /* tags for cleaning the cache */
380  short tag;
382 
383 #
384 #
385 typedef struct bNodePreview {
388 
389  unsigned char *rect;
390  short xsize, ysize;
392 
393 typedef struct bNodeLink {
394  struct bNodeLink *next, *prev;
395 
398 
399  int flag;
402 
403 /* link->flag */
404 #define NODE_LINKFLAG_HILITE (1 << 0) /* link has been successfully validated */
405 #define NODE_LINK_VALID (1 << 1)
406 #define NODE_LINK_TEST (1 << 2) /* free test flag, undefined */
407 #define NODE_LINK_TEMP_HIGHLIGHT (1 << 3) /* Link is highlighted for picking. */
408 #define NODE_LINK_MUTED (1 << 4) /* Link is muted. */
409 
410 /* tree->edit_quality/tree->render_quality */
411 #define NTREE_QUALITY_HIGH 0
412 #define NTREE_QUALITY_MEDIUM 1
413 #define NTREE_QUALITY_LOW 2
414 
415 /* tree->chunksize */
416 #define NTREE_CHUNKSIZE_32 32
417 #define NTREE_CHUNKSIZE_64 64
418 #define NTREE_CHUNKSIZE_128 128
419 #define NTREE_CHUNKSIZE_256 256
420 #define NTREE_CHUNKSIZE_512 512
421 #define NTREE_CHUNKSIZE_1024 1024
422 
423 /* the basis for a Node tree, all links and nodes reside internal here */
424 /* only re-usable node trees are in the library though,
425  * materials and textures allocate own tree struct */
426 typedef struct bNodeTree {
429  struct AnimData *adt;
430 
434  char idname[64];
435 
438 
440  struct bGPdata *gpd;
442  float view_center[2];
443 
445 
447  int type, init;
453  int flag;
455  int update;
457  short is_updating;
459  short done;
460  char _pad2[4];
461 
463  int nodetype DNA_DEPRECATED;
464 
471 
473 
474  /* Lists of bNodeSocket to hold default values and own_index.
475  * Warning! Don't make links to these sockets, input/output nodes are used for that.
476  * These sockets are used only for generating external interfaces.
477  */
479 
480  /* Node preview hash table
481  * Only available in base node trees (e.g. scene->node_tree)
482  */
484  /* Defines the node tree instance to use for the "active" context,
485  * in case multiple different editors are used and make context ambiguous.
486  */
488  char _pad[4];
489 
500 
501  /* callbacks */
502  void (*progress)(void *, float progress);
504  void (*stats_draw)(void *, const char *str);
505  int (*test_break)(void *);
506  void (*update_draw)(void *);
507  void *tbh, *prh, *sdh, *udh;
508 
511 
512 /* ntree->type, index */
513 #define NTREE_CUSTOM -1 /* for dynamically registered custom types */
514 #define NTREE_SHADER 0
515 #define NTREE_COMPOSIT 1
516 #define NTREE_TEXTURE 2
517 #define NTREE_GEOMETRY 3
518 
519 /* ntree->init, flag */
520 #define NTREE_TYPE_INIT 1
521 
522 /* ntree->flag */
523 #define NTREE_DS_EXPAND (1 << 0) /* for animation editors */
524 #define NTREE_COM_OPENCL (1 << 1) /* use opencl */
525 #define NTREE_TWO_PASS (1 << 2) /* two pass */
526 #define NTREE_COM_GROUPNODE_BUFFER (1 << 3) /* use groupnode buffers */
527 #define NTREE_VIEWER_BORDER (1 << 4) /* use a border for viewer nodes */
528 /* NOTE: DEPRECATED, use (id->tag & LIB_TAG_LOCALIZED) instead. */
529 
530 /* tree is localized copy, free when deleting node groups */
531 /* #define NTREE_IS_LOCALIZED (1 << 5) */
532 
533 /* ntree->update */
534 typedef enum eNodeTreeUpdate {
535  NTREE_UPDATE = 0xFFFF, /* generic update flag (includes all others) */
536  NTREE_UPDATE_LINKS = (1 << 0), /* links have been added or removed */
537  NTREE_UPDATE_NODES = (1 << 1), /* nodes or sockets have been added or removed */
538  NTREE_UPDATE_GROUP_IN = (1 << 4), /* group inputs have changed */
539  NTREE_UPDATE_GROUP_OUT = (1 << 5), /* group outputs have changed */
540  /* group has changed (generic flag including all other group flags) */
543 
544 /* socket value structs for input buttons
545  * DEPRECATED now using ID properties
546  */
547 
548 typedef struct bNodeSocketValueInt {
550  int subtype;
551  int value;
552  int min, max;
554 
555 typedef struct bNodeSocketValueFloat {
557  int subtype;
558  float value;
559  float min, max;
561 
562 typedef struct bNodeSocketValueBoolean {
563  char value;
565 
566 typedef struct bNodeSocketValueVector {
568  int subtype;
569  float value[3];
570  float min, max;
572 
573 typedef struct bNodeSocketValueRGBA {
574  float value[4];
576 
577 typedef struct bNodeSocketValueString {
578  int subtype;
579  char _pad[4];
581  char value[1024];
583 
584 typedef struct bNodeSocketValueObject {
585  struct Object *value;
587 
588 typedef struct bNodeSocketValueImage {
589  struct Image *value;
591 
593  struct Collection *value;
595 
596 /* data structs, for node->storage */
597 enum {
602 };
603 
604 enum {
609 };
610 
611 enum {
613 };
614 
615 enum {
616  /* CMP_NODEFLAG_MASK_AA = (1 << 0), */ /* DEPRECATED */
619 
620  /* we may want multiple aspect options, exposed as an rna enum */
623 };
624 
625 enum {
628 };
629 
630 typedef struct NodeFrame {
631  short flag;
632  short label_size;
634 
635 /* this one has been replaced with ImageUser, keep it for do_versions() */
636 typedef struct NodeImageAnim {
637  int frames DNA_DEPRECATED;
638  int sfra DNA_DEPRECATED;
640  char cyclic DNA_DEPRECATED;
641  char movie DNA_DEPRECATED;
642  char _pad[2];
644 
645 typedef struct ColorCorrectionData {
646  float saturation;
647  float contrast;
648  float gamma;
649  float gain;
650  float lift;
651  char _pad[4];
653 
654 typedef struct NodeColorCorrection {
660  float endmidtones;
662 
663 typedef struct NodeBokehImage {
664  float angle;
665  int flaps;
666  float rounding;
668  float lensshift;
670 
671 typedef struct NodeBoxMask {
672  float x;
673  float y;
674  float rotation;
675  float height;
676  float width;
677  char _pad[4];
679 
680 typedef struct NodeEllipseMask {
681  float x;
682  float y;
683  float rotation;
684  float height;
685  float width;
686  char _pad[4];
688 
689 /* layer info for image node outputs */
690 typedef struct NodeImageLayer {
691  /* index in the Image->layers->passes lists */
692  int pass_index DNA_DEPRECATED;
693  /* render pass name */
695  char pass_name[64];
697 
698 typedef struct NodeBlurData {
699  short sizex, sizey;
701  short curved;
703  short filtertype;
704  char bokeh, gamma;
708 
709 typedef struct NodeDBlurData {
711  short iter;
712  char wrap, _pad;
714 
715 typedef struct NodeBilateralBlurData {
717  short iter;
718  char _pad[2];
720 
721 typedef struct NodeAntiAliasingData {
722  float threshold;
726 
727 /* NOTE: Only for do-version code. */
728 typedef struct NodeHueSat {
729  float hue, sat, val;
731 
732 typedef struct NodeImageFile {
734  char name[1024];
735  struct ImageFormatData im_format;
736  int sfra, efra;
738 
739 /* XXX first struct fields should match NodeImageFile to ensure forward compatibility */
740 typedef struct NodeImageMultiFile {
742  char base_path[1024];
748  char _pad[4];
750 typedef struct NodeImageMultiFileSocket {
751  /* single layer file output */
752  short use_render_format DNA_DEPRECATED;
756  char _pad1[3];
758  char path[1024];
760 
761  /* multilayer output */
763  char layer[30];
764  char _pad2[2];
766 
767 typedef struct NodeChroma {
768  float t1, t2, t3;
770  float key[4];
773 
774 typedef struct NodeTwoXYs {
775  short x1, x2, y1, y2;
778 
779 typedef struct NodeTwoFloats {
780  float x, y;
782 
783 typedef struct NodeVertexCol {
784  char name[64];
786 
787 /* qdn: Defocus blur node */
788 typedef struct NodeDefocus {
790  short samples, no_zbuf;
792  float rotation;
793  char _pad1[4];
795 
796 typedef struct NodeScriptDict {
798  void *dict;
800  void *node;
802 
803 /* qdn: glare node */
804 typedef struct NodeGlare {
805  char quality, type, iter;
806  /* XXX angle is only kept for backward/forward compatibility,
807  * was used for two different things, see T50736. */
810  float angle_ofs;
811  char _pad1[4];
813 
814 /* qdn: tonemap node */
815 typedef struct NodeTonemap {
816  float key, offset, gamma;
817  float f, m, a, c;
818  int type;
820 
821 /* qdn: lens distortion node */
822 typedef struct NodeLensDist {
823  short jit, proj, fit;
824  char _pad[2];
826 
827 typedef struct NodeColorBalance {
828  /* ASC CDL parameters */
829  float slope[3];
830  float offset[3];
831  float power[3];
833  char _pad[4];
834 
835  /* LGG parameters */
836  float lift[3];
837  float gamma[3];
838  float gain[3];
840 
841 typedef struct NodeColorspill {
842  short limchan, unspill;
843  float limscale;
846 
847 typedef struct NodeDilateErode {
848  char falloff;
850 
851 typedef struct NodeMask {
854 
855 typedef struct NodeSetAlpha {
856  char mode;
858 
859 typedef struct NodeTexBase {
863 
864 typedef struct NodeTexSky {
867  float sun_direction[3];
868  float turbidity;
870  float sun_size;
874  float altitude;
875  float air_density;
878  char sun_disc;
879  char _pad[7];
881 
882 typedef struct NodeTexImage {
885  int color_space DNA_DEPRECATED;
890  char _pad[4];
892 
893 typedef struct NodeTexChecker {
896 
897 typedef struct NodeTexBrick {
900  float offset, squash;
902 
903 typedef struct NodeTexEnvironment {
906  int color_space DNA_DEPRECATED;
909  char _pad[4];
911 
912 typedef struct NodeTexGradient {
915  char _pad[4];
917 
918 typedef struct NodeTexNoise {
921  char _pad[4];
923 
924 typedef struct NodeTexVoronoi {
927  int feature;
928  int distance;
929  int coloring DNA_DEPRECATED;
931 
932 typedef struct NodeTexMusgrave {
937 
938 typedef struct NodeTexWave {
945 
946 typedef struct NodeTexMagic {
948  int depth;
949  char _pad[4];
951 
952 typedef struct NodeShaderAttribute {
953  char name[64];
954  int type;
955  char _pad[4];
957 
958 typedef struct NodeShaderVectTransform {
959  int type;
961  char _pad[4];
963 
967  char _pad[2];
969  float radius;
971  short space;
977  /* Used at runtime only by sampling RNA API. */
980  char _pad2[4];
982 
983 /* TEX_output */
984 typedef struct TexNodeOutput {
985  char name[64];
987 
988 typedef struct NodeKeyingScreenData {
989  char tracking_object[64];
991 
992 typedef struct NodeKeyingData {
1004 
1005 typedef struct NodeTrackPosData {
1007  char track_name[64];
1009 
1010 typedef struct NodeTranslateData {
1012  char relative;
1014 
1018  char flag;
1020  char _pad[2];
1023 
1024 typedef struct NodeShaderScript {
1025  int mode;
1026  int flag;
1027 
1029  char filepath[1024];
1030 
1031  char bytecode_hash[64];
1032  char *bytecode;
1034 
1035 typedef struct NodeShaderTangent {
1037  int axis;
1038  char uv_map[64];
1040 
1041 typedef struct NodeShaderNormalMap {
1042  int space;
1043  char uv_map[64];
1045 
1046 typedef struct NodeShaderUVMap {
1047  char uv_map[64];
1049 
1050 typedef struct NodeShaderVertexColor {
1051  char layer_name[64];
1053 
1054 typedef struct NodeShaderTexIES {
1055  int mode;
1056 
1058  char filepath[1024];
1060 
1061 typedef struct NodeShaderOutputAOV {
1062  char name[64];
1064 
1065 typedef struct NodeSunBeams {
1066  float source[2];
1067 
1068  float ray_length;
1070 
1071 typedef struct CryptomatteEntry {
1075  char name[64];
1076  char _pad[4];
1078 
1079 typedef struct CryptomatteLayer {
1081  char name[64];
1083 
1084 typedef struct NodeCryptomatte_Runtime {
1085  /* Contains `CryptomatteLayer`. */
1087  /* Temp storage for the cryptomatte picker. */
1088  float add[3];
1089  float remove[3];
1091 
1092 typedef struct NodeCryptomatte {
1099 
1100  /* Contains `CryptomatteEntry`. */
1102 
1103  /* MAX_NAME */
1104  char layer_name[64];
1105  /* Stores `entries` as a string for opening in 2.80-2.91. */
1106  char *matte_id;
1107 
1109  /* Number of input sockets. */
1111 
1112  char _pad[4];
1115 
1116 typedef struct NodeDenoise {
1117  char hdr;
1119 
1120 typedef struct NodeAttributeClamp {
1121  /* CustomDataType. */
1123 
1124  /* NodeClampOperation. */
1127 
1128 typedef struct NodeAttributeCompare {
1129  /* FloatCompareOperation. */
1131 
1132  /* GeometryNodeAttributeInputMode */
1135 
1136  char _pad[5];
1138 
1139 typedef struct NodeAttributeMapRange {
1140  /* GeometryNodeAttributeDataType */
1142 
1143  /* NodeMapRangeType. */
1146 
1147 typedef struct NodeAttributeMath {
1148  /* NodeMathOperation. */
1150 
1151  /* GeometryNodeAttributeInputMode */
1156 
1157 typedef struct NodeAttributeMix {
1158  /* e.g. MA_RAMP_BLEND. */
1160 
1161  /* GeometryNodeAttributeInputMode */
1166 
1167 typedef struct NodeAttributeRandomize {
1168  /* CustomDataType. */
1170  /* AttributeDomain. */
1172  /* GeometryNodeAttributeRandomizeMode. */
1174  char _pad[1];
1176 
1177 typedef struct NodeAttributeVectorMath {
1178  /* NodeVectorMathOperation */
1180 
1181  /* GeometryNodeAttributeInputMode */
1186 
1187 typedef struct NodeAttributeColorRamp {
1190 
1191 typedef struct NodeInputVector {
1192  float vector[3];
1194 
1195 typedef struct NodeInputString {
1196  char *string;
1198 
1200  /* GeometryNodeRotatePointsType */
1202  /* GeometryNodeRotatePointsSpace */
1204 
1205  /* GeometryNodeAttributeInputMode */
1209  char _pad[3];
1211 
1213  /* GeometryNodeAlignRotationToVectorAxis */
1215  /* GeometryNodeAlignRotationToVectorPivotAxis */
1217 
1218  /* GeometryNodeAttributeInputMode */
1222 
1223 typedef struct NodeGeometryPointScale {
1224  /* GeometryNodeAttributeInputMode */
1227 
1229  /* GeometryNodeAttributeInputMode */
1232 
1233 typedef struct NodeGeometryObjectInfo {
1234  /* GeometryNodeTransformSpace. */
1237 
1239  /* GeometryNodePointInstanceType. */
1241  /* GeometryNodePointInstanceFlag. */
1244 
1246  /* GeometryNodePointsToVolumeResolutionMode */
1248  /* GeometryNodeAttributeInputMode */
1251 
1253  /* GeometryNodeTransformSpace. */
1256 
1258  /* GeometryNodeAttributeProximityTargetType. */
1261 
1263  /* VolumeToMeshResolutionMode */
1266 
1267 typedef struct NodeAttributeCombineXYZ {
1268  /* GeometryNodeAttributeInputMode. */
1272 
1273  char _pad[1];
1275 
1277  /* GeometryNodeAttributeInputMode. */
1280 
1281 typedef struct NodeAttributeConvert {
1282  /* CustomDataType. */
1284  char _pad[1];
1285  /* AttributeDomain. */
1288 
1289 typedef struct NodeGeometryMeshCircle {
1290  /* GeometryNodeMeshCircleFillType. */
1293 
1295  /* GeometryNodeMeshCircleFillType. */
1298 
1299 typedef struct NodeGeometryMeshCone {
1300  /* GeometryNodeMeshCircleFillType. */
1303 
1304 typedef struct NodeGeometryMeshLine {
1305  /* GeometryNodeMeshLineMode. */
1307  /* GeometryNodeMeshLineCountMode. */
1310 
1311 /* script node mode */
1312 #define NODE_SCRIPT_INTERNAL 0
1313 #define NODE_SCRIPT_EXTERNAL 1
1314 
1315 /* script node flag */
1316 #define NODE_SCRIPT_AUTO_UPDATE 1
1317 
1318 /* IES node mode. */
1319 #define NODE_IES_INTERNAL 0
1320 #define NODE_IES_EXTERNAL 1
1321 
1322 /* frame node flags */
1323 #define NODE_FRAME_SHRINK 1 /* keep the bounding box minimal */
1324 #define NODE_FRAME_RESIZEABLE 2 /* test flag, if frame can be resized by user */
1325 
1326 /* proxy node flags */
1327 #define NODE_PROXY_AUTOTYPE 1 /* automatically change output type based on link */
1328 
1329 /* comp channel matte */
1330 #define CMP_NODE_CHANNEL_MATTE_CS_RGB 1
1331 #define CMP_NODE_CHANNEL_MATTE_CS_HSV 2
1332 #define CMP_NODE_CHANNEL_MATTE_CS_YUV 3
1333 #define CMP_NODE_CHANNEL_MATTE_CS_YCC 4
1334 
1335 /* glossy distributions */
1336 #define SHD_GLOSSY_BECKMANN 0
1337 #define SHD_GLOSSY_SHARP 1
1338 #define SHD_GLOSSY_GGX 2
1339 #define SHD_GLOSSY_ASHIKHMIN_SHIRLEY 3
1340 #define SHD_GLOSSY_MULTI_GGX 4
1341 
1342 /* vector transform */
1343 #define SHD_VECT_TRANSFORM_TYPE_VECTOR 0
1344 #define SHD_VECT_TRANSFORM_TYPE_POINT 1
1345 #define SHD_VECT_TRANSFORM_TYPE_NORMAL 2
1346 
1347 #define SHD_VECT_TRANSFORM_SPACE_WORLD 0
1348 #define SHD_VECT_TRANSFORM_SPACE_OBJECT 1
1349 #define SHD_VECT_TRANSFORM_SPACE_CAMERA 2
1350 
1351 /* attribute */
1352 enum {
1356 };
1357 
1358 /* toon modes */
1359 #define SHD_TOON_DIFFUSE 0
1360 #define SHD_TOON_GLOSSY 1
1361 
1362 /* hair components */
1363 #define SHD_HAIR_REFLECTION 0
1364 #define SHD_HAIR_TRANSMISSION 1
1365 
1366 /* principled hair parametrization */
1367 #define SHD_PRINCIPLED_HAIR_REFLECTANCE 0
1368 #define SHD_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION 1
1369 #define SHD_PRINCIPLED_HAIR_DIRECT_ABSORPTION 2
1370 
1371 /* blend texture */
1372 #define SHD_BLEND_LINEAR 0
1373 #define SHD_BLEND_QUADRATIC 1
1374 #define SHD_BLEND_EASING 2
1375 #define SHD_BLEND_DIAGONAL 3
1376 #define SHD_BLEND_RADIAL 4
1377 #define SHD_BLEND_QUADRATIC_SPHERE 5
1378 #define SHD_BLEND_SPHERICAL 6
1379 
1380 /* noise basis for textures */
1381 #define SHD_NOISE_PERLIN 0
1382 #define SHD_NOISE_VORONOI_F1 1
1383 #define SHD_NOISE_VORONOI_F2 2
1384 #define SHD_NOISE_VORONOI_F3 3
1385 #define SHD_NOISE_VORONOI_F4 4
1386 #define SHD_NOISE_VORONOI_F2_F1 5
1387 #define SHD_NOISE_VORONOI_CRACKLE 6
1388 #define SHD_NOISE_CELL_NOISE 7
1389 
1390 #define SHD_NOISE_SOFT 0
1391 #define SHD_NOISE_HARD 1
1392 
1393 /* Voronoi Texture */
1394 
1395 enum {
1400 };
1401 
1402 enum {
1408 };
1409 
1410 /* musgrave texture */
1411 #define SHD_MUSGRAVE_MULTIFRACTAL 0
1412 #define SHD_MUSGRAVE_FBM 1
1413 #define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL 2
1414 #define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3
1415 #define SHD_MUSGRAVE_HETERO_TERRAIN 4
1416 
1417 /* wave texture */
1418 #define SHD_WAVE_BANDS 0
1419 #define SHD_WAVE_RINGS 1
1420 
1421 enum {
1426 };
1427 
1428 enum {
1433 };
1434 
1435 enum {
1439 };
1440 
1441 /* sky texture */
1442 #define SHD_SKY_PREETHAM 0
1443 #define SHD_SKY_HOSEK 1
1444 #define SHD_SKY_NISHITA 2
1445 
1446 /* environment texture */
1447 #define SHD_PROJ_EQUIRECTANGULAR 0
1448 #define SHD_PROJ_MIRROR_BALL 1
1449 
1450 #define SHD_IMAGE_EXTENSION_REPEAT 0
1451 #define SHD_IMAGE_EXTENSION_EXTEND 1
1452 #define SHD_IMAGE_EXTENSION_CLIP 2
1453 
1454 /* image texture */
1455 #define SHD_PROJ_FLAT 0
1456 #define SHD_PROJ_BOX 1
1457 #define SHD_PROJ_SPHERE 2
1458 #define SHD_PROJ_TUBE 3
1459 
1460 /* image texture interpolation */
1461 #define SHD_INTERP_LINEAR 0
1462 #define SHD_INTERP_CLOSEST 1
1463 #define SHD_INTERP_CUBIC 2
1464 #define SHD_INTERP_SMART 3
1465 
1466 /* tangent */
1467 #define SHD_TANGENT_RADIAL 0
1468 #define SHD_TANGENT_UVMAP 1
1469 
1470 /* tangent */
1471 #define SHD_TANGENT_AXIS_X 0
1472 #define SHD_TANGENT_AXIS_Y 1
1473 #define SHD_TANGENT_AXIS_Z 2
1474 
1475 /* normal map, displacement space */
1476 #define SHD_SPACE_TANGENT 0
1477 #define SHD_SPACE_OBJECT 1
1478 #define SHD_SPACE_WORLD 2
1479 #define SHD_SPACE_BLENDER_OBJECT 3
1480 #define SHD_SPACE_BLENDER_WORLD 4
1481 
1482 #define SHD_AO_INSIDE 1
1483 #define SHD_AO_LOCAL 2
1484 
1485 /* Mapping node vector types */
1486 enum {
1491 };
1492 
1493 /* Rotation node vector types */
1494 enum {
1500 };
1501 
1502 /* math node clamp */
1503 #define SHD_MATH_CLAMP 1
1504 
1505 /* Math node operations. */
1506 typedef enum NodeMathOperation {
1548 
1549 /* Vector Math node operations. */
1555 
1560 
1565 
1581 
1582 /* Boolean math node operations. */
1583 enum {
1587 };
1588 
1589 /* Float compare node operations. */
1598 
1599 /* Clamp node types. */
1600 enum {
1603 };
1604 
1605 /* Map range node types. */
1606 enum {
1611 };
1612 
1613 /* mix rgb node flags */
1614 #define SHD_MIXRGB_USE_ALPHA 1
1615 #define SHD_MIXRGB_CLAMP 2
1616 
1617 /* subsurface */
1618 enum {
1619 #ifdef DNA_DEPRECATED_ALLOW
1620  SHD_SUBSURFACE_COMPATIBLE = 0, /* Deprecated */
1621 #endif
1626 };
1627 
1628 /* blur node */
1629 #define CMP_NODE_BLUR_ASPECT_NONE 0
1630 #define CMP_NODE_BLUR_ASPECT_Y 1
1631 #define CMP_NODE_BLUR_ASPECT_X 2
1632 
1633 /* wrapping */
1634 #define CMP_NODE_WRAP_NONE 0
1635 #define CMP_NODE_WRAP_X 1
1636 #define CMP_NODE_WRAP_Y 2
1637 #define CMP_NODE_WRAP_XY 3
1638 
1639 #define CMP_NODE_MASK_MBLUR_SAMPLES_MAX 64
1640 
1641 /* image */
1642 #define CMP_NODE_IMAGE_USE_STRAIGHT_OUTPUT 1
1643 
1644 /* viewer and composite output. */
1645 #define CMP_NODE_OUTPUT_IGNORE_ALPHA 1
1646 
1647 /* Plane track deform node */
1648 enum {
1650 };
1651 
1652 /* Stabilization node */
1653 enum {
1655 };
1656 
1657 /* Set Alpha Node. */
1658 /* `NodeSetAlpha.mode` */
1659 typedef enum CMPNodeSetAlphaMode {
1663 
1664 #define CMP_NODE_PLANETRACKDEFORM_MBLUR_SAMPLES_MAX 64
1665 
1666 /* Point Density shader node */
1667 
1668 enum {
1671 };
1672 
1673 enum {
1676 };
1677 
1678 enum {
1682 };
1683 
1684 enum {
1688 };
1689 
1690 /* Output shader node */
1691 
1697 
1698 /* Geometry Nodes */
1699 
1705 
1706 /* Boolean Node */
1712 
1713 /* Triangulate Node */
1718 
1725 
1730 
1734 
1743 
1748 
1753 
1760 
1765 
1771 
1778 
1783 
1788 
1794 
1799 
1804 
1805 #ifdef __cplusplus
1806 }
1807 #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
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_MINIMUM
struct bNodeSocketValueFloat bNodeSocketValueFloat
struct NodeShaderOutputAOV NodeShaderOutputAOV
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_FIXED
struct NodeShaderVertexColor NodeShaderVertexColor
struct NodeKeyingData NodeKeyingData
struct bNodePreview bNodePreview
struct NodeShaderTexIES NodeShaderTexIES
struct NodeTrackPosData NodeTrackPosData
struct NodeEllipseMask NodeEllipseMask
struct NodeAttributeColorRamp NodeAttributeColorRamp
struct NodeImageAnim NodeImageAnim
struct NodeImageFile NodeImageFile
struct NodeBokehImage NodeBokehImage
GeometryNodeAttributeRandomizeMode
@ GEO_NODE_ATTRIBUTE_RANDOMIZE_MULTIPLY
@ GEO_NODE_ATTRIBUTE_RANDOMIZE_SUBTRACT
@ GEO_NODE_ATTRIBUTE_RANDOMIZE_REPLACE_CREATE
@ GEO_NODE_ATTRIBUTE_RANDOMIZE_ADD
@ SHD_POINTDENSITY_COLOR_VERTNOR
@ SHD_POINTDENSITY_COLOR_VERTWEIGHT
@ SHD_POINTDENSITY_COLOR_VERTCOL
@ CMP_NODE_MASKTYPE_NOT
@ CMP_NODE_MASKTYPE_SUBTRACT
@ CMP_NODE_MASKTYPE_MULTIPLY
@ CMP_NODE_MASKTYPE_ADD
struct NodeAttributeSeparateXYZ NodeAttributeSeparateXYZ
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
GeometryNodePointInstanceFlag
@ GEO_NODE_POINT_INSTANCE_WHOLE_COLLECTION
@ CMP_NODEFLAG_BLUR_VARIABLE_SIZE
@ CMP_NODEFLAG_BLUR_EXTEND_BOUNDS
struct NodeTexChecker NodeTexChecker
struct NodeTexMusgrave NodeTexMusgrave
struct NodeGeometryRotatePoints NodeGeometryRotatePoints
struct NodeColorspill NodeColorspill
@ NODE_BOOLEAN_MATH_AND
@ NODE_BOOLEAN_MATH_NOT
@ NODE_BOOLEAN_MATH_OR
struct NodeAttributeConvert NodeAttributeConvert
struct bNodeSocketValueInt bNodeSocketValueInt
struct NodeGlare NodeGlare
struct NodeTexBrick NodeTexBrick
struct NodeImageMultiFileSocket NodeImageMultiFileSocket
struct NodeTexGradient NodeTexGradient
struct NodeTexVoronoi NodeTexVoronoi
NodeShaderOutputTarget
@ SHD_OUTPUT_CYCLES
@ SHD_OUTPUT_ALL
@ SHD_OUTPUT_EEVEE
GeometryNodePointDistributeMode
@ GEO_NODE_POINT_DISTRIBUTE_POISSON
@ GEO_NODE_POINT_DISTRIBUTE_RANDOM
@ NODE_MAPPING_TYPE_POINT
@ NODE_MAPPING_TYPE_VECTOR
@ NODE_MAPPING_TYPE_TEXTURE
@ NODE_MAPPING_TYPE_NORMAL
struct NodeAntiAliasingData NodeAntiAliasingData
struct NodeSunBeams NodeSunBeams
@ SHD_WAVE_RINGS_DIRECTION_Z
@ SHD_WAVE_RINGS_DIRECTION_Y
@ SHD_WAVE_RINGS_DIRECTION_X
@ SHD_WAVE_RINGS_DIRECTION_SPHERICAL
struct NodeGeometryMeshCylinder NodeGeometryMeshCylinder
struct NodeBilateralBlurData NodeBilateralBlurData
GeometryNodeRotatePointsSpace
@ GEO_NODE_POINT_ROTATE_SPACE_POINT
@ GEO_NODE_POINT_ROTATE_SPACE_OBJECT
struct NodeBoxMask NodeBoxMask
struct bNodeSocketValueRGBA bNodeSocketValueRGBA
struct NodeTranslateData NodeTranslateData
struct bNodeSocketValueImage bNodeSocketValueImage
struct NodeShaderTexPointDensity NodeShaderTexPointDensity
GeometryNodeTriangulateNGons
@ GEO_NODE_TRIANGULATE_NGON_EARCLIP
@ GEO_NODE_TRIANGULATE_NGON_BEAUTY
struct NodeImageLayer NodeImageLayer
struct CryptomatteLayer CryptomatteLayer
@ CMP_NODEFLAG_PLANETRACKDEFORM_MOTION_BLUR
struct NodeVertexCol NodeVertexCol
@ 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 NodeInputString NodeInputString
@ CMP_NODEFLAG_STABILIZE_INVERSE
struct NodeShaderUVMap NodeShaderUVMap
struct NodeGeometryMeshCircle NodeGeometryMeshCircle
struct NodeGeometryPointScale NodeGeometryPointScale
struct NodeGeometryAlignRotationToVector NodeGeometryAlignRotationToVector
struct NodeGeometryVolumeToMesh NodeGeometryVolumeToMesh
GeometryNodeMeshLineCountMode
@ GEO_NODE_MESH_LINE_COUNT_RESOLUTION
@ GEO_NODE_MESH_LINE_COUNT_TOTAL
struct NodeTexBase NodeTexBase
struct bNodeSocketValueVector bNodeSocketValueVector
struct NodeAttributeRandomize NodeAttributeRandomize
@ NODE_CLAMP_RANGE
@ NODE_CLAMP_MINMAX
struct NodeHueSat NodeHueSat
GeometryNodeAlignRotationToVectorPivotAxis
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_PIVOT_AXIS_X
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_PIVOT_AXIS_Z
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_PIVOT_AXIS_AUTO
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_PIVOT_AXIS_Y
struct bNodeSocketValueString bNodeSocketValueString
@ CMP_NODE_DILATEERODE_STEP
@ CMP_NODE_DILATEERODE_DISTANCE_THRESH
@ CMP_NODE_DILATEERODE_DISTANCE_FEATHER
@ CMP_NODE_DILATEERODE_DISTANCE
@ SHD_ATTRIBUTE_OBJECT
@ SHD_ATTRIBUTE_GEOMETRY
@ SHD_ATTRIBUTE_INSTANCER
struct NodeDenoise NodeDenoise
struct NodeKeyingScreenData NodeKeyingScreenData
struct NodeShaderScript NodeShaderScript
struct NodeTexMagic NodeTexMagic
struct NodeLensDist NodeLensDist
struct NodeCryptomatte_Runtime NodeCryptomatte_Runtime
@ SHD_WAVE_BANDS_DIRECTION_Y
@ SHD_WAVE_BANDS_DIRECTION_X
@ SHD_WAVE_BANDS_DIRECTION_Z
@ SHD_WAVE_BANDS_DIRECTION_DIAGONAL
GeometryNodeAttributeProximityTargetType
@ GEO_NODE_ATTRIBUTE_PROXIMITY_TARGET_GEOMETRY_ELEMENT_FACES
@ GEO_NODE_ATTRIBUTE_PROXIMITY_TARGET_GEOMETRY_ELEMENT_POINTS
@ GEO_NODE_ATTRIBUTE_PROXIMITY_TARGET_GEOMETRY_ELEMENT_EDGES
@ SHD_VORONOI_F2
@ SHD_VORONOI_SMOOTH_F1
@ SHD_VORONOI_DISTANCE_TO_EDGE
@ SHD_VORONOI_F1
@ SHD_VORONOI_N_SPHERE_RADIUS
struct NodeChroma NodeChroma
eNodeSocketInOut
@ SOCK_OUT
@ SOCK_IN
@ SHD_SUBSURFACE_BURLEY
@ SHD_SUBSURFACE_CUBIC
@ SHD_SUBSURFACE_GAUSSIAN
@ SHD_SUBSURFACE_RANDOM_WALK
@ SHD_POINTDENSITY_SOURCE_PSYS
@ SHD_POINTDENSITY_SOURCE_OBJECT
struct NodeMask NodeMask
struct bNodeLink bNodeLink
struct NodeShaderVectTransform NodeShaderVectTransform
CMPNodeSetAlphaMode
@ CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA
@ CMP_NODE_SETALPHA_MODE_APPLY
struct NodeGeometryPointInstance NodeGeometryPointInstance
struct NodeAttributeMix NodeAttributeMix
GeometryNodeRotatePointsType
@ GEO_NODE_POINT_ROTATE_TYPE_EULER
@ GEO_NODE_POINT_ROTATE_TYPE_AXIS_ANGLE
@ SHD_POINTDENSITY_SPACE_WORLD
@ SHD_POINTDENSITY_SPACE_OBJECT
@ NODE_MAP_RANGE_STEPPED
@ NODE_MAP_RANGE_SMOOTHERSTEP
@ NODE_MAP_RANGE_SMOOTHSTEP
@ NODE_MAP_RANGE_LINEAR
struct NodeTwoXYs NodeTwoXYs
GeometryNodeMeshLineMode
@ GEO_NODE_MESH_LINE_MODE_END_POINTS
@ GEO_NODE_MESH_LINE_MODE_OFFSET
eNodeSocketFlag
@ 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
@ CMP_NODEFLAG_MASK_FIXED_SCENE
@ CMP_NODEFLAG_MASK_NO_FEATHER
@ CMP_NODEFLAG_MASK_FIXED
@ CMP_NODEFLAG_MASK_MOTION_BLUR
struct NodeShaderTangent NodeShaderTangent
struct NodeTexEnvironment NodeTexEnvironment
struct bNodeSocketValueCollection bNodeSocketValueCollection
struct bNode bNode
GeometryNodePointInstanceType
@ GEO_NODE_POINT_INSTANCE_TYPE_OBJECT
@ GEO_NODE_POINT_INSTANCE_TYPE_COLLECTION
GeometryNodeAlignRotationToVectorAxis
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Y
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Z
@ GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_X
struct CryptomatteEntry CryptomatteEntry
struct NodeGeometryAttributeProximity NodeGeometryAttributeProximity
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_MESH
@ SOCK_VECTOR
@ SOCK_BOOLEAN
@ SOCK_SHADER
@ SOCK_FLOAT
@ SOCK_IMAGE
@ SOCK_COLLECTION
@ SOCK_CUSTOM
@ SOCK_GEOMETRY
@ SOCK_OBJECT
@ SOCK_STRING
@ SOCK_RGBA
struct NodeShaderNormalMap NodeShaderNormalMap
struct NodeAttributeMapRange NodeAttributeMapRange
struct NodeTonemap NodeTonemap
struct NodeTwoFloats NodeTwoFloats
struct ColorCorrectionData ColorCorrectionData
@ SHD_VORONOI_EUCLIDEAN
@ SHD_VORONOI_CHEBYCHEV
@ SHD_VORONOI_MANHATTAN
@ SHD_VORONOI_MINKOWSKI
GeometryNodePointsToVolumeResolutionMode
@ GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT
@ GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE
struct NodeGeometryPointTranslate NodeGeometryPointTranslate
FloatCompareOperation
@ NODE_FLOAT_COMPARE_GREATER_THAN
@ NODE_FLOAT_COMPARE_GREATER_EQUAL
@ NODE_FLOAT_COMPARE_EQUAL
@ NODE_FLOAT_COMPARE_LESS_EQUAL
@ NODE_FLOAT_COMPARE_LESS_THAN
@ NODE_FLOAT_COMPARE_NOT_EQUAL
struct NodeInputVector NodeInputVector
struct NodeTexNoise NodeTexNoise
struct NodeTexWave NodeTexWave
struct NodeAttributeCompare NodeAttributeCompare
struct NodeShaderAttribute NodeShaderAttribute
struct NodeAttributeVectorMath NodeAttributeVectorMath
struct NodeDBlurData NodeDBlurData
struct NodeGeometryObjectInfo NodeGeometryObjectInfo
@ CMP_NODE_INPAINT_SIMPLE
GeometryNodeBooleanOperation
@ GEO_NODE_BOOLEAN_DIFFERENCE
@ GEO_NODE_BOOLEAN_UNION
@ GEO_NODE_BOOLEAN_INTERSECT
struct NodeGeometryMeshLine NodeGeometryMeshLine
struct bNodeSocketValueBoolean bNodeSocketValueBoolean
struct bNodeTree bNodeTree
struct bNodeInstanceHashEntry bNodeInstanceHashEntry
struct NodeBlurData NodeBlurData
struct NodeScriptDict NodeScriptDict
struct NodeDefocus NodeDefocus
struct NodeColorCorrection NodeColorCorrection
@ SHD_POINTDENSITY_COLOR_PARTSPEED
@ SHD_POINTDENSITY_COLOR_PARTVEL
@ SHD_POINTDENSITY_COLOR_PARTAGE
struct NodeFrame NodeFrame
struct NodeTexSky NodeTexSky
eNodeTreeUpdate
@ NTREE_UPDATE
@ NTREE_UPDATE_GROUP_OUT
@ NTREE_UPDATE_GROUP
@ NTREE_UPDATE_LINKS
@ NTREE_UPDATE_GROUP_IN
@ NTREE_UPDATE_NODES
GeometryNodeTransformSpace
@ GEO_NODE_TRANSFORM_SPACE_RELATIVE
@ GEO_NODE_TRANSFORM_SPACE_ORIGINAL
struct NodeGeometryCollectionInfo NodeGeometryCollectionInfo
struct NodeGeometryMeshCone NodeGeometryMeshCone
@ SHD_WAVE_PROFILE_SIN
@ SHD_WAVE_PROFILE_TRI
@ SHD_WAVE_PROFILE_SAW
struct NodeAttributeClamp NodeAttributeClamp
struct NodeDilateErode NodeDilateErode
struct NodeAttributeMath NodeAttributeMath
struct NodeTexImage NodeTexImage
struct TexNodeOutput TexNodeOutput
struct NodeImageMultiFile NodeImageMultiFile
GeometryNodeAttributeInputMode
@ GEO_NODE_ATTRIBUTE_INPUT_COLOR
@ GEO_NODE_ATTRIBUTE_INPUT_VECTOR
@ GEO_NODE_ATTRIBUTE_INPUT_INTEGER
@ GEO_NODE_ATTRIBUTE_INPUT_BOOLEAN
@ GEO_NODE_ATTRIBUTE_INPUT_ATTRIBUTE
@ GEO_NODE_ATTRIBUTE_INPUT_FLOAT
struct NodeColorBalance NodeColorBalance
struct bNodeSocket bNodeSocket
struct bNodeSocketValueObject bNodeSocketValueObject
struct NodePlaneTrackDeformData NodePlaneTrackDeformData
struct NodeCryptomatte NodeCryptomatte
struct NodeAttributeCombineXYZ NodeAttributeCombineXYZ
struct bNodeStack bNodeStack
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
Definition: btVector3.h:356
#define str(s)
signed short int16_t
Definition: stdint.h:79
unsigned char uint8_t
Definition: stdint.h:81
struct CryptomatteEntry * next
struct CryptomatteEntry * prev
struct CryptomatteEntry * next
struct CryptomatteEntry * prev
Definition: DNA_ID.h:273
float key[4]
ColorCorrectionData shadows
ColorCorrectionData midtones
ColorCorrectionData master
ColorCorrectionData highlights
NodeCryptomatte_Runtime runtime
short label_size
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
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 Object * value
char name[64]
IDProperty * prop
void * storage
struct bNodeLink * link
struct bNodeSocket *groupsock DNA_DEPRECATED
char description[64]
int own_index DNA_DEPRECATED
struct bNodeSocket * new_sock
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]
char idname[64]
short render_quality
int(* test_break)(void *)
short is_updating
void(* update_draw)(void *)
struct NodeTreeUIStorage * ui_storage
struct bNodeInstanceHash * previews
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
char _pad2[4]
Defines a node type.
Definition: BKE_node.h:221
short level
struct bNode * new_node
short custom1
float locy
int update
float width
rctf butr
struct uiBlock * block
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]
struct bNode * parent
char name[64]
ListBase internal_links
float locx
float anim_init_locx
rctf totr
char branch_tag
char iter_flag
short done
struct bNode * prev
rctf prvr
short type
struct bNode * next
float custom4
void * storage
float ssr_id
char idname[64]
float sss_id
char label[64]
float offsetx
short custom2
ListBase outputs
short preview_ysize
char _pad[1]
float anim_ofsx
float custom3
float offsety
short preview_xsize
uint8_t need_exec