Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-10-21 13:13:13 +0300
committerJacques Lucke <jacques@blender.org>2020-10-21 13:13:13 +0300
commit7793e8c884ceb10610c7061def9a933dbea0042c (patch)
treea9a70a66db59e27fe83b2cfd721085aba0a0f857
parent05d9bd7c4a655a4b47b6ccbce6484be9b8134485 (diff)
Modifiers: add node_tree to NodesModifierData
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h1
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c15
-rw-r--r--source/blender/modifiers/intern/MOD_nodes.cc2
3 files changed, 17 insertions, 1 deletions
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);
}