/** Définit les fonctions de la proglet.
 *
 @see <a href="grapheEtCheminsFunctions.java.html">code source</a>
 @serial exclude
 */
public class grapheEtCheminsFunctions {
  private static final long serialVersionUID = 1L;
  /** Renvoie l'instance de la proglet pour accéder à ses éléments. */
  private static grapheEtChemins getPane() {
	return org.javascool.macros.Macros.getProgletPane();
  }
  /** Ajoute ou modifie les coordonnées d'un noeud du graphe.
   @param n Nom du noeud.
   @param x Abcisse du noeud.
   @param y Ordonnée du noeud.
   */
  public static void addNode(String n, int x, int y) {
	getPane().myGraph.addNode(n, x, y);
  }
  /** Renvoie le noeud le plus proche d'une position.
   @param x Abcisse position.
   @param y Ordonnée position.
   @return Nom du noeud ou null si il n'y a pas de noeud.
   */
  public static String getClosestNode(double x, double y) {
	String n_ = null;
	n_ = getPane().myGraph.getClosestNode((floatx, (floaty);
	return n_;
  }
  /** Détruit un noeud du graphe si il existe.
   @param n Nom du noeud.
   */
  public static void removeNode(String n) {
	getPane().myGraph.removeNode(n);
  }
  /** Donne la liste de tous les noeuds.
   @return La liste des noms des noeuds.
   */
  public static String[] getAllNodes() {
	String[] ListN_ = new String[50];
	ListN_ = getPane().myGraph.getAllNodes();
	return ListN_;
  }
  /** Donne la liste des noeuds en lien avec un noeud donné.
   @param n Nom du noeud dont on veut les noeuds en lien.
   @return La liste des noms des noeuds en lien avec le noeud donné.
   */
  public static String[] getLinkedNodes(String n) {
	String[] ListN_ = new String[50];
	ListN_ = getPane().myGraph.getNodes(n);
	return ListN_;
  }
  /** Ajoute ou modifie un lien entre deux noeuds (modifie dans le cas ou memes noeuds et différent poids attribué).
   @param nA Premier noeud du lien.
   @param nB Deuxième noeud du lien.
   @param p Poids du lien.
   */
  public static void addLink(String nA, String nB, double p) {
	getPane().myGraph.addLink(nA, nB, p);
  }
  /** Détruit un lien entre deux noeuds si il existe.
   @param nA Premier noeud du lien.
   @param nB Deuxième noeud du lien.
   */
  public static void removeLink(String nA, String nB) {
	getPane().myGraph.removeLink(nA, nB);
  }
  /** Affirme si il y a lien entre 2 noeuds.
   @param nA Premier noeud du lien.
   @param nB Deuxième noeud du lien.
   @return "vrai" ou "faux".
   */
  public static boolean isLink(String nA, String nB) {
	boolean a_ = false;
	a_ = getPane().myGraph.isLink(nA, nB);
	return a_;
  }
  /** Donne le poids d'un lien entre deux noeuds.
   @param nA Premier noeud du lien.
   @param nB Deuxième noeud du lien.
   @return Le poids du lien où 0 si il n'y a pas de lien.
   */
  public static double getLink(String nA, String nB) {
	double p_ = 0;
	p_ = getPane().myGraph.getLink(nA, nB);
	return p_;
  }
  /** Lance l'algorithme de Dijkstra entre deux noeuds.
   @param nStart Noeud départ.
   @param nEnd Noeud final.
   */
  public static void dijkstra(String nStart, String nEnd) {
	getPane().myGraph.dijkstra(nStart, nEnd);
  }
}