Index: trunk/psLib/src/astronomy/psAstrometry.c
===================================================================
--- trunk/psLib/src/astronomy/psAstrometry.c	(revision 1981)
+++ trunk/psLib/src/astronomy/psAstrometry.c	(revision 2001)
@@ -8,6 +8,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.31 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-06 21:30:14 $
+ *  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-07 19:16:46 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -186,4 +186,14 @@
 }
 
+static void exposureFree(psExposure* exp)
+{
+    if (exp != NULL) {
+        psFree((void*)exp->time);
+        psFree((void*)exp->observatory);
+        psFree((void*)exp->cameraName);
+        psFree((void*)exp->telescopeName);
+    }
+}
+
 static void fixedPatternFree(psFixedPattern* fp)
 {
@@ -256,8 +266,17 @@
 
 
-psExposure* psExposureAlloc(double ra, double dec, double hourAngle,
-                            double zenith, double azimuth, double localTime, float date,
-                            float rotAngle, float temperature, float pressure, float humidity,
-                            float exposureTime)
+psExposure* psExposureAlloc(double ra,
+                            double dec,
+                            double hourAngle,
+                            double zenithDistance,
+                            double azimuth,
+                            const psTime* time,
+                            float rotAngle,
+                            float temperature,
+                            float pressure,
+                            float humidity,
+                            float exposureTime,
+                            float wavelength,
+                            const psObservatory* observatory)
 {
     psExposure* exp = psAlloc(sizeof(psExposure));
@@ -266,8 +285,6 @@
     *(double *)&exp->dec = dec;
     *(double *)&exp->hourAngle = hourAngle;
-    *(double *)&exp->zenith = zenith;
+    *(double *)&exp->zenithDistance = zenithDistance;
     *(double *)&exp->azimuth = azimuth;
-    *(double *)&exp->localTime = localTime;
-    *(float *)&exp->date = date;
     *(float *)&exp->rotAngle = rotAngle;
     *(float *)&exp->temperature = temperature;
@@ -275,4 +292,19 @@
     *(float *)&exp->humidity = humidity;
     *(float *)&exp->exposureTime = exposureTime;
+    *(float *)&exp->wavelength = wavelength;
+
+    exp->time = psMemIncrRefCounter((void*)time);
+    exp->observatory = psMemIncrRefCounter((void*)observatory);
+
+    // XXX: how is these value derived?
+    *(double *)&exp->lst = psTimeToLST((psTime*)time,observatory->longitude);
+    *(float *)&exp->positionAngle = 0.0f;
+    *(float *)&exp->parallacticAngle = 0.0f;
+    *(float *)&exp->airmass = 0.0f;
+    *(float *)&exp->parallacticFactor = 0.0f;
+    exp->cameraName = NULL;
+    exp->telescopeName = NULL;
+
+    p_psMemSetDeallocator(exp,(psFreeFcn)exposureFree);
 
     return exp;
@@ -285,7 +317,7 @@
                                   double tlr)
 {
-    psObservatory* obs = psAlloc(sizeof(obs));
-
-    if (obs->name == NULL) {
+    psObservatory* obs = psAlloc(sizeof(psObservatory));
+
+    if (name == NULL) {
         obs->name = NULL;
     } else {
