diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-07-09 23:49:04 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-07-09 23:49:04 +0400 |
commit | 9241559ab4c223d30a949f2e06c776642b69715c (patch) | |
tree | 7e0f47e588eb5e515cc8080d412e04cc54187df5 /source/blender/editors/object/object_modifier.c | |
parent | d091856486cffc4351d6ded86de3c33afb3155b4 (diff) |
2.5: Various
* Weight paint: brush strength was changed to both define weight
and strength, this can't work, made them separate buttons.
* Allow adding particle system as modifier (fix crash).
* 3D view modal ops (zoom ..) could not be ended when invoked
from a button.
* Fix some warnings.
* Fix spelling in particle RNA property.
Diffstat (limited to 'source/blender/editors/object/object_modifier.c')
-rw-r--r-- | source/blender/editors/object/object_modifier.c | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index eb723dcca6c..6b9f2db0d96 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -83,33 +83,38 @@ int ED_object_modifier_add(ReportList *reports, Scene *scene, Object *ob, int ty } } - if(mti->flags&eModifierTypeFlag_RequiresOriginalData) { - md = ob->modifiers.first; + if(type == eModifierType_ParticleSystem) { + object_add_particle_system(scene, ob); + } + else { + if(mti->flags&eModifierTypeFlag_RequiresOriginalData) { + md = ob->modifiers.first; - while(md && modifierType_getInfo(md->type)->type==eModifierTypeType_OnlyDeform) - md = md->next; + while(md && modifierType_getInfo(md->type)->type==eModifierTypeType_OnlyDeform) + md = md->next; - BLI_insertlinkbefore(&ob->modifiers, md, modifier_new(type)); - } - else - BLI_addtail(&ob->modifiers, modifier_new(type)); - - /* special cases */ - if(type == eModifierType_Softbody) { - if(!ob->soft) { - ob->soft= sbNew(scene); - ob->softflag |= OB_SB_GOAL|OB_SB_EDGES; + BLI_insertlinkbefore(&ob->modifiers, md, modifier_new(type)); } - } - else if(type == eModifierType_Collision) { - if(!ob->pd) - ob->pd= object_add_collision_fields(); + else + BLI_addtail(&ob->modifiers, modifier_new(type)); + + /* special cases */ + if(type == eModifierType_Softbody) { + if(!ob->soft) { + ob->soft= sbNew(scene); + ob->softflag |= OB_SB_GOAL|OB_SB_EDGES; + } + } + else if(type == eModifierType_Collision) { + if(!ob->pd) + ob->pd= object_add_collision_fields(); - ob->pd->deflect= 1; - DAG_scene_sort(scene); + ob->pd->deflect= 1; + DAG_scene_sort(scene); + } + else if(type == eModifierType_Surface) + DAG_scene_sort(scene); } - else if(type == eModifierType_Surface) - DAG_scene_sort(scene); DAG_object_flush_update(scene, ob, OB_RECALC_DATA); |