diff options
Diffstat (limited to 'source/blender/makesdna/DNA_node_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 77 |
1 files changed, 74 insertions, 3 deletions
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 8b0bc235861..acbe9da45fd 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -394,7 +394,6 @@ typedef struct bNodeLink { bNodeSocket *fromsock, *tosock; int flag; - /* A runtime storage for automatically sorted links to multi-input sockets. */ int multi_input_socket_index; } bNodeLink; @@ -403,6 +402,7 @@ typedef struct bNodeLink { #define NODE_LINK_VALID (1 << 1) #define NODE_LINK_TEST (1 << 2) /* free test flag, undefined */ #define NODE_LINK_TEMP_HIGHLIGHT (1 << 3) /* Link is highlighted for picking. */ +#define NODE_LINK_MUTED (1 << 4) /* Link is muted. */ /* tree->edit_quality/tree->render_quality */ #define NTREE_QUALITY_HIGH 0 @@ -1067,14 +1067,39 @@ typedef struct CryptomatteEntry { char _pad[4]; } CryptomatteEntry; -typedef struct NodeCryptomatte { +typedef struct CryptomatteLayer { + struct CryptomatteEntry *next, *prev; + char name[64]; +} CryptomatteLayer; + +typedef struct NodeCryptomatte_Runtime { + /* Contains `CryptomatteLayer`. */ + ListBase layers; + /* Temp storage for the cryptomatte picker. */ float add[3]; float remove[3]; - char *matte_id DNA_DEPRECATED; +} NodeCryptomatte_Runtime; + +typedef struct NodeCryptomatte { + /* iuser needs to be first element due to RNA limitations. + * When we define the ImageData properties, we can't define them from + * storage->iuser, so storage needs to be casted to ImageUser directly. */ + ImageUser iuser; + /* Contains `CryptomatteEntry`. */ ListBase entries; + + /* MAX_NAME */ + char layer_name[64]; + /* Stores `entries` as a string for opening in 2.80-2.91. */ + char *matte_id; + + /** Legacy attributes */ + /* Number of input sockets. */ int num_inputs; + char _pad[4]; + NodeCryptomatte_Runtime runtime; } NodeCryptomatte; typedef struct NodeDenoise { @@ -1226,6 +1251,36 @@ typedef struct NodeAttributeSeparateXYZ { uint8_t input_type; } NodeAttributeSeparateXYZ; +typedef struct NodeAttributeConvert { + /* CustomDataType. */ + uint8_t data_type; + char _pad[1]; + /* AttributeDomain. */ + int16_t domain; +} NodeAttributeConvert; + +typedef struct NodeGeometryMeshCircle { + /* GeometryNodeMeshCircleFillType. */ + uint8_t fill_type; +} NodeGeometryMeshCircle; + +typedef struct NodeGeometryMeshCylinder { + /* GeometryNodeMeshCircleFillType. */ + uint8_t fill_type; +} NodeGeometryMeshCylinder; + +typedef struct NodeGeometryMeshCone { + /* GeometryNodeMeshCircleFillType. */ + uint8_t fill_type; +} NodeGeometryMeshCone; + +typedef struct NodeGeometryMeshLine { + /* GeometryNodeMeshLineMode. */ + uint8_t mode; + /* GeometryNodeMeshLineCountMode. */ + uint8_t count_mode; +} NodeGeometryMeshLine; + /* script node mode */ #define NODE_SCRIPT_INTERNAL 0 #define NODE_SCRIPT_EXTERNAL 1 @@ -1702,6 +1757,22 @@ typedef enum GeometryNodePointsToVolumeResolutionMode { GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_SIZE = 1, } GeometryNodePointsToVolumeResolutionMode; +typedef enum GeometryNodeMeshCircleFillType { + GEO_NODE_MESH_CIRCLE_FILL_NONE = 0, + GEO_NODE_MESH_CIRCLE_FILL_NGON = 1, + GEO_NODE_MESH_CIRCLE_FILL_TRIANGLE_FAN = 2, +} GeometryNodeMeshCircleFillType; + +typedef enum GeometryNodeMeshLineMode { + GEO_NODE_MESH_LINE_MODE_END_POINTS = 0, + GEO_NODE_MESH_LINE_MODE_OFFSET = 1, +} GeometryNodeMeshLineMode; + +typedef enum GeometryNodeMeshLineCountMode { + GEO_NODE_MESH_LINE_COUNT_TOTAL = 0, + GEO_NODE_MESH_LINE_COUNT_RESOLUTION = 1, +} GeometryNodeMeshLineCountMode; + #ifdef __cplusplus } #endif |