|
@@ -132,16 +132,10 @@ public class Skeleton {
|
|
int ikConstraintsCount = ikConstraints.size;
|
|
int ikConstraintsCount = ikConstraints.size;
|
|
int transformConstraintsCount = transformConstraints.size;
|
|
int transformConstraintsCount = transformConstraints.size;
|
|
updateCache.clear();
|
|
updateCache.clear();
|
|
|
|
+
|
|
for (int i = 0, n = bones.size; i < n; i++) {
|
|
for (int i = 0, n = bones.size; i < n; i++) {
|
|
Bone bone = bones.get(i);
|
|
Bone bone = bones.get(i);
|
|
updateCache.add(bone);
|
|
updateCache.add(bone);
|
|
- for (int ii = 0; ii < transformConstraintsCount; ii++) {
|
|
|
|
- TransformConstraint transformConstraint = transformConstraints.get(ii);
|
|
|
|
- if (bone == transformConstraint.bone) {
|
|
|
|
- updateCache.add(transformConstraint);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
for (int ii = 0; ii < ikConstraintsCount; ii++) {
|
|
for (int ii = 0; ii < ikConstraintsCount; ii++) {
|
|
IkConstraint ikConstraint = ikConstraints.get(ii);
|
|
IkConstraint ikConstraint = ikConstraints.get(ii);
|
|
if (bone == ikConstraint.bones.peek()) {
|
|
if (bone == ikConstraint.bones.peek()) {
|
|
@@ -150,6 +144,17 @@ public class Skeleton {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < transformConstraintsCount; i++) {
|
|
|
|
+ TransformConstraint transformConstraint = transformConstraints.get(i);
|
|
|
|
+ for (int ii = updateCache.size - 1; ii >= 0; ii--) {
|
|
|
|
+ Updatable object = updateCache.get(ii);
|
|
|
|
+ if (object == transformConstraint.bone || object == transformConstraint.target) {
|
|
|
|
+ updateCache.insert(ii + 1, transformConstraint);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/** Updates the world transform for each bone and applies constraints. */
|
|
/** Updates the world transform for each bone and applies constraints. */
|