All pastes #972465 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-04-05 13:09 UTC
rendered paste body
void InvertFill(const SeedStack & points, const S_RGBA & color)
{
    S_Point bodA;
	S_Point bodB;
	char invert=0;
	float deltax=0,deltay=0,pomocnyx=0,rust=0;
	unsigned int i=0;
	
	
	//nulovani masky
	if(fill_buffer != NULL)
    for(int i=0;i!=frame_w*frame_h;i++)
     fill_buffer[i]=0;
    
	//pruchod body
	for (i=0;i<points.size();i++)
	{
	  bodA=points[i];
	  bodB=points[(i+1)%points.size()];
      if(bodA.y<bodB.y)
	  {
		SWAP(bodA.x, bodB.x);
		SWAP(bodA.y, bodB.y);
	  }
	  
	  deltax=(float)bodA.x-(float)bodB.x;
	  // mozna jeste obratit aby nebyl zaporny
	  deltay=(float)bodA.y-(float)bodB.y;
	  rust=deltax/deltay;
	  pomocnyx=bodA.x-rust;
	  for(int y=bodA.y;y>bodB.y;y--)
	  {
	    pomocnyx+=rust;
	    int sazenix=ROUND(pomocnyx);
	    while(sazenix<=frame_w)
	    {	
		  invert=fill_buffer[sazenix+(y-1)*frame_w];
		  if (invert==0)
	      fill_buffer[sazenix+(y-1)*frame_w]=1;
		  else
		  fill_buffer[sazenix+(y-1)*frame_w]=0;
		  
		  sazenix++;
	    }
	  }
	}
 for(int i=0;i!=frame_w*frame_h;i++)
 {
	 if(fill_buffer[i]==1)
	 {
	 PutPixel(i%frame_w,i/frame_w,color);
	 }
}

}