00001 #ifndef _MAP_POS_H_
00002 #define _MAP_POS_H_
00003
00004
00005
00006
00007
00008
00009
00010 struct FPeak2i;
00011
00012 struct Map2DPosition
00013 {
00014 MQTileID bTile;
00015 int nSegment;
00016 };
00017
00018 typedef struct Map2DPosition Map2DPosition;
00019 typedef Map2DPosition* Map2DPositionPointer;
00020
00021 int Map2DPosition_cmp(const void *p1, const void *p2);
00022
00023 Map2DPosition* Map2DPositionArray_create(int nsize);
00024 Map2DPositionPointer* Map2DPositionPointerArray_create(int nsize);
00025
00026 MQTileID* Map2DPositionArray_getTileArray(Map2DPosition* array, int nSize, int* nTiles);
00027 MQTileID* Map2DPositionPointerArray_getTileArray(Map2DPositionPointer* array, int nSize, int* nTiles);
00028
00029 int* Map2DPositionArray_getSegmentsFromTile( Map2DPosition* pos,
00030 int size,
00031 MQTileID bTile,
00032 int* nseg);
00033
00034 void Map2DPositionArray_fprint(FILE* fp, Map2DPosition* pos, int size);
00035 void Map2DPositionArray_sort(Map2DPosition* array, int size);
00036
00037 int* Map2DPositionPointerArray_getSegmentsFromTile( Map2DPositionPointer* pos,
00038 int size,
00039 MQTileID bTile,
00040 int* nseg);
00041
00042 int Map2DPositionPointerArray_countSpanningTiles(Map2DPositionPointer* array, int nSize);
00043 int Map2DPositionPointerArray_countSegmentsFromTile( Map2DPositionPointer* pos,
00044 int size,
00045 MQTileID bTile);
00046
00047 MQTileID Map2DPositionPointerArray_getSmallestTile(Map2DPositionPointer* array, int nSize);
00048
00049 Map2DPositionPointer* Map2DPositionArray_getPointerArray(Map2DPosition* peaks, int npeaks);
00050 Map2DPositionPointer* Map2DPositionPointerArray_copy(Map2DPositionPointer* pArray, int nArray);
00051
00052 Map2DPositionPointer* Map2DPositionArray_getPointerArrayOfValidFPeaks(Map2DPosition* peaks,
00053 struct FPeak2i* array,
00054 int npeaks);
00055
00056 #endif
00057