package org.jwildfire.create.tina.variation.iflames;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.jwildfire.base.mathlib.MathLib;
import org.jwildfire.create.tina.base.motion.MotionCurve;
public class ParticleListCreator {
private final List<BaseFlame> pixelLst;
private final MotionParams motionParams;
private final Map<String, MotionCurve> motionCurves;
private final IFlamesAnimatorMotionStore motionStore;
public ParticleListCreator(List<BaseFlame> pPixelLst, MotionParams pMotionParams, Map<String, MotionCurve> pMotionCurves, IFlamesAnimatorMotionStore pMotionStore) {
pixelLst = pPixelLst;
motionParams = pMotionParams;
motionCurves = pMotionCurves;
motionStore = pMotionStore;
}
public List<Particle> createParticleList(float pTime) {
List<Particle> res = new ArrayList<Particle>();
for (BaseFlame pixel : pixelLst) {
res.add(new Particle(pixel.getMotionProperties()));
}
if (pTime > MathLib.EPSILON) {
new IFlamesAnimator(res, motionParams, motionCurves, motionStore).animate(pTime);
}
return res;
}
}