public Node Insert(T newElement, Region region) { GreyNode grey = new GreyNode(region); grey.Insert(data, null); grey.Insert(newElement, null); return(grey); }
/** * Create an image which is represented using a QuadTreeNode. * * @param size size of image * @param center_x x coordinate of center * @param center_y; y coordinate of center * @param parent parent quad tree node * @param quadrant the quadrant that the sub tree is in * @param level the level of the tree */ public static QuadTreeNode createTree(int size, int center_x, int center_y, QuadTreeNode parent, Quadrant quadrant, int level) { QuadTreeNode node; int intersect = checkIntersect(center_x, center_y, size); size = size / 2; if (intersect == 0 && size < 512) { node = new WhiteNode(quadrant, parent); } else if (intersect == 2) { node = new BlackNode(quadrant, parent); } else { if (level == 0) { node = new BlackNode(quadrant, parent); } else { node = new GreyNode(quadrant, parent); QuadTreeNode sw = createTree(size, center_x - size, center_y - size, node, Quadrant.cSouthWest, level - 1); QuadTreeNode se = createTree(size, center_x + size, center_y - size, node, Quadrant.cSouthEast, level - 1); QuadTreeNode ne = createTree(size, center_x + size, center_y + size, node, Quadrant.cNorthEast, level - 1); QuadTreeNode nw = createTree(size, center_x - size, center_y + size, node, Quadrant.cNorthWest, level - 1); node.setChildren(nw, ne, sw, se); } } return(node); }
/** * Create an image which is represented using a QuadTreeNode. * * @param size size of image * @param center_x x coordinate of center * @param center_y; y coordinate of center * @param parent parent quad tree node * @param quadrant the quadrant that the sub tree is in * @param level the level of the tree */ public static QuadTreeNode createTree(int size, int center_x, int center_y, QuadTreeNode parent, Quadrant quadrant, int level) { QuadTreeNode node; int intersect = checkIntersect(center_x, center_y, size); size = size / 2; if(intersect == 0 && size < 512) { node = new WhiteNode(quadrant, parent); } else if(intersect == 2) { node = new BlackNode(quadrant, parent); } else { if(level == 0) { node = new BlackNode(quadrant, parent); } else { node = new GreyNode(quadrant, parent); QuadTreeNode sw = createTree(size, center_x - size, center_y - size, node, Quadrant.cSouthWest, level - 1); QuadTreeNode se = createTree(size, center_x + size, center_y - size, node, Quadrant.cSouthEast, level - 1); QuadTreeNode ne = createTree(size, center_x + size, center_y + size, node, Quadrant.cNorthEast, level - 1); QuadTreeNode nw = createTree(size, center_x - size, center_y + size, node, Quadrant.cNorthWest, level - 1); node.setChildren(nw, ne, sw, se); } } return node; }