/*************************************************************************** * Copyright (C) 2008 by Douglas Castro,,, * * douglas@douglas-laptop * * * ***************************************************************************/ #ifndef IMPRIME_H #define IMPRIME_H #include #include #include #include "bool.h" #include "definicoes.h" /** * Escreve num arquivo {arq} as coordenadas das celulas da arvore * @param arq [out] arquivo onde serao escritos os dados de saida * @param r [in] arvore. * @param ind [in] indice da celula */ void mostra(FILE *arq, Reg *r, int ind); /** * Escreve num arquivo as coordenadas x e y do vertice inferior esquerdo de todas celulas * com suas respectivas medias celulares * @param arq [out] arquivo onde os dados serao escritos * @param r [in] arvore * @param ind [in] indicce da celula * @param prof [in] profundodade na arvore * @param xmin [in] abscissa inferior da celula * @param xmax [in] abscissa superior da celula * @param ymin [in] ordenada inferior da celula * @param ymax [in] ordenada superior da celula */ void mostra_aux(FILE *arq, Reg *r,int ind, int prof, double xmin, double xmax, double ymin, double ymax); /** * Escreve num arquivo as coordenadas x e y do vertice inferior esquerdo das celulas folha * da �rvore {r} e suas medias celulares. A �rvore n�o pode ser nula. * @param arq [out] arquivo onde os dados serao escritos * @param r [in] arvore * @param ind [in] indice da celula * @param prof [in] profundodade na arvore * @param xmin [in] abscissa inferior da celula * @param xmax [in] abscissa superior da celula * @param ymin [in] ordenada inferior da celula * @param ymax [in] ordenada superior da celula */ void mostra_folhas(FILE *arq, Reg *r, int ind, int prof, double xmin, double xmax, double ymin, double ymax); /** * Dado indice da celula calcula-se sua posicao na malha * @param ind [in] indice da celula * @param delta0 [out] coordenada x da celula * @param delta1 [out] coordenada y da celula */ void encontra_posicao(int ind, int *delta0, int *delta1); /** * Funcao recursiva para imprimir os dados das "celulas" exteriores ao dominio da funcao a ser tratada. * @param arq [out] Diz onde os dados serao gravados * @param pac [in] pacote de dados a ser analisado * @param xmin [in] coordenadas do vertice inferior esquerdo da celula central do pacote * @param xmax [in] coordenadas do vertice superior direito da celula central do pacote * @param profund [in] profundidade na arvore * @param interpola_quad [in] funcao para interpolacao quadratica */ void imprime_arvore(FILE *arq, VReg pac[], double xmin[], double xmax[], int profund, Preditor pred); /** * Escolhe o pacote filho esquerdo ou direito, dependendo da necessidade. * Quando uma condicao e atingida alguns dados sao escritos num arquivo. * @param arq [out] onde serao salos dados de saida * @param pac [in] pacote de celulas a ser analisado * @param xmin [in] coordenadas do vertice inferior esquerdo da celula central do pacote * @param xmax [in] coordenadas do vertice superior direito da celula central do pacote * @param ex [in] eixo ortogonal a divisao da celula * @param pred [in] funcao para interpolacao quadratica * @param qual [in] pacote filho a ser escolhido * @param fil [out] o pacote filho escolhido * @param xmin_fil [in] coordenadas do vertice inferior esquerdo da celula central do pacote filho * @param xmax_fil [in] coordenadas do vertice superior direito da celula central do pacote filho */ void escolhe_pacote(FILE *arq,VReg pac[],double xmin[], double xmax[], int ex, Preditor pred, int qual, VReg fil[], double xmin_fil[], double xmax_fil[]); #endif