[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12078] trunk/blender/source/blender: A user submitted a BVH file that took a long time to import ( I didnt end up finishing since it was so slow)

Campbell Barton cbarton at metavr.com
Tue Sep 18 08:41:29 CEST 2007


Revision: 12078
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12078
Author:   campbellbarton
Date:     2007-09-18 08:41:29 +0200 (Tue, 18 Sep 2007)

Log Message:
-----------
A user submitted a BVH file that took a long time to import (I didnt end up finishing since it was so slow)
this is mainly because adding pose keyframes recalculates every handle so importing became increasingly slow.

added a 'fast' argument to insertkey that python api's insertPoseKey can make use of since it alredy accepts a 'fast' option.

The ~4450 frame, 31 bone BVH imports in ~108sec now

Seperated editmode switch statement in space.c's event handling,
if editmode is disabled, or the images is a render or composite, UV editing operations are ignored.
In previous releases it has given an annoying warning if selecting or scaling is attempted when out of UV/Face mode.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c
    trunk/blender/source/blender/include/BSE_editipo.h
    trunk/blender/source/blender/python/api2_2x/Camera.c
    trunk/blender/source/blender/python/api2_2x/Constraint.c
    trunk/blender/source/blender/python/api2_2x/Ipo.c
    trunk/blender/source/blender/python/api2_2x/Ipocurve.c
    trunk/blender/source/blender/python/api2_2x/Lamp.c
    trunk/blender/source/blender/python/api2_2x/Material.c
    trunk/blender/source/blender/python/api2_2x/Object.c
    trunk/blender/source/blender/python/api2_2x/Pose.c
    trunk/blender/source/blender/python/api2_2x/World.c
    trunk/blender/source/blender/src/buttons_object.c
    trunk/blender/source/blender/src/drawaction.c
    trunk/blender/source/blender/src/editaction.c
    trunk/blender/source/blender/src/editipo.c
    trunk/blender/source/blender/src/editkey.c
    trunk/blender/source/blender/src/editview.c
    trunk/blender/source/blender/src/poseobject.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/blender/src/transform_conversions.c

Modified: trunk/blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c
===================================================================
--- trunk/blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -59,7 +59,7 @@
 struct bConstraintOb;
 
 char *getIpoCurveName( struct IpoCurve * icu );
-void insert_vert_icu(struct IpoCurve *icu, float x, float y);
+void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast);
 struct IpoCurve *verify_ipocurve(struct ID *id, short a, char *b, char *d, int e);
 void elbeemDebugOut(char *msg);
 void fluidsimSettingsFree(struct FluidsimSettings* sb);
@@ -83,7 +83,7 @@
 	return 0;
 }
 
-void insert_vert_icu(struct IpoCurve *icu, float x, float y)
+void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast)
 {
 }
 

Modified: trunk/blender/source/blender/include/BSE_editipo.h
===================================================================
--- trunk/blender/source/blender/include/BSE_editipo.h	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/include/BSE_editipo.h	2007-09-18 06:41:29 UTC (rev 12078)
@@ -92,7 +92,7 @@
 int texchannel_to_adrcode(int channel);
 
 int insert_bezt_icu(struct IpoCurve *icu, struct BezTriple *bezt);
-void insert_vert_icu(struct IpoCurve *icu, float x, float y);
+void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast);
 void add_vert_ipo(void);
 
 void add_duplicate_editipo(void);
@@ -121,7 +121,7 @@
 void set_exprap_ipo(int mode);
 
 void set_speed_editipo(float speed);
-void insertkey(ID *id, int blocktype, char *actname, char *constname, int adrcode);
+void insertkey(ID *id, int blocktype, char *actname, char *constname, int adrcode, short fast);
 void insertkey_smarter(ID *id, int blocktype, char *actname, char *constname, int adrcode);
 void insertkey_editipo(void);
 void common_insertkey(void);

Modified: trunk/blender/source/blender/python/api2_2x/Camera.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Camera.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/python/api2_2x/Camera.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -1040,11 +1040,11 @@
 										"expected int argument" ) );
 
 	if (key == IPOKEY_LENS){
-		insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_LENS);     
+		insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_LENS, 0);     
 	}
 	else if (key == IPOKEY_CLIPPING){
-		insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_STA);
-		insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_END);   
+		insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_STA, 0);
+		insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_END, 0);   
 	}
 
 	allspace(REMAKEIPO, 0);

Modified: trunk/blender/source/blender/python/api2_2x/Constraint.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Constraint.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/python/api2_2x/Constraint.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -431,9 +431,9 @@
 				"cannot get a curve from this IPO, may be using libdata" );
 	
 	if( ob->action )
-		insert_vert_icu( icu, get_action_frame(ob, cfra), con->enforce);
+		insert_vert_icu( icu, get_action_frame(ob, cfra), con->enforce, 0);
 	else
-		insert_vert_icu( icu, cfra, con->enforce);
+		insert_vert_icu( icu, cfra, con->enforce, 0);
 
 	Py_RETURN_NONE;
 }

Modified: trunk/blender/source/blender/python/api2_2x/Ipo.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Ipo.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/python/api2_2x/Ipo.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -1483,7 +1483,7 @@
 		icu->flag |= IPO_VISIBLE|IPO_AUTO_HORIZ;
 		set_icu_vars( icu );
 		BLI_addtail( &(ipo->curve), icu);
-		insert_vert_icu( icu, time, curval );
+		insert_vert_icu( icu, time, curval, 0);
 
 		allspace( REMAKEIPO, 0 );
 		EXPP_allqueue( REDRAWIPO, 0 );

Modified: trunk/blender/source/blender/python/api2_2x/Ipocurve.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Ipocurve.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/python/api2_2x/Ipocurve.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -531,7 +531,7 @@
 		Py_DECREF( xobj );
 		y = (float)PyFloat_AsDouble( yobj );
 		Py_DECREF( yobj );
-		insert_vert_icu( icu, x, y);
+		insert_vert_icu( icu, x, y, 0);
 	}
 
 	Py_RETURN_NONE;
@@ -745,7 +745,7 @@
 
 	/* insert a key at the specified time */
 
-	insert_vert_icu( self->ipocurve, time, curval );
+	insert_vert_icu( self->ipocurve, time, curval, 0);
 	allspace(REMAKEIPO, 0);
 	return 0;
 }

Modified: trunk/blender/source/blender/python/api2_2x/Lamp.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Lamp.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/python/api2_2x/Lamp.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -1287,25 +1287,25 @@
 	map = texchannel_to_adrcode(self->lamp->texact);
 
 	if (key == IPOKEY_RGB ) {
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, LA_COL_R);
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_G);
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_B);      
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, LA_COL_R, 0);
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_G, 0);
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_B, 0);
 	}
 	if (key == IPOKEY_ENERGY ) {
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_ENERGY);    
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_ENERGY, 0);
 	}	
 	if (key == IPOKEY_SPOTSIZE ) {
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_SPOTSI);    
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_SPOTSI, 0);
 	}
 	if (key == IPOKEY_OFFSET ) {
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_X);
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Y);
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Z);  
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_X, 0);
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Y, 0);
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Z, 0);
 	}
 	if (key == IPOKEY_SIZE ) {
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_X);
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Y);
-		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Z);  
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_X, 0);
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Y, 0);
+		insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Z, 0);
 	}
 
 	allspace(REMAKEIPO, 0);

Modified: trunk/blender/source/blender/python/api2_2x/Material.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Material.c	2007-09-18 06:33:24 UTC (rev 12077)
+++ trunk/blender/source/blender/python/api2_2x/Material.c	2007-09-18 06:41:29 UTC (rev 12078)
@@ -1691,58 +1691,58 @@
 	map = texchannel_to_adrcode(self->material->texact);
 	
 	if(key==IPOKEY_RGB || key==IPOKEY_ALLCOLOR) {
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_R);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_G);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_B);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_R, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_G, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_B, 0);
 	}
 	if(key==IPOKEY_ALPHA || key==IPOKEY_ALLCOLOR) {
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ALPHA);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ALPHA, 0);
 	}
 	if(key==IPOKEY_HALOSIZE || key==IPOKEY_ALLCOLOR) {
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HASIZE);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HASIZE, 0);
 	}
 	if(key==IPOKEY_MODE || key==IPOKEY_ALLCOLOR) {
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE, 0);
 	}
 	if(key==IPOKEY_ALLCOLOR) {
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_R);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_G);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_B);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_REF);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_EMIT);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_AMB);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HARD);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_TRANSLU);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ADD);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_R, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_G, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_B, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_REF, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_EMIT, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_AMB, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HARD, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_TRANSLU, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ADD, 0);
 	}
 	if(key==IPOKEY_ALLMIRROR) {
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_RAYM);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIR);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIRI);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRA);
-		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRAI);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_RAYM, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIR, 0);
+		insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIRI, 0);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list