00001 #ifndef _SEGMENT_H_
00002 #define _SEGMENT_H_
00003
00004
00005
00006
00007
00008
00026 struct Segment
00027 {
00028 unsigned holdsData: 1;
00029
00030 int nStatus;
00031
00032 MQTileID bTile;
00033 int nIndex;
00034
00035 MQSegmentAttributes attr;
00036
00037 FPeak2i* pFPeaks;
00038 FPeak2iPointer* pPFPeaks;
00039
00040 int nFPeaks;
00041 float dChiSquare;
00042 int nIterations;
00043 };
00044
00045 typedef struct Segment Segment;
00046
00047 void Segment_fprint (FILE* fp, Segment* seg);
00048 void Segment_destroy (Segment* segment);
00049 void Segment_copy(Segment *dest, Segment *src);
00050 void Segment_copyNonFitElements(Segment *dest, Segment *src);
00051 void Segment_validatePositivePeaks(Segment* segment);
00052 void Segment_init(Segment* segment, MQSegmentAttributes* attr);
00053 Segment* SegmentArray_create (int nSegments);
00054 Segment* SegmentArray_getUsingIndexArray(Segment* array, int* pIndexArray, int nIndices);
00055 void SegmentArray_destroy(Segment** pSegmentArray, int nSegments);
00056 void Segment_createFromFPeak2iArray(Segment* segment, FPeak2i* pFPeaks, int size);
00057
00058
00059 FPeak2i* SegmentArray_getFPeaksUsingIndexArray(Segment* array, int* index_array, int nSegments,
00060 int* nPeaks);
00061
00062
00063 FPeak2i* SegmentArray_getFPeaks(Segment* array, int nSegments, int* nFPeaks);
00064 void SegmentArray_markSegmentsContainingPeaks( Segment* pSegment, int nSegment,
00065 Peak2i* peaks, int npeaks,
00066 Map2D* map, float dMZTolerance, int nScanTolerance);
00067
00068
00069 void SegmentArray_sortByTileAndSegment(Segment* pArray, int nArray);
00070
00071 int SegmentArray_countFPeaks(Segment* pSegments, int nSegments);
00072 int SegmentArray_queryBySamplingCoordinates(Segment* pSegments, int nSegments, int scan, int bin);
00073
00074 Segment* SegmentArray_queryByTileAndSegment(Segment* pArray, int nArray, MQTileID bTile, int nSegment);
00075 #endif
00076
00077
00078
00079