
// Copyright (c) 2001 
package uk.co.patrickhaston.mars;

/**
 * A Class class.
 * <P>
 * @author Patrick Haston
 */
public class XYZcoord extends Object
{

  // Contencts
  public double x;
  public double y;
  public double z;

  /**
   * Constructor
   */
  public XYZcoord()
  {
    x = 0;
    y = 0;
    z = 0;
  }
  
  public XYZcoord(LatLong loc)
  {
    set(loc);
  }
  
  public void set(LatLong loc)
  {
    // converts a lat long coordinate into a cartesian coordinate
    double smallRadius;

    smallRadius = Math.cos(loc.north * 3.14159 / 180);

    y = Math.sin(loc.north * 3.14159 / 180);
    z = Math.cos(loc.east * 3.14159 / 180) * smallRadius;
    x = Math.sin(loc.east * 3.14159 / 180) * smallRadius;
  }
  
  public double distanceTo(XYZcoord p)
  {
    double dx, dy, dz;
    dx = p.x - x;
    dy = p.y - y;
    dz = p.z - z;
    return Math.sqrt((dx*dx) + (dy*dy) + (dz*dz));
  }
}

 
