# bounding box collision detection problems

Hello!
I’m trying to implement camera movement collision detection against some walls, but the functions don’t do much thing
Could anyone tell me what the problem is?

Those are the functions:

``````
bool is_collision(GLfloat a[6], GLfloat b[6])
{

if(a[0] > b[1])
return false;
if(a[1]< b[0])
return false;
if(a[2] > b[3])
return false;
if(a[3] < b[2])
return false;
if(a[4] > b[5])
return false;
if(a[5] < b[4])
return false;

printf("collision");
return true;

}

//functions for moving

bool orientMe(float ang) {

float lpx = sin(ang);
float lpz = -cos(ang);

cameraBox[0] = lpx - 10;
cameraBox[1] = lpx + 10;
cameraBox[2] = y - 10;
cameraBox[3] = y +10;
cameraBox[4] = lpz - 10;
cameraBox[5] = lpz + 10;

if (is_collision(cameraBox, wallsBox)){
lx = sin(ang);
lz = -cos(ang);

gluLookAt(x, y, z,   x + lx,y + ly,z + lz, 0.0f,1.0f,0.0f);
return true;
}
gluLookAt(x, y, z, x + lx,y + ly,z + lz, 0.0f,1.0f,0.0f);}
return false;
}

bool moveMeFlat(int i) {

float lpx = x + i*(lx)*0.1;
float lpz = z + i*(lz)*0.1;

cameraBox[0] = lpx - 10;
cameraBox[1] = lpx + 10;
cameraBox[2] = y - 10;
cameraBox[3] = y +10;
cameraBox[4] = lpz - 10;
cameraBox[5] = lpz + 10;

if (is_collision(cameraBox, wallsBox)){
x = x + i*(lx)*0.1;
z = z + i*(lz)*0.1;

gluLookAt(x, y, z, x + lx,y + ly,z + lz, 0.0f,1.0f,0.0f);
return true;
}
else {
gluLookAt(x, y, z, x + lx,y + ly,z + lz, 0.0f,1.0f,0.0f);
}
return false;
}

void inputKey(int key, int x, int y) {

switch (key) {
case GLUT_KEY_LEFT : angle -= 0.1f;
if (!orientMe(angle)) { angle+= 0.1f;}
break;
case GLUT_KEY_RIGHT : angle +=0.1f;
if (!orientMe(angle)) { angle-= 0.1f;}
break;
case GLUT_KEY_UP : moveMeFlat(1);break;
case GLUT_KEY_DOWN : moveMeFlat(-1);break;
}
}

``````

(sorry, I’m rather new with openGL)

Thanks you very much!