@Override
	public boolean intersectsBounds(CollisionObject object) {
		if (object instanceof PlaneObject) {
			return false;
		}

		Vector3d min = new Vector3d();
		Vector3d max = new Vector3d();
		object.getBounds(min, max);
		if (getLocalSignedDistance(position, rotation, min) < 0) {
			return true;
		}
		if (getLocalSignedDistance(position, rotation, new Vector3d(min.x,
				min.y, max.z)) < 0) {
			return true;
		}
		if (getLocalSignedDistance(position, rotation, new Vector3d(min.x,
				max.y, min.z)) < 0) {
			return true;
		}
		if (getLocalSignedDistance(position, rotation, new Vector3d(min.x,
				max.y, max.z)) < 0) {
			return true;
		}

		if (getLocalSignedDistance(position, rotation, max) < 0) {
			return true;
		}
		if (getLocalSignedDistance(position, rotation, new Vector3d(max.x,
				min.y, max.z)) < 0) {
			return true;
		}
		if (getLocalSignedDistance(position, rotation, new Vector3d(max.x,
				max.y, min.z)) < 0) {
			return true;
		}
		if (getLocalSignedDistance(position, rotation, new Vector3d(max.x,
				max.y, max.z)) < 0) {
			return true;
		}
		return false;
	}