[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40776] trunk/blender/source/blender: add macro OB_TYPE_SUPPORT_MATERIAL, type checks were being done inline, some comparing range, some using ELEM#(), once was missing metaball check.

Campbell Barton ideasman42 at gmail.com
Mon Oct 3 19:29:44 CEST 2011


Revision: 40776
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40776
Author:   campbellbarton
Date:     2011-10-03 17:29:43 +0000 (Mon, 03 Oct 2011)
Log Message:
-----------
add macro OB_TYPE_SUPPORT_MATERIAL, type checks were being done inline, some comparing range, some using ELEM#(), once was missing metaball check.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/render/render_preview.c
    trunk/blender/source/blender/editors/space_buttons/buttons_context.c
    trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/render/intern/source/convertblender.c

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -1649,7 +1649,7 @@
 	if(ob->matbits) MEM_freeN(ob->matbits);
 	ob->mat = NULL;
 	ob->matbits= NULL;
-	if ((target->totcol) && (target->mat) && ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL)) { //XXX OB_SUPPORT_MATERIAL
+	if ((target->totcol) && (target->mat) && OB_TYPE_SUPPORT_MATERIAL(ob->type)) {
 		int i;
 		ob->colbits = target->colbits;
 		

Modified: trunk/blender/source/blender/editors/object/object_edit.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_edit.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/editors/object/object_edit.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -1368,7 +1368,7 @@
 	strcat (str, "|Object Constraints%x22");
 	strcat (str, "|NLA Strips%x26");
 	
-// XXX	if (OB_SUPPORT_MATERIAL(ob)) {
+// XXX	if (OB_TYPE_SUPPORT_MATERIAL(ob->type)) {
 //		strcat(str, "|Texture Space%x17");
 //	}	
 	

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -1243,9 +1243,11 @@
 				return 1;
 			break;
 		case MAKE_LINKS_MATERIALS:
-			if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_FONT, OB_SURF, OB_MBALL) &&
-				ELEM5(obt->type, OB_MESH, OB_CURVE, OB_FONT, OB_SURF, OB_MBALL))
+			if (OB_TYPE_SUPPORT_MATERIAL(ob->type) &&
+				OB_TYPE_SUPPORT_MATERIAL(obt->type))
+			{
 				return 1;
+			}
 			break;
 		case MAKE_LINKS_ANIMDATA:
 		case MAKE_LINKS_DUPLIGROUP:

Modified: trunk/blender/source/blender/editors/render/render_preview.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_preview.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/editors/render/render_preview.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -344,7 +344,7 @@
 					/* copy over object color, in case material uses it */
 					copy_v4_v4(base->object->col, sp->col);
 					
-					if(ELEM4(base->object->type, OB_MESH, OB_CURVE, OB_SURF, OB_MBALL)) {
+					if(OB_TYPE_SUPPORT_MATERIAL(base->object->type)) {
 						/* don't use assign_material, it changed mat->id.us, which shows in the UI */
 						Material ***matar= give_matarar(base->object);
 						int actcol= MAX2(base->object->actcol > 0, 1) - 1;

Modified: trunk/blender/source/blender/editors/space_buttons/buttons_context.c
===================================================================
--- trunk/blender/source/blender/editors/space_buttons/buttons_context.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/editors/space_buttons/buttons_context.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -234,7 +234,7 @@
 	else if(buttons_context_path_object(path)) {
 		ob= path->ptr[path->len-1].data;
 
-		if(ob && ob->type && (ob->type<OB_LAMP)) {
+		if(ob && OB_TYPE_SUPPORT_MATERIAL(ob->type)) {
 			ma= give_current_material(ob, ob->actcol);
 			RNA_id_pointer_create(&ma->id, &path->ptr[path->len]);
 			path->len++;
@@ -721,7 +721,7 @@
 		if(ptr) {
 			Object *ob= ptr->data;
 
-			if(ob && ob->type && (ob->type<OB_LAMP) && ob->totcol) {
+			if(ob && OB_TYPE_SUPPORT_MATERIAL(ob->type) && ob->totcol) {
 				/* a valid actcol isn't ensured [#27526] */
 				int matnr= ob->actcol-1;
 				if(matnr < 0) matnr= 0;

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -895,8 +895,11 @@
 	
 	if (ptr->type == &RNA_Object) {
 		Object *ob = ptr->data;
-		if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL))
+		/* dimensions and material support just happen to be the same checks
+		 * later we may want to add dimensions for lattice, armature etc too */
+		if (OB_TYPE_SUPPORT_MATERIAL(ob->type)) {
 			uiItemR(layout, ptr, "dimensions", 0, "Dimensions", ICON_NONE);
+		}
 	}
 }
 

Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h	2011-10-03 17:29:43 UTC (rev 40776)
@@ -321,6 +321,9 @@
 /* 23 and 24 are for life and sector (old file compat.) */
 #define	OB_ARMATURE		25
 
+/* check if the object type supports materials */
+#define OB_TYPE_SUPPORT_MATERIAL(_type) ((_type)  >= OB_MESH && (_type) <= OB_MBALL)
+
 /* partype: first 4 bits: type */
 #define PARTYPE			15
 #define PAROBJECT		0

Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c	2011-10-03 16:55:00 UTC (rev 40775)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2011-10-03 17:29:43 UTC (rev 40776)
@@ -4359,9 +4359,9 @@
 /* Database																	 */
 /* ------------------------------------------------------------------------- */
 
-static int render_object_type(int type) 
+static int render_object_type(short type)
 {
-	return ELEM5(type, OB_FONT, OB_CURVE, OB_SURF, OB_MESH, OB_MBALL);
+	return OB_TYPE_SUPPORT_MATERIAL(type);
 }
 
 static void find_dupli_instances(Render *re, ObjectRen *obr)




More information about the Bf-blender-cvs mailing list