diff options
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_modifier_defaults.h | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_modifier_types.h | 13 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 39 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 8 | ||||
-rw-r--r-- | source/blender/makesdna/intern/dna_defaults.c | 4 |
5 files changed, 48 insertions, 18 deletions
diff --git a/source/blender/makesdna/DNA_modifier_defaults.h b/source/blender/makesdna/DNA_modifier_defaults.h index b5bcfa4d157..f73f43ddade 100644 --- a/source/blender/makesdna/DNA_modifier_defaults.h +++ b/source/blender/makesdna/DNA_modifier_defaults.h @@ -573,7 +573,7 @@ .flag = 0, \ } -#define _DNA_DEFAULT_SimulationModifierData \ +#define _DNA_DEFAULT_NodesModifierData \ { 0 } #define _DNA_DEFAULT_SkinModifierData \ diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 7b5bdac47f5..43ed532a65b 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -94,7 +94,7 @@ typedef enum ModifierType { eModifierType_WeightedNormal = 54, eModifierType_Weld = 55, eModifierType_Fluid = 56, - eModifierType_Simulation = 57, + eModifierType_Nodes = 57, eModifierType_MeshToVolume = 58, eModifierType_VolumeDisplace = 59, eModifierType_VolumeToMesh = 60, @@ -2224,9 +2224,16 @@ enum { #define MOD_MESHSEQ_READ_ALL \ (MOD_MESHSEQ_READ_VERT | MOD_MESHSEQ_READ_POLY | MOD_MESHSEQ_READ_UV | MOD_MESHSEQ_READ_COLOR) -typedef struct SimulationModifierData { +typedef struct NodesModifierSettings { + /* This stores data that is passed into the node group. */ + struct IDProperty *properties; +} NodesModifierSettings; + +typedef struct NodesModifierData { ModifierData modifier; -} SimulationModifierData; + struct bNodeTree *node_group; + struct NodesModifierSettings settings; +} NodesModifierData; typedef struct MeshToVolumeModifierData { ModifierData modifier; diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index fdae3559599..29c83d2d4ed 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -504,7 +504,7 @@ typedef struct bNodeTree { #define NTREE_SHADER 0 #define NTREE_COMPOSIT 1 #define NTREE_TEXTURE 2 -#define NTREE_SIMULATION 3 +#define NTREE_GEOMETRY 3 /* ntree->init, flag */ #define NTREE_TYPE_INIT 1 @@ -1437,17 +1437,32 @@ typedef enum NodeShaderOutputTarget { SHD_OUTPUT_CYCLES = 2, } NodeShaderOutputTarget; -/* Particle Time Step Event node */ -typedef enum NodeSimParticleTimeStepEventType { - NODE_PARTICLE_TIME_STEP_EVENT_BEGIN = 0, - NODE_PARTICLE_TIME_STEP_EVENT_END = 1, -} NodeSimParticleTimeStepEventType; - -/* Simulation Time node */ -typedef enum NodeSimInputTimeType { - NODE_SIM_INPUT_SIMULATION_TIME = 0, - NODE_SIM_INPUT_SCENE_TIME = 1, -} NodeSimInputTimeType; +/* Geometry Nodes */ + +/* Boolean Node */ +typedef enum GeometryNodeBooleanOperation { + GEO_NODE_BOOLEAN_INTERSECT = 0, + GEO_NODE_BOOLEAN_UNION = 1, + GEO_NODE_BOOLEAN_DIFFERENCE = 2, +} GeometryNodeBooleanOperation; + +/* Triangulate Node */ +typedef enum GeometryNodeTriangulateNGons { + GEO_NODE_TRIANGULATE_NGON_BEAUTY = 0, + GEO_NODE_TRIANGULATE_NGON_EARCLIP = 1, +} GeometryNodeTriangulateNGons; + +typedef enum GeometryNodeTriangulateQuads { + GEO_NODE_TRIANGULATE_QUAD_BEAUTY = 0, + GEO_NODE_TRIANGULATE_QUAD_FIXED = 1, + GEO_NODE_TRIANGULATE_QUAD_ALTERNATE = 2, + GEO_NODE_TRIANGULATE_QUAD_SHORTEDGE = 3, +} GeometryNodeTriangulateQuads; + +typedef enum GeometryNodeUseAttributeFlag { + GEO_NODE_USE_ATTRIBUTE_A = (1 << 0), + GEO_NODE_USE_ATTRIBUTE_B = (1 << 1), +} GeometryNodeUseAttributeFlag; #ifdef __cplusplus } diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 5a00b6479d5..328e4d2ba22 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -51,6 +51,7 @@ struct RigidBodyOb; struct SculptSession; struct SoftBody; struct bGPdata; +struct GeometrySet; /* Vertex Groups - Name Info */ typedef struct bDeformGroup { @@ -153,6 +154,13 @@ typedef struct Object_Runtime { * It has all modifiers applied. */ struct ID *data_eval; + + /** + * Some objects support evaluating to a geometry set instead of a single ID. In those cases the + * evaluated geometry will be stored here instead of in #data_eval. + */ + struct GeometrySet *geometry_set_eval; + /** * Mesh structure created during object evaluation. * It has deformation only modifiers applied on it. diff --git a/source/blender/makesdna/intern/dna_defaults.c b/source/blender/makesdna/intern/dna_defaults.c index 8c95a6d2a31..1a8bd25215f 100644 --- a/source/blender/makesdna/intern/dna_defaults.c +++ b/source/blender/makesdna/intern/dna_defaults.c @@ -271,7 +271,7 @@ SDNA_DEFAULT_DECL_STRUCT(ScrewModifierData); /* Shape key modifier has no items. */ SDNA_DEFAULT_DECL_STRUCT(ShrinkwrapModifierData); SDNA_DEFAULT_DECL_STRUCT(SimpleDeformModifierData); -SDNA_DEFAULT_DECL_STRUCT(SimulationModifierData); +SDNA_DEFAULT_DECL_STRUCT(NodesModifierData); SDNA_DEFAULT_DECL_STRUCT(SkinModifierData); SDNA_DEFAULT_DECL_STRUCT(SmoothModifierData); /* Softbody modifier skipped for now. */ @@ -491,7 +491,7 @@ const void *DNA_default_table[SDNA_TYPE_MAX] = { /* Shape key modifier has no items. */ SDNA_DEFAULT_DECL(ShrinkwrapModifierData), SDNA_DEFAULT_DECL(SimpleDeformModifierData), - SDNA_DEFAULT_DECL(SimulationModifierData), + SDNA_DEFAULT_DECL(NodesModifierData), SDNA_DEFAULT_DECL(SkinModifierData), SDNA_DEFAULT_DECL(SmoothModifierData), /* Softbody modifier skipped for now. */ |