private void Initialise(CurveKeyCollection keysRed, CurveKeyCollection keysGreen, CurveKeyCollection keysBlue) { _red = new PreCurve(255); _green = new PreCurve(255); _blue = new PreCurve(255); foreach(CurveKey key in keysRed) { _red.Keys.Add(key); } foreach(CurveKey key in keysGreen) { _green.Keys.Add(key); } foreach(CurveKey key in keysBlue) { _blue.Keys.Add(key); } _red.PreCalculate(); _green.PreCalculate(); _blue.PreCalculate(); }
private void Initialize(CurveKeyCollection keysRed, CurveKeyCollection keysGreen, CurveKeyCollection keysBlue) { _red = new PreCurve(255); _green = new PreCurve(255); _blue = new PreCurve(255); foreach (CurveKey key in keysRed) { _red.Keys.Add(key); } foreach (CurveKey key in keysGreen) { _green.Keys.Add(key); } foreach (CurveKey key in keysBlue) { _blue.Keys.Add(key); } _red.PreCalculate(); _green.PreCalculate(); _blue.PreCalculate(); }
public void Properties() { var curveKeyCollection = new CurveKeyCollection { new CurveKey(0, 0), new CurveKey(-1, 1), new CurveKey(-1, 1) }; // Count property Assert.AreEqual(3, curveKeyCollection.Count); // IsReadOnly property Assert.AreEqual(false, curveKeyCollection.IsReadOnly); // Item indexer var key1 = new CurveKey(-1, 1); var key2 = curveKeyCollection[1]; var key3 = curveKeyCollection[2]; Assert.AreEqual(true, key1 == key2); Assert.AreEqual(false, key2 == key3); Assert.AreEqual(key1, key2); Assert.AreNotEqual(key2, key3); Assert.AreNotEqual(key1, key3); }
public void Clone() { CurveKeyCollection col = c.Clone(); Assert.AreNotSame(c, col, "#1"); Assert.AreEqual(c.Count, col.Count, "#2"); Assert.AreNotEqual(c, col, "#3"); }
public void Setup() { k1 = new CurveKey(12, 123); k2 = new CurveKey(11, 11); k3 = new CurveKey(-1, -11); c = new CurveKeyCollection(); c.Add(k1); c.Add(k2); c.Add(k3); }
public void TestEquals() { CurveKeyCollection clone = c.Clone(); Assert.AreEqual(c, c, "#1"); Assert.AreNotEqual(c, clone, "#2"); Assert.AreNotSame(c, clone, "#3"); Assert.AreNotEqual(c, new CurveKeyCollection(), "#4"); Assert.AreNotEqual(c, null, "#5"); Assert.AreNotSame(c, null, "#6"); }
/// <summary> /// Creates a ScaleModifier with 2 scale values. /// </summary> /// <param name="initial">Initial scale.</param> /// <param name="ultimate">Ultimate scale.</param> public ScaleModifier(float initial, float ultimate) { initial = (float)Math.Max(initial, 0f); ultimate = (float)Math.Max(ultimate, 0f); CurveKeyCollection keys = new CurveKeyCollection(); keys.Add(new CurveKey(0f, initial)); keys.Add(new CurveKey(1f, ultimate)); Initialise(keys); }
/// <summary> /// Initializes a new instance of the <see cref="CurvedMovement"/> class. /// </summary> /// <param name="start">starting position.</param> /// <param name="end">ending position.</param> /// <param name="midPoint">mid point.</param> public CurvedMovement(Vector2 start, Vector2 end, Vector2 midPoint) { this.start = start; this.end = end; this.mid = midPoint; this.curve = new Curve(); this.keyCollection = this.curve.Keys; this.keyCollection.Add(new CurveKey(start.X, start.Y)); this.keyCollection.Add(new CurveKey(midPoint.X, midPoint.Y)); this.keyCollection.Add(new CurveKey(end.X, end.Y)); }
private void Initialise(CurveKeyCollection keys) { _curve = new PreCurve(255); foreach (CurveKey key in keys) { _curve.Keys.Add(key); } _curve.PreCalculate(); }
private void Initialize(CurveKeyCollection keys) { _curve = new PreCurve(255); foreach (CurveKey key in keys) { _curve.Keys.Add(key); } _curve.PreCalculate(); }
public OpacityMultiModifier(CurveKeyCollection keys, byte samples) { _curve = new PreCurve(samples); foreach (CurveKey key in keys) { _curve.Keys.Add(key); } _curve.PreCalculate(); }
/// <summary> /// Constructor with 2 opacity values. /// </summary> /// <param name="initial">Initial opacity.</param> /// <param name="ultimate">Ultimate opacity.</param> public OpacityModifier(float initial, float ultimate) { initial = MathHelper.Clamp(initial, 0f, 1f); ultimate = MathHelper.Clamp(ultimate, 0f, 1f); CurveKeyCollection keys = new CurveKeyCollection(); keys.Add(new CurveKey(0f, initial)); keys.Add(new CurveKey(1f, ultimate)); Initialise(keys); }
public Curve(CurveLoopType preLoop, CurveLoopType postLoop, IEnumerable<CurveKey> keys) { this.preLoop = preLoop; this.postLoop = postLoop; this.keys = new CurveKeyCollection(keys); this.keyFirst = (keys == null) ? null : this.keys[0]; this.keyLast = (keys == null) ? null : this.keys[this.keys.Count - 1]; this.length = (keys == null) ? 0f : keyLast.Position - keyFirst.Position; this.easingFunction = Evaluate; }
/// <summary> /// Creates a ScaleModifier with 2 scale values. /// </summary> /// <param name="initial">Initial scale.</param> /// <param name="ultimate">Ultimate scale.</param> public ScaleModifier(float initial, float ultimate) { initial = (float)Math.Max(initial, 0f); ultimate = (float)Math.Max(ultimate, 0f); CurveKeyCollection keys = new CurveKeyCollection(); keys.Add(new CurveKey(0f, initial)); keys.Add(new CurveKey(1f, ultimate)); Initialize(keys); }
/// <summary> /// Constructor with 2 opacity values. /// </summary> /// <param name="initial">Initial opacity.</param> /// <param name="ultimate">Ultimate opacity.</param> public OpacityModifier(float initial, float ultimate) { initial = MathHelper.Clamp(initial, 0f, 1f); ultimate = MathHelper.Clamp(ultimate, 0f, 1f); CurveKeyCollection keys = new CurveKeyCollection(); keys.Add(new CurveKey(0f, initial)); keys.Add(new CurveKey(1f, ultimate)); Initialize(keys); }
/// <summary> /// Creates a ScaleModifier with 3 scale values. /// </summary> /// <param name="initial">Initial scale.</param> /// <param name="mid">Middle scale.</param> /// <param name="sweep">Position of middle scale.</param> /// <param name="ultimate">Ultimate scale.</param> public ScaleModifier(float initial, float mid, float sweep, float ultimate) { initial = (float)Math.Max(initial, 0f); mid = (float)Math.Max(mid, 0f); sweep = MathHelper.Clamp(sweep, 0f, 1f); ultimate = (float)Math.Max(ultimate, 0f); CurveKeyCollection keys = new CurveKeyCollection(); keys.Add(new CurveKey(0f, initial)); keys.Add(new CurveKey(sweep, mid)); keys.Add(new CurveKey(1f, ultimate)); Initialise(keys); }
/// <summary> /// Creates a ScaleModifier with 3 scale values. /// </summary> /// <param name="initial">Initial scale.</param> /// <param name="mid">Middle scale.</param> /// <param name="sweep">Position of middle scale.</param> /// <param name="ultimate">Ultimate scale.</param> public ScaleModifier(float initial, float mid, float sweep, float ultimate) { initial = (float)Math.Max(initial, 0f); mid = (float)Math.Max(mid, 0f); sweep = MathHelper.Clamp(sweep, 0f, 1f); ultimate = (float)Math.Max(ultimate, 0f); CurveKeyCollection keys = new CurveKeyCollection(); keys.Add(new CurveKey(0f, initial)); keys.Add(new CurveKey(sweep, mid)); keys.Add(new CurveKey(1f, ultimate)); Initialize(keys); }
/// <summary> /// Creates a ColorModifier with 2 color values. /// </summary> /// <param name="initial">Initial color of Particles.</param> /// <param name="ultimate">Ultimate color of Particles.</param> public ColorModifier(Color initial, Color ultimate) { CurveKeyCollection keysRed = new CurveKeyCollection(); keysRed.Add(new CurveKey(0f, (float)initial.R / 255f)); keysRed.Add(new CurveKey(1f, (float)ultimate.R / 255f)); CurveKeyCollection keysGreen = new CurveKeyCollection(); keysGreen.Add(new CurveKey(0f, (float)initial.G / 255f)); keysGreen.Add(new CurveKey(1f, (float)ultimate.G / 255f)); CurveKeyCollection keysBlue = new CurveKeyCollection(); keysBlue.Add(new CurveKey(0f, (float)initial.B / 255f)); keysBlue.Add(new CurveKey(1f, (float)ultimate.B / 255f)); Initialise(keysRed, keysGreen, keysBlue); }
/// <summary> /// Creates a ColorModifier with 2 color values. /// </summary> /// <param name="initial">Initial color of Particles.</param> /// <param name="ultimate">Ultimate color of Particles.</param> public ColorModifier(Color initial, Color ultimate) { CurveKeyCollection keysRed = new CurveKeyCollection(); keysRed.Add(new CurveKey(0f, (float)initial.R / 255f)); keysRed.Add(new CurveKey(1f, (float)ultimate.R / 255f)); CurveKeyCollection keysGreen = new CurveKeyCollection(); keysGreen.Add(new CurveKey(0f, (float)initial.G / 255f)); keysGreen.Add(new CurveKey(1f, (float)ultimate.G / 255f)); CurveKeyCollection keysBlue = new CurveKeyCollection(); keysBlue.Add(new CurveKey(0f, (float)initial.B / 255f)); keysBlue.Add(new CurveKey(1f, (float)ultimate.B / 255f)); Initialize(keysRed, keysGreen, keysBlue); }
private Curve(CurveKeyCollection keys) { Keys = keys; }
/// <summary> /// Constructs a curve. /// </summary> public Curve() { Keys = new CurveKeyCollection(); }
/// <summary> /// Creates a ScaleModifier with multiple scale values. /// </summary> /// <param name="keys">A CurveKeyCollection containing multiple scale/position keys.</param> public ScaleModifier(CurveKeyCollection keys) { Initialize(keys); }
/// <summary> /// Constructor with multiple opacity values. /// </summary> /// <param name="keys">A cCurveKeyCollection containing multiple opacity/position keys.</param> public OpacityModifier(CurveKeyCollection keys) { Initialize(keys); }
/// <summary> /// Creates a ScaleModifier with multiple scale values. /// </summary> /// <param name="keys">A CurveKeyCollection containing multiple scale/position keys.</param> public ScaleModifier(CurveKeyCollection keys) { Initialise(keys); }
/// <summary>Compares the key collections of two curves against each other</summary> /// <param name="leftKeys">Keys in the key collection to the left side</param> /// <param name="rightKeys">Keys in the key collection to the right side</param> /// <returns>The rleation of the two provided key collections to each other</returns> private int compareKeys(CurveKeyCollection leftKeys, CurveKeyCollection rightKeys) { // Compare number of keys (int) int keyCountDifference = (int)rightKeys.Count - (int)leftKeys.Count; if (keyCountDifference != 0) { return(keyCountDifference); } for (int index = 0; index < leftKeys.Count; ++index) { // Compare Continuity (enum) int continuityDifference = (int)rightKeys[index].Continuity - (int)leftKeys[index].Continuity; if (continuityDifference != 0) { return(continuityDifference); } // Compare TangentIn (float) if (leftKeys[index].TangentIn > rightKeys[index].TangentIn) { return(+1); } else if (leftKeys[index].TangentIn < rightKeys[index].TangentIn) { return(-1); } // Compare Position (float) if (leftKeys[index].Position > rightKeys[index].Position) { return(+1); } else if (leftKeys[index].Position < rightKeys[index].Position) { return(-1); } // Compare Value (float) if (leftKeys[index].Value > rightKeys[index].Value) { return(+1); } else if (leftKeys[index].Value < rightKeys[index].Value) { return(-1); } // Compare TangentOut (float) if (leftKeys[index].TangentOut > rightKeys[index].TangentOut) { return(+1); } else if (leftKeys[index].TangentOut < rightKeys[index].TangentOut) { return(-1); } } // No differences found return(0); }
/// <summary> /// Creates a new instance of <see cref="Curve"/> class. /// </summary> public Curve() { this._keys = new CurveKeyCollection(); }
/// <summary> /// Constructor with multiple opacity values. /// </summary> /// <param name="keys">A cCurveKeyCollection containing multiple opacity/position keys.</param> public OpacityModifier(CurveKeyCollection keys) { Initialise(keys); }
public Curve() { keys = new CurveKeyCollection(); }