| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 
 | // Détermination des extrémums, 4 points limites pour dégrossir le terrain
	int map_size = this->size;	// taille de la carte	
	int foot = map_size/50;       // pas
 
	// Liste de chaque extremum trouvé ...
	std::list<int> abs;
	std::list<int> ord;
 
 
	// On découpe le terrain en carrés. Si un des points des extremité est dans le vue (fonction isInside)alors on va afficher cette portion de terrain
	for (int k=0; k< map_size-foot;  k=k+foot)
	{
		for (int l=0; l< map_size-foot; l=l+foot)
		{
			Vecteur3D<GLfloat> u_left(l/DataMap::QUALITY,0,k/DataMap::QUALITY);						
			Vecteur3D<GLfloat> u_right((l+foot)/DataMap::QUALITY,0,k/DataMap::QUALITY);						
			Vecteur3D<GLfloat> d_left(l/DataMap::QUALITY,0,(k+foot)/DataMap::QUALITY);						
			Vecteur3D<GLfloat> d_right((l+foot)/DataMap::QUALITY,0,(k+foot)/DataMap::QUALITY);						
 
			if (isInside(u_left) || isInside(u_right) || isInside(d_left) || isInside(d_right))
			{
				abs.push_back(l);
				abs.push_back(l+foot);
				ord.push_back(k);
				ord.push_back(k+foot);				
			}						
		}
	}
 
	// Tri 		
	abs.sort();  // Toutes les abscisses que j'ai repérées et triées
	ord.sort();  // Toutes les ordonnées repérées et triées
 
	// On en déduit les valeurs limites trouvées. on met 300 en valeur mini qui correspond au maximum lointain visible (gluPerspective)	
	this->thread_extremum[0] = abs.front();
	this->thread_extremum[1] = Max(abs.back(),300);
	this->thread_extremum[2] = ord.front();
	this->thread_extremum[3] = Max(ord.back(),300); |