Loool ! En tout cas, je ne peux faire qu´une mediocre constation de ce forum...G l´impression d´y trouver qu´une avalanche de gens qui n´ont que 4 themes reberberatifs à proposer: Le rap, le metal ( ou le neo je sais pas quoi, de tte maniere c la mm chose pour moi), des engueulades et vos "connaissances" des divers genres musicaux en nous assomant avec 36000 groupes que tt le monde se fout.....En tt K, on risque de pas trop progresser avec ds posts qui n´ont aucuns interet face à d´autres forums ( arf, je m´attend deja a la reponse de cette phrase du genre: ´ouais t´as raison, on progressera pas avec un post comme le tien déjà´ loooool...)moi je suis déjà parti ailleur les gars.
PS: Ouaiiiis j´ecoute trucmuche, machin, bidule................
euh heho la lubne ici la terre on parle de musique ici et donc de ce qu on aime y a une majorité de rappeur et de metalleux donc voila..
ouais t´as raison, on progressera pas avec un post comme le tien déjà ^^
. ..et puis c´est facile de critiquer et de s´en aller, t´as peur de lire les réponses ?
arf grisha t po le bienvenu ici, en plus tu oses dire que le neo et le metal c pareil bin t mal barré
j´veu pas dire, mais si ici on peu plus parler de ce qu´on aime comme musique, euh...
alors il nous reste quoi a dire??
^^
† nan moi je suis entierement d´accord avec lui ! c´est vrai c´est un forum musique, merde ! alors parlons un peu des biotechnologies... †
oui c vrai neow, on est bête!! roooooooh!!!
quel pauvre type ce grisha : )
kikooooooooooooooooooo au moins ca enerve du monde : ))))
vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic vrillage de topic
ca donne une idee de son qi
j´ai 2 de QI et chui con
ca on le savait
putain cest clair grisha si tarretai de flooder ca serai pa mal!!!
t´as pô dit ´s´il te plait´
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
je te baise je te baise je te baise je te baise
amespace GEO {
const double PI = 3.14159265359;
const double TWOPI = 6.28318530718;
const double DE2RA = 0.01745329252;
const double RA2DE = 57.2957795129;
const double FLATTENING = 1.0/298.26;
const double PIOVER2 = 1.570796326795;
}
if ( m_have_texture)
{
glTexImage2D(GL_TEXTURE_2D,0,3,m_texture_dib.Width
( ) ,
m_texture_dib.Height(),
0,GL_BGR_EXT,GL_UNSIGNED_BYTE,(GLvoid *)
m_texture_dib.GetBits());
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable( GL_TEXTURE_2D ) ;
}
else
{
glDisable( GL_TEXTURE_2D ) ;
}
glBegin( GL_TRIANGLES ) ;
start_lat = -90;
start_lon = 0.0;
R = 1.0;
lat_incr = 180.0 / NumLatitudes;
lon_incr = 360.0 / NumLongitudes;
int row, col;
for ( col = 0; col < NumLongitudes; col++){
phi1 = ( start_lon + col * lon_incr) * GEO::DE2RA;
phi2 = ( start_lon + ( col + 1) * lon_incr) * GEO::DE2RA;
for ( row = 0; row < NumLatitudes; row++){
theta1 = ( start_lat + row * lat_incr) * GEO::DE2RA;
theta2 = ( start_lat + ( row + 1) * lat_incr) * GEO::DE2RA;
u[0] = R * cos(phi1) * cos(theta1); //x
u[1] = R * sin(theta1); //y
u[2] = R * sin(phi1) * cos(theta1); //z
v[0] = R * cos(phi1) * cos(theta2); //x
v[1] = R * sin(theta2); //y
v[2] = R * sin(phi1) * cos(theta2); //z
w[0] = R * cos(phi2) * cos(theta2); //x
w[1] = R * sin(theta2); //y
w[2] = R * sin(phi2) * cos(theta2); //z
NormalVector(u,v,w,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
v[0] = R * cos(phi2) * cos(theta1); //x
v[1] = R * sin(theta1); //y
v[2] = R * sin(phi2) * cos(theta1); //z
NormalVector(u,w,v,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glDisable( GL_TEXTURE_2D ) ;
}amespace GEO {
const double PI = 3.14159265359;
const double TWOPI = 6.28318530718;
const double DE2RA = 0.01745329252;
const double RA2DE = 57.2957795129;
const double FLATTENING = 1.0/298.26;
const double PIOVER2 = 1.570796326795;
}
if ( m_have_texture)
{
glTexImage2D(GL_TEXTURE_2D,0,3,m_texture_dib.Width
( ) ,
m_texture_dib.Height(),
0,GL_BGR_EXT,GL_UNSIGNED_BYTE,(GLvoid *)
m_texture_dib.GetBits());
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable( GL_TEXTURE_2D ) ;
}
else
{
glDisable( GL_TEXTURE_2D ) ;
}
glBegin( GL_TRIANGLES ) ;
start_lat = -90;
start_lon = 0.0;
R = 1.0;
lat_incr = 180.0 / NumLatitudes;
lon_incr = 360.0 / NumLongitudes;
int row, col;
for ( col = 0; col < NumLongitudes; col++){
phi1 = ( start_lon + col * lon_incr) * GEO::DE2RA;
phi2 = ( start_lon + ( col + 1) * lon_incr) * GEO::DE2RA;
for ( row = 0; row < NumLatitudes; row++){
theta1 = ( start_lat + row * lat_incr) * GEO::DE2RA;
theta2 = ( start_lat + ( row + 1) * lat_incr) * GEO::DE2RA;
u[0] = R * cos(phi1) * cos(theta1); //x
u[1] = R * sin(theta1); //y
u[2] = R * sin(phi1) * cos(theta1); //z
v[0] = R * cos(phi1) * cos(theta2); //x
v[1] = R * sin(theta2); //y
v[2] = R * sin(phi1) * cos(theta2); //z
w[0] = R * cos(phi2) * cos(theta2); //x
w[1] = R * sin(theta2); //y
w[2] = R * sin(phi2) * cos(theta2); //z
NormalVector(u,v,w,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
v[0] = R * cos(phi2) * cos(theta1); //x
v[1] = R * sin(theta1); //y
v[2] = R * sin(phi2) * cos(theta1); //z
NormalVector(u,w,v,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glDisable( GL_TEXTURE_2D ) ;
}amespace GEO {
const double PI = 3.14159265359;
const double TWOPI = 6.28318530718;
const double DE2RA = 0.01745329252;
const double RA2DE = 57.2957795129;
const double FLATTENING = 1.0/298.26;
const double PIOVER2 = 1.570796326795;
}
if ( m_have_texture)
{
glTexImage2D(GL_TEXTURE_2D,0,3,m_texture_dib.Width
( ) ,
m_texture_dib.Height(),
0,GL_BGR_EXT,GL_UNSIGNED_BYTE,(GLvoid *)
m_texture_dib.GetBits());
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable( GL_TEXTURE_2D ) ;
}
else
{
glDisable( GL_TEXTURE_2D ) ;
}
glBegin( GL_TRIANGLES ) ;
start_lat = -90;
start_lon = 0.0;
R = 1.0;
lat_incr = 180.0 / NumLatitudes;
lon_incr = 360.0 / NumLongitudes;
int row, col;
for ( col = 0; col < NumLongitudes; col++){
phi1 = ( start_lon + col * lon_incr) * GEO::DE2RA;
phi2 = ( start_lon + ( col + 1) * lon_incr) * GEO::DE2RA;
for ( row = 0; row < NumLatitudes; row++){
theta1 = ( start_lat + row * lat_incr) * GEO::DE2RA;
theta2 = ( start_lat + ( row + 1) * lat_incr) * GEO::DE2RA;
u[0] = R * cos(phi1) * cos(theta1); //x
u[1] = R * sin(theta1); //y
u[2] = R * sin(phi1) * cos(theta1); //z
v[0] = R * cos(phi1) * cos(theta2); //x
v[1] = R * sin(theta2); //y
v[2] = R * sin(phi1) * cos(theta2); //z
w[0] = R * cos(phi2) * cos(theta2); //x
w[1] = R * sin(theta2); //y
w[2] = R * sin(phi2) * cos(theta2); //z
NormalVector(u,v,w,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
v[0] = R * cos(phi2) * cos(theta1); //x
v[1] = R * sin(theta1); //y
v[2] = R * sin(phi2) * cos(theta1); //z
NormalVector(u,w,v,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glDisable( GL_TEXTURE_2D ) ;
}
amespace GEO {
const double PI = 3.14159265359;
const double TWOPI = 6.28318530718;
const double DE2RA = 0.01745329252;
const double RA2DE = 57.2957795129;
const double FLATTENING = 1.0/298.26;
const double PIOVER2 = 1.570796326795;
}
if ( m_have_texture)
{
glTexImage2D(GL_TEXTURE_2D,0,3,m_texture_dib.Width
( ) ,
m_texture_dib.Height(),
0,GL_BGR_EXT,GL_UNSIGNED_BYTE,(GLvoid *)
m_texture_dib.GetBits());
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable( GL_TEXTURE_2D ) ;
}
else
{
glDisable( GL_TEXTURE_2D ) ;
}
glBegin( GL_TRIANGLES ) ;
start_lat = -90;
start_lon = 0.0;
R = 1.0;
lat_incr = 180.0 / NumLatitudes;
lon_incr = 360.0 / NumLongitudes;
int row, col;
for ( col = 0; col < NumLongitudes; col++){
phi1 = ( start_lon + col * lon_incr) * GEO::DE2RA;
phi2 = ( start_lon + ( col + 1) * lon_incr) * GEO::DE2RA;
for ( row = 0; row < NumLatitudes; row++){
theta1 = ( start_lat + row * lat_incr) * GEO::DE2RA;
theta2 = ( start_lat + ( row + 1) * lat_incr) * GEO::DE2RA;
u[0] = R * cos(phi1) * cos(theta1); //x
u[1] = R * sin(theta1); //y
u[2] = R * sin(phi1) * cos(theta1); //z
v[0] = R * cos(phi1) * cos(theta2); //x
v[1] = R * sin(theta2); //y
v[2] = R * sin(phi1) * cos(theta2); //z
w[0] = R * cos(phi2) * cos(theta2); //x
w[1] = R * sin(theta2); //y
w[2] = R * sin(phi2) * cos(theta2); //z
NormalVector(u,v,w,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
v[0] = R * cos(phi2) * cos(theta1); //x
v[1] = R * sin(theta1); //y
v[2] = R * sin(phi2) * cos(theta1); //z
NormalVector(u,w,v,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glDisable( GL_TEXTURE_2D ) ;
}amespace GEO {
const double PI = 3.14159265359;
const double TWOPI = 6.28318530718;
const double DE2RA = 0.01745329252;
const double RA2DE = 57.2957795129;
const double FLATTENING = 1.0/298.26;
const double PIOVER2 = 1.570796326795;
}
if ( m_have_texture)
{
glTexImage2D(GL_TEXTURE_2D,0,3,m_texture_dib.Width
( ) ,
m_texture_dib.Height(),
0,GL_BGR_EXT,GL_UNSIGNED_BYTE,(GLvoid *)
m_texture_dib.GetBits());
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable( GL_TEXTURE_2D ) ;
}
else
{
glDisable( GL_TEXTURE_2D ) ;
}
glBegin( GL_TRIANGLES ) ;
start_lat = -90;
start_lon = 0.0;
R = 1.0;
lat_incr = 180.0 / NumLatitudes;
lon_incr = 360.0 / NumLongitudes;
int row, col;
for ( col = 0; col < NumLongitudes; col++){
phi1 = ( start_lon + col * lon_incr) * GEO::DE2RA;
phi2 = ( start_lon + ( col + 1) * lon_incr) * GEO::DE2RA;
for ( row = 0; row < NumLatitudes; row++){
theta1 = ( start_lat + row * lat_incr) * GEO::DE2RA;
theta2 = ( start_lat + ( row + 1) * lat_incr) * GEO::DE2RA;
u[0] = R * cos(phi1) * cos(theta1); //x
u[1] = R * sin(theta1); //y
u[2] = R * sin(phi1) * cos(theta1); //z
v[0] = R * cos(phi1) * cos(theta2); //x
v[1] = R * sin(theta2); //y
v[2] = R * sin(phi1) * cos(theta2); //z
w[0] = R * cos(phi2) * cos(theta2); //x
w[1] = R * sin(theta2); //y
w[2] = R * sin(phi2) * cos(theta2); //z
NormalVector(u,v,w,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
v[0] = R * cos(phi2) * cos(theta1); //x
v[1] = R * sin(theta1); //y
v[2] = R * sin(phi2) * cos(theta1); //z
NormalVector(u,w,v,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glDisable( GL_TEXTURE_2D ) ;
}amespace GEO {
const double PI = 3.14159265359;
const double TWOPI = 6.28318530718;
const double DE2RA = 0.01745329252;
const double RA2DE = 57.2957795129;
const double FLATTENING = 1.0/298.26;
const double PIOVER2 = 1.570796326795;
}
if ( m_have_texture)
{
glTexImage2D(GL_TEXTURE_2D,0,3,m_texture_dib.Width
( ) ,
m_texture_dib.Height(),
0,GL_BGR_EXT,GL_UNSIGNED_BYTE,(GLvoid *)
m_texture_dib.GetBits());
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable( GL_TEXTURE_2D ) ;
}
else
{
glDisable( GL_TEXTURE_2D ) ;
}
glBegin( GL_TRIANGLES ) ;
start_lat = -90;
start_lon = 0.0;
R = 1.0;
lat_incr = 180.0 / NumLatitudes;
lon_incr = 360.0 / NumLongitudes;
int row, col;
for ( col = 0; col < NumLongitudes; col++){
phi1 = ( start_lon + col * lon_incr) * GEO::DE2RA;
phi2 = ( start_lon + ( col + 1) * lon_incr) * GEO::DE2RA;
for ( row = 0; row < NumLatitudes; row++){
theta1 = ( start_lat + row * lat_incr) * GEO::DE2RA;
theta2 = ( start_lat + ( row + 1) * lat_incr) * GEO::DE2RA;
u[0] = R * cos(phi1) * cos(theta1); //x
u[1] = R * sin(theta1); //y
u[2] = R * sin(phi1) * cos(theta1); //z
v[0] = R * cos(phi1) * cos(theta2); //x
v[1] = R * sin(theta2); //y
v[2] = R * sin(phi1) * cos(theta2); //z
w[0] = R * cos(phi2) * cos(theta2); //x
w[1] = R * sin(theta2); //y
w[2] = R * sin(phi2) * cos(theta2); //z
NormalVector(u,v,w,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
v[0] = R * cos(phi2) * cos(theta1); //x
v[1] = R * sin(theta1); //y
v[2] = R * sin(phi2) * cos(theta1); //z
NormalVector(u,w,v,n);
glNormal3dv(n);
glTexCoord2d((180.0 - phi1*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(u);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta2 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(w);
glTexCoord2d((180.0 - phi2*GEO::RA2DE)/360.0,
( theta1 + GEO::PIOVER2)*GEO::RA2DE/180.0);
glVertex3dv(v);
glDisable( GL_TEXTURE_2D ) ;
}