# Detect collision for non axis-aligned bounding boxes

in my application, I needed to detect collision between 2 3D objects. To make it simple I can represent a object as a bounding box. So actually the task reduced to detect collision between 2 boxes in 3D space. The problem that I cannot make these bounding boxes to be axis aligned. The objects look like the following image:

Unfortunately all the algorithms I've found in the Internet suppose that all the boxes are axis-aligned. It seems to me that this is a common mathematical problem and can be solved using some well known algorithms. Unfortunately I'm not a mathematician so I would be very grateful if someone can offer a solution to this problem.

Then box $$B_1$$ intersects box $$B_2$$ if any corner of $$B_1$$ is inside $$B_2$$, or if any of the $$12$$ edges of $$B_1$$ intersects any of the $$6$$ faces of $$B_2$$. This can be sped up a bit by ordering the tests (for example, if no edge of $$B_1$$ intersects a face of $$B_2$$, then you need only check one corner of $$B_1$$ inside/outside $$B_2$$).