public void DefaultValues() { var e = new LinearAccelerationEffector(); Assert.AreEqual(ParticleParameterNames.Direction, e.DirectionParameter); Assert.AreEqual(ParticleParameterNames.LinearSpeed, e.SpeedParameter); Assert.AreEqual(ParticleParameterNames.LinearAcceleration, e.AccelerationParameter); }
public void Clone() { var e = new LinearAccelerationEffector { DirectionParameter = "D", SpeedParameter = "S", AccelerationParameter = "A", Enabled = false, }; var c = (LinearAccelerationEffector)e.Clone(); Assert.AreEqual(e.DirectionParameter, c.DirectionParameter); Assert.AreEqual(e.SpeedParameter, c.SpeedParameter); Assert.AreEqual(e.AccelerationParameter, c.AccelerationParameter); Assert.AreEqual(e.Enabled, c.Enabled); }
public void Test0() { var ps = new ParticleSystem(); var direction = ps.Parameters.AddUniform<Vector3F>("D"); var speed = ps.Parameters.AddUniform<float>("L"); var acceleration = ps.Parameters.AddUniform<Vector3F>("A"); direction.DefaultValue = new Vector3F(0, 1 , 0); speed.DefaultValue = 1; acceleration.DefaultValue = new Vector3F(0, -1, 0); var e = new LinearAccelerationEffector { ParticleSystem = ps, DirectionParameter = "D", SpeedParameter = "L", AccelerationParameter = "A", }; e.RequeryParameters(); e.Initialize(); var dt = new TimeSpan(0, 0, 0, 1); e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); Assert.AreEqual(new Vector3F(0, 1, 0), direction.DefaultValue); Assert.AreEqual(0, speed.DefaultValue); e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); Assert.AreEqual(new Vector3F(0, -1, 0), direction.DefaultValue); Assert.AreEqual(1, speed.DefaultValue); }
public void WrongParameters() { var ps = new ParticleSystem(); ps.Parameters.AddUniform<Vector3F>("D"); ps.Parameters.AddUniform<float>("L"); ps.Parameters.AddUniform<Vector3F>("A"); var e = new LinearAccelerationEffector { ParticleSystem = ps }; var dt = new TimeSpan(0, 0, 0, 1); // There should be no exception. e.RequeryParameters(); e.Initialize(); e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); e.Uninitialize(); }
public void Uninitialize() { var ps = new ParticleSystem(); var wp0 = new WeakReference(ps.Parameters.AddVarying<Vector3F>(ParticleParameterNames.Direction)); var wp1 = new WeakReference(ps.Parameters.AddVarying<float>(ParticleParameterNames.LinearSpeed)); var wp2 = new WeakReference(ps.Parameters.AddVarying<Vector3F>(ParticleParameterNames.LinearAcceleration)); var e = new LinearAccelerationEffector { ParticleSystem = ps }; e.RequeryParameters(); e.Uninitialize(); e.ParticleSystem = null; ps = null; GC.Collect(); GC.WaitForFullGCComplete(); Assert.IsFalse(wp0.IsAlive); Assert.IsFalse(wp1.IsAlive); Assert.IsFalse(wp2.IsAlive); }