[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27908] trunk/blender: svn merge https:// svn.blender.org/svnroot/bf-blender/branches/render25 -r27895:27901; svn merge https://svn.blender.org/svnroot/bf-blender/branches/ render25 -r27902:27907, skipping 27902

Campbell Barton ideasman42 at gmail.com
Wed Mar 31 22:39:08 CEST 2010


Revision: 27908
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27908
Author:   campbellbarton
Date:     2010-03-31 22:39:08 +0200 (Wed, 31 Mar 2010)

Log Message:
-----------
svn merge https://svn.blender.org/svnroot/bf-blender/branches/render25 -r27895:27901; svn merge https://svn.blender.org/svnroot/bf-blender/branches/render25 -r27902:27907, skipping 27902

Modified Paths:
--------------
    trunk/blender/release/scripts/io/import_anim_bvh.py
    trunk/blender/release/scripts/io/import_scene_3ds.py
    trunk/blender/release/scripts/io/import_scene_obj.py
    trunk/blender/release/scripts/op/add_mesh_torus.py
    trunk/blender/source/blender/makesrna/intern/rna_action.c
    trunk/blender/source/blender/makesrna/intern/rna_fcurve.c
    trunk/blender/source/blender/makesrna/intern/rna_pose.c
    trunk/blender/source/blender/nodes/intern/SHD_nodes/SHD_material.c

Modified: trunk/blender/release/scripts/io/import_anim_bvh.py
===================================================================
--- trunk/blender/release/scripts/io/import_anim_bvh.py	2010-03-31 19:02:39 UTC (rev 27907)
+++ trunk/blender/release/scripts/io/import_anim_bvh.py	2010-03-31 20:39:08 UTC (rev 27908)
@@ -609,7 +609,8 @@
         return {'RUNNING_MODAL'}
 
 
-menu_func = lambda self, context: self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)")
+def menu_func(self, context):
+    self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)")
 
 
 def register():

Modified: trunk/blender/release/scripts/io/import_scene_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/import_scene_3ds.py	2010-03-31 19:02:39 UTC (rev 27907)
+++ trunk/blender/release/scripts/io/import_scene_3ds.py	2010-03-31 20:39:08 UTC (rev 27908)
@@ -1030,9 +1030,9 @@
         return {'RUNNING_MODAL'}
 
 
-menu_func = lambda self, context: self.layout.operator(IMPORT_OT_autodesk_3ds.bl_idname, text="3D Studio (.3ds)")
+def menu_func(self, context):
+    self.layout.operator(IMPORT_OT_autodesk_3ds.bl_idname, text="3D Studio (.3ds)")
 
-
 def register():
     bpy.types.register(IMPORT_OT_autodesk_3ds)
     bpy.types.INFO_MT_file_import.append(menu_func)

Modified: trunk/blender/release/scripts/io/import_scene_obj.py
===================================================================
--- trunk/blender/release/scripts/io/import_scene_obj.py	2010-03-31 19:02:39 UTC (rev 27907)
+++ trunk/blender/release/scripts/io/import_scene_obj.py	2010-03-31 20:39:08 UTC (rev 27908)
@@ -1621,7 +1621,8 @@
         return {'RUNNING_MODAL'}
 
 
-menu_func = lambda self, context: self.layout.operator(IMPORT_OT_obj.bl_idname, text="Wavefront (.obj)")
+def menu_func(self, context):
+    self.layout.operator(IMPORT_OT_obj.bl_idname, text="Wavefront (.obj)")
 
 
 def register():

Modified: trunk/blender/release/scripts/op/add_mesh_torus.py
===================================================================
--- trunk/blender/release/scripts/op/add_mesh_torus.py	2010-03-31 19:02:39 UTC (rev 27907)
+++ trunk/blender/release/scripts/op/add_mesh_torus.py	2010-03-31 20:39:08 UTC (rev 27908)
@@ -154,9 +154,8 @@
         return {'FINISHED'}
 
 
-# Add to the menu
-menu_func = (lambda self, context: self.layout.operator(AddTorus.bl_idname,
-                                        text="Torus", icon='MESH_DONUT'))
+def menu_func(self, context):
+    self.layout.operator(AddTorus.bl_idname, text="Torus", icon='MESH_DONUT')
 
 
 def register():

Modified: trunk/blender/source/blender/makesrna/intern/rna_action.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_action.c	2010-03-31 19:02:39 UTC (rev 27907)
+++ trunk/blender/source/blender/makesrna/intern/rna_action.c	2010-03-31 20:39:08 UTC (rev 27908)
@@ -54,6 +54,35 @@
 	iter->valid= (internal->link != NULL);
 }
 
+static bActionGroup *rna_Action_groups_add(bAction *act, char *name)
+{
+	bActionGroup *agrp= MEM_callocN(sizeof(bActionGroup), "bActionGroup");
+	strncpy(agrp->name, name, sizeof(agrp->name));
+	BLI_addtail(&act->groups, agrp);
+	BLI_uniquename(&act->groups, agrp, "Group", '.', offsetof(bActionGroup, name), sizeof(agrp->name));
+	return agrp;
+}
+
+static void rna_Action_groups_remove(bAction *act, ReportList *reports, bActionGroup *agrp)
+{
+	FCurve *fcu;
+
+	if(!BLI_remlink_safe(&act->groups, agrp)) {
+		BKE_reportf(reports, RPT_ERROR, "ActionGroup '%s' not found in action '%s'", agrp->name, act->id.name);
+		return;
+	}
+
+	for(fcu= act->curves.first; fcu; fcu= fcu->next) {
+		if(fcu->grp==agrp)
+			fcu->grp= NULL;
+	}
+
+	/* XXX, can these be added to drivers??? */
+
+	MEM_freeN(agrp); /* XXX, invalidate PyObject */
+}
+
+
 #else
 
 static void rna_def_dopesheet(BlenderRNA *brna)
@@ -244,6 +273,35 @@
 	RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN_EDIT, NULL);
 }
 
+/* fcurve.keyframe_points */
+static void rna_def_action_groups(BlenderRNA *brna, PropertyRNA *cprop)
+{
+	StructRNA *srna;
+
+	FunctionRNA *func;
+	PropertyRNA *parm;
+
+	RNA_def_property_srna(cprop, "ActionGroups");
+	srna= RNA_def_struct(brna, "ActionGroups", NULL);
+	RNA_def_struct_sdna(srna, "bAction");
+	RNA_def_struct_ui_text(srna, "Action Points", "Collection of action groups");
+
+	func= RNA_def_function(srna, "add", "rna_Action_groups_add");
+	RNA_def_function_ui_description(func, "Add a keyframe to the curve.");
+	parm= RNA_def_string(func, "name", "Group", 0, "", "New name for the action group.");
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+
+	parm= RNA_def_pointer(func, "action_group", "ActionGroup", "", "Newly created action group");
+	RNA_def_function_return(func, parm);
+
+
+	func= RNA_def_function(srna, "remove", "rna_Action_groups_remove");
+	RNA_def_function_ui_description(func, "Remove action group.");
+	RNA_def_function_flag(func, FUNC_USE_REPORTS);
+	parm= RNA_def_pointer(func, "action_group", "ActionGroup", "", "Action group to remove.");
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
+}
+
 static void rna_def_action(BlenderRNA *brna)
 {
 	StructRNA *srna;
@@ -263,6 +321,7 @@
 	RNA_def_property_collection_sdna(prop, NULL, "groups", NULL);
 	RNA_def_property_struct_type(prop, "ActionGroup");
 	RNA_def_property_ui_text(prop, "Groups", "Convenient groupings of F-Curves");
+	rna_def_action_groups(brna, prop);
 
 	prop= RNA_def_property(srna, "pose_markers", PROP_COLLECTION, PROP_NONE);
 	RNA_def_property_collection_sdna(prop, NULL, "markers", NULL);

Modified: trunk/blender/source/blender/makesrna/intern/rna_fcurve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_fcurve.c	2010-03-31 19:02:39 UTC (rev 27907)
+++ trunk/blender/source/blender/makesrna/intern/rna_fcurve.c	2010-03-31 20:39:08 UTC (rev 27908)
@@ -40,6 +40,9 @@
 
 #include "WM_types.h"
 
+#include "ED_keyframing.h"
+#include "ED_keyframes_edit.h"
+
 EnumPropertyItem fmodifier_type_items[] = {
 	{FMODIFIER_TYPE_NULL, "NULL", 0, "Invalid", ""},
 	{FMODIFIER_TYPE_GENERATOR, "GENERATOR", 0, "Generator", ""},
@@ -460,6 +463,53 @@
 	*max= MAXFRAMEF;
 }
 
+static BezTriple *rna_FKeyframe_points_add(FCurve *fcu, float frame, float value, int do_replace, int do_needed, int do_fast)
+{
+	int index;
+	int flag= 0;
+
+	if(do_replace) flag |= INSERTKEY_REPLACE;
+	if(do_needed) flag |= INSERTKEY_NEEDED;
+	if(do_fast) flag |= INSERTKEY_FAST;
+
+
+	index= insert_vert_fcurve(fcu, frame, value, flag);
+	return index >= 0 ? fcu->bezt + index : NULL;
+}
+
+static void rna_FKeyframe_points_remove(FCurve *fcu, ReportList *reports, BezTriple *bezt, int do_fast)
+{
+	int index= (int)(bezt - fcu->bezt);
+	if (index < 0 || index >= fcu->totvert) {
+		BKE_report(reports, RPT_ERROR, "bezier not in fcurve.");
+		return;
+	}
+
+	delete_fcurve_key(fcu, index, !do_fast);
+}
+
+static void rna_FCurve_group_set(PointerRNA *ptr, PointerRNA value)
+{
+	FCurve *fcu= ptr->data;
+
+	if(value.data && (ptr->id.data != value.id.data)) {
+		return; /* id's differ, cant do this, should raise an error */
+	}
+	if(fcu->grp == value.data) {
+		return; /* nothing to do */
+	}
+
+	if(fcu->grp) {
+		BLI_remlink(&fcu->grp->channels, fcu);
+	}
+
+	fcu->grp= value.data;
+
+	if(fcu->grp) {
+		BLI_addtail(&fcu->grp->channels, fcu);
+	}
+}
+
 #else
 
 static void rna_def_fmodifier_generator(BlenderRNA *brna)
@@ -1143,7 +1193,6 @@
 	RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME_EDIT, NULL);
 }
 
-
 static void rna_def_fcurve_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
 {
 	/* add modifiers */
@@ -1188,6 +1237,43 @@
 	RNA_def_property_flag(parm, PROP_REQUIRED);
 }
 
+/* fcurve.keyframe_points */
+static void rna_def_fcurve_keyframe_points(BlenderRNA *brna, PropertyRNA *cprop)
+{
+	StructRNA *srna;
+
+	FunctionRNA *func;
+	PropertyRNA *parm;
+
+	RNA_def_property_srna(cprop, "FCurveKeyframePoints");
+	srna= RNA_def_struct(brna, "FCurveKeyframePoints", NULL);
+	RNA_def_struct_sdna(srna, "FCurve");
+	RNA_def_struct_ui_text(srna, "Keyframe Points", "Collection of keyframe points");
+
+	func= RNA_def_function(srna, "add", "rna_FKeyframe_points_add");
+	RNA_def_function_ui_description(func, "Add a keyframe point to a F-Curve.");
+	parm= RNA_def_float(func, "frame", 0.0f, -FLT_MAX, FLT_MAX, "", "X Value of this keyframe point", -FLT_MAX, FLT_MAX);
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	parm= RNA_def_float(func, "value", 0.0f, -FLT_MAX, FLT_MAX, "", "Y Value of this keyframe point", -FLT_MAX, FLT_MAX);
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	/* optional */
+	parm= RNA_def_boolean(func, "replace", 0, "Replace", "Replace existing keyframes");
+	parm= RNA_def_boolean(func, "needed", 0, "Needed", "Only adds keyframes that are needed");
+	parm= RNA_def_boolean(func, "fast", 0, "Fast", "Fast keyframe insertion to avoid recalculating the curve each time");
+
+	parm= RNA_def_pointer(func, "keyframe", "Keyframe", "", "Newly created keyframe");
+	RNA_def_function_return(func, parm);
+
+
+	func= RNA_def_function(srna, "remove", "rna_FKeyframe_points_remove");
+	RNA_def_function_ui_description(func, "Remove keyframe from an fcurve.");
+	RNA_def_function_flag(func, FUNC_USE_REPORTS);
+	parm= RNA_def_pointer(func, "keyframe", "Keyframe", "", "Keyframe to remove.");
+	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
+	/* optional */
+	parm= RNA_def_boolean(func, "fast", 0, "Fast", "Fast keyframe removal to avoid recalculating the curve each time");
+}
+
 static void rna_def_fcurve(BlenderRNA *brna)
 {
 	StructRNA *srna;
@@ -1221,10 +1307,11 @@
 	
 	prop= RNA_def_property(srna, "group", PROP_POINTER, PROP_NONE);
 	RNA_def_property_pointer_sdna(prop, NULL, "grp");
-	RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX this is not editable for now, since editing this will easily break the visible hierarchy
+	RNA_def_property_flag(prop, PROP_EDITABLE);
 	RNA_def_property_ui_text(prop, "Group", "Action Group that this F-Curve belongs to");
-	RNA_def_property_update(prop, NC_ANIMATION|ND_FCURVES_ORDER, NULL);
-	
+	RNA_def_property_pointer_funcs(prop, NULL, "rna_FCurve_group_set", NULL);
+	RNA_def_property_update(prop, NC_ANIMATION, NULL);
+
 	/* Path + Array Index */
 	prop= RNA_def_property(srna, "data_path", PROP_STRING, PROP_NONE);
 	RNA_def_property_string_funcs(prop, "rna_FCurve_RnaPath_get", "rna_FCurve_RnaPath_length", "rna_FCurve_RnaPath_set");

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list