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