Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesdna/DNA_node_types.h
| Show First 20 Lines • Show All 1,103 Lines • ▼ Show 20 Lines | typedef struct NodeAttributeMix { | ||||
| uint8_t blend_type; | uint8_t blend_type; | ||||
| /* GeometryNodeAttributeInputMode */ | /* GeometryNodeAttributeInputMode */ | ||||
| uint8_t input_type_factor; | uint8_t input_type_factor; | ||||
| uint8_t input_type_a; | uint8_t input_type_a; | ||||
| uint8_t input_type_b; | uint8_t input_type_b; | ||||
| } NodeAttributeMix; | } NodeAttributeMix; | ||||
| typedef struct NodeAttributeRandomize { | |||||
| /* CustomDataType. */ | |||||
| uint8_t data_type; | |||||
| /* AttributeDomain. */ | |||||
| uint8_t domain; | |||||
| /* GeometryNodeAttributeRandomizeMode. */ | |||||
| uint8_t operation; | |||||
| char _pad[5]; | |||||
JacquesLucke: one byte of padding should be enough | |||||
| } NodeAttributeRandomize; | |||||
| typedef struct NodeAttributeVectorMath { | typedef struct NodeAttributeVectorMath { | ||||
| /* NodeVectorMathOperation */ | /* NodeVectorMathOperation */ | ||||
| uint8_t operation; | uint8_t operation; | ||||
| /* GeometryNodeAttributeInputMode */ | /* GeometryNodeAttributeInputMode */ | ||||
| uint8_t input_type_a; | uint8_t input_type_a; | ||||
| uint8_t input_type_b; | uint8_t input_type_b; | ||||
| uint8_t input_type_c; | uint8_t input_type_c; | ||||
| ▲ Show 20 Lines • Show All 512 Lines • ▼ Show 20 Lines | |||||
| } GeometryNodePointInstanceFlag; | } GeometryNodePointInstanceFlag; | ||||
| typedef enum GeometryNodeAttributeInputMode { | typedef enum GeometryNodeAttributeInputMode { | ||||
| GEO_NODE_ATTRIBUTE_INPUT_ATTRIBUTE = 0, | GEO_NODE_ATTRIBUTE_INPUT_ATTRIBUTE = 0, | ||||
| GEO_NODE_ATTRIBUTE_INPUT_FLOAT = 1, | GEO_NODE_ATTRIBUTE_INPUT_FLOAT = 1, | ||||
| GEO_NODE_ATTRIBUTE_INPUT_VECTOR = 2, | GEO_NODE_ATTRIBUTE_INPUT_VECTOR = 2, | ||||
| GEO_NODE_ATTRIBUTE_INPUT_COLOR = 3, | GEO_NODE_ATTRIBUTE_INPUT_COLOR = 3, | ||||
| GEO_NODE_ATTRIBUTE_INPUT_BOOLEAN = 4, | GEO_NODE_ATTRIBUTE_INPUT_BOOLEAN = 4, | ||||
| GEO_NODE_ATTRIBUTE_INPUT_INTEGER = 5, | |||||
| } GeometryNodeAttributeInputMode; | } GeometryNodeAttributeInputMode; | ||||
| typedef enum GeometryNodePointDistributeMethod { | typedef enum GeometryNodePointDistributeMethod { | ||||
| GEO_NODE_POINT_DISTRIBUTE_RANDOM = 0, | GEO_NODE_POINT_DISTRIBUTE_RANDOM = 0, | ||||
| GEO_NODE_POINT_DISTRIBUTE_POISSON = 1, | GEO_NODE_POINT_DISTRIBUTE_POISSON = 1, | ||||
| } GeometryNodePointDistributeMethod; | } GeometryNodePointDistributeMethod; | ||||
| typedef enum GeometryNodeRotatePointsType { | typedef enum GeometryNodeRotatePointsType { | ||||
| GEO_NODE_POINT_ROTATE_TYPE_EULER = 0, | GEO_NODE_POINT_ROTATE_TYPE_EULER = 0, | ||||
| GEO_NODE_POINT_ROTATE_TYPE_AXIS_ANGLE = 1, | GEO_NODE_POINT_ROTATE_TYPE_AXIS_ANGLE = 1, | ||||
| } GeometryNodeRotatePointsType; | } GeometryNodeRotatePointsType; | ||||
| typedef enum GeometryNodeAttributeRandomizeMode { | |||||
| GEO_NODE_ATTRIBUTE_RANDOMIZE_REPLACE_CREATE = 0, | |||||
| GEO_NODE_ATTRIBUTE_RANDOMIZE_ADD = 1, | |||||
| GEO_NODE_ATTRIBUTE_RANDOMIZE_SUBTRACT = 2, | |||||
| GEO_NODE_ATTRIBUTE_RANDOMIZE_MULTIPLY = 3, | |||||
| } GeometryNodeAttributeRandomizeMode; | |||||
| typedef enum GeometryNodeRotatePointsSpace { | typedef enum GeometryNodeRotatePointsSpace { | ||||
| GEO_NODE_POINT_ROTATE_SPACE_OBJECT = 0, | GEO_NODE_POINT_ROTATE_SPACE_OBJECT = 0, | ||||
Done Inline ActionsI'm not sure about the usefulness of the and and or modes. They basically set/unset approximately half of the elements that aren't already set/unset. I'd expect that usually when this behavior is needed, the user would want to have more control over the percentage. This should not be something the Random Attribute node is concerned about. Do you have a use case for the difference and average mode? JacquesLucke: I'm not sure about the usefulness of the `and` and `or` modes. They basically set/unset… | |||||
| GEO_NODE_POINT_ROTATE_SPACE_POINT = 1, | GEO_NODE_POINT_ROTATE_SPACE_POINT = 1, | ||||
| } GeometryNodeRotatePointsSpace; | } GeometryNodeRotatePointsSpace; | ||||
Done Inline ActionsThe xor mode does not seem to be very useful. In practice it should behave exactly the same as GEO_NODE_ATTRIBUTE_RANDOMIZE_REPLACE_CREATE, if I'm not mistaken. JacquesLucke: The `xor` mode does not seem to be very useful. In practice it should behave exactly the same… | |||||
| typedef enum GeometryNodeAlignRotationToVectorAxis { | typedef enum GeometryNodeAlignRotationToVectorAxis { | ||||
| GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_X = 0, | GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_X = 0, | ||||
| GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Y = 1, | GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Y = 1, | ||||
| GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Z = 2, | GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Z = 2, | ||||
| } GeometryNodeAlignRotationToVectorAxis; | } GeometryNodeAlignRotationToVectorAxis; | ||||
| typedef enum GeometryNodeAlignRotationToVectorPivotAxis { | typedef enum GeometryNodeAlignRotationToVectorPivotAxis { | ||||
| Show All 19 Lines | |||||
one byte of padding should be enough