Main Page | Modules | Data Structures | File List | Data Fields | Globals

massspec/kdtree.h

00001 #ifndef _KD_TREE_H_ 00002 #define _KD_TREE_H_ 00003 00004 enum {KDREE_LOWER, KDTREE_UPPER}; 00005 00006 typedef int ElementType; 00007 00008 typedef ElementType ItemType[3]; 00009 00010 struct KdNode; 00011 typedef struct KdNode* Position; 00012 typedef struct KdNode* KdTree; 00013 00014 struct KdNode 00015 { 00016 ItemType Data; 00017 KdTree Left; 00018 KdTree Right; 00019 }; 00020 00021 KdTree Insert( ItemType Item, KdTree T ); 00022 void PrintRange(ItemType* array_to_be_filled, int max_size, int* size_of_array, ItemType Low, ItemType High, KdTree T ); 00023 00024 struct KdItem2f 00025 { 00026 float x[2]; 00027 void* pointer; 00028 }; 00029 00030 typedef struct KdItem2f KdItem2f; 00031 00032 struct KdNode2f 00033 { 00034 struct KdItem2f data; 00035 struct KdNode2f* left; 00036 struct KdNode2f* right; 00037 }; 00038 00039 00040 typedef struct KdNode2f KdNode2f; 00041 00042 typedef struct KdNode2f* KdTree2f; 00043 00044 void (*KdTree2f_setElement) (const void* array, int index, const void* data); 00045 00046 static KdTree2f KdTree2f_recursiveInsert(KdTree2f T, KdItem2f* item, int level); 00047 KdTree2f KdTree2f_insert (KdTree2f T, KdItem2f* item); 00048 00049 void KdTree2f_getArrayInRange(KdTree2f T, void* array_to_be_filled, int max_size, 00050 int* size_of_array, KdItem2f* low, KdItem2f* high); 00051 00052 void KdTree2f_countElementsInRange(KdTree2f T, int* size_of_array, 00053 KdItem2f* low, KdItem2f* high); 00054 #endif 00055

Generated on Sun Feb 13 01:05:58 2005 for MapQuant by doxygen 1.3.7