[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33772] trunk/blender: Bugfix [#25291] Objects that should not have subsurface modifier have
Joshua Leung
aligorith at gmail.com
Sun Dec 19 02:14:57 CET 2010
Revision: 33772
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33772
Author: aligorith
Date: 2010-12-19 02:14:57 +0100 (Sun, 19 Dec 2010)
Log Message:
-----------
Bugfix [#25291] Objects that should not have subsurface modifier have
it (eg cameras)
When trying to add a modifier to non-geometry objects, warnings are
now shown instead of just adding some (useless) modifiers that cannot
be removed later.
Modified Paths:
--------------
trunk/blender/release/scripts/op/object.py
trunk/blender/source/blender/editors/object/object_modifier.c
Modified: trunk/blender/release/scripts/op/object.py
===================================================================
--- trunk/blender/release/scripts/op/object.py 2010-12-18 21:19:55 UTC (rev 33771)
+++ trunk/blender/release/scripts/op/object.py 2010-12-19 01:14:57 UTC (rev 33772)
@@ -207,9 +207,12 @@
return
- # adda new modifier
- mod = obj.modifiers.new("Subsurf", 'SUBSURF')
- mod.levels = level
+ # add a new modifier
+ try:
+ mod = obj.modifiers.new("Subsurf", 'SUBSURF')
+ mod.levels = level
+ except:
+ self.report({'WARNING'}, "Modifiers cannot be added to object: " + obj.name)
for obj in context.selected_editable_objects:
set_object_subd(obj)
Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c 2010-12-18 21:19:55 UTC (rev 33771)
+++ trunk/blender/source/blender/editors/object/object_modifier.c 2010-12-19 01:14:57 UTC (rev 33772)
@@ -82,14 +82,20 @@
{
ModifierData *md=NULL, *new_md=NULL;
ModifierTypeInfo *mti = modifierType_getInfo(type);
-
+
+ /* only geometry objects should be able to get modifiers [#25291] */
+ if(!ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE)) {
+ BKE_reportf(reports, RPT_WARNING, "Modifiers cannot be added to Object '%s'", ob->id.name+2);
+ return NULL;
+ }
+
if(mti->flags&eModifierTypeFlag_Single) {
if(modifiers_findByType(ob, type)) {
BKE_report(reports, RPT_WARNING, "Only one modifier of this type allowed.");
return NULL;
}
}
-
+
if(type == eModifierType_ParticleSystem) {
/* don't need to worry about the new modifier's name, since that is set to the number
* of particle systems which shouldn't have too many duplicates
More information about the Bf-blender-cvs
mailing list