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>2012-01-30 07:54:24 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-01-30 07:54:24 +0400
commit35678eaae52a8436469b06307eaaf4d8503863f1 (patch)
treeb117bb40cb898cb9b64b47d241d9ef0e6147175b /source/blender/blenkernel/intern/DerivedMesh.c
parent035607e26c618df5101cf7402a12a12a558e5266 (diff)
simplify some of the shape key code. no functional changes.
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index fda0fad65d2..b4af827b44d 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -397,28 +397,26 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob)
if (CustomData_has_layer(&dm->vertData, CD_SHAPEKEY)) {
KeyBlock *kb;
- int i=0;
+ int uid;
if (ob) {
- for (kb=me->key->block.first; kb; kb=kb->next, i++) {
- if (i == ob->shapenr-1) {
- i = kb->uid;
- break;
- }
+ kb = BLI_findlink(&me->key->block, ob->shapenr-1);
+ if (kb) {
+ uid = kb->uid;
}
-
- if (!kb) {
+ else {
printf("%s: error - could not find active shapekey %d!\n",
__func__, ob->shapenr-1);
- i = INT_MAX;
+ uid = INT_MAX;
}
- } else {
+ }
+ else {
/*if no object, set to INT_MAX so we don't mess up any shapekey layers*/
- i = INT_MAX;
+ uid = INT_MAX;
}
-
- shapekey_layers_to_keyblocks(dm, me, i);
+
+ shapekey_layers_to_keyblocks(dm, me, uid);
did_shapekeys = 1;
}
@@ -711,19 +709,20 @@ DerivedMesh *mesh_create_derived(Mesh *me, Object *ob, float (*vertCos)[3])
/***/
DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob,
- ModifierData *md, int build_shapekey_layers)
+ ModifierData *md, int build_shapekey_layers)
{
Mesh *me = ob->data;
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
DerivedMesh *dm;
+ KeyBlock *kb;
md->scene= scene;
if (!(md->mode&eModifierMode_Realtime)) return NULL;
if (mti->isDisabled && mti->isDisabled(md, 0)) return NULL;
- if (build_shapekey_layers && me->key && ob->shapenr <= BLI_countlist(&me->key->block)) {
- key_to_mesh(BLI_findlink(&me->key->block, ob->shapenr-1), me);
+ if (build_shapekey_layers && me->key && (kb = BLI_findlink(&me->key->block, ob->shapenr-1))) {
+ key_to_mesh(kb, me);
}
if (mti->type==eModifierTypeType_OnlyDeform) {