/* * 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 ResizeIn extends Transition { public ResizeIn(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() + channel.getWidth()/2; int y = channel.getY() + channel.getHeight()/2; 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((int) (i * deltaW * 2F)+1); source.setHeight((int) (i * deltaH * 2F)+1); source.setOpacity(i*100/frames); Tools.sleep(1000/rate); } source.setX(channel.getX()); source.setY(channel.getY()); source.setWidth(w); source.setHeight(h); source.setOpacity(100); } }