public int CompareTo(CollisionSystem.Event @event) { if (this.time < @event.time) { return(-1); } if (this.time > @event.time) { return(1); } return(0); }
public virtual void simulate(double d) { this.pq = new MinPQ(); for (int i = 0; i < this.particles.Length; i++) { this.predict(this.particles[i], d); } this.pq.insert(new CollisionSystem.Event((double)0f, null, null)); while (!this.pq.isEmpty()) { CollisionSystem.Event @event = (CollisionSystem.Event) this.pq.delMin(); if (@event.isValid()) { Particle particle = CollisionSystem.Event.access_000(@event); Particle particle2 = CollisionSystem.Event.access_100(@event); for (int j = 0; j < this.particles.Length; j++) { this.particles[j].move(CollisionSystem.Event.access_200(@event) - this.t); } this.t = CollisionSystem.Event.access_200(@event); if (particle != null && particle2 != null) { particle.bounceOff(particle2); } else if (particle != null && particle2 == null) { particle.bounceOffVerticalWall(); } else if (particle == null && particle2 != null) { particle2.bounceOffHorizontalWall(); } else if (particle == null && particle2 == null) { this.redraw(d); } this.predict(particle, d); this.predict(particle2, d); } } }
/* [LineNumberTable(106), Modifiers(Modifiers.Static | Modifiers.Synthetic)]*/ internal static double access_200(CollisionSystem.Event @event) { return(@event.time); }
/* [LineNumberTable(106), Modifiers(Modifiers.Static | Modifiers.Synthetic)]*/ internal static Particle access_100(CollisionSystem.Event @event) { return(@event.b); }