public void CacheParticleData(SpaceSnapshot snapshot) { foreach (var particle in snapshot.AllParticles) { particleDataCache[particle.Id] = particle.GetParticleData <GravityParticleData>(); } }
public SpaceSnapshot CreateSpaceSnapshot(List <Particle> particles) { var spaceSnapshot = new SpaceSnapshot() { AllParticles = particles.ToArray()//particles.Select(x => x.Clone()).ToList() }; return(spaceSnapshot); }
public void TestCollisionOverlap() { var physicsController = new PhysicsController(); var interactions = new Dictionary <int, ParticleInteraction>(); interactions.Add(1, new ParticleInteraction() { GraphDots = new List <Vector2>() { new Vector2(0, 1), new Vector2(8, 0), new Vector2(16, 1), new Vector2(32, 0) } }); var particleType = new ParticleType(1, interactions, Color.Black); var particle1 = new Particle(1, particleType, new Vector2()); var particle2 = new Particle(2, particleType, new Vector2()); var spaceSnapshot = new SpaceSnapshot() { AllParticles = new List <Particle>() { particle1, particle2 } }; physicsController.UpdateParticle(new ParticleJobSchedule() { Particle = particle1, SpaceSnapshot = spaceSnapshot }); particle1.Position = particle1.ScheduledPosition; physicsController.UpdateParticle(new ParticleJobSchedule() { Particle = particle2, SpaceSnapshot = spaceSnapshot }); Assert.AreNotEqual(particle1.ScheduledPosition, Vector2.Zero); Assert.AreNotEqual(particle2.ScheduledPosition, Vector2.Zero); Assert.AreNotEqual(particle1.ScheduledPosition, particle2.ScheduledPosition); }
public void CacheParticleData(SpaceSnapshot spaceSnapshot) { // pass }