if (tData == null) {
tData = new TransformData();
}
double weight, scaleX = 0.0, scaleY = 0.0, scaleZ = 0.0, transX = 0.0, transY = 0.0, transZ = 0.0;
Vector3 vectorData;
weight = 1 - blendWeight;
vectorData = getTranslation();
transX += vectorData.getX() * weight;
transY += vectorData.getY() * weight;
transZ += vectorData.getZ() * weight;
vectorData = getScale();
scaleX += vectorData.getX() * weight;
scaleY += vectorData.getY() * weight;
scaleZ += vectorData.getZ() * weight;
weight = blendWeight;
vectorData = blendTo.getTranslation();
transX += vectorData.getX() * weight;
transY += vectorData.getY() * weight;
transZ += vectorData.getZ() * weight;
vectorData = blendTo.getScale();
scaleX += vectorData.getX() * weight;
scaleY += vectorData.getY() * weight;
scaleZ += vectorData.getZ() * weight;
tData.setScale(scaleX, scaleY, scaleZ);
tData.setTranslation(transX, transY, transZ);
Quaternion.slerp(_rotation, blendTo.getRotation(), weight, tData._rotation);
return tData;