Fix for [#22128] particle sizes and physics

* size wasn't updated at all for particles with keyed or no physics
This commit is contained in:
Janne Karhu
2010-07-25 14:40:18 +00:00
parent 1e7f96343e
commit 6ec87e6095
2 changed files with 15 additions and 5 deletions

View File

@@ -401,11 +401,12 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
else:
row.prop(part, "physics_type", text="")
row = layout.row()
col = row.column(align=True)
col.prop(part, "particle_size")
col.prop(part, "random_size", slider=True)
if part.physics_type != 'NO':
row = layout.row()
col = row.column(align=True)
col.prop(part, "particle_size")
col.prop(part, "random_size", slider=True)
col = row.column(align=True)
col.prop(part, "mass")
col.prop(part, "sizemass", text="Multiply mass with size")

View File

@@ -4038,12 +4038,21 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys)
case PART_PHYS_NO:
case PART_PHYS_KEYED:
{
PARTICLE_P;
if(emit_particles(&sim, NULL, cfra)) {
free_keyed_keys(psys);
distribute_particles(&sim, part->from);
initialize_all_particles(&sim);
}
reset_all_particles(&sim, 0.0, cfra, 0);
LOOP_EXISTING_PARTICLES {
pa->size = part->size;
if(part->randsize > 0.0)
pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1);
reset_particle(&sim, pa, 0.0, cfra);
}
if(part->phystype == PART_PHYS_KEYED) {
psys_count_keyed_targets(&sim);