diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-10-03 21:29:43 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-10-03 21:29:43 +0400 |
commit | 3b996ac1b3fcc93b121a9d4ef6024d5638df780f (patch) | |
tree | cccdc4f8ea12efa3d23657d6a2a3e82b11cda828 /source/blender | |
parent | 75621eeff97d5765ecd3cdea1873d5c40baad0d6 (diff) |
add macro OB_TYPE_SUPPORT_MATERIAL, type checks were being done inline, some comparing range, some using ELEM#(), once was missing metaball check.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_edit.c | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_relations.c | 6 | ||||
-rw-r--r-- | source/blender/editors/render/render_preview.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_buttons/buttons_context.c | 4 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_buttons.c | 5 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 3 | ||||
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 4 |
8 files changed, 18 insertions, 10 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 5530096f8ea..ce4cc284bb0 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1649,7 +1649,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob) 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; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 8ca481655d0..a50dd00ef16 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1368,7 +1368,7 @@ static void UNUSED_FUNCTION(copy_attr_menu)(Main *bmain, Scene *scene, View3D *v 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"); // } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index ec5aa19d3c0..389c0941cc2 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1243,9 +1243,11 @@ static int allow_make_links_data(int ev, Object *ob, Object *obt) 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: diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index b937f9a4104..70709a22d3d 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -344,7 +344,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre /* 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; diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 526859cecd2..4a2860335fe 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -234,7 +234,7 @@ static int buttons_context_path_material(ButsContextPath *path, int for_texture) 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 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r 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; diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c index e1fb287d79c..0ad36657196 100644 --- a/source/blender/editors/space_view3d/view3d_buttons.c +++ b/source/blender/editors/space_view3d/view3d_buttons.c @@ -895,8 +895,11 @@ static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr) 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); + } } } diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index f32f8d626de..f0c7cf8cc45 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -321,6 +321,9 @@ typedef struct DupliObject { /* 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 diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index f06707c94fe..0ea0725d05d 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4359,9 +4359,9 @@ static void finalize_render_object(Render *re, ObjectRen *obr, int timeoffset) /* 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) |