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 :slight_smile:
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);

	glLoadIdentity();

	gluLookAt(x, y, z,   x + lx,y + ly,z + lz, 0.0f,1.0f,0.0f);
	return true;
	}
	else { glLoadIdentity();
	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;
	
	 glLoadIdentity();
	 gluLookAt(x, y, z, x + lx,y + ly,z + lz, 0.0f,1.0f,0.0f);
	return true;
	}
	else {
	 glLoadIdentity();
	 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!