protected boolean intersects( final float[] box1, final float[] box2, int maxOffset ) {
return box1 == null || box2 == null || contains( box2, maxOffset, box1[0], box1[maxOffset + 1] )
|| contains( box2, maxOffset, box1[0], box1[1] )
|| contains( box2, maxOffset, box1[maxOffset], box1[maxOffset + 1] )
|| contains( box2, maxOffset, box1[maxOffset], box1[1] )
|| contains( box1, maxOffset, box2[0], box2[maxOffset + 1] )
|| contains( box1, maxOffset, box2[0], box2[1] )
|| contains( box1, maxOffset, box2[maxOffset], box2[maxOffset + 1] )
|| contains( box1, maxOffset, box2[maxOffset], box2[1] ) || noEdgeOverlap( box1, box2, maxOffset )
|| noEdgeOverlap( box2, box1, maxOffset );
}