Index: trunk/MagicSoft/Cosy/catalog/SlaStars.h
===================================================================
--- trunk/MagicSoft/Cosy/catalog/SlaStars.h	(revision 1803)
+++ trunk/MagicSoft/Cosy/catalog/SlaStars.h	(revision 1953)
@@ -40,4 +40,9 @@
     ZdAz   CalcZdAz (const RaDec &radec) const;
 
+    AltAz  CalcAltAz(const RaDec &radec, double mjd)
+    { SetMjd(mjd); return CalcAltAz(radec); }
+    ZdAz   CalcZdAz (const RaDec &radec, double mjd)
+    { SetMjd(mjd); return CalcZdAz(radec); }
+
     AltAz  CalcAltAzFast(const RaDec &radec) const;
     ZdAz   CalcZdAzFast (const RaDec &radec) const;
Index: trunk/MagicSoft/Cosy/catalog/StarCatalog.cc
===================================================================
--- trunk/MagicSoft/Cosy/catalog/StarCatalog.cc	(revision 1803)
+++ trunk/MagicSoft/Cosy/catalog/StarCatalog.cc	(revision 1953)
@@ -14,5 +14,5 @@
 ClassImp(StarCatalog);
 
-StarCatalog::StarCatalog(MObservatory::LocationName_t key) : SlaStars(key), fEntries(0)
+StarCatalog::StarCatalog(MObservatory::LocationName_t key) : SlaStars(key), fEntries(0), fSinAngle(0), fCosAngle(1)
 {
     // p = pointer to MainFrame (not owner)
@@ -505,6 +505,8 @@
     // Align alt/az[pix]
     //
-    const int xx = 767-(int)((fWidth-dx+DPI)/fPixSize);
-    const int yy =     (int)((fHeight+dy)/fPixSize);
+    const int xx = (int)(((dx-DPI)*fCosAngle - dy*fSinAngle + fWidth)/fPixSize);
+    const int yy = (int)(((dx-DPI)*fSinAngle + dy*fCosAngle + fHeight)/fPixSize);
+    //const int xx = 767-(int)((fWidth-dx+DPI)/fPixSize);
+    //const int yy =     (int)((fHeight+dy)/fPixSize);
 
     //
@@ -685,8 +687,8 @@
 
             //
-            // Align alt/az[pix]
-            //
-            const float xx = 768.0 - (fWidth -dx+DPI)/fPixSize;
-            const float yy =         (fHeight+dy)    /fPixSize;
+            // Align and rotate alt/az[pix]
+            //
+            float xx = ((dx-DPI)*fCosAngle - dy*fSinAngle + fWidth)/fPixSize;
+            float yy = ((dx-DPI)*fSinAngle + dy*fCosAngle + fHeight)/fPixSize;
 
             //
@@ -710,6 +712,12 @@
 AltAz StarCatalog::CalcAltAzFromPix(Double_t pixx, Double_t pixy) const
 {
-    Double_t dx = (pixx-768.0)*fPixSize + fWidth+DPI;
-    Double_t dy =         pixy*fPixSize - fHeight;
+    pixx *= fPixSize;
+    pixy *= fPixSize;
+
+    const double dx =  (pixx-fWidth)*fCosAngle + (pixy-fHeight)*fSinAngle;
+    const double dy = -(pixx-fWidth)*fSinAngle + (pixy-fHeight)*fCosAngle;
+
+    //const double dx = (pixx-768.0)*fPixSize + fWidth+DPI;
+    //const double dy =         pixy*fPixSize - fHeight;
 
     double ha, dec;
Index: trunk/MagicSoft/Cosy/catalog/StarCatalog.h
===================================================================
--- trunk/MagicSoft/Cosy/catalog/StarCatalog.h	(revision 1803)
+++ trunk/MagicSoft/Cosy/catalog/StarCatalog.h	(revision 1953)
@@ -28,4 +28,6 @@
     double   fWidth;    // size of display
     double   fHeight;   //
+    double   fSinAngle;
+    double   fCosAngle;
 
     float    fLimitMag; // [M] limiting magnitude for display
@@ -87,4 +89,5 @@
     void  SetPixSize(const double pixsize);
     void  SetLimitMag(const float mag) { fLimitMag = mag; }
+    void  SetRotationAngle(const float angle) { fSinAngle = sin(angle/kRad2Deg); fCosAngle = cos(angle/kRad2Deg); }
 
     double GetPixSize() const;
