[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44078] branches/bmesh/blender: svn merge ^/trunk/blender -r44024:44076

Campbell Barton ideasman42 at gmail.com
Mon Feb 13 05:14:35 CET 2012


Revision: 44078
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44078
Author:   campbellbarton
Date:     2012-02-13 04:14:35 +0000 (Mon, 13 Feb 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r44024:44076

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44024

Modified Paths:
--------------
    branches/bmesh/blender/doc/python_api/sphinx_doc_gen.sh
    branches/bmesh/blender/release/datafiles/blender_icons.png
    branches/bmesh/blender/release/scripts/startup/bl_operators/presets.py
    branches/bmesh/blender/release/scripts/startup/bl_ui/space_logic.py
    branches/bmesh/blender/source/blender/blenkernel/BKE_booleanops_mesh.h
    branches/bmesh/blender/source/blender/blenkernel/intern/particle.c
    branches/bmesh/blender/source/blender/blenkernel/intern/particle_system.c
    branches/bmesh/blender/source/blender/blenlib/BLI_callbacks.h
    branches/bmesh/blender/source/blender/blenlib/BLI_graph.h
    branches/bmesh/blender/source/blender/collada/TransformWriter.cpp
    branches/bmesh/blender/source/blender/editors/armature/meshlaplacian.c
    branches/bmesh/blender/source/blender/editors/datafiles/blender_icons.png.c
    branches/bmesh/blender/source/blender/editors/include/UI_icons.h
    branches/bmesh/blender/source/blender/editors/interface/resources.c
    branches/bmesh/blender/source/blender/editors/mesh/mesh_data.c
    branches/bmesh/blender/source/blender/editors/screen/screen_ops.c
    branches/bmesh/blender/source/blender/editors/space_outliner/outliner_draw.c
    branches/bmesh/blender/source/blender/editors/space_outliner/outliner_edit.c
    branches/bmesh/blender/source/blender/editors/space_outliner/space_outliner.c
    branches/bmesh/blender/source/blender/editors/space_sequencer/sequencer_add.c
    branches/bmesh/blender/source/blender/gpu/intern/gpu_draw.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_modifier.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_space.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_userdef.c
    branches/bmesh/blender/source/blender/makesrna/intern/rna_wm.c
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_explode.c
    branches/bmesh/blender/source/blender/python/mathutils/mathutils_Vector.c
    branches/bmesh/blender/source/tests/bl_pyapi_mathutils.py

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/
    branches/bmesh/blender/source/blender/editors/space_outliner/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872
/trunk/blender:39992-44024
   + /branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872
/trunk/blender:39992-44076

Modified: branches/bmesh/blender/doc/python_api/sphinx_doc_gen.sh
===================================================================
--- branches/bmesh/blender/doc/python_api/sphinx_doc_gen.sh	2012-02-13 04:12:40 UTC (rev 44077)
+++ branches/bmesh/blender/doc/python_api/sphinx_doc_gen.sh	2012-02-13 04:14:35 UTC (rev 44078)
@@ -63,6 +63,13 @@
 	cd $SPHINXBASE
 	sphinx-build -n -b html sphinx-in sphinx-out
 
+	# XXX, saves space on upload and zip, should move HTML outside
+	# and zip up there, for now this is OK
+	rm -rf sphinx-out/.doctrees
+
+	# incase we have a zip already
+	rm -f blender_python_reference_$BLENDER_VERSION.zip
+
 	# ------------------------------------------------------------------------
 	# ZIP the HTML dir for upload
 


Property changes on: branches/bmesh/blender/release
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender/release:31524-42516,42522-42548,42551-42585,42587-42655,42681-42757,42779-42870,42921-42927,42954-42957,42974-43085,43093-43278,43295-43435,43462-43554,43565-43611,43617-43664,43677-43918,43935-44024
   + /trunk/blender/release:31524-42516,42522-42548,42551-42585,42587-42655,42681-42757,42779-42870,42921-42927,42954-42957,42974-43085,43093-43278,43295-43435,43462-43554,43565-43611,43617-43664,43677-43918,43935-44076

Modified: branches/bmesh/blender/release/datafiles/blender_icons.png
===================================================================
(Binary files differ)

Modified: branches/bmesh/blender/release/scripts/startup/bl_operators/presets.py
===================================================================
--- branches/bmesh/blender/release/scripts/startup/bl_operators/presets.py	2012-02-13 04:12:40 UTC (rev 44077)
+++ branches/bmesh/blender/release/scripts/startup/bl_operators/presets.py	2012-02-13 04:14:35 UTC (rev 44078)
@@ -196,7 +196,7 @@
                                  preset_class.preset_xml_map)
         else:
             self.report({'ERROR'}, "unknown filetype: %r" % ext)
-            return {'CANCELLED '}
+            return {'CANCELLED'}
 
         return {'FINISHED'}
 

Modified: branches/bmesh/blender/release/scripts/startup/bl_ui/space_logic.py
===================================================================
--- branches/bmesh/blender/release/scripts/startup/bl_ui/space_logic.py	2012-02-13 04:12:40 UTC (rev 44077)
+++ branches/bmesh/blender/release/scripts/startup/bl_ui/space_logic.py	2012-02-13 04:14:35 UTC (rev 44078)
@@ -57,7 +57,8 @@
                 props.name = 'Text'
                 props.type = 'STRING'
 
-        layout.operator("object.game_property_new", text="Add Game Property", icon='ZOOMIN')
+        props = layout.operator("object.game_property_new", text="Add Game Property", icon='ZOOMIN')
+        props.name = ''
 
         for i, prop in enumerate(game.properties):
 

Modified: branches/bmesh/blender/source/blender/blenkernel/BKE_booleanops_mesh.h
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/BKE_booleanops_mesh.h	2012-02-13 04:12:40 UTC (rev 44077)
+++ branches/bmesh/blender/source/blender/blenkernel/BKE_booleanops_mesh.h	2012-02-13 04:14:35 UTC (rev 44078)
@@ -24,8 +24,8 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
-#ifndef BKE_PyBooleanOps_h
-#define BKE_PyBooleanOps_h
+#ifndef BKE_BOOLEANOPS_MESH_H
+#define BKE_BOOLEANOPS_MESH_H
 
 /** \file BKE_booleanops_mesh.h
  *  \ingroup bke

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/particle.c	2012-02-13 04:12:40 UTC (rev 44077)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/particle.c	2012-02-13 04:14:35 UTC (rev 44078)
@@ -1365,6 +1365,35 @@
 	if(pind->keyed || pind->cache || point_vel)
 		mul_v3_fl(result->vel, 1.f/invdt);
 }
+
+static void interpolate_pathcache(ParticleCacheKey *first, float t, ParticleCacheKey *result)
+{
+	int i=0;
+	ParticleCacheKey *cur = first;
+
+	/* scale the requested time to fit the entire path even if the path is cut early */
+	t *= (first+first->steps)->time;
+
+	while(i<first->steps && cur->time < t)
+		cur++;
+
+	if(cur->time == t)
+		*result = *cur;
+	else {
+		float dt = (t-(cur-1)->time)/(cur->time-(cur-1)->time);
+		interp_v3_v3v3(result->co, (cur-1)->co, cur->co, dt);
+		interp_v3_v3v3(result->vel, (cur-1)->vel, cur->vel, dt);
+		interp_qt_qtqt(result->rot, (cur-1)->rot, cur->rot, dt);
+		result->time = t;
+	}
+
+	/* first is actual base rotation, others are incremental from first */
+	if(cur==first || cur-1==first)
+		copy_qt_qt(result->rot, first->rot);
+	else
+		mul_qt_qtqt(result->rot, first->rot, result->rot);
+}
+
 /************************************************/
 /*			Particles on a dm					*/
 /************************************************/
@@ -2648,6 +2677,8 @@
 			/* offset the child from the parent position */
 			offset_child(cpa, (ParticleKey*)(key[0]+k), par_rot, (ParticleKey*)child, part->childflat, part->childrad);
 		}
+
+		child->time = (float)k/(float)ctx->steps;
 	}
 
 	/* apply effectors */
@@ -3009,6 +3040,8 @@
 
 			if(k==1)
 				copy_v3_v3((ca-1)->vel, ca->vel);
+
+			ca->time = (float)k/(float)steps;
 		}
 		/* First rotation is based on emitting face orientation.
 		 * This is way better than having flipping rotations resulting
@@ -3089,6 +3122,9 @@
 		if(edit->totcached && !(point->flag & PEP_EDIT_RECALC))
 			continue;
 
+		if(point->totkey == 0)
+			continue;
+
 		ekey = point->keys;
 
 		pind.keyed = 0;
@@ -4012,84 +4048,105 @@
 	CLAMP(t, 0.0f, 1.0f);
 
 	if(p<totpart){
-		pa = psys->particles + p;
-		pind.keyed = keyed;
-		pind.cache = cached ? psys->pointcache : NULL;
-		pind.epoint = NULL;
-		pind.bspline = (psys->part->flag & PART_HAIR_BSPLINE);
-		/* pind.dm disabled in editmode means we dont get effectors taken into
-		 * account when subdividing for instance */
-		pind.dm = psys_in_edit_mode(sim->scene, psys) ? NULL : psys->hair_out_dm;
-		init_particle_interpolation(sim->ob, psys, pa, &pind);
-		do_particle_interpolation(psys, p, pa, t, &pind, state);
-
-		if(pind.dm) {
-			mul_m4_v3(sim->ob->obmat, state->co);
-			mul_mat3_m4_v3(sim->ob->obmat, state->vel);
+		/* interpolate pathcache directly if it exist */
+		if(psys->pathcache) {
+			ParticleCacheKey result;
+			interpolate_pathcache(psys->pathcache[p], t, &result);
+			copy_v3_v3(state->co, result.co);
+			copy_v3_v3(state->vel, result.vel);
+			copy_qt_qt(state->rot, result.rot);
 		}
-		else if(!keyed && !cached && !(psys->flag & PSYS_GLOBAL_HAIR)) {
-			if((pa->flag & PARS_REKEY)==0) {
-				psys_mat_hair_to_global(sim->ob, sim->psmd->dm, part->from, pa, hairmat);
-				mul_m4_v3(hairmat, state->co);
-				mul_mat3_m4_v3(hairmat, state->vel);
+		/* otherwise interpolate with other means */
+		else {
+			pa = psys->particles + p;
 
-				if(sim->psys->effectors && (part->flag & PART_CHILD_GUIDE)==0) {
-					do_guides(sim->psys->effectors, state, p, state->time);
-					/* TODO: proper velocity handling */
-				}
+			pind.keyed = keyed;
+			pind.cache = cached ? psys->pointcache : NULL;
+			pind.epoint = NULL;
+			pind.bspline = (psys->part->flag & PART_HAIR_BSPLINE);
+			/* pind.dm disabled in editmode means we dont get effectors taken into
+			 * account when subdividing for instance */
+			pind.dm = psys_in_edit_mode(sim->scene, psys) ? NULL : psys->hair_out_dm;
+			init_particle_interpolation(sim->ob, psys, pa, &pind);
+			do_particle_interpolation(psys, p, pa, t, &pind, state);
 
-				if(psys->lattice && edit==0)
-					calc_latt_deform(psys->lattice, state->co,1.0f);
+			if(pind.dm) {
+				mul_m4_v3(sim->ob->obmat, state->co);
+				mul_mat3_m4_v3(sim->ob->obmat, state->vel);
 			}
+			else if(!keyed && !cached && !(psys->flag & PSYS_GLOBAL_HAIR)) {
+				if((pa->flag & PARS_REKEY)==0) {
+					psys_mat_hair_to_global(sim->ob, sim->psmd->dm, part->from, pa, hairmat);
+					mul_m4_v3(hairmat, state->co);
+					mul_mat3_m4_v3(hairmat, state->vel);
+
+					if(sim->psys->effectors && (part->flag & PART_CHILD_GUIDE)==0) {
+						do_guides(sim->psys->effectors, state, p, state->time);
+						/* TODO: proper velocity handling */
+					}
+
+					if(psys->lattice && edit==0)
+						calc_latt_deform(psys->lattice, state->co,1.0f);
+				}
+			}
 		}
 	}
 	else if(totchild){
 		//invert_m4_m4(imat,ob->obmat);
 
-		cpa=psys->child+p-totpart;
+		/* interpolate childcache directly if it exists */
+		if(psys->childcache) {
+			ParticleCacheKey result;
+			interpolate_pathcache(psys->childcache[p-totpart], t, &result);
+			copy_v3_v3(state->co, result.co);
+			copy_v3_v3(state->vel, result.vel);
+			copy_qt_qt(state->rot, result.rot);
+		}
+		else {
+			cpa=psys->child+p-totpart;
 
-		if(state->time < 0.0f)
-			t = psys_get_child_time(psys, cpa, -state->time, NULL, NULL);
+			if(state->time < 0.0f)
+				t = psys_get_child_time(psys, cpa, -state->time, NULL, NULL);
 		
-		if(totchild && part->childtype==PART_CHILD_FACES){
-			/* part->parents could still be 0 so we can't test with totparent */
-			between=1;
-		}
-		if(between){
-			int w = 0;
-			float foffset;
-
-			/* get parent states */
-			while(w<4 && cpa->pa[w]>=0){
-				keys[w].time = state->time;
-				psys_get_particle_on_path(sim, cpa->pa[w], keys+w, 1);
-				w++;
+			if(totchild && part->childtype==PART_CHILD_FACES){
+				/* part->parents could still be 0 so we can't test with totparent */
+				between=1;
 			}
+			if(between){
+				int w = 0;
+				float foffset;
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list