private void findVector(prQuadNode curQNode, Vector<T> elem, double xLo, double xHi, double yLo, double yHi, double xMin, double xMax, double yMin, double yMax) {
		//Case 1: curQNode is null
		if(curQNode == null)
			return;
		//Case 2: curQNode is a qInternal
		else if(curQNode.getClass().getName().equals("prQuadtree$prQuadInternal")) {
			prQuadInternal internalNode = (prQuadInternal) curQNode;
			double xMid = xMin + ((xMax - xMin)/2);
			double yMid = yMin + ((yMax - yMin)/2);
			//Check NE region for shared area
			if(sharedArea(xMid, xMax, yMid, yMax, xLo, xHi, yLo, yHi))
				findVector(internalNode.NE, elem, xLo, xHi, yLo, yHi, xMid, xMax, yMid, yMax);
			//Check NW region for shared area
			if(sharedArea(xMin, xMid, yMid, yMax, xLo, xHi, yLo, yHi)) 
				findVector(internalNode.NW, elem, xLo, xHi, yLo, yHi, xMin, xMid, yMid, yMax);
			//Check SE region for shared area
			if(sharedArea(xMid, xMax, yMin, yMid, xLo, xHi, yLo, yHi)) 
				findVector(internalNode.SE, elem, xLo, xHi, yLo, yHi, xMid, xMax, yMin, yMid);
			//Check SW region for shared area
			if(sharedArea(xMin, xMid, yMin, yMid, xLo, xHi, yLo, yHi)) 
				findVector(internalNode.SW, elem, xLo, xHi, yLo, yHi, xMin, xMid, yMin, yMid);	    	
		}
		//Case 3: curQNode is a leaf
		else {
			prQuadLeaf leafNode = (prQuadLeaf) curQNode;
			for(T element: leafNode.Elements)
				if(element.inBox(xLo, xHi, yLo, yHi))
					elem.add(element);
			return;
		}
	}