[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16796] trunk/blender/source/blender/ blenkernel/intern: A previous commit by me (16701) broke keyed- and none-physics particles or at least made them do funny things .
Janne Karhu
jhkarh at utu.fi
Sun Sep 28 21:53:38 CEST 2008
Revision: 16796
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16796
Author: jhk
Date: 2008-09-28 21:53:37 +0200 (Sun, 28 Sep 2008)
Log Message:
-----------
A previous commit by me (16701) broke keyed- and none-physics particles or at least made them do funny things.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/particle.c
trunk/blender/source/blender/blenkernel/intern/particle_system.c
Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c 2008-09-28 18:58:40 UTC (rev 16795)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c 2008-09-28 19:53:37 UTC (rev 16796)
@@ -3392,19 +3392,19 @@
size=part->size;
if((part->flag&PART_ABS_TIME)==0 && part->ipo){
- IpoCurve *icu;
-
+ IpoCurve *icu;
+
if(pa_time)
time=*pa_time;
else
- time=psys_get_child_time(psys,cpa,cfra);
-
- /* correction for lifetime */
- calc_ipo(part->ipo, 100*time);
-
- for(icu = part->ipo->curve.first; icu; icu=icu->next) {
- if(icu->adrcode == PART_SIZE)
- size = icu->curval;
+ time=psys_get_child_time(psys,cpa,cfra);
+
+ /* correction for lifetime */
+ calc_ipo(part->ipo, 100*time);
+
+ for(icu = part->ipo->curve.first; icu; icu=icu->next) {
+ if(icu->adrcode == PART_SIZE)
+ size = icu->curval;
}
}
}
@@ -3796,7 +3796,7 @@
}
else{
if (pa) { /* TODO PARTICLE - should this ever be NULL? - Campbell */
- if(pa->state.time==state->time)
+ if(pa->state.time==state->time || ELEM(part->phystype,PART_PHYS_NO,PART_PHYS_KEYED))
copy_particle_key(state, &pa->state, 1);
else if(pa->prev_state.time==state->time)
copy_particle_key(state, &pa->prev_state, 1);
@@ -3828,6 +3828,9 @@
/* convert back to real velocity */
VecMulf(state->vel, frs_sec / dfra);
+
+ VecLerpf(state->ave, keys[1].ave, keys[2].ave, keytime);
+ QuatInterpol(state->rot, keys[1].rot, keys[2].rot, keytime);
}
}
else {
@@ -3938,13 +3941,13 @@
nor[2] = 0.0f;
}
}
- Crossf(side, nor, vec);
- Normalize(side);
- Crossf(nor, vec, side);
-
- Mat4One(mat);
- VECCOPY(mat[0], vec);
- VECCOPY(mat[1], side);
+ Crossf(side, nor, vec);
+ Normalize(side);
+ Crossf(nor, vec, side);
+
+ Mat4One(mat);
+ VECCOPY(mat[0], vec);
+ VECCOPY(mat[1], side);
VECCOPY(mat[2], nor);
}
Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c 2008-09-28 18:58:40 UTC (rev 16795)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c 2008-09-28 19:53:37 UTC (rev 16796)
@@ -4154,7 +4154,7 @@
}
if((part->type==PART_HAIR || psys->flag&PSYS_KEYED) && (psys_in_edit_mode(psys)
- || (part->type==PART_HAIR || part->draw_as==PART_DRAW_PATH) || part->draw&PART_DRAW_KEYS)){
+ || (part->type==PART_HAIR || part->draw_as==PART_DRAW_PATH))){
psys_cache_paths(ob, psys, cfra, 0);
/* for render, child particle paths are computed on the fly */
@@ -4464,11 +4464,9 @@
return;
}
- /* cache shouldn't be used for hair or "none" or "first keyed" physics */
- if(part->type == PART_HAIR || part->phystype == PART_PHYS_NO)
+ /* cache shouldn't be used for hair or "none" or "keyed" physics */
+ if(part->type == PART_HAIR || ELEM(part->phystype, PART_PHYS_NO, PART_PHYS_KEYED))
usecache= 0;
- else if(part->type == PART_PHYS_KEYED && (psys->flag & PSYS_FIRST_KEYED))
- usecache= 0;
else if(BKE_ptcache_get_continue_physics())
usecache= 0;
else
More information about the Bf-blender-cvs
mailing list