[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