Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_vgroup.c
| Show First 20 Lines • Show All 1,283 Lines • ▼ Show 20 Lines | static void moveCloserToDistanceFromPlane( | ||||
| float distToStart; | float distToStart; | ||||
| int bestIndex = 0; | int bestIndex = 0; | ||||
| bool wasChange; | bool wasChange; | ||||
| char wasUp; | char wasUp; | ||||
| int lastIndex = -1; | int lastIndex = -1; | ||||
| float originalDistToBe = distToBe; | float originalDistToBe = distToBe; | ||||
| do { | do { | ||||
| wasChange = false; | wasChange = false; | ||||
| me_deform = mesh_get_eval_deform(depsgraph, scene, ob, CD_MASK_BAREMESH); | me_deform = mesh_get_eval_deform(depsgraph, scene, ob, &CD_MASK_BAREMESH); | ||||
| m = me_deform->mvert[index]; | m = me_deform->mvert[index]; | ||||
| copy_v3_v3(oldPos, m.co); | copy_v3_v3(oldPos, m.co); | ||||
| distToStart = dot_v3v3(norm, oldPos) + d; | distToStart = dot_v3v3(norm, oldPos) + d; | ||||
| if (distToBe == originalDistToBe) { | if (distToBe == originalDistToBe) { | ||||
| distToBe += distToStart - distToStart * strength; | distToBe += distToStart - distToStart * strength; | ||||
| } | } | ||||
| for (i = 0; i < totweight; i++) { | for (i = 0; i < totweight; i++) { | ||||
| Show All 23 Lines | for (i = 0; i < totweight; i++) { | ||||
| changes[i][0] = 0; | changes[i][0] = 0; | ||||
| changes[i][1] = 0; | changes[i][1] = 0; | ||||
| dists[i] = distToStart; | dists[i] = distToStart; | ||||
| break; | break; | ||||
| } | } | ||||
| if (dw->weight > 1) { | if (dw->weight > 1) { | ||||
| dw->weight = 1; | dw->weight = 1; | ||||
| } | } | ||||
| me_deform = mesh_get_eval_deform(depsgraph, scene, ob, CD_MASK_BAREMESH); | me_deform = mesh_get_eval_deform(depsgraph, scene, ob, &CD_MASK_BAREMESH); | ||||
| m = me_deform->mvert[index]; | m = me_deform->mvert[index]; | ||||
| getVerticalAndHorizontalChange(norm, d, coord, oldPos, distToStart, m.co, changes, dists, i); | getVerticalAndHorizontalChange(norm, d, coord, oldPos, distToStart, m.co, changes, dists, i); | ||||
| dw->weight = oldw; | dw->weight = oldw; | ||||
| if (!k) { | if (!k) { | ||||
| vc = changes[i][0]; | vc = changes[i][0]; | ||||
| hc = changes[i][1]; | hc = changes[i][1]; | ||||
| dist = dists[i]; | dist = dists[i]; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | static void vgroup_fix(const bContext *C, Scene *scene, Object *ob, float distToBe, float strength, float cp) | ||||
| for (i = 0; i < me->totvert && mvert; i++, mvert++) { | for (i = 0; i < me->totvert && mvert; i++, mvert++) { | ||||
| if (mvert->flag & SELECT) { | if (mvert->flag & SELECT) { | ||||
| int count = 0; | int count = 0; | ||||
| if ((verts = getSurroundingVerts(me, i, &count))) { | if ((verts = getSurroundingVerts(me, i, &count))) { | ||||
| MVert m; | MVert m; | ||||
| MVert *p = MEM_callocN(sizeof(MVert) * (count), "deformedPoints"); | MVert *p = MEM_callocN(sizeof(MVert) * (count), "deformedPoints"); | ||||
| int k; | int k; | ||||
| Mesh *me_deform = mesh_get_eval_deform(depsgraph, scene, ob, CD_MASK_BAREMESH); | Mesh *me_deform = mesh_get_eval_deform(depsgraph, scene, ob, &CD_MASK_BAREMESH); | ||||
| k = count; | k = count; | ||||
| while (k--) { | while (k--) { | ||||
| p[k] = me_deform->mvert[verts[k]]; | p[k] = me_deform->mvert[verts[k]]; | ||||
| } | } | ||||
| if (count >= 3) { | if (count >= 3) { | ||||
| float d /*, dist */ /* UNUSED */, mag; | float d /*, dist */ /* UNUSED */, mag; | ||||
| float coord[3]; | float coord[3]; | ||||
| ▲ Show 20 Lines • Show All 2,523 Lines • Show Last 20 Lines | |||||