public class Particle extends Point3D {   public Point3D v;   public double mass;   public int color;   public int intensity;   public int opacity;      public Particle() { }      public Particle(double x, double y, double z) {     super(x, y, z);   }      public Particle(double x, double y, double z, double dx, double dy, double dz) {     super(x, y, z);     this.v = new Point3D(dx, dy, dz);   }      public void advance(double t, Point3D acc) {     v.x += acc.x*t;     v.y += acc.y*t;     v.z += acc.z*t;     x += v.x*t;     y += v.y*t;     z += v.z*t;   }      public void advanceAcc(double t, double ddx, double ddy, double ddz) {     v.x += ddx*t;     v.y += ddy*t;     v.z += ddz*t;     x += v.x*t;     y += v.y*t;     z += v.z*t;   }      public void simpleAdvance(double t, double dx, double dy, double dz) {     x += dx*t;     y += dy*t;     z += dz*t;   }      public String toString() {     return getClass().getName()+"[ ("+x+" , "+y+" , "+z+") v=("+v.x+" , "+v.y+" , "+v.z+") ]";   }   }