public boolean intersect(OBBTree collisionTree, ArrayList<Integer> aList, ArrayList<Integer> bList) {
public boolean intersect(OBBTree collisionTree) {
    public boolean intersect(OBBTree collisionTree, ArrayList<Integer> aList,            ArrayList<Integer> bList) {        if (collisionTree == null) return false;        collisionTree.bounds.transform(                collisionTree.myParent.getWorldRotation(),                collisionTree.myParent.getWorldTranslation(),                collisionTree.myParent.getWorldScale(),                collisionTree.worldBounds);        if (!worldBounds.intersectsOrientedBoundingBox(collisionTree.worldBounds)) return false;        if (left != null) { // This is not a leaf            boolean test = collisionTree.intersect(left, bList, aList);            test = collisionTree.intersect(right, bList, aList) || test;            return test;        } else { // This is a leaf            if (collisionTree.left != null) { // but collision isn't                boolean test = this.intersect(collisionTree.left, aList, bList);                test = this.intersect(collisionTree.right, aList, bList)                        || test;                return test;            } else { // both are leaves                Quaternion roti = this.myParent.getWorldRotation();                Vector3f scalei = this.myParent.getWorldScale();                Vector3f transi = this.myParent.getWorldTranslation();                Quaternion rotj = collisionTree.myParent.getWorldRotation();                Vector3f scalej = collisionTree.myParent.getWorldScale();                Vector3f transj = collisionTree.myParent.getWorldTranslation();                boolean test = false;                for (int i = myStart; i < myEnd; i++) {                    roti.mult(tris[i].get(0), tempVa).multLocal(scalei).addLocal(                            transi);                    roti.mult(tris[i].get(1), tempVb).multLocal(scalei).addLocal(                            transi);                    roti.mult(tris[i].get(2), tempVc).multLocal(scalei).addLocal(                            transi);                    for (int j = collisionTree.myStart; j < collisionTree.myEnd; j++) {                        rotj.mult(collisionTree.tris[j].get(0), tempVd).multLocal(                                scalej).addLocal(transj);                        rotj.mult(collisionTree.tris[j].get(1), tempVe).multLocal(                                scalej).addLocal(transj);                        rotj.mult(collisionTree.tris[j].get(2), tempVf).multLocal(                                scalej).addLocal(transj);                        if (Intersection.intersection(tempVa, tempVb, tempVc,                                tempVd, tempVe, tempVf)) {                            test = true;                            aList.add(tris[i].getIndex());                            bList.add(collisionTree.tris[j].getIndex());                        }                    }                }                return test;            }        }    }