Spaces:
Runtime error
Runtime error
fix infinite loop on cut off
Browse files- static/poseEditor.js +6 -4
static/poseEditor.js
CHANGED
@@ -26,10 +26,11 @@ function cutOffLimb(pose, cutOffIndex) {
|
|
26 |
// 末端ノードの座標を削除する
|
27 |
var newPose = deepCopy(pose);
|
28 |
for (let i = 0; i < 18; i++) {
|
|
|
29 |
// ルートまで検索し、その間にcuttOffIndexがあれば削除
|
30 |
-
if (i == 1) {continue;} // ルートは削除しない
|
31 |
var curr = i;
|
32 |
-
while (
|
|
|
33 |
let parent = findParentNodeIndex(curr);
|
34 |
if (parent === cutOffIndex) {
|
35 |
console.log(`cutOffLimb: ${i} -> ${cutOffIndex}`);
|
@@ -432,8 +433,9 @@ function handleMouseDown(event) {
|
|
432 |
if (keyDownFlags["KeyD"]) {removePerson(personIndex);return;}
|
433 |
if (keyDownFlags["KeyR"]) {repairPerson(personIndex);return;}
|
434 |
|
435 |
-
if (keyDownFlags["KeyQ"] && minDist < 16
|
436 |
-
|
|
|
437 |
return;
|
438 |
}
|
439 |
|
|
|
26 |
// 末端ノードの座標を削除する
|
27 |
var newPose = deepCopy(pose);
|
28 |
for (let i = 0; i < 18; i++) {
|
29 |
+
if (newPose[i] == null) {continue;}
|
30 |
// ルートまで検索し、その間にcuttOffIndexがあれば削除
|
|
|
31 |
var curr = i;
|
32 |
+
while (curr !== 1) {
|
33 |
+
console.log(`checking: ${i} -> ${curr}`);
|
34 |
let parent = findParentNodeIndex(curr);
|
35 |
if (parent === cutOffIndex) {
|
36 |
console.log(`cutOffLimb: ${i} -> ${cutOffIndex}`);
|
|
|
433 |
if (keyDownFlags["KeyD"]) {removePerson(personIndex);return;}
|
434 |
if (keyDownFlags["KeyR"]) {repairPerson(personIndex);return;}
|
435 |
|
436 |
+
if (keyDownFlags["KeyQ"] && minDist < 16) {
|
437 |
+
console.log("pressed KeyQ");
|
438 |
+
cutOffPersonLimb(personIndex, nodeIndex);
|
439 |
return;
|
440 |
}
|
441 |
|