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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to