Index: trunk/MagicSoft/Cosy/base/coord.h
===================================================================
--- trunk/MagicSoft/Cosy/base/coord.h	(revision 1275)
+++ trunk/MagicSoft/Cosy/base/coord.h	(revision 1393)
@@ -3,4 +3,5 @@
 
 #include <math.h>          // floor
+#include <fstream.h>
 
 /* pi/180:  degrees to radians */
@@ -34,4 +35,7 @@
 class XY
 {
+    friend ifstream& operator>>(ifstream &in, XY &xy);
+    friend ofstream& operator<<(ofstream &in, XY &xy);
+
 protected:
     double fX;
@@ -46,4 +50,7 @@
     double X() const { return fX; }
     double Y() const { return fY; }
+
+    void X(double x) { fX=x; }
+    void Y(double y) { fY=y; }
 
     void operator/=(double c) { fX/=c; fY/=c; }
@@ -64,4 +71,7 @@
 };
 
+inline ifstream& operator>>(ifstream &in,  XY &xy) { in  >> xy.fX; in  >> xy.fY; return in; }
+inline ofstream& operator<<(ofstream &out, XY &xy) { out << xy.fX << " " << xy.fY; return out; }
+
 class AltAz : public XY
 {
@@ -72,8 +82,12 @@
     double Az()  const { return fY; }
 
+    void operator*=(double c) { fX*=c; fY*=c; }
+    void operator/=(double c) { fX*=c; fY*=c; }
+
     void Alt(double d) { fX=d; }
     void Az(double d)  { fY=d; }
     void operator*=(const XY &c)    { fX*=c.X(); fY*=c.Y(); }
     void operator-=(const AltAz &c) { fX-=c.fX; fY-=c.fY; }
+    void operator+=(const AltAz &c) { fX+=c.fX; fY+=c.fY; }
 
     AltAz operator/(double c) const { return AltAz(fX/c, fY/c); }
@@ -91,4 +105,7 @@
     ZdAz(double zd=0, double az=0) : XY(zd, az) {}
     ZdAz(const ZdAz &c) : XY(c) {}
+
+    void operator*=(double c) { fX*=c; fY*=c; }
+    void operator/=(double c) { fX*=c; fY*=c; }
 
     double Zd() const { return fX; }
@@ -118,4 +135,7 @@
     double Dec() const { return fY; }
 
+    void operator*=(double c) { fX*=c; fY*=c; }
+    void operator/=(double c) { fX*=c; fY*=c; }
+
     void Ra(double x)  { fX = x; }
     void Dec(double y) { fY = y; }
