Index: trunk/Ohana/src/libdvo/include/dvo.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvo.h	(revision 5346)
+++ trunk/Ohana/src/libdvo/include/dvo.h	(revision 5441)
@@ -106,4 +106,15 @@
 } FITS_DB;
 
+/* SkyRegion : better implementation than GSCRegion */
+typedef struct {
+  int Nregions;
+  SkyRegion *regions;
+} SkyTable;
+
+typedef struct {
+  int Nregions;
+  SkyRegion **regions;
+} SkyList;
+
 # if (0)
 /* structure for data on a catalog region */
@@ -192,4 +203,5 @@
 int FindMosaicForImage_MatchSearch (Image *images, int Nimages, int entry);
 int BuildChipMatch (Image *images, int Nimages);
+void SetImageCorners (double *X, double *Y, Image *image);
 
 short int putMi (double value);
@@ -322,3 +334,17 @@
 ImagePanstarrs *ImageInternalToPanstarrs (Image *in, int Nvalues);
 
+/* skyregion APIs */
+int SkyTableSave (SkyTable *table, char *filename);
+SkyTable *SkyTableLoad (char *filename, int VERBOSE);
+SkyTable *SkyTableFromGSC (char *filename, int depth, int VERBOSE);
+SkyRegion *SkyRegionByPoint (SkyTable *table, int depth, double ra, double dec);
+SkyList *SkyListByPoint (SkyTable *table, double ra, double dec);
+SkyList *SkyListByRadius (SkyTable *table, int depth, double RA, double DEC, double radius);
+SkyList *SkyListByPatch (SkyTable *table, int depth, SkyRegion *patch);
+SkyList *SkyListByImage (SkyTable *table, int depth, Image *image, Coords *mosaic);
+SkyList *SkyListByBounds (SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax);
+SkyList *SkyListChildrenByBounds (SkyTable *table, int No, int depth, double Rmin, double Rmax, double Dmin, double Dmax);
+int SkyListFree (SkyList *list);
+int SkyTableFree (SkyTable *table);
+
 # endif
