[Bf-blender-cvs] [8fb93aebe76] temp-dynamic-overrides: BKE_idtype_to_main_data
Dalai Felinto
noreply at git.blender.org
Sun May 27 19:23:51 CEST 2018
Commit: 8fb93aebe76e48747a0bc96ba73386459921d439
Author: Dalai Felinto
Date: Sun May 27 18:32:38 2018 +0200
Branches: temp-dynamic-overrides
https://developer.blender.org/rB8fb93aebe76e48747a0bc96ba73386459921d439
BKE_idtype_to_main_data
Function to map ID_Type to bmain-> listbases.
===================================================================
M source/blender/blenkernel/BKE_idcode.h
M source/blender/blenkernel/intern/idcode.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_idcode.h b/source/blender/blenkernel/BKE_idcode.h
index 964a49435f1..8cc05fcfd67 100644
--- a/source/blender/blenkernel/BKE_idcode.h
+++ b/source/blender/blenkernel/BKE_idcode.h
@@ -32,6 +32,11 @@
* \ingroup bke
*/
+struct ListBase;
+struct Main;
+
+struct ListBase *BKE_idtype_to_main_data(struct Main *bmain, short id_type);
+
const char *BKE_idcode_to_name(short idcode);
const char *BKE_idcode_to_name_plural(short idcode);
const char *BKE_idcode_to_translation_context(short idcode);
diff --git a/source/blender/blenkernel/intern/idcode.c b/source/blender/blenkernel/intern/idcode.c
index 4860f5a896d..d3ef21363c0 100644
--- a/source/blender/blenkernel/intern/idcode.c
+++ b/source/blender/blenkernel/intern/idcode.c
@@ -40,6 +40,7 @@
#include "BLT_translation.h"
#include "BKE_library.h"
+#include "BKE_main.h"
#include "BKE_idcode.h"
typedef struct {
@@ -124,6 +125,86 @@ static IDType *idtype_from_code(short idcode)
return NULL;
}
+ListBase *BKE_idtype_to_main_data(Main *bmain, short id_type)
+{
+ switch (id_type)
+ {
+ case ID_SCE:
+ return &bmain->scene;
+ case ID_LI:
+ return &bmain->library;
+ case ID_OB:
+ return &bmain->object;
+ case ID_ME:
+ return &bmain->mesh;
+ case ID_CU:
+ return &bmain->curve;
+ case ID_MB:
+ return &bmain->mball;
+ case ID_MA:
+ return &bmain->mat;
+ case ID_TE:
+ return &bmain->tex;
+ case ID_IM:
+ return &bmain->image;
+ case ID_LT:
+ return &bmain->latt;
+ case ID_LA:
+ return &bmain->lamp;
+ case ID_CA:
+ return &bmain->camera;
+ case ID_IP:
+ return &bmain->ipo;
+ case ID_KE:
+ return &bmain->key;
+ case ID_WO:
+ return &bmain->world;
+ case ID_SCR:
+ return &bmain->screen;
+ case ID_VF:
+ return &bmain->vfont;
+ case ID_TXT:
+ return &bmain->text;
+ case ID_SPK:
+ return &bmain->speaker;
+ case ID_SO:
+ return &bmain->sound;
+ case ID_GR:
+ return &bmain->collection;
+ case ID_AR:
+ return &bmain->armature;
+ case ID_AC:
+ return &bmain->action;
+ case ID_NT:
+ return &bmain->nodetree;
+ case ID_BR:
+ return &bmain->brush;
+ case ID_PA:
+ return &bmain->particle;
+ case ID_GD:
+ return &bmain->gpencil;
+ case ID_WM:
+ return &bmain->wm;
+ case ID_MC:
+ return &bmain->movieclip;
+ case ID_MSK:
+ return &bmain->mask;
+ case ID_LS:
+ return &bmain->linestyle;
+ case ID_PAL:
+ return &bmain->palettes;
+ case ID_PC:
+ return &bmain->paintcurves;
+ case ID_CF:
+ return &bmain->cachefiles;
+ case ID_WS:
+ return &bmain->workspaces;
+ case ID_LP:
+ return &bmain->lightprobe;
+ }
+ return NULL;
+}
+
/**
* Return if the ID code is a valid ID code.
*
More information about the Bf-blender-cvs
mailing list