// 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 :/
}
示例#2
0
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;
	}
}
示例#3
0
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);
    

}
示例#4
0
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;
}
示例#5
0
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;
}