private static void rechercheRelationGlobal(Noeud noeud, ArrayList<Filtre> listFiltres,
			int niveauMax, int niveauSens, int niveauLastNoeud, ArrayList<Noeud> listNoeudsResul,
			ArrayList<Relation> listRelationGlobal) {
		if (!listNoeudsResul.contains(noeud)) {
			listNoeudsResul.add(noeud);
		}
		if (niveauLastNoeud == niveauMax) {
			return;
		}
		if (niveauSens >= listFiltres.size()) {
			niveauSens = listFiltres.size() - 1;
		}
		ArrayList<Relation> listRelations = noeud.getFlux(listFiltres.get(niveauSens).getSens());
		for (Relation r : listRelations) {
			if (r.estDuTypes(listFiltres)) {
				boolean present = false;
				for (Relation glob : listRelationGlobal) {
					if (glob.equals(r) || glob.equalsReverse(r)) {
						present = true;
					}
				}
				if (!present) {
					listRelationGlobal.add(r);
					rechercheRelationGlobal(r.getNoeudDestination(), listFiltres, niveauMax,
							niveauSens + 1, niveauLastNoeud + 1, listNoeudsResul,
							listRelationGlobal);
				}
			}
		}
	}