public TBox getBlkVirtualBox() {
		TBox b = new TBox();
		int xMin = 0, xMax = 0, yMin = 0, yMax = 0;
		//find the min & max relative coordinate first
		for (int i = 0; i < this.getNumSquare(); i++) {
			Point p = (Point)sq[i].getSecondVertex();
			if (p.x >= xMin) {
				xMin = p.x;
			}
			if (p.x <= xMax) {
				xMax = p.x;
			}
			if (p.y >= yMin) {
				yMin = p.y;
			}
			if (p.y <= yMax) {
				yMax = p.y;
			}
		}
		//caculate the real coordinate
		int X = (int)this.getBlkCoordinate().getX();
		int Y = (int)this.getBlkCoordinate().getY();
		int sqSize = this.container.getSquareSize();
		int W = sqSize * (xMax - xMin + 1);
		int H = sqSize * (yMax - yMin + 1);
		b.setFirstVertex(X, Y - H);
		b.setSecondVertex(X + W, Y - H);
		b.setThirdVertex(X + W, Y);
		b.setFourthVertex(X, Y);
		return b;
	}