public void Test0() { var ps = new ParticleSystem(); var angle = ps.Parameters.AddUniform<float>("A"); var speed = ps.Parameters.AddUniform<float>("S"); angle.DefaultValue = 3; speed.DefaultValue = 2; var e = new AngularVelocityEffector { ParticleSystem = ps, AngleParameter = "A", SpeedParameter = "S", }; 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(5, angle.DefaultValue); e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); Assert.AreEqual(7 % ConstantsF.TwoPi, angle.DefaultValue); speed.DefaultValue = -17; e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); Assert.IsTrue(Numeric.AreEqual(-10 + 2 * ConstantsF.TwoPi, angle.DefaultValue)); }
public void WrongParameters() { var ps = new ParticleSystem(); ps.Parameters.AddUniform<float>("A"); ps.Parameters.AddUniform<float>("S"); var e = new AngularVelocityEffector { 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(); }