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(); }