|
|
|
@ -93,7 +93,6 @@ public final class Bone implements Savable { |
|
|
|
|
private Quaternion worldRot = new Quaternion(); |
|
|
|
|
private Vector3f worldScale = new Vector3f(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Creates a new bone with the given name. |
|
|
|
|
* |
|
|
|
@ -104,7 +103,7 @@ public final class Bone implements Savable { |
|
|
|
|
|
|
|
|
|
initialPos = new Vector3f(); |
|
|
|
|
initialRot = new Quaternion(); |
|
|
|
|
initialScale = new Vector3f(1,1,1); |
|
|
|
|
initialScale = new Vector3f(1, 1, 1); |
|
|
|
|
|
|
|
|
|
worldBindInversePos = new Vector3f(); |
|
|
|
|
worldBindInverseRot = new Quaternion(); |
|
|
|
@ -323,7 +322,7 @@ public final class Bone implements Savable { |
|
|
|
|
* The skinning transform applies the animation of the bone to a vertex. |
|
|
|
|
* @param m |
|
|
|
|
*/ |
|
|
|
|
void getOffsetTransform(Matrix4f m, Quaternion tmp1, Vector3f tmp2, Vector3f tmp3) { |
|
|
|
|
void getOffsetTransform(Matrix4f m, Quaternion tmp1, Vector3f tmp2, Vector3f tmp3, Matrix3f rotMat) { |
|
|
|
|
|
|
|
|
|
//Computing scale
|
|
|
|
|
Vector3f scale = worldScale.mult(worldBindInverseScale, tmp3); |
|
|
|
@ -337,12 +336,8 @@ public final class Bone implements Savable { |
|
|
|
|
|
|
|
|
|
//populating the matrix
|
|
|
|
|
m.loadIdentity(); |
|
|
|
|
TempVars vars = TempVars.get(); |
|
|
|
|
assert vars.lock(); |
|
|
|
|
Matrix3f rotMat = vars.tempMat3; |
|
|
|
|
m.setTransform(translate, scale, rotate.toRotationMatrix(rotMat)); |
|
|
|
|
|
|
|
|
|
assert vars.unlock(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -377,7 +372,6 @@ public final class Bone implements Savable { |
|
|
|
|
worldPos.set(translation); |
|
|
|
|
worldRot.set(rotation); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected Vector3f tmpVec = new Vector3f(); |
|
|
|
|
protected Quaternion tmpQuat = new Quaternion(); |
|
|
|
|
|
|
|
|
|