Index: /trunk/Mars/mcore/nova.h
===================================================================
--- /trunk/Mars/mcore/nova.h	(revision 16969)
+++ /trunk/Mars/mcore/nova.h	(revision 16970)
@@ -11,9 +11,11 @@
 {
     typedef ln_lnlat_posn LnLatPosn;
+    typedef ln_rst_time   RstTime; // Note that times are in JD not Mjd
     //typedef ln_hrz_posn   HrzPosn;
-    typedef ln_equ_posn   EquPosn;
-    typedef ln_rst_time   RstTime; // Note that times are in JD not Mjd
+    //typedef ln_equ_posn   EquPosn;
 
     struct ZdAzPosn;
+    struct RaDecPosn;
+
 
     // Warning: 0deg=South, 90deg=W
@@ -26,6 +28,6 @@
     struct ZdAzPosn
     {
-        double zd;
-        double az;
+        double zd; // [deg]
+        double az; // [deg]
 
         ZdAzPosn() : zd(0), az(0) { }
@@ -37,4 +39,26 @@
 
     HrzPosn::HrzPosn(const ZdAzPosn &za) { alt = 90-za.zd; az = za.az-180; }
+
+
+    // Note that right ascension is stored in degree
+    struct EquPosn : public ln_equ_posn
+    {
+        EquPosn() { }
+        EquPosn(const ZdAzPosn &);
+    };
+
+    struct RaDecPosn
+    {
+        double ra;  // [h]
+        double dec; // [deg]
+
+        RaDecPosn() : ra(0), dec(0) { }
+        RaDecPosn(const EquPosn &equ) : ra(equ.ra/15), dec(equ.dec) { }
+
+        // This crahsed cint, but it could save up the dedicate structure HrzPosn :(
+        //operator HrzPosn() const { const HrzPosn p = { az-180, 90-zd}; return p; }
+    };
+
+    EquPosn::EquPosn(const RaDecPosn &rd) { ra = rd.ra*15; dec = rd.dec; }
 
 
