[Bf-blender-cvs] [7793e8c884c] geometry-nodes: Modifiers: add node_tree to NodesModifierData

Jacques Lucke noreply at git.blender.org
Wed Oct 21 12:13:25 CEST 2020


Commit: 7793e8c884ceb10610c7061def9a933dbea0042c
Author: Jacques Lucke
Date:   Wed Oct 21 12:13:13 2020 +0200
Branches: geometry-nodes
https://developer.blender.org/rB7793e8c884ceb10610c7061def9a933dbea0042c

Modifiers: add node_tree to NodesModifierData

===================================================================

M	source/blender/makesdna/DNA_modifier_types.h
M	source/blender/makesrna/intern/rna_modifier.c
M	source/blender/modifiers/intern/MOD_nodes.cc

===================================================================

diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index f1d017fe173..7e3c2deb6be 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -2219,6 +2219,7 @@ enum {
 
 typedef struct NodesModifierData {
   ModifierData modifier;
+  struct bNodeTree *node_tree;
 } NodesModifierData;
 
 typedef struct MeshToVolumeModifierData {
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 9a4898f31db..e3be5c7c7b5 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -1597,6 +1597,14 @@ static int rna_MeshSequenceCacheModifier_read_velocity_get(PointerRNA *ptr)
 #  endif
 }
 
+static bool rna_NodesModifier_node_tree_poll(PointerRNA *ptr, PointerRNA value)
+{
+  NodesModifierData *nmd = ptr->data;
+  bNodeTree *ntree = value.data;
+  UNUSED_VARS(nmd, ntree);
+  return true;
+}
+
 #else
 
 /* NOTE: *MUST* return subdivision_type property. */
@@ -6918,6 +6926,7 @@ static void rna_def_modifier_weightednormal(BlenderRNA *brna)
 static void rna_def_modifier_nodes(BlenderRNA *brna)
 {
   StructRNA *srna;
+  PropertyRNA *prop;
 
   srna = RNA_def_struct(brna, "NodesModifier", "Modifier");
   RNA_def_struct_ui_text(srna, "Nodes Modifier", "");
@@ -6926,6 +6935,12 @@ static void rna_def_modifier_nodes(BlenderRNA *brna)
 
   RNA_define_lib_overridable(true);
 
+  prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE);
+  RNA_def_property_ui_text(prop, "Node Tree", "Node tree that controls what this modifier does");
+  RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_NodesModifier_node_tree_poll");
+  RNA_def_property_flag(prop, PROP_EDITABLE);
+  RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
+
   RNA_define_lib_overridable(false);
 }
 #  endif
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 449bdde9e4c..1231bb9eaca 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -117,7 +117,7 @@ static void panel_draw(const bContext *UNUSED(C), Panel *panel)
   uiLayoutSetPropSep(layout, true);
   uiLayoutSetPropDecorate(layout, false);
 
-  uiItemL(layout, "This modifier does nothing currently", ICON_INFO);
+  uiItemR(layout, ptr, "node_tree", 0, NULL, ICON_MESH_DATA);
 
   modifier_panel_end(layout, ptr);
 }



More information about the Bf-blender-cvs mailing list