Example #1
0
 public boolean repositionNodes() {
   List<NodeModel> movedNodes = new ArrayList<NodeModel>();
   for (int i = 0; i < length; i++) {
     Octant leaf = leaves[i];
     if (leaf != null) {
       int l = leaf.nodesLength;
       NodeModel[] nodes = leaf.nodes;
       for (int j = 0; j < l; j++) {
         NodeModel node = nodes[j];
         if (node != null) {
           if (!node.isInOctreeLeaf(leaf)) {
             removeNode(node);
             movedNodes.add(node);
           }
         }
       }
     }
   }
   if (!movedNodes.isEmpty()) {
     for (NodeModel node : movedNodes) {
       addNode(node);
     }
     return true;
   }
   return false;
 }