00001 #include "sadie_byte.h"
00002 #include "mosaic.h"
00003 #include "trees_profile.h"
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #define NORMAL 0
00014 #define ADDED 1
00015 #define REMOVED 2
00016
00017 #define TERM_CODE 9
00018 #define TERM_VALID 0
00019 #define CHAIN_HEADER_SIZE 512
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 typedef struct chain_node {
00030 unsigned char code;
00031
00032 unsigned char valid;
00033 struct chain_node *next;
00034 } CHAIN_NODE;
00035
00036
00037 typedef struct list_node {
00038 unsigned int startj;
00039 unsigned int startk;
00040 unsigned char ring_type;
00041 int ring_id;
00042 CHAIN_NODE *chain;
00043 struct list_node *next;
00044 } LIST_NODE;
00045
00046
00047 typedef struct {
00048 unsigned int nlin;
00049 unsigned int npix;
00050 char header[504];
00051 LIST_NODE *list;
00052 } CHAIN;
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 void RELMEM_CHAIN (CHAIN *);
00063 void CHAIN2DISK (CHAIN *,char *);
00064 void SCALE_CHAIN (CHAIN *, int, CHAIN **);
00065 void DISK2CHAIN (char *, CHAIN **);
00066 void CHAIN_COMPUTE_COORDINATES (int, int, unsigned char, int *, int *);
00067 void CHAIN_COMPUTE_CODE (int , int , int , int , unsigned char *);
00068 void CHAIN_RINGWIDTHS (IMAGE_BYTE *, MOSAIC_INDEX *, CHAIN *, PROFILE_LIST *, int *, double **, BOUNDBOX_LIST *);
00069 void SYNTHESIZE_INSERT_RING (CHAIN *, int, int, int);