예제 #1
0
 public int CompareTo(CollisionSystem.Event @event)
 {
     if (this.time < @event.time)
     {
         return(-1);
     }
     if (this.time > @event.time)
     {
         return(1);
     }
     return(0);
 }
예제 #2
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);
         }
     }
 }
예제 #3
0
/*		[LineNumberTable(106), Modifiers(Modifiers.Static | Modifiers.Synthetic)]*/
        internal static double access_200(CollisionSystem.Event @event)
        {
            return(@event.time);
        }
예제 #4
0
/*		[LineNumberTable(106), Modifiers(Modifiers.Static | Modifiers.Synthetic)]*/
        internal static Particle access_100(CollisionSystem.Event @event)
        {
            return(@event.b);
        }