private void DrawByRobot(IRécupérationSegments modeRécupération) { double largeur, longueur; try { largeur = Convert.ToDouble(mTextBoxLargeur.Text.Replace('.', ',')); longueur = Convert.ToDouble(mTextBoxLongueur.Text.Replace('.', ',')); } catch (Exception) { MessageBox.Show("Largeur et/ou longueur incorrect(s).", "Erreur format"); return; } if (largeur <= 0 || longueur <= 0) { MessageBox.Show("La largeur et la longueur doivent être supérieur à 0", "Erreur valeur"); return; } mCanvasDessin.Children.Clear(); dessinerListeSegment(Draw.getInstance().GetList(modeRécupération)); if (GestionRobot.getInstance().brick != null) { GestionRobot.getInstance().Draw(largeur, longueur, modeRécupération); } }
/// <summary> /// Renvoie la liste de segments et vide la liste /// </summary> /// <returns>La liste de segments</returns> public List <Segment> GetListAndClear(IRécupérationSegments modeRécupération) { List <Segment> MaSegmentListe = GetList(modeRécupération); ListeSegments.Clear(); return(MaSegmentListe); }
/// <summary> /// Ordonne au robot de dessiner les segments actuellement dans la liste /// </summary> /// <param name="largeur">Largeur de la feuille</param> /// <param name="longueur">Longueur de la feuille</param> public async void Draw(double largeur, double longueur, IRécupérationSegments modeRécupération) { // Si c'est le premier dessin, on initialise la position du robot au milieu de la feuille x = largeur / 2; y = longueur / 2; orientationActuelle = 0; // Récupération de la liste des segments actuelle & dessiner les segments List <Segment> ListeSegments = DrawKinect.Draw.getInstance().GetListAndClear(modeRécupération); // Dessine chaque segment foreach (Segment s in ListeSegments) { await DrawSegment(s, largeur, longueur); } }
/// <summary> /// Récupère la liste à dessiner par le robot /// </summary> /// <returns></returns> public List <Segment> GetList(IRécupérationSegments modeRécupération) { return(modeRécupération.GetList(ListeSegments)); }