diff options
Diffstat (limited to 'src/Skeleton.cpp')
-rw-r--r-- | src/Skeleton.cpp | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/Skeleton.cpp b/src/Skeleton.cpp index 6aa3508..58f6035 100644 --- a/src/Skeleton.cpp +++ b/src/Skeleton.cpp @@ -98,9 +98,7 @@ void Skeleton::DoConstraints(Model *collide, XYZ *move, float rotation) numrepeats = 2; for (int j = 0; j < numrepeats; j++) { for (int i = 0; i < max_joints; i++) { - if (!joints[i].existing - && i != jointlabels[lefthand] - && i != jointlabels[righthand]) + if (!joints[i].existing && i != lefthand && i != righthand) continue; // Length constraints @@ -181,9 +179,7 @@ void Skeleton::DoConstraints(Model *collide, XYZ *move, float rotation) for (int i = 0; i < max_joints; i++) { joints[i].realoldposition = joints[i].position; //Add velocity - if (joints[i].existing - || i == jointlabels[lefthand] - || i == jointlabels[righthand]) + if (joints[i].existing || i == lefthand || i == righthand) joints[i].position += joints[i].velocity * multiplier; } } @@ -420,21 +416,21 @@ void Animation::load(const char* name) //Special forwards testskeleton.specialforward[0]=testskeleton.forward; - testskeleton.specialforward[1]=testskeleton.joints[testskeleton.jointlabels[rightshoulder]].position+testskeleton.joints[testskeleton.jointlabels[rightwrist]].position; - testskeleton.specialforward[1]=testskeleton.joints[testskeleton.jointlabels[rightelbow]].position-testskeleton.specialforward[1]/2; + testskeleton.specialforward[1]=testskeleton.joints[rightshoulder].position+testskeleton.joints[rightwrist].position; + testskeleton.specialforward[1]=testskeleton.joints[rightelbow].position-testskeleton.specialforward[1]/2; testskeleton.specialforward[1]+=testskeleton.forward*.2; Normalise(&testskeleton.specialforward[1]); - testskeleton.specialforward[2]=testskeleton.joints[testskeleton.jointlabels[leftshoulder]].position+testskeleton.joints[testskeleton.jointlabels[leftwrist]].position; - testskeleton.specialforward[2]=testskeleton.joints[testskeleton.jointlabels[leftelbow]].position-testskeleton.specialforward[2]/2; + testskeleton.specialforward[2]=testskeleton.joints[leftshoulder].position+testskeleton.joints[leftwrist].position; + testskeleton.specialforward[2]=testskeleton.joints[leftelbow].position-testskeleton.specialforward[2]/2; testskeleton.specialforward[2]+=testskeleton.forward*.2; Normalise(&testskeleton.specialforward[2]); - testskeleton.specialforward[3]=testskeleton.joints[testskeleton.jointlabels[righthip]].position+testskeleton.joints[testskeleton.jointlabels[rightankle]].position; - testskeleton.specialforward[3]=testskeleton.specialforward[3]/2-testskeleton.joints[testskeleton.jointlabels[rightknee]].position; + testskeleton.specialforward[3]=testskeleton.joints[righthip].position+testskeleton.joints[rightankle].position; + testskeleton.specialforward[3]=testskeleton.specialforward[3]/2-testskeleton.joints[rightknee].position; testskeleton.specialforward[3]+=testskeleton.lowforward*.2; Normalise(&testskeleton.specialforward[3]); - testskeleton.specialforward[4]=testskeleton.joints[testskeleton.jointlabels[lefthip]].position+testskeleton.joints[testskeleton.jointlabels[leftankle]].position; - testskeleton.specialforward[4]=testskeleton.specialforward[4]/2-testskeleton.joints[testskeleton.jointlabels[leftknee]].position; + testskeleton.specialforward[4]=testskeleton.joints[lefthip].position+testskeleton.joints[leftankle].position; + testskeleton.specialforward[4]=testskeleton.specialforward[4]/2-testskeleton.joints[leftknee].position; testskeleton.specialforward[4]+=testskeleton.lowforward*.2; Normalise(&testskeleton.specialforward[4]); @@ -513,7 +509,7 @@ void Skeleton::reload() JointData joints_data[max_joints]; loadJoints(joints_data); for (int i = 0; i < max_joints; ++i) { - joints[i].label = joints_data[i].label; + joints[i].label = i; joints[i].position.x = joints_data[i].x; joints[i].position.y = joints_data[i].y; joints[i].position.z = joints_data[i].z; @@ -534,7 +530,6 @@ void Skeleton::reload() joints[i].locked = false; joints[i].velocity = 0; joints[i].oldposition = joints[i].position; - jointlabels[joints[i].label] = i; } forwardjoints[0] = 7; |