[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32693] branches/particles-2010/source/ blender: Added back the rna and input box for data node type.

Lukas Toenne lukas.toenne at googlemail.com
Mon Oct 25 09:11:40 CEST 2010


Revision: 32693
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32693
Author:   lukastoenne
Date:     2010-10-25 09:11:39 +0200 (Mon, 25 Oct 2010)

Log Message:
-----------
Added back the rna and input box for data node type. Later this type should not be changed after the node is created, but until a good ui for this is implemented this makes the type accessible at least.

Modified Paths:
--------------
    branches/particles-2010/source/blender/editors/space_node/drawnode.c
    branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c
    branches/particles-2010/source/blender/nodes/intern/simulation/nodes/SIM_get_data.c

Modified: branches/particles-2010/source/blender/editors/space_node/drawnode.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/drawnode.c	2010-10-25 07:09:38 UTC (rev 32692)
+++ branches/particles-2010/source/blender/editors/space_node/drawnode.c	2010-10-25 07:11:39 UTC (rev 32693)
@@ -1311,6 +1311,7 @@
 	col= uiLayoutColumn(layout, 0);
 	uiLayoutSetContextPointer(col, "node", ptr);
 
+	uiItemR(col, ptr, "typename", 0, NULL, 0);
 	uiItemR(col, ptr, "path", 0, NULL, 0);
 	
 	getdata_add_property_search(layout, node);
@@ -1358,6 +1359,7 @@
 	col= uiLayoutColumn(layout, 0);
 	uiLayoutSetContextPointer(col, "node", ptr);
 
+	uiItemR(col, ptr, "typename", 0, NULL, 0);
 	uiItemR(col, ptr, "path", 0, NULL, 0);
 	
 	setdata_add_property_search(layout, node);

Modified: branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c	2010-10-25 07:09:38 UTC (rev 32692)
+++ branches/particles-2010/source/blender/makesrna/intern/rna_nodetree.c	2010-10-25 07:11:39 UTC (rev 32693)
@@ -456,6 +456,29 @@
 	sim_getdata_path_set((bNodeTree*)ptr->id.data, (bNode*)ptr->data, value);
 }
 
+static void rna_Node_getdata_typename_get(PointerRNA *ptr, char *value)
+{
+	StructRNA *type= sim_getdata_type_get((bNode*)ptr->data);
+	if (type)
+		strcpy(value, RNA_struct_identifier(type));
+	else
+		value[0] = '\0';
+}
+
+static int rna_Node_getdata_typename_length(PointerRNA *ptr)
+{
+	StructRNA *type= sim_getdata_type_get((bNode*)ptr->data);
+	if (type)
+		return strlen(RNA_struct_identifier(type));
+	else
+		return 0;
+}
+
+static void rna_Node_getdata_typename_set(PointerRNA *ptr, const char *value)
+{
+	sim_getdata_type_set((bNodeTree*)ptr->id.data, (bNode*)ptr->data, RNA_find_struct(value));
+}
+
 static void rna_Node_setdata_path_get(PointerRNA *ptr, char *value)
 {
 	strcpy(value, sim_setdata_path_get((bNode*)ptr->data));
@@ -471,6 +494,30 @@
 	sim_setdata_path_set((bNodeTree*)ptr->id.data, (bNode*)ptr->data, value);
 }
 
+
+static void rna_Node_setdata_typename_get(PointerRNA *ptr, char *value)
+{
+	StructRNA *type= sim_setdata_type_get((bNode*)ptr->data);
+	if (type)
+		strcpy(value, RNA_struct_identifier(type));
+	else
+		value[0] = '\0';
+}
+
+static int rna_Node_setdata_typename_length(PointerRNA *ptr)
+{
+	StructRNA *type= sim_setdata_type_get((bNode*)ptr->data);
+	if (type)
+		return strlen(RNA_struct_identifier(type));
+	else
+		return 0;
+}
+
+static void rna_Node_setdata_typename_set(PointerRNA *ptr, const char *value)
+{
+	sim_setdata_type_set((bNodeTree*)ptr->id.data, (bNode*)ptr->data, RNA_find_struct(value));
+}
+
 #else
 
 static EnumPropertyItem prop_image_layer_items[] = {
@@ -2190,6 +2237,10 @@
 	RNA_def_property_string_funcs(prop, "rna_Node_getdata_path_get", "rna_Node_getdata_path_length", "rna_Node_getdata_path_set");
 	RNA_def_property_ui_text(prop, "Path", "RNA path of the data node");
 	RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+	prop = RNA_def_property(srna, "typename", PROP_STRING, PROP_NONE);
+	RNA_def_property_string_funcs(prop, "rna_Node_getdata_typename_get", "rna_Node_getdata_typename_length", "rna_Node_getdata_typename_set");
+	RNA_def_property_ui_text(prop, "Type", "RNA struct name of the data node");
 }
 
 static void def_sim_setdata(StructRNA *srna)
@@ -2200,6 +2251,10 @@
 	RNA_def_property_string_funcs(prop, "rna_Node_setdata_path_get", "rna_Node_setdata_path_length", "rna_Node_setdata_path_set");
 	RNA_def_property_ui_text(prop, "Path", "RNA path of the data node");
 	RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+
+	prop = RNA_def_property(srna, "typename", PROP_STRING, PROP_NONE);
+	RNA_def_property_string_funcs(prop, "rna_Node_setdata_typename_get", "rna_Node_setdata_typename_length", "rna_Node_setdata_typename_set");
+	RNA_def_property_ui_text(prop, "Type", "RNA struct name of the data node");
 }
 
 static void def_sim_while(StructRNA *srna)

Modified: branches/particles-2010/source/blender/nodes/intern/simulation/nodes/SIM_get_data.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/simulation/nodes/SIM_get_data.c	2010-10-25 07:09:38 UTC (rev 32692)
+++ branches/particles-2010/source/blender/nodes/intern/simulation/nodes/SIM_get_data.c	2010-10-25 07:11:39 UTC (rev 32693)
@@ -28,8 +28,11 @@
 
 #include "../SIM_util.h"
 
+#include "DNA_particleset_types.h"
+
 #include "BKE_main.h"
 #include "BKE_node.h"
+#include "BKE_particleset.h"
 
 #include "RNA_access.h"
 
@@ -78,6 +81,15 @@
 			if (strcmp(identifier, RNA_property_identifier(prop))==0)
 				return prop;
 		}
+		
+		/* no rna property found, try to find ID property */
+		/* TODO */
+		
+		if (RNA_struct_is_a(data->type, &RNA_NParticle)) {
+			/* no ID property found, try to to find particle property */
+//			ParticleSet *pset= 
+			
+		}
 	}
 	return NULL;
 }





More information about the Bf-blender-cvs mailing list