Index: trunk/Mars/mcore/nova.h
===================================================================
--- trunk/Mars/mcore/nova.h	(revision 15203)
+++ trunk/Mars/mcore/nova.h	(revision 15207)
@@ -10,7 +10,32 @@
 {
     typedef ln_lnlat_posn LnLatPosn;
-    typedef ln_hrz_posn   HrzPosn;
+    //typedef ln_hrz_posn   HrzPosn;
     typedef ln_equ_posn   EquPosn;
     typedef ln_rst_time   RstTime;
+
+    struct ZdAzPosn;
+
+    // Warning: 0deg=South, 90deg=W
+    struct HrzPosn : public ln_hrz_posn
+    {
+        HrzPosn() { }
+        HrzPosn(const ZdAzPosn &);
+    };
+
+    struct ZdAzPosn
+    {
+        double zd;
+        double az;
+
+        ZdAzPosn() : zd(0), az(0) { }
+        ZdAzPosn(const HrzPosn &hrz) : zd(90-hrz.alt), az(hrz.az-180) { }
+
+        // This crahsed cint, but it could save up the dedicate structure HrzPosn :(
+        //operator HrzPosn() const { const HrzPosn p = { az-180, 90-zd}; return p; }
+    };
+
+    HrzPosn::HrzPosn(const ZdAzPosn &za) { alt = 90-za.zd; az = za.az-180; }
+
+
 
     const LnLatPosn &ORM()
