All pastes #781196 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-18 20:00 UTC
rendered paste body
void volume::peindre (int i, int j, int k, unsigned int couleurDepart, unsigned int couleurFin)
{
    if (i<0 || i>=largeur)
		return;
	
    if (j<0 || j>=hauteur)
		return;
	
    if (k<0 || k>=nbr)
		return;	

	if (getValeurPixel(k,i,j) == couleurDepart)
	{
		setValeurPixel(k,i,j,couleurFin);
		
		for (int x=-1; x<=1; x++)
			for (int y=-1; y<=1; y++)
				for (int z=-1; z<=1; z++)
					peindre(i+x,j+y,k+z,couleurDepart,couleurFin);
	}
}


unsigned int volume::getValeurPixel (int num, int l, int h)
{
/* donnees est un char ** qui est rempli au chargement du fichier */
	return getValeurPixel(donnees,num,l,h);
}


unsigned int volume::getValeurPixel (unsigned char **tab, int num, int l, int h)
{
	int val = 0;
	
	if (num<0)
		num = 0;
	else if (num >= nbr)
		num = nbr-1;
	
	if (l<0)
		l = 0;
	else if (l >= largeur)
		l = largeur-1;
	
	if (h<0)
		h = 0;
	else if (h >= hauteur)
		h = hauteur-1;
	
	for (int i=0; i!=nbrBytes; i++)
		val = 255*val + (int)getValeurOctet(tab,num,l,h,i);
	
	return (unsigned int)val;
}


unsigned int volume::getValeurOctet (unsigned char **tab, int num, int l, int h, int octet)
{
	return (unsigned int)tab[num][(h*largeur+l)*nbrBytes+(nbrBytes-octet-1)];
}