@SuppressWarnings("unchecked") private void insertNode( float[] insertBox, T object, NodeEntry<T>[] entries ) { List<TraceCell<T>> trace = new ArrayList<TraceCell<T>>(); NodeEntry<T>[] leafNode = chooseLeaf( insertBox, entries, trace ); NodeEntry<T> newEntry = new NodeEntry<T>(); newEntry.bbox = insertBox; newEntry.entryValue = object; newEntry.next = null; int index = lastNotNull( leafNode ); leafNode[index + 1] = newEntry; if ( leafNode[bigM] != null ) { int splitIndex = split( leafNode, insertBox, object ); NodeEntry<T>[] addedNode = new NodeEntry[bigM + 1]; Arrays.fill( addedNode, null ); System.arraycopy( leafNode, splitIndex + 1, addedNode, 0, bigM - splitIndex ); Arrays.fill( leafNode, splitIndex + 1, bigM + 1, null ); adjustTree( leafNode, addedNode, trace, trace.size() - 1 ); } else { adjustTree( leafNode, null, trace, trace.size() - 1 ); } }
Arrays.fill( parent, splitIndex + 1, bigM + 1, null ); adjustTree( parent, addedNode, trace, traceIndex - 1 ); } else { adjustTree( parent, null, trace, traceIndex - 1 ); adjustTree( parent, null, trace, traceIndex - 1 );