Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-03-16 14:55:30 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-03-16 14:55:30 +0400
commit7b7196e3adea4cd5a818d0653f85b363418079c3 (patch)
tree0f463390c214d11098a65aa0aee6460c80b546c1
parent211f08d89bb48312a426fe969e0d967cf637b66c (diff)
Code cleanup: modifier_skin_customdata_ensure was a bad level call
-rw-r--r--source/blender/blenkernel/BKE_mesh.h1
-rw-r--r--source/blender/blenkernel/BKE_modifier.h1
-rw-r--r--source/blender/blenkernel/intern/mesh.c37
-rw-r--r--source/blender/blenkernel/intern/object.c2
-rw-r--r--source/blender/editors/object/object_modifier.c37
-rw-r--r--source/blenderplayer/bad_level_call_stubs/stubs.c3
6 files changed, 41 insertions, 40 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 25fd95176b2..9c57b7c9a71 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -90,6 +90,7 @@ struct Mesh *BKE_mesh_add(struct Main *bmain, const char *name);
struct Mesh *BKE_mesh_copy_ex(struct Main *bmain, struct Mesh *me);
struct Mesh *BKE_mesh_copy(struct Mesh *me);
void BKE_mesh_update_customdata_pointers(struct Mesh *me, const bool do_ensure_tess_cd);
+void BKE_mesh_ensure_skin_customdata(struct Mesh *me);
void BKE_mesh_make_local(struct Mesh *me);
void BKE_mesh_boundbox_calc(struct Mesh *me, float r_loc[3], float r_size[3]);
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 2d47cf307f7..3b2bafa799f 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -359,7 +359,6 @@ bool modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
bool modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
void modifier_freeTemporaryData(struct ModifierData *md);
bool modifiers_isPreview(struct Object *ob);
-void modifier_skin_customdata_ensure(struct Object *ob);
typedef struct CDMaskLink {
struct CDMaskLink *next;
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 838f93e5222..b7ebd5c013d 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -337,6 +337,43 @@ static void mesh_ensure_tessellation_customdata(Mesh *me)
}
}
+void BKE_mesh_ensure_skin_customdata(Mesh *me)
+{
+ BMesh *bm = me->edit_btmesh ? me->edit_btmesh->bm : NULL;
+ MVertSkin *vs;
+
+ if (bm) {
+ if (!CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ BMVert *v;
+ BMIter iter;
+
+ BM_data_layer_add(bm, &bm->vdata, CD_MVERT_SKIN);
+
+ /* Mark an arbitrary vertex as root */
+ BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
+ vs = CustomData_bmesh_get(&bm->vdata, v->head.data,
+ CD_MVERT_SKIN);
+ vs->flag |= MVERT_SKIN_ROOT;
+ break;
+ }
+ }
+ }
+ else {
+ if (!CustomData_has_layer(&me->vdata, CD_MVERT_SKIN)) {
+ vs = CustomData_add_layer(&me->vdata,
+ CD_MVERT_SKIN,
+ CD_DEFAULT,
+ NULL,
+ me->totvert);
+
+ /* Mark an arbitrary vertex as root */
+ if (vs) {
+ vs->flag |= MVERT_SKIN_ROOT;
+ }
+ }
+ }
+}
+
/* this ensures grouped customdata (e.g. mtexpoly and mloopuv and mtface, or
* mloopcol and mcol) have the same relative active/render/clone/mask indices.
*
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 0970af46a6b..de9dd011e04 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -273,7 +273,7 @@ void BKE_object_link_modifiers(struct Object *ob_dst, struct Object *ob_src)
if (md->type == eModifierType_Skin) {
/* ensure skin-node customdata exists */
- modifier_skin_customdata_ensure(ob_dst);
+ BKE_mesh_ensure_skin_customdata(ob_dst->data);
}
nmd = modifier_new(md->type);
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 013a6c78a15..327e840a873 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -166,7 +166,7 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
}
else if (type == eModifierType_Skin) {
/* ensure skin-node customdata exists */
- modifier_skin_customdata_ensure(ob);
+ BKE_mesh_ensure_skin_customdata(ob->data);
}
}
@@ -1431,39 +1431,6 @@ void OBJECT_OT_multires_base_apply(wmOperatorType *ot)
/************************** skin modifier ***********************/
-void modifier_skin_customdata_ensure(Object *ob)
-{
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh ? me->edit_btmesh->bm : NULL;
- MVertSkin *vs;
-
- if (bm && !CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
- BMVert *v;
- BMIter iter;
-
- BM_data_layer_add(bm, &bm->vdata, CD_MVERT_SKIN);
-
- /* Mark an arbitrary vertex as root */
- BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
- vs = CustomData_bmesh_get(&bm->vdata, v->head.data,
- CD_MVERT_SKIN);
- vs->flag |= MVERT_SKIN_ROOT;
- break;
- }
- }
- else if (!CustomData_has_layer(&me->vdata, CD_MVERT_SKIN)) {
- vs = CustomData_add_layer(&me->vdata,
- CD_MVERT_SKIN,
- CD_DEFAULT,
- NULL,
- me->totvert);
-
- /* Mark an arbitrary vertex as root */
- if (vs)
- vs->flag |= MVERT_SKIN_ROOT;
- }
-}
-
static void modifier_skin_customdata_delete(Object *ob)
{
Mesh *me = ob->data;
@@ -1520,7 +1487,7 @@ static int skin_root_mark_exec(bContext *C, wmOperator *UNUSED(op))
visited = BLI_ghash_ptr_new("skin_root_mark_exec visited");
- modifier_skin_customdata_ensure(ob);
+ BKE_mesh_ensure_skin_customdata(ob->data);
BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
if (!BLI_ghash_lookup(visited, bm_vert) &&
diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c
index 055036158d6..806fa596f59 100644
--- a/source/blenderplayer/bad_level_call_stubs/stubs.c
+++ b/source/blenderplayer/bad_level_call_stubs/stubs.c
@@ -236,9 +236,6 @@ void RE_free_sample_material(struct Material *mat) RET_NONE
void RE_sample_material_color(struct Material *mat, float color[3], float *alpha, const float volume_co[3], const float surface_co[3],
int face_index, short hit_quad, struct DerivedMesh *orcoDm, struct Object *ob) RET_NONE
-/* skin modifier*/
-void modifier_skin_customdata_ensure(struct Object *ob) RET_NONE
-
/* nodes */
struct Render *RE_GetRender(const char *name) RET_NULL
float RE_lamp_get_data(struct ShadeInput *shi, struct Object *lamp_obj, float col[4], float lv[3], float *dist, float shadow[4]) RET_ZERO