001    package physics3d;
002    
003    import components.Ball;
004    import components.Flipper;
005    import components.GameObject;
006    
007    public class Collision {
008            //fields
009            private Ball collisioner; 
010            private GameObject collisionee; //could also be a ball
011            private PhysicsShape eeshape; 
012            private double time;
013            
014            /** initialise to a null collision **/
015            public Collision(Ball b) {
016                    collisioner=b;
017                    collisionee=null;
018                    eeshape=null;
019                    time=Double.POSITIVE_INFINITY;
020            }
021            
022            /** get the object of the collision **/
023            public GameObject object() { return collisionee; }
024            public double time() { return time; }
025            public PhysicsShape shape() { return eeshape; }
026            public Ball ball() { return collisioner; }
027    
028            /** set properties of collision **/
029            public void set(double time, GameObject g, PhysicsShape shape) {
030                    this.time = time;
031                    this.collisionee = g;
032                    this.eeshape = shape;
033            }
034            
035            public String toString() {
036                    return "Collision["+collisioner+", "+collisionee+", "+eeshape+", at "+time +"]";
037            }
038    }