aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java
diff options
context:
space:
mode:
Diffstat (limited to 'Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java')
-rw-r--r--Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java127
1 files changed, 30 insertions, 97 deletions
diff --git a/Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java b/Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java
index 0ccfc4a1..7f90beb2 100644
--- a/Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java
+++ b/Domains/crossingScenario/src/crossingScenario/run/DrawScenario.java
@@ -18,18 +18,20 @@ import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
18import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 18import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
19 19
20import crossingScenario.Actor; 20import crossingScenario.Actor;
21import crossingScenario.CollisionExists;
21import crossingScenario.CrossingScenario; 22import crossingScenario.CrossingScenario;
22import crossingScenario.CrossingScenarioPackage; 23import crossingScenario.CrossingScenarioPackage;
23import crossingScenario.Lane; 24import crossingScenario.Lane;
24import crossingScenario.Lane_Horizontal; 25import crossingScenario.Lane_Horizontal;
25import crossingScenario.Lane_Vertical; 26import crossingScenario.Lane_Vertical;
27import crossingScenario.Relation;
26import crossingScenario.VisionBlocked; 28import crossingScenario.VisionBlocked;
27 29
28public class DrawScenario { 30public class DrawScenario {
29 public static final int SIZE = 1000; 31 public static final int SIZE = 1000;
30 32
31 public static void main(String[] args) throws IOException { 33 public static void main(String[] args) throws IOException {
32 drawScenario("outputs/models/1.xmi"); 34 drawScenario("outputs/models/4.xmi");
33 } 35 }
34 36
35 public static File drawScenario(String pathToXmi) throws IOException { 37 public static File drawScenario(String pathToXmi) throws IOException {
@@ -100,68 +102,36 @@ public class DrawScenario {
100 g.setPaint(Color.GREEN); 102 g.setPaint(Color.GREEN);
101 103
102 g.drawRect(left, bot, width, length); 104 g.drawRect(left, bot, width, length);
105 }
106
107 g.setPaint(Color.BLUE);
108 for (Relation ce : cs.getRelations().stream().
109 filter(r -> r instanceof CollisionExists).collect(Collectors.toList())) {
110 Actor a1 = ce.getSource();
111 Actor a2 = ce.getTarget();
112 Double t = ((CollisionExists) ce).getCollisionTime();
113
114 for (Actor a : new Actor[] {a1, a2}) {
115 //Draw final pos
116 g.setStroke(new BasicStroke(3));
117 int left = (int) (((a.getXPos() + (t * a.getXSpeed()))-a.getWidth()/2) * multiplier);
118 int bot = (int) (((a.getYPos() + (t * a.getYSpeed()))-a.getLength()/2) * multiplier);
119 int width = (int) (a.getWidth() * multiplier);
120 int length = (int) (a.getLength() * multiplier);
121
122
103 123
104 //Draw Speed? 124 //Draw line
125 g.drawRect(left, bot, width, length);
126 g.setStroke(new BasicStroke(1));
127 int x1 = (int) (a.getXPos() * multiplier);
128 int y1 = (int) (a.getYPos() * multiplier);
129 int x2 = (int) ((a.getXPos() + (t * a.getXSpeed())) * multiplier);
130 int y2 = (int) ((a.getYPos() + (t * a.getYSpeed())) * multiplier);
131 g.drawLine(x1, y1, x2, y2);
105 132
106 //Draw location at collision? 133 }
107 } 134 }
108
109// int numVars = vals.size();
110// final int numActors = (numVars - 1) / 4;
111//
112// double time = 0;
113// if (!is3)
114// time = vals.get(numVars - 1);
115// else
116// time = vals.get(numVars / 2);
117//
118// for (int i = 0; i < numActors; i++) {
119//
120// int x = 0, y = 0, vx = 0, vy = 0;
121// if (!is3) {
122// int first = i * 4;
123// x = (int) (vals.get(first) * 100);
124// y = (int) (vals.get(first + 1) * 100);
125// vx = (int) (vals.get(first + 2) * 100);
126// vy = (int) (vals.get(first + 3) * 100);
127// } else {
128// int first = i * 2;
129// x = (int) (vals.get(first) * 100);
130// y = (int) (vals.get(first + 1) * 100);
131// vx = (int) (vals.get(first + 1 + numVars / 2) * 100);
132// vy = (int) (vals.get(first + 2 + numVars / 2) * 100);
133// }
134// g.setStroke(new BasicStroke(10));
135// g.setPaint(Color.BLACK);
136// g.drawOval(x - 2, y - 2, 4, 4);
137// boolean isEGO = (!is3 && i == 0) || (is3 && i == numActors - 2);
138// boolean isPED = (i == numActors - 1);
139// if (isEGO) {
140// // EGO
141// g.drawRect(x - 50, y - 150, 100, 300);
142// g.setPaint(Color.PINK);
143// if (acceleration)
144// g.drawRect((int) (x + (vx * time * time) - 50), (int) (y + (vy * time * time) - 150), 100, 300);
145// else
146// g.drawRect((int) (x + (vx * time) - 50), (int) (y + (vy * time) - 150), 100, 300);
147// } else if (isPED) {
148// // PED
149// g.drawRect(x - 50, y - 50, 100, 100);
150// g.setPaint(Color.PINK);
151// if (acceleration)
152// g.drawRect((int) (x + (vx * time * time) - 50), (int) (y + (vy * time * time) - 50), 100, 100);
153// else
154// g.drawRect((int) (x + (vx * time) - 50), (int) (y + (vy * time) - 50), 100, 100);
155// } else {
156// // CAR
157// g.drawRect(x - 50, y - 150, 100, 300);
158// }
159//
160// g.setStroke(new BasicStroke(4));
161// g.setPaint(Color.GREEN);
162// g.drawLine(x, y, x + vx, y + vy);
163//
164// }
165 g.dispose(); 135 g.dispose();
166 136
167 File f = new File("outputs/drawnModel.png"); 137 File f = new File("outputs/drawnModel.png");
@@ -174,42 +144,5 @@ public class DrawScenario {
174// Desktop.getDesktop().open(f); 144// Desktop.getDesktop().open(f);
175 System.out.println("finished!"); 145 System.out.println("finished!");
176 return f; 146 return f;
177
178// CrossingScenario cs = ((CrossingScenario) res.getContents().get(0));
179//
180// for (Actor o : cs.getActors()) {
181// String nodeName = "A(" + rndbl(o.getXPos(), 1) + "," + rndbl(o.getYPos(), 1) + ")";
182// printer.println(o.hashCode() + " " + nodeName);
183// }
184//
185// for (Lane o : cs.getLanes()) {
186// String prefix = "";
187// if (cs.getHorizontal_head().equals(o) || cs.getVertical_head().equals(o)) {
188// prefix = "HEAD";
189// }
190// String nodeName = prefix + "L(" + rndbl(o.getReferenceCoord(), 3) + ")"
191// + o.eClass().getName().substring(5, 9);
192// printer.println(o.hashCode() + " " + nodeName);
193// }
194// printer.println("#");
195// for (Lane o : cs.getLanes()) {
196// if (o.getPrevLane() != null) {
197// int curName = o.hashCode();
198// int curPrev = o.getPrevLane().hashCode();
199// double edgeLabel = rndbl(o.getPrevLane().getNumWidth(), 1);
200// printer.println(curName + " " + curPrev + " " + edgeLabel);
201// }
202// }
203//
204// for (Actor o : cs.getActors()) {
205// int actName = o.hashCode();
206// int lanName = o.getPlacedOn().hashCode();
207// printer.println(actName + " " + lanName);
208// }
209//
210// printer.flush();
211// printer.close();
212// System.out.println("TGF CREATED");
213
214 } 147 }
215} 148}