La gestion des WP est essentielle pour définir les courses & les classements dans Vlm.

Les types de WP

FIXME : renvoyer sur la doc du wiki documentaire ?

Quels fichiers sont concernés ?

  • module base la définition des courses (FIXME, à complèter)
  • module moteur? :
    • check_waypoint_crossing.php est chargé de vérifier le franchissement des WP
  • module phpcommon
    • functions.php, les fonctions :
      • giveEndPointCoordinates() est destiné à fournir le point le plus proche de franchissement du prochain WP. (Cette fonction utilise maintenant vlm-c)
      • giveWaypointCoordinates() permet, pour un boat donné d'obtenir les coordonnées du prochain WP.

Le modèle

Les waypoints sont définis par la table "waypoints". Elle contient les coordonnées des waypoints de type "ligne à couper" et celles des lignes définies à partir d'un unique point. Si les couples latitude/longitude (1 et 2) désignent des points différents, alors il s'agit d'une ligne à couper. Dans le cas contraire, il s'agit d'un waypoint qui devra être laissé à un relèvement précisé dans la table "races_waypoints".

  • Copier coller rapide du SQL en pseudo doc :

" SELECT WP.longitude1, WP.latitude1, WP.longitude2, WP.latitude2, RW.laisser_au " . " FROM waypoints WP, races_waypoints RW" . " WHERE RW.wporder = " . $idwp . " AND RW.idraces = " . $idraces . " AND WP.idwaypoint = RW.idwaypoint ";

  • Cas d'un WP : long1=long2 && lat1=lat2: c'est un WP ouvert de type "Laisser au",

dans ce cas, on s'intéresse à la colonne "laisser_au" de la table "races_waypoints", qui donne le gisement/relèvement du waypoint.

(laisser au 0 signifie qu'il faut passer au sud, laisser_au 45 signifie qu'on doit passer au sud-ouest) dans le cas d'un waypoint de type "ligne", la colonne "laisser_au" est valorisée à 999.

  • libellé de la table waypoints : le champ est aujourd'hui libre,
  • champ "wptype" de la table races_waypoints : il est prévu de l'utiliser et de s'intéresser à sa valeur :

** si elle contient "IceGate", alors le traitement d'affichage des classements n'en tiendra plus compte.

** dans le cas contraire, pas de signification spécifique, et on note "classement" pour la plupart des WP, sauf le dernier , repéré par "Finish".