private double getRingSize(int currIndex, int branchSize, double fullSize)
	{
		if (currIndex < 1 || currIndex > branchSize || branchSize < 1 || fullSize < 0)
		{
			throw new IllegalArgumentException();
		}

		int middleIndex = 0;
		boolean isBranchSizeEven = ((branchSize) % 2 == 0);

		middleIndex = (int) Math.ceil(branchSize / 2f);

		if (currIndex == middleIndex || (isBranchSizeEven && currIndex == middleIndex + 1))
		{
			//full size
			return fullSize;
		}
		else if (currIndex >= middleIndex)
		{
			//after middle
			currIndex = branchSize - currIndex + 1;
		}
		return (((float) Math.pow(currIndex, 0.75) / (float) Math.pow(middleIndex, 0.75)) * fullSize);
	};