[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