Corrections sur les arches.

This commit is contained in:
Georges Dupéron 2012-01-20 12:11:17 +01:00
parent 6944c0383b
commit d56b058c87
3 changed files with 30 additions and 7 deletions

View File

@ -27,12 +27,22 @@ bool ArcheQuad::split() {
}
void ArcheQuad::triangulation() {
Quad ch = c.offsetNormal(height);
Quad che = c.offsetNormal(f(end) * height * 0.9f);
Quad chw = c.offsetNormal(f(start) * height * 0.9f);
addGPUQuad(Quad(ch[NW], chw[NW], che[NE], ch[NE]), Couleurs::mur);
addGPUQuad(Quad(ch[SE], che[SE], chw[SW], ch[SW]), Couleurs::mur);
addGPUQuad(Quad(che[SE], che[NE], chw[NW], chw[SW]), Couleurs::mur);
if (type == PLAT) {
Quad chh = c.offsetNormal(height);
Quad ch = c.offsetNormal(height * 0.9);
addGPUQuad(ch, Couleurs::mur);
addGPUQuad(Quad(chh[NW], ch[NW], ch[NE], chh[NE]), Couleurs::mur);
addGPUQuad(Quad(chh[SE], ch[SE], ch[SW], chh[SW]), Couleurs::mur);
addGPUQuad(Quad(ch[NW], c[NW], c[SW], ch[SW]), Couleurs::mur);
addGPUQuad(Quad(ch[SE], c[SE], c[NE], ch[NE]), Couleurs::mur);
} else {
Quad ch = c.offsetNormal(height);
Quad che = c.offsetNormal(f(end) * height * 0.9f);
Quad chw = c.offsetNormal(f(start) * height * 0.9f);
addGPUQuad(Quad(ch[NW], chw[NW], che[NE], ch[NE]), Couleurs::mur);
addGPUQuad(Quad(ch[SE], che[SE], chw[SW], ch[SW]), Couleurs::mur);
addGPUQuad(Quad(che[SE], che[NE], chw[NW], chw[SW]), Couleurs::mur);
}
}
void ArcheQuad::getBoundingBoxPoints() {

View File

@ -13,7 +13,7 @@ void EtageQuad::getBoundingBoxPoints() {
}
bool EtageQuad::split() {
if (nbEtages > 1 && etage == 0 && ((w[N] && w[S]) || (w[E] && w[W])) && c.minLengthEW() > 800 && proba(seed, 0, 0.4)) {
if (nbEtages > 1 && etage == 0 && ((w[N] && w[S]) || (w[E] && w[W])) && c.minLengthEW() > 800 && proba(seed, 0, 0.8)) {
Quad q = c << ((w[N] && w[S]) ? 0 : 1);
Quad qh = ch << ((w[N] && w[S]) ? 0 : 1);
Vertex n = (q[NW] + q[NE]) / 2.f;

View File

@ -244,6 +244,18 @@ void Camera::mouseMotion(const SDL_MouseMotionEvent &event) {
}
void Camera::keyboard(const SDL_KeyboardEvent &eventKey) {
switch(eventKey.keysym.sym) {
case SDLK_UP:
case SDLK_DOWN:
case SDLK_LEFT:
case SDLK_RIGHT:
case SDLK_PAGEUP:
case SDLK_PAGEDOWN:
if (moveSensitivity == 0) moveSensitivity = 300;
break;
default:
break;
}
switch(eventKey.keysym.sym) {
case SDLK_UP:
up = (eventKey.type == SDL_KEYDOWN);
@ -284,6 +296,7 @@ void Camera::keyboard(const SDL_KeyboardEvent &eventKey) {
exit(0);
break;
case 'a' :
if (moveSensitivity == 0) moveSensitivity = 300;
up = true;
break;
case 'z' :