Beispiel #1
0
            public Node Insert(T newElement, Region region)
            {
                GreyNode grey = new GreyNode(region);

                grey.Insert(data, null);
                grey.Insert(newElement, null);
                return(grey);
            }
Beispiel #2
0
    /**
     * 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);
    }
Beispiel #3
0
	/**
	 * 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;
	}