@@ -0,0 +1,2037 @@
+package net.voxelindustry.brokkgui.animation.transition;%0A%0Aimport net.voxelindustry.brokkgui.component.GuiNode;%0A%0Aimport java.util.concurrent.TimeUnit;%0A%0Apublic class SizeTransition extends Transition%0A%7B%0A    private Float startX, startY;%0A    private Float endX, endY;%0A%0A    private float fromX, fromY;%0A    private float translateX, translateY;%0A%0A    public SizeTransition(GuiNode node, long duration, TimeUnit unit)%0A    %7B%0A        super(node, duration, unit);%0A    %7D%0A%0A    @Override%0A    protected void apply(float interpolated)%0A    %7B%0A        if (getNode() == null)%0A            return;%0A%0A        getNode().setSize(fromX + (endX - fromX) * interpolated, fromY + (endY - fromY) * interpolated);%0A    %7D%0A%0A    @Override%0A    public void restart()%0A    %7B%0A        super.restart();%0A%0A        if (startX == null)%0A            fromX = getNode().getScaleX();%0A        else%0A            fromX = startX;%0A%0A        if (startY == null)%0A            fromY = getNode().getScaleY();%0A        else%0A            fromY = startY;%0A%0A        if (endX == null)%0A            endX = fromX + translateX;%0A        if (endY == null)%0A            endY = fromY + translateY;%0A    %7D%0A%0A    public Float getStartX()%0A    %7B%0A        return startX;%0A    %7D%0A%0A    public void setStartX(Float startX)%0A    %7B%0A        this.startX = startX;%0A    %7D%0A%0A    public Float getStartY()%0A    %7B%0A        return startY;%0A    %7D%0A%0A    public void setStartY(Float startY)%0A    %7B%0A        this.startY = startY;%0A    %7D%0A%0A    public Float getEndX()%0A    %7B%0A        return endX;%0A    %7D%0A%0A    public void setEndX(Float endX)%0A    %7B%0A        this.endX = endX;%0A    %7D%0A%0A    public Float getEndY()%0A    %7B%0A        return endY;%0A    %7D%0A%0A    public void setEndY(Float endY)%0A    %7B%0A        this.endY = endY;%0A    %7D%0A%0A    public float getTranslateX()%0A    %7B%0A        return translateX;%0A    %7D%0A%0A    public void setTranslateX(float translateX)%0A    %7B%0A        this.translateX = translateX;%0A    %7D%0A%0A    public float getTranslateY()%0A    %7B%0A        return translateY;%0A    %7D%0A%0A    public void setTranslateY(float translateY)%0A    %7B%0A        this.translateY = translateY;%0A    %7D%0A%7D%0A

Add SizeTransition