Time is good

Dependencies:   RoboClaw mbed

Fork of Robot2016_2-0 by ARES

Revision:
56:4fd9636dfb36
Parent:
55:dfeee9e5c0af
Child:
57:86f491f5b25d
--- a/Map/map.cpp	Wed May 04 16:27:51 2016 +0000
+++ b/Map/map.cpp	Wed May 04 19:43:53 2016 +0200
@@ -4,6 +4,11 @@
 }
 
 void map::Build (int couleur, int formation) {
+    max_x_table = 2800;
+    max_y_table = 1800;
+    min_x_table = 0;
+    min_y_table = 0;
+
     addObs(obsCarr (800, 100, 100, 15));
     addObs(obsCarr (2200, 100, 100, 15));
     
@@ -83,17 +88,20 @@
                 ended = false;
                 tmp = obs[i].getPoints ();
 
+                // On vérifie si le point est sur la table
+                if (tmp.p0.getX() < min_x_table || tmp.p0.getY() < min_y_table || tmp.p0.getX() > max_x_table || tmp.p0.getY() > max_y_table)
+                    val[0] = false;
                 // On vérifie si le point croise un obstacle
-                for (j = 0; j < os; ++j)
+                for (j = 0; j < os && val[0]; ++j)
                     if (obs[j].getCroisement (tmp.p0, close[indTMP1]))
                         val[0] = false;
                 // On vérifie si le point existe déjà dans la liste ouverte
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[0]; ++j) {
                     if (open[j] == tmp.p0)
                         val[0] = false;
                 }
                 // On vérifie si le point existe déjà dans la liste fermée
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[0]; ++j) {
                     if (close[j] == tmp.p0)
                         val[0] = false;
                 }
@@ -102,14 +110,16 @@
                 }
 
                 // On repete l'operation pour le second point
-                for (j = 0; j < os; ++j)
+                if (tmp.p1.getX() < min_x_table || tmp.p1.getY() < min_y_table || tmp.p1.getX() > max_x_table || tmp.p1.getY() > max_y_table)
+                    val[1] = false;
+                for (j = 0; j < os && val[1]; ++j)
                     if (obs[j].getCroisement (tmp.p1, close[indTMP1]))
                         val[1] = false;
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[1]; ++j) {
                     if (open[j] == tmp.p1)
                         val[1] = false;
                 }
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[1]; ++j) {
                     if (close[j] == tmp.p1)
                         val[1] = false;
                 }
@@ -118,14 +128,16 @@
                 }
 
                 // On répète l'opération pour le troisième point
-                for (j = 0; j < os; ++j)
+                if (tmp.p2.getX() < min_x_table || tmp.p2.getY() < min_y_table || tmp.p2.getX() > max_x_table || tmp.p2.getY() > max_y_table)
+                    val[2] = false;
+                for (j = 0; j < os && val[2]; ++j)
                     if (obs[j].getCroisement (tmp.p2, close[indTMP1]))
                         val[2] = false;
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[2]; ++j) {
                     if (open[j] == tmp.p2)
                         val[2] = false;
                 }
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[2]; ++j) {
                     if (close[j] == tmp.p2)
                         val[2] = false;
                 }
@@ -134,14 +146,16 @@
                 }
 
                 // On répète l'opération pour le quatrieme point
-                for (j = 0; j < os; ++j)
+                if (tmp.p3.getX() < min_x_table || tmp.p3.getY() < min_y_table || tmp.p3.getX() > max_x_table || tmp.p3.getY() > max_y_table)
+                    val[3] = false;
+                for (j = 0; j < os && val[3]; ++j)
                     if (obs[j].getCroisement (tmp.p3, close[indTMP1]))
                         val[3] = false;
-                for (j = 0; j < open.size (); ++j) {
+                for (j = 0; j < open.size () && val[3]; ++j) {
                     if (open[j] == tmp.p3)
                         val[3] = false;
                 }
-                for (j = 0; j < close.size (); ++j) {
+                for (j = 0; j < close.size () && val[3]; ++j) {
                     if (close[j] == tmp.p3)
                         val[3] = false;
                 }