private PickResult pickGeomAny (PickShape pickShape) {
	Node obj = null;
	int i;
	SceneGraphPath[] sgpa = null;

	if (pickRootBG != null) {
	    sgpa = pickRootBG.pickAll(pickShape);
	} else if (pickRootL != null) {
	    sgpa = pickRootL.pickAll(pickShape);
	}

	if (sgpa == null) return null; // no match

	for(i=0; i<sgpa.length; i++) {
	    obj = sgpa[i].getObject();
	    PickResult pr = new PickResult(sgpa[i], pickShape);
	    if(obj instanceof Shape3D) {
		if(((Shape3D) obj).intersect(sgpa[i], pickShape)) {
		    return pr;
		}
	    } else if (obj instanceof Morph) {
		if(((Morph) obj).intersect(sgpa[i], pickShape)){
		    return pr;
		}
	    }
	}

	return null;
    }