//here we need to visit just the children that may intersect
List<Integer> childrenindex = tmpRoot.getChildren(query);
for( Iterator<Integer> iterator = childrenindex.iterator(); iterator.hasNext(); ) {
Integer childid = (Integer) iterator.next();
NodeIdentifier child = tmpRoot.getChildIdentifier(childid);
Node childNode = readNode(child);
v.visitNode(childNode);
if (v.isDataVisitor()) {
visitData(childNode, v, query, type);
}