/* particlew.java 
 * Created on Apr 25, 2006 
 */ 

/* particle.java 
 * Created on Apr 20, 2006 
 */

import processing.core.PApplet;

public class particle {
  int				id;
  Vector3D		loc		= new Vector3D();
  Vector3D		oldLoc	        = new Vector3D();
  Vector3D		acc		= new Vector3D();
  public float radius;
  public int		particleSelected;
  public PApplet	p;

  /*
	 * those are going to be added /possibly maybe/:
   	 * mass(constant) and force.
   	 * 
   	 */


  /*
	 * stupid constants are here unfortunately.
   	 * until I find a way to pass references from the main program
   	 */


  particle(PApplet p_, int id_, Vector3D loc_, float $radius) {
    p 		= 			p_;
    id 		= 			id_;
    loc 		= 			loc_.copy();
    oldLoc 	=			loc_.copy();
    particleSelected = -1;
    radius = $radius;
  }

  public void mdraw() {

    draw_circle(loc.x, loc.y, radius, true);

  }

  private void draw_circle(float x, float y, float radius, boolean b) {
    if (b) {
    	
      p.noStroke();
     
    } 
    else {
      p.noFill();
      p.stroke(150, 150, 150);
    }
    p.fill(0, 0, 0,100);
    p.ellipse(x, y, radius, radius);
    p.fill(0,0,0,50);
    p.ellipse(x, y, radius*5, radius*5);
    p.noStroke();
  }

  public void mouseOver() {
    if (p.mouseX >= loc.x - radius && p.mouseX <= loc.x + radius
      && p.mouseY >= loc.y - radius && p.mouseY <= loc.y + radius) {
      if (p.mousePressed) {
        particleSelected = id;
      } 
      else {
        particleSelected = -1;
      }
      draw_circle(loc.x, loc.y, radius + 3, false);
    }
  }
}

