ClearRotation() doesn't do anything (and it shouldn't, since I interpolate the matrices of the lightsaber and the skeletal structure's hand in the loop). ClearTranslation fixed its initial position, thanks very much.
Now, I'm having a hard time keeping glow in the same place. I've tried every permutation of the following method of which I could think:
public void thicken(final float deltaTime) {
SimpleVector[] vertices = this.getSourceMesh();
SimpleVector[] destination = this.getDestinationMesh();
final SimpleVector c = new SimpleVector(obj.getTransformedCenter());
float minX = Float.MAX_VALUE, minZ = Float.MAX_VALUE, maxX = Float.MIN_VALUE, maxZ = Float.MIN_VALUE;
for (int i = 0; i < vertices.length; i++) {
SimpleVector v = new SimpleVector(vertices[i]);
v.x *= (1f+deltaTime);
// v.x -= deltaTime*.5f;
v.z *= (1f+deltaTime);
// v.z -= deltaTime*.5f;
destination[i] = v;
if (minX > v.x)
minX = v.x;
if (maxX < v.x)
maxX = v.x;
if (minZ > v.z)
minZ = v.z;
if (maxZ < v.z)
maxZ = v.z;
}
this.updateMesh();
SimpleVector d = new SimpleVector((minX-maxX), 0f, (minZ-maxZ));
obj.translate(d);
// obj.clearTranslation();
// obj.calcCenter();
// Glow.moveTo(obj, c);
// Glow.moveTo(obj, d.calcSub(c));
}