// process prepared data bool TautologyChecker::processRecursive(dat *t,int mask){ if(t->left){ // no unary nodes, right will always be set // this will allow parens to negate a returning value if(t->sign)return eval(processRecursive(t->left,mask),t->data ,processRecursive(t->right,mask)); else { return !eval(processRecursive(t->left,mask),t->data ,processRecursive(t->right,mask)); // combine in one go. } } return t->sign?readMask(t->data,mask):!readMask(t->data,mask); // sign checker. wordy :/ }
void operations(int op, FILE *stream, int row, int col, int grey_scale){ int mask_dim; int **conv_image; double **mask; char *mask_file; FILE *fp; switch(op) { case 1: //Produção do negativo. negativeTransform(stream, row, col, grey_scale); break; case 2: //Filtragem Espacial. mask_file = readLine(); //Lê o nome do arquivo de máscara. fp = fopen(mask_file, "r"); if(!fp) noFile(mask_file, fp); mask = readMask(fp, &mask_dim);//Armazena o seu conteúdo. //Recebe a imagem já com a filtragem espacial conv_image = convolution(stream, mask, row, col, grey_scale, mask_dim); //Libera o conteúdo relacionado com a máscara. freeMask(mask_dim, mask, mask_file, fp); printImage(row, col, grey_scale, conv_image); break; default: //Caso não seja digitado nenhum operador esperado printf("Unknown Operator.\n"); break; } }
int main(int argc, char *argv[]){ int i,j,k; char intt[200]; int lon_mask[NPIX_MASK], lat_mask[NPIX_MASK]; struct headers gridHeader,thisHeader; sprintf(intt,"%s%s",INPATH,GRIDNAME); gridHeader=readHeader(&intt[0]); int *glon,*glat;//global longitude and latitude of original grid int *index; glon=(int *)malloc(gridHeader.ncells*sizeof(int)); glat=(int *)malloc(gridHeader.ncells*sizeof(int)); index=(int *)malloc(gridHeader.ncells*sizeof(int)); readMask(lon_mask,lat_mask); readGrid(glon,glat); indexing(lon_mask,lat_mask,glon,glat,index); printf("%d\n",sizeof(real)); /*SHORT*/ if(sizeof(real)==sizeof(short)){ for(i=0;i<NCOWFILES;i++) convGeneral(index,filecow[i]);//cow file for(i=0;i<NVAR6;i++) convGeneral(index,fileclim6[i]);//climate for(i=0;i<NVAR9;i++) convGeneral(index,fileclim9[i]); for(i=0;i<NVARERA;i++) convGeneral(index,fileclimera[i]); for(i=0;i<NSDATEFILES;i++) convGeneral(index,filesdate[i]); //sowing data for(i=0;i<NPOPFILES;i++) convGeneral(index,filepopdens[i]);//Population density for(i=0;i<NELEVFILES;i++) convGeneral(index,fileelev[i]); //elevation for(i=0;i<NCROPFILES;i++) convGeneral(index,filelu[i]); //CFT } /*drainage & neibour irrigate(LONG)*/ if(sizeof(real)==sizeof(long)){ for(i=0;i<NDRAINFILES;i++) convGeneral(index,filedrain[i]); //drainage for(i=0;i<NNEIFILES;i++) convGeneral(index,filenei[i]);//neibourring irrigation } /*water use & reservoir_info_grand5 & soil (INT)*/ if(sizeof(real)==sizeof(int)){ for(i=0;i<NLAKEFILES;i++) convSoil_Lake(index,filelakes[i]);//lakes for(i=0;i<NWUSEFILES;i++) convGeneral(index,filewuse[i]);//water use for(i=0;i<NRESFILES;i++) conv_reservoir(index,fileres[i]);//reservoir convSoil_Lake(index,filesoil[0]);//soil } free(glon); free(glat); free(index); }
bool CSprite::loadHQSprite( const std::string& filename ) { if(!IsFileAvailable(filename)) return false; if(!mpSurface.empty()) { const std::string fullpath = GetFullFileName(filename); SmartPointer<SDL_Surface> temp_surface = SDL_LoadBMP( fullpath.c_str() ); if(!temp_surface.empty()) { SmartPointer<SDL_Surface> displaysurface = SDL_ConvertSurface(temp_surface.get(), mpSurface->format, mpSurface->flags); readMask(displaysurface.get()); readBBox(displaysurface.get()); SDL_BlitSurface(displaysurface.get(), NULL, mpSurface.get(), NULL); return true; } } return false; }
bool CSprite::loadHQSprite( const std::string& filename ) { if(!IsFileAvailable(filename)) return false; if(mpSurface) { const std::string fullpath = GetFullFileName(filename); std::unique_ptr<SDL_Surface, SDL_Surface_Deleter> temp_surface(SDL_LoadBMP( fullpath.c_str() )); if(temp_surface) { std::unique_ptr<SDL_Surface, SDL_Surface_Deleter> displaysurface( SDL_ConvertSurface(temp_surface.get(), mpSurface->format, mpSurface->flags)); readMask(displaysurface.get()); readBBox(displaysurface.get()); SDL_BlitSurface(displaysurface.get(), NULL, mpSurface.get(), NULL); return true; } } return false; }