package com.junerking.skeleton; import com.badlogic.gdx.math.MathUtils; import com.junerking.skeleton.DataDef.NodeData; public class TweenNode extends NodeData { private static final float DOUBLE_PI = MathUtils.PI * 2; public int tween_rotate; public TweenNode() { } public TweenNode(float x, float y, float scale_x, float scale_y, float skew_x, float skew_y) { super(x, y, scale_x, scale_y, skew_x, skew_y); } public void subtract(NodeData from, NodeData to) { x = to.x - from.x; y = to.y - from.y; scale_x = to.scale_x - from.scale_x; scale_y = to.scale_y - from.scale_y; skew_x = to.skew_x - from.skew_x; skew_y = to.skew_y - from.skew_y; if (from.using_color || to.using_color || using_color) { r = to.r - from.r; g = to.g - from.g; b = to.b - from.b; a = to.a - from.a; using_color = true; } else { r = 0; g = 0; b = 0; a = 0; using_color = false; } skew_x %= DOUBLE_PI; if (skew_x > Math.PI) { skew_x -= DOUBLE_PI; } if (skew_x < -Math.PI) { skew_x += DOUBLE_PI; } skew_y %= DOUBLE_PI; if (skew_y > Math.PI) { skew_y -= DOUBLE_PI; } if (skew_y < -Math.PI) { skew_y += DOUBLE_PI; } if (to instanceof TweenNode) { TweenNode tween_node = (TweenNode) to; skew_x += tween_node.tween_rotate * DOUBLE_PI; skew_y += tween_node.tween_rotate * DOUBLE_PI; } } }