Changeset 6643
- Timestamp:
- Mar 18, 2006, 5:26:41 PM (20 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 2 edited
-
include/dvo.h (modified) (1 diff)
-
src/skyregion_ops.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/include/dvo.h
r6235 r6643 344 344 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int depth, int VERBOSE)); 345 345 int SkyTableSetDepth PROTO((SkyTable *sky, int depth)); 346 Sky Region*SkyRegionByPoint PROTO((SkyTable *table, int depth, double ra, double dec));346 SkyList *SkyRegionByPoint PROTO((SkyTable *table, int depth, double ra, double dec)); 347 347 SkyList *SkyListByPoint PROTO((SkyTable *table, double ra, double dec)); 348 348 SkyList *SkyListByRadius PROTO((SkyTable *table, int depth, double RA, double DEC, double radius)); -
trunk/Ohana/src/libdvo/src/skyregion_ops.c
r5956 r6643 9 9 10 10 /* find region which overlaps c at given depth (-1 : populated ) */ 11 Sky Region*SkyRegionByPoint (SkyTable *table, int depth, double ra, double dec) {11 SkyList *SkyRegionByPoint (SkyTable *table, int depth, double ra, double dec) { 12 12 13 13 int i, Ns, Ne, No; 14 14 SkyRegion *region; 15 SkyList *list; 16 17 ALLOCATE (list, SkyList, 1); 18 ALLOCATE (list[0].regions, SkyRegion *, 1); 19 ALLOCATE (list[0].filename, char *, 1); 20 list[0].Nregions = 0; 15 21 16 22 region = table[0].regions; … … 29 35 break; 30 36 } 31 if (No == -1) return ( NULL);32 if ((depth == -1) && (region[No].table)) return (®ion[No]);33 if (depth == region[No].depth) return (®ion[No]);34 if ((depth > region[No].depth) && !region[No].child) return ( NULL);37 if (No == -1) return (list); 38 if ((depth == -1) && (region[No].table)) break; 39 if (depth == region[No].depth) break; 40 if ((depth > region[No].depth) && !region[No].child) return (list); 35 41 36 42 /* need to check Ns, Ne, or guarantee valid range */ … … 38 44 Ne = region[No].childE; 39 45 } 46 47 list[0].regions[0] = ®ion[No]; 48 list[0].filename[0] = table[0].filename[No]; 49 list[0].Nregions = 1; 50 return (list); 40 51 } 41 52 … … 74 85 list[0].filename[N] = table[0].filename[No]; 75 86 N++; 76 CHECK_REALLOCATE (list[0].regions, SkyRegion *, NREGIONS, N, 10); 77 CHECK_REALLOCATE (list[0].filename, char *, NREGIONS, N, 10); 87 if (N >= NREGIONS) { 88 NREGIONS += 10; 89 REALLOCATE (list[0].regions, SkyRegion *, NREGIONS); 90 REALLOCATE (list[0].filename, char *, NREGIONS); 91 } 78 92 list[0].Nregions = N; 79 93 … … 236 250 list[0].filename[Nnew] = table[0].filename[i]; 237 251 Nnew ++; 238 CHECK_REALLOCATE (list[0].regions, SkyRegion *, NNEW, Nnew, 50); 239 CHECK_REALLOCATE (list[0].filename, char *, NNEW, Nnew, 50); 252 if (Nnew >= NNEW) { 253 NNEW += 50; 254 REALLOCATE (list[0].regions, SkyRegion *, NNEW); 255 REALLOCATE (list[0].filename, char *, NNEW); 256 } 240 257 } 241 258 }
Note:
See TracChangeset
for help on using the changeset viewer.
