/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package webcamstudio.channels.transitions;
import webcamstudio.streams.Stream;
import webcamstudio.util.Tools;
/**
*
* @author pballeux (modified by karl)
*/
public class ShrinkOut extends Transition {
public ShrinkOut(Stream source){
super(source);
}
@Override
protected void execute() {
int rate = source.getRate();
int frames = rate * 1;
float deltaW = source.getWidth() / frames / 2F;
float deltaH = source.getHeight() / frames / 2F;
source.setX(channel.getX());
source.setY(channel.getY());
int x = channel.getX();
int y = channel.getY();
int w = channel.getWidth();
int h = channel.getHeight();
source.setHeight(channel.getHeight());
source.setWidth(channel.getWidth());
for (int i = 0; i < frames; i++) {
source.setX(x + (int) (i * deltaW));
source.setY(y + (int) (i * deltaH));
source.setWidth(w - (int) (i * deltaW * 2F));
source.setHeight(h - (int) (i * deltaH * 2F));
source.setOpacity(100-i*100/frames);
Tools.sleep(1000/rate);
}
source.setX(channel.getX());
source.setY(channel.getY());
source.setWidth(channel.getWidth());
source.setHeight(channel.getHeight());
source.setOpacity(100);
}
}