/// <summary> /// Calculates the FrameData for the given entity with the given interval. /// </summary> public static Dictionary <string, FrameData[]> Calculate(SpriterEntity entity, int interval, Config config) { Dictionary <string, FrameData[]> results = new Dictionary <string, FrameData[]>(); foreach (SpriterAnimation anim in entity.Animations) { int length = (int)Math.Ceiling(anim.Length / interval); FrameData[] animData = new FrameData[length]; for (int i = 0; i < animData.Length; ++i) { float time = i * interval; if (time > anim.Length) { time = anim.Length; } ObjectPool pool = new ObjectPool(config); FrameData data = new FrameDataCalculator(config, pool).GetFrameData(anim, time, interval); animData[i] = data; } results[anim.Name] = animData; } return(results); }
public DefaultFrameDataProvider() { Config config = new Config(); ObjectPool pool = new ObjectPool(config); Calculator = new FrameDataCalculator(config, pool); }
public DefaultFrameDataProvider(Config config, ObjectPool pool) { Calculator = new FrameDataCalculator(config, pool); }