00001 00005 #ifndef TREES_PROFILE_H 00006 #define TREES_PROFILE_H 1 00007 00008 #include "project_utilities.h" 00009 #include "trees_widthvec.h" 00010 00011 BEGIN_C_DECLARATIONS 00012 00016 typedef double BRIGHTNESS; 00017 00018 #define DARKNESS ((BRIGHTNESS)0) 00019 00024 typedef struct profile_node { 00025 struct profile_node *next; 00026 int len; 00027 BRIGHTNESS *val; 00028 } PROFILE_NODE; 00029 00030 typedef PROFILE_NODE* PROFILE_LIST; 00031 00032 typedef struct boundbox_node { 00033 struct boundbox_node *next; 00034 double minx; 00035 double miny; 00036 double maxx; 00037 double maxy; 00038 } BOUNDBOX_NODE; 00039 00040 typedef BOUNDBOX_NODE* BOUNDBOX_LIST; 00041 00042 PROFILE_LIST new_profile (int); 00043 void demolish_profiles (PROFILE_LIST); 00044 void demolish_boundbox (BOUNDBOX_LIST); 00045 PROFILE_LIST reduce_profiles (PROFILE_LIST); 00046 int find_mean_profile(PROFILE_LIST, PROFILE_LIST); 00047 void First_diff_profiles(PROFILE_LIST *profiles, PROFILE_LIST *diffprofiles, 00048 widthvecp_t ringwidths, 00049 widthvecp_t earlyringwidth, 00050 widthvecp_t lateringwidth); 00051 00052 END_C_DECLARATIONS 00053 #endif