[Bf-blender-cvs] [d15e8bdaa33] master: Modifiers: add icon field to ModifierTypeInfo
Jacques Lucke
noreply at git.blender.org
Fri Sep 25 12:49:31 CEST 2020
Commit: d15e8bdaa3343cf97a74f918b2570e66fb7abfa0
Author: Jacques Lucke
Date: Fri Sep 25 12:45:30 2020 +0200
Branches: master
https://developer.blender.org/rBd15e8bdaa3343cf97a74f918b2570e66fb7abfa0
Modifiers: add icon field to ModifierTypeInfo
With this change `outliner_draw.c` does not have to be
edited anymore when a new modifier is added.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D8998
===================================================================
M source/blender/blenkernel/BKE_modifier.h
M source/blender/editors/space_outliner/outliner_draw.c
M source/blender/modifiers/intern/MOD_armature.c
M source/blender/modifiers/intern/MOD_array.c
M source/blender/modifiers/intern/MOD_bevel.c
M source/blender/modifiers/intern/MOD_boolean.c
M source/blender/modifiers/intern/MOD_build.c
M source/blender/modifiers/intern/MOD_cast.c
M source/blender/modifiers/intern/MOD_cloth.c
M source/blender/modifiers/intern/MOD_collision.c
M source/blender/modifiers/intern/MOD_correctivesmooth.c
M source/blender/modifiers/intern/MOD_curve.c
M source/blender/modifiers/intern/MOD_datatransfer.c
M source/blender/modifiers/intern/MOD_decimate.c
M source/blender/modifiers/intern/MOD_displace.c
M source/blender/modifiers/intern/MOD_dynamicpaint.c
M source/blender/modifiers/intern/MOD_edgesplit.c
M source/blender/modifiers/intern/MOD_explode.c
M source/blender/modifiers/intern/MOD_fluid.c
M source/blender/modifiers/intern/MOD_hook.c
M source/blender/modifiers/intern/MOD_laplaciandeform.c
M source/blender/modifiers/intern/MOD_laplaciansmooth.c
M source/blender/modifiers/intern/MOD_lattice.c
M source/blender/modifiers/intern/MOD_mask.cc
M source/blender/modifiers/intern/MOD_meshcache.c
M source/blender/modifiers/intern/MOD_meshdeform.c
M source/blender/modifiers/intern/MOD_meshsequencecache.c
M source/blender/modifiers/intern/MOD_mirror.c
M source/blender/modifiers/intern/MOD_multires.c
M source/blender/modifiers/intern/MOD_none.c
M source/blender/modifiers/intern/MOD_normal_edit.c
M source/blender/modifiers/intern/MOD_ocean.c
M source/blender/modifiers/intern/MOD_particleinstance.c
M source/blender/modifiers/intern/MOD_particlesystem.c
M source/blender/modifiers/intern/MOD_remesh.c
M source/blender/modifiers/intern/MOD_screw.c
M source/blender/modifiers/intern/MOD_shapekey.c
M source/blender/modifiers/intern/MOD_shrinkwrap.c
M source/blender/modifiers/intern/MOD_simpledeform.c
M source/blender/modifiers/intern/MOD_simulation.cc
M source/blender/modifiers/intern/MOD_skin.c
M source/blender/modifiers/intern/MOD_smooth.c
M source/blender/modifiers/intern/MOD_softbody.c
M source/blender/modifiers/intern/MOD_solidify.c
M source/blender/modifiers/intern/MOD_subsurf.c
M source/blender/modifiers/intern/MOD_surface.c
M source/blender/modifiers/intern/MOD_surfacedeform.c
M source/blender/modifiers/intern/MOD_triangulate.c
M source/blender/modifiers/intern/MOD_uvproject.c
M source/blender/modifiers/intern/MOD_uvwarp.c
M source/blender/modifiers/intern/MOD_warp.c
M source/blender/modifiers/intern/MOD_wave.c
M source/blender/modifiers/intern/MOD_weighted_normal.c
M source/blender/modifiers/intern/MOD_weightvgedit.c
M source/blender/modifiers/intern/MOD_weightvgmix.c
M source/blender/modifiers/intern/MOD_weightvgproximity.c
M source/blender/modifiers/intern/MOD_weld.c
M source/blender/modifiers/intern/MOD_wireframe.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 02b9b547314..83d8177b390 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -173,6 +173,9 @@ typedef struct ModifierTypeInfo {
ModifierTypeType type;
ModifierTypeFlag flags;
+ /* Icon of the modifier. Usually something like ICON_MOD_*. */
+ int icon;
+
/********************* Non-optional functions *********************/
/**
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index 9e805e2052f..1160a5b926c 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -2137,163 +2137,12 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te)
if (ob->type != OB_GPENCIL) {
ModifierData *md = BLI_findlink(&ob->modifiers, tselem->nr);
- switch ((ModifierType)md->type) {
- case eModifierType_Subsurf:
- data.icon = ICON_MOD_SUBSURF;
- break;
- case eModifierType_Armature:
- data.icon = ICON_MOD_ARMATURE;
- break;
- case eModifierType_Lattice:
- data.icon = ICON_MOD_LATTICE;
- break;
- case eModifierType_Curve:
- data.icon = ICON_MOD_CURVE;
- break;
- case eModifierType_Build:
- data.icon = ICON_MOD_BUILD;
- break;
- case eModifierType_Mirror:
- data.icon = ICON_MOD_MIRROR;
- break;
- case eModifierType_Decimate:
- data.icon = ICON_MOD_DECIM;
- break;
- case eModifierType_Wave:
- data.icon = ICON_MOD_WAVE;
- break;
- case eModifierType_Hook:
- data.icon = ICON_HOOK;
- break;
- case eModifierType_Softbody:
- data.icon = ICON_MOD_SOFT;
- break;
- case eModifierType_Boolean:
- data.icon = ICON_MOD_BOOLEAN;
- break;
- case eModifierType_ParticleSystem:
- data.icon = ICON_MOD_PARTICLES;
- break;
- case eModifierType_ParticleInstance:
- data.icon = ICON_MOD_PARTICLES;
- break;
- case eModifierType_EdgeSplit:
- data.icon = ICON_MOD_EDGESPLIT;
- break;
- case eModifierType_Array:
- data.icon = ICON_MOD_ARRAY;
- break;
- case eModifierType_UVProject:
- case eModifierType_UVWarp: /* TODO, get own icon */
- data.icon = ICON_MOD_UVPROJECT;
- break;
- case eModifierType_Displace:
- data.icon = ICON_MOD_DISPLACE;
- break;
- case eModifierType_Shrinkwrap:
- data.icon = ICON_MOD_SHRINKWRAP;
- break;
- case eModifierType_Cast:
- data.icon = ICON_MOD_CAST;
- break;
- case eModifierType_MeshDeform:
- case eModifierType_SurfaceDeform:
- data.icon = ICON_MOD_MESHDEFORM;
- break;
- case eModifierType_Bevel:
- data.icon = ICON_MOD_BEVEL;
- break;
- case eModifierType_Smooth:
- case eModifierType_LaplacianSmooth:
- case eModifierType_CorrectiveSmooth:
- data.icon = ICON_MOD_SMOOTH;
- break;
- case eModifierType_SimpleDeform:
- data.icon = ICON_MOD_SIMPLEDEFORM;
- break;
- case eModifierType_Mask:
- data.icon = ICON_MOD_MASK;
- break;
- case eModifierType_Cloth:
- data.icon = ICON_MOD_CLOTH;
- break;
- case eModifierType_Explode:
- data.icon = ICON_MOD_EXPLODE;
- break;
- case eModifierType_Collision:
- case eModifierType_Surface:
- data.icon = ICON_MOD_PHYSICS;
- break;
- case eModifierType_Fluidsim: /* deprecated, old fluid modifier */
- data.icon = ICON_MOD_FLUIDSIM;
- break;
- case eModifierType_Multires:
- data.icon = ICON_MOD_MULTIRES;
- break;
- case eModifierType_Fluid:
- data.icon = ICON_MOD_FLUID;
- break;
- case eModifierType_Solidify:
- data.icon = ICON_MOD_SOLIDIFY;
- break;
- case eModifierType_Screw:
- data.icon = ICON_MOD_SCREW;
- break;
- case eModifierType_Remesh:
- data.icon = ICON_MOD_REMESH;
- break;
- case eModifierType_WeightVGEdit:
- case eModifierType_WeightVGMix:
- case eModifierType_WeightVGProximity:
- data.icon = ICON_MOD_VERTEX_WEIGHT;
- break;
- case eModifierType_DynamicPaint:
- data.icon = ICON_MOD_DYNAMICPAINT;
- break;
- case eModifierType_Ocean:
- data.icon = ICON_MOD_OCEAN;
- break;
- case eModifierType_Warp:
- data.icon = ICON_MOD_WARP;
- break;
- case eModifierType_Skin:
- data.icon = ICON_MOD_SKIN;
- break;
- case eModifierType_Triangulate:
- data.icon = ICON_MOD_TRIANGULATE;
- break;
- case eModifierType_MeshCache:
- data.icon = ICON_MOD_MESHDEFORM; /* XXX, needs own icon */
- break;
- case eModifierType_MeshSequenceCache:
- data.icon = ICON_MOD_MESHDEFORM; /* XXX, needs own icon */
- break;
- case eModifierType_Wireframe:
- data.icon = ICON_MOD_WIREFRAME;
- break;
- case eModifierType_Weld:
- data.icon = ICON_AUTOMERGE_OFF; /* XXX, needs own icon */
- break;
- case eModifierType_LaplacianDeform:
- data.icon = ICON_MOD_MESHDEFORM; /* XXX, needs own icon */
- break;
- case eModifierType_DataTransfer:
- data.icon = ICON_MOD_DATA_TRANSFER;
- break;
- case eModifierType_NormalEdit:
- case eModifierType_WeightedNormal:
- data.icon = ICON_MOD_NORMALEDIT;
- break;
- case eModifierType_Simulation:
- data.icon = ICON_PHYSICS; /* TODO: Use correct icon. */
- break;
- /* Default */
- case eModifierType_None:
- case eModifierType_ShapeKey:
-
- case NUM_MODIFIER_TYPES:
- data.icon = ICON_DOT;
- break;
+ const ModifierTypeInfo *modifier_type = BKE_modifier_get_info(md->type);
+ if (modifier_type != NULL) {
+ data.icon = modifier_type->icon;
+ }
+ else {
+ data.icon = ICON_DOT;
}
}
else {
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index f42f67417c3..3f53a4c9552 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -281,6 +281,7 @@ ModifierTypeInfo modifierType_Armature = {
/* type */ eModifierTypeType_OnlyDeform,
/* flags */ eModifierTypeFlag_AcceptsCVs | eModifierTypeFlag_AcceptsVertexCosOnly |
eModifierTypeFlag_SupportsEditmode,
+ /* icon */ ICON_MOD_ARMATURE,
/* copyData */ copyData,
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index 60e1a3de67e..ae4bc3ca4c6 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -1014,6 +1014,7 @@ ModifierTypeInfo modifierType_Array = {
/* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_SupportsMapping |
eModifierTypeFlag_SupportsEditmode | eModifierTypeFlag_EnableInEditmode |
eModifierTypeFlag_AcceptsCVs,
+ /* icon */ ICON_MOD_ARRAY,
/* copyData */ BKE_modifier_copydata_generic,
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c
index ab024bd824d..8ab6eccb576 100644
--- a/source/blender/modifiers/intern/MOD_bevel.c
+++ b/source/blender/modifiers/intern/MOD_bevel.c
@@ -449,6 +449,7 @@ ModifierTypeInfo modifierType_Bevel = {
/* type */ eModifierTypeType_Constructive,
/* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_SupportsEditmode |
eModifierTypeFlag_EnableInEditmode | eModifierTypeFlag_AcceptsCVs,
+ /* icon */ ICON_MOD_BEVEL,
/* copyData */ copyData,
/* deformVerts */ NULL,
/* deformMatrices */ NULL,
diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c
index cd552d4e1ad..59e2cf12e23 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -753,6 +753,7 @@ ModifierTypeInfo modifierType_Boolean = {
/* structSize */ sizeof(BooleanModifierData),
/* type */ eModifierTypeType_Nonconstructive,
/* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_SupportsEditmode,
+ /* icon */ ICON_MOD_BOOLEAN,
/* copyData */ BKE_modifier_copydata_generic,
diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c
index d3caffb819c..0c2cae895e6 100644
--- a/source/blender/modifiers/intern/MOD_build.c
+++ b/source/blender/modifiers/intern/MOD_build.c
@@ -333,6 +333,7 @@ ModifierTypeInfo modifierType_Build = {
/* structSize */ sizeof(BuildModifierData),
/* type */ eModifierTypeType_Nonconstructive,
/* flags */ eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_AcceptsCVs,
+ /* icon */ ICON_MOD_BUILD,
/* copyData */ BKE_modifier_copydata_generic,
diff --git a/source/blender/modifiers/intern/MOD_cast.c b/sourc
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list