void CalcUV(XYZ p,double *u,double *v)
{
   double r,phi;

   r = atan2(sqrt(p.x*p.x+p.y*p.y),p.z);
   r /= PI;  /* -0.5 .. 0.5 */
   phi = atan2(p.y,p.x);

   *u = r * cos(phi) + 0.5;
   *v = r * sin(phi) + 0.5;
}


