aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Aren Babikian <aren.babikian@mail.mcgill.ca>2021-01-21 06:47:08 +0100
committerLibravatar Aren Babikian <aren.babikian@mail.mcgill.ca>2021-01-21 06:47:08 +0100
commit278ad1aa5f8cff85604f98c2a2e7269753cdbd47 (patch)
tree0d5d4dafd94d3deec4d845ffb7fcfeebb9aad8ac
parentAdd drawing of generated scenarios (diff)
downloadVIATRA-Generator-278ad1aa5f8cff85604f98c2a2e7269753cdbd47.tar.gz
VIATRA-Generator-278ad1aa5f8cff85604f98c2a2e7269753cdbd47.tar.zst
VIATRA-Generator-278ad1aa5f8cff85604f98c2a2e7269753cdbd47.zip
Major MM update + Refactor VQL + post-meeting approach change
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/Actor.java52
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java47
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java460
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java73
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/Relation.java23
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/ActorImpl.java120
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java24
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java129
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java120
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java178
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/RelationImpl.java62
-rw-r--r--Domains/crossingScenario/inputs/cSinit4x4.xmi27
-rw-r--r--Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig21
-rw-r--r--Domains/crossingScenario/model/crossingScenario.aird456
-rw-r--r--Domains/crossingScenario/model/crossingScenario.ecore25
-rw-r--r--Domains/crossingScenario/model/crossingScenario.genmodel16
-rw-r--r--Domains/crossingScenario/plugin.xml5
-rw-r--r--Domains/crossingScenario/queries/crossingScenarioQueries.vql900
-rw-r--r--Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java29
-rw-r--r--Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java84
-rw-r--r--Domains/crossingScenario/src/queries/queries.vql10
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericDrealProblemSolver.java27
22 files changed, 1358 insertions, 1530 deletions
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/Actor.java b/Domains/crossingScenario/ecore-gen/crossingScenario/Actor.java
index 31199a91..729ad25f 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/Actor.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/Actor.java
@@ -20,9 +20,11 @@ import org.eclipse.emf.ecore.EObject;
20 * <li>{@link crossingScenario.Actor#getLength <em>Length</em>}</li> 20 * <li>{@link crossingScenario.Actor#getLength <em>Length</em>}</li>
21 * <li>{@link crossingScenario.Actor#getWidth <em>Width</em>}</li> 21 * <li>{@link crossingScenario.Actor#getWidth <em>Width</em>}</li>
22 * <li>{@link crossingScenario.Actor#getXSpeed <em>XSpeed</em>}</li> 22 * <li>{@link crossingScenario.Actor#getXSpeed <em>XSpeed</em>}</li>
23 * <li>{@link crossingScenario.Actor#getRelations <em>Relations</em>}</li>
24 * <li>{@link crossingScenario.Actor#getPlacedOn <em>Placed On</em>}</li> 23 * <li>{@link crossingScenario.Actor#getPlacedOn <em>Placed On</em>}</li>
25 * <li>{@link crossingScenario.Actor#getYSpeed <em>YSpeed</em>}</li> 24 * <li>{@link crossingScenario.Actor#getYSpeed <em>YSpeed</em>}</li>
25 * <li>{@link crossingScenario.Actor#getDist_near <em>Dist near</em>}</li>
26 * <li>{@link crossingScenario.Actor#getDist_med <em>Dist med</em>}</li>
27 * <li>{@link crossingScenario.Actor#getDist_far <em>Dist far</em>}</li>
26 * </ul> 28 * </ul>
27 * 29 *
28 * @see crossingScenario.CrossingScenarioPackage#getActor() 30 * @see crossingScenario.CrossingScenarioPackage#getActor()
@@ -143,18 +145,6 @@ public interface Actor extends EObject {
143 void setXSpeed(double value); 145 void setXSpeed(double value);
144 146
145 /** 147 /**
146 * Returns the value of the '<em><b>Relations</b></em>' containment reference list.
147 * The list contents are of type {@link crossingScenario.Relation}.
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @return the value of the '<em>Relations</em>' containment reference list.
151 * @see crossingScenario.CrossingScenarioPackage#getActor_Relations()
152 * @model containment="true"
153 * @generated
154 */
155 EList<Relation> getRelations();
156
157 /**
158 * Returns the value of the '<em><b>Placed On</b></em>' reference. 148 * Returns the value of the '<em><b>Placed On</b></em>' reference.
159 * It is bidirectional and its opposite is '{@link crossingScenario.Lane#getActors <em>Actors</em>}'. 149 * It is bidirectional and its opposite is '{@link crossingScenario.Lane#getActors <em>Actors</em>}'.
160 * <!-- begin-user-doc --> 150 * <!-- begin-user-doc -->
@@ -200,4 +190,40 @@ public interface Actor extends EObject {
200 */ 190 */
201 void setYSpeed(double value); 191 void setYSpeed(double value);
202 192
193 /**
194 * Returns the value of the '<em><b>Dist near</b></em>' reference list.
195 * The list contents are of type {@link crossingScenario.Actor}.
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @return the value of the '<em>Dist near</em>' reference list.
199 * @see crossingScenario.CrossingScenarioPackage#getActor_Dist_near()
200 * @model transient="true" volatile="true" derived="true"
201 * @generated
202 */
203 EList<Actor> getDist_near();
204
205 /**
206 * Returns the value of the '<em><b>Dist med</b></em>' reference list.
207 * The list contents are of type {@link crossingScenario.Actor}.
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @return the value of the '<em>Dist med</em>' reference list.
211 * @see crossingScenario.CrossingScenarioPackage#getActor_Dist_med()
212 * @model transient="true" volatile="true" derived="true"
213 * @generated
214 */
215 EList<Actor> getDist_med();
216
217 /**
218 * Returns the value of the '<em><b>Dist far</b></em>' reference list.
219 * The list contents are of type {@link crossingScenario.Actor}.
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @return the value of the '<em>Dist far</em>' reference list.
223 * @see crossingScenario.CrossingScenarioPackage#getActor_Dist_far()
224 * @model transient="true" volatile="true" derived="true"
225 * @generated
226 */
227 EList<Actor> getDist_far();
228
203} // Actor 229} // Actor
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java
index b4f01423..0e9f4981 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java
@@ -20,8 +20,7 @@ import org.eclipse.emf.ecore.EObject;
20 * <li>{@link crossingScenario.CrossingScenario#getActors <em>Actors</em>}</li> 20 * <li>{@link crossingScenario.CrossingScenario#getActors <em>Actors</em>}</li>
21 * <li>{@link crossingScenario.CrossingScenario#getLanes <em>Lanes</em>}</li> 21 * <li>{@link crossingScenario.CrossingScenario#getLanes <em>Lanes</em>}</li>
22 * <li>{@link crossingScenario.CrossingScenario#getMaxTime <em>Max Time</em>}</li> 22 * <li>{@link crossingScenario.CrossingScenario#getMaxTime <em>Max Time</em>}</li>
23 * <li>{@link crossingScenario.CrossingScenario#getHorizontal_head <em>Horizontal head</em>}</li> 23 * <li>{@link crossingScenario.CrossingScenario#getRelations <em>Relations</em>}</li>
24 * <li>{@link crossingScenario.CrossingScenario#getVertical_head <em>Vertical head</em>}</li>
25 * </ul> 24 * </ul>
26 * 25 *
27 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario() 26 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario()
@@ -120,47 +119,15 @@ public interface CrossingScenario extends EObject {
120 void setMaxTime(double value); 119 void setMaxTime(double value);
121 120
122 /** 121 /**
123 * Returns the value of the '<em><b>Horizontal head</b></em>' reference. 122 * Returns the value of the '<em><b>Relations</b></em>' containment reference list.
123 * The list contents are of type {@link crossingScenario.Relation}.
124 * <!-- begin-user-doc --> 124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc --> 125 * <!-- end-user-doc -->
126 * @return the value of the '<em>Horizontal head</em>' reference. 126 * @return the value of the '<em>Relations</em>' containment reference list.
127 * @see #setHorizontal_head(Lane_Horizontal) 127 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario_Relations()
128 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario_Horizontal_head() 128 * @model containment="true"
129 * @model required="true"
130 * @generated
131 */
132 Lane_Horizontal getHorizontal_head();
133
134 /**
135 * Sets the value of the '{@link crossingScenario.CrossingScenario#getHorizontal_head <em>Horizontal head</em>}' reference.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @param value the new value of the '<em>Horizontal head</em>' reference.
139 * @see #getHorizontal_head()
140 * @generated
141 */
142 void setHorizontal_head(Lane_Horizontal value);
143
144 /**
145 * Returns the value of the '<em><b>Vertical head</b></em>' reference.
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @return the value of the '<em>Vertical head</em>' reference.
149 * @see #setVertical_head(Lane_Vertical)
150 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario_Vertical_head()
151 * @model required="true"
152 * @generated
153 */
154 Lane_Vertical getVertical_head();
155
156 /**
157 * Sets the value of the '{@link crossingScenario.CrossingScenario#getVertical_head <em>Vertical head</em>}' reference.
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @param value the new value of the '<em>Vertical head</em>' reference.
161 * @see #getVertical_head()
162 * @generated 129 * @generated
163 */ 130 */
164 void setVertical_head(Lane_Vertical value); 131 EList<Relation> getRelations();
165 132
166} // CrossingScenario 133} // CrossingScenario
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java
index 813466ef..45443103 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java
@@ -113,22 +113,13 @@ public interface CrossingScenarioPackage extends EPackage {
113 int CROSSING_SCENARIO__MAX_TIME = 4; 113 int CROSSING_SCENARIO__MAX_TIME = 4;
114 114
115 /** 115 /**
116 * The feature id for the '<em><b>Horizontal head</b></em>' reference. 116 * The feature id for the '<em><b>Relations</b></em>' containment reference list.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 * @ordered
121 */
122 int CROSSING_SCENARIO__HORIZONTAL_HEAD = 5;
123
124 /**
125 * The feature id for the '<em><b>Vertical head</b></em>' reference.
126 * <!-- begin-user-doc --> 117 * <!-- begin-user-doc -->
127 * <!-- end-user-doc --> 118 * <!-- end-user-doc -->
128 * @generated 119 * @generated
129 * @ordered 120 * @ordered
130 */ 121 */
131 int CROSSING_SCENARIO__VERTICAL_HEAD = 6; 122 int CROSSING_SCENARIO__RELATIONS = 5;
132 123
133 /** 124 /**
134 * The number of structural features of the '<em>Crossing Scenario</em>' class. 125 * The number of structural features of the '<em>Crossing Scenario</em>' class.
@@ -137,7 +128,7 @@ public interface CrossingScenarioPackage extends EPackage {
137 * @generated 128 * @generated
138 * @ordered 129 * @ordered
139 */ 130 */
140 int CROSSING_SCENARIO_FEATURE_COUNT = 7; 131 int CROSSING_SCENARIO_FEATURE_COUNT = 6;
141 132
142 /** 133 /**
143 * The number of operations of the '<em>Crossing Scenario</em>' class. 134 * The number of operations of the '<em>Crossing Scenario</em>' class.
@@ -159,31 +150,13 @@ public interface CrossingScenarioPackage extends EPackage {
159 int LANE = 1; 150 int LANE = 1;
160 151
161 /** 152 /**
162 * The feature id for the '<em><b>Width</b></em>' attribute.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 * @ordered
167 */
168 int LANE__WIDTH = 0;
169
170 /**
171 * The feature id for the '<em><b>Reference Coord</b></em>' attribute. 153 * The feature id for the '<em><b>Reference Coord</b></em>' attribute.
172 * <!-- begin-user-doc --> 154 * <!-- begin-user-doc -->
173 * <!-- end-user-doc --> 155 * <!-- end-user-doc -->
174 * @generated 156 * @generated
175 * @ordered 157 * @ordered
176 */ 158 */
177 int LANE__REFERENCE_COORD = 1; 159 int LANE__REFERENCE_COORD = 0;
178
179 /**
180 * The feature id for the '<em><b>Prev Lane</b></em>' reference.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 * @ordered
185 */
186 int LANE__PREV_LANE = 2;
187 160
188 /** 161 /**
189 * The feature id for the '<em><b>Actors</b></em>' reference list. 162 * The feature id for the '<em><b>Actors</b></em>' reference list.
@@ -192,16 +165,7 @@ public interface CrossingScenarioPackage extends EPackage {
192 * @generated 165 * @generated
193 * @ordered 166 * @ordered
194 */ 167 */
195 int LANE__ACTORS = 3; 168 int LANE__ACTORS = 1;
196
197 /**
198 * The feature id for the '<em><b>Num Width</b></em>' attribute.
199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc -->
201 * @generated
202 * @ordered
203 */
204 int LANE__NUM_WIDTH = 4;
205 169
206 /** 170 /**
207 * The number of structural features of the '<em>Lane</em>' class. 171 * The number of structural features of the '<em>Lane</em>' class.
@@ -210,7 +174,7 @@ public interface CrossingScenarioPackage extends EPackage {
210 * @generated 174 * @generated
211 * @ordered 175 * @ordered
212 */ 176 */
213 int LANE_FEATURE_COUNT = 5; 177 int LANE_FEATURE_COUNT = 2;
214 178
215 /** 179 /**
216 * The number of operations of the '<em>Lane</em>' class. 180 * The number of operations of the '<em>Lane</em>' class.
@@ -277,31 +241,49 @@ public interface CrossingScenarioPackage extends EPackage {
277 int ACTOR__XSPEED = 4; 241 int ACTOR__XSPEED = 4;
278 242
279 /** 243 /**
280 * The feature id for the '<em><b>Relations</b></em>' containment reference list. 244 * The feature id for the '<em><b>Placed On</b></em>' reference.
281 * <!-- begin-user-doc --> 245 * <!-- begin-user-doc -->
282 * <!-- end-user-doc --> 246 * <!-- end-user-doc -->
283 * @generated 247 * @generated
284 * @ordered 248 * @ordered
285 */ 249 */
286 int ACTOR__RELATIONS = 5; 250 int ACTOR__PLACED_ON = 5;
287 251
288 /** 252 /**
289 * The feature id for the '<em><b>Placed On</b></em>' reference. 253 * The feature id for the '<em><b>YSpeed</b></em>' attribute.
290 * <!-- begin-user-doc --> 254 * <!-- begin-user-doc -->
291 * <!-- end-user-doc --> 255 * <!-- end-user-doc -->
292 * @generated 256 * @generated
293 * @ordered 257 * @ordered
294 */ 258 */
295 int ACTOR__PLACED_ON = 6; 259 int ACTOR__YSPEED = 6;
296 260
297 /** 261 /**
298 * The feature id for the '<em><b>YSpeed</b></em>' attribute. 262 * The feature id for the '<em><b>Dist near</b></em>' reference list.
299 * <!-- begin-user-doc --> 263 * <!-- begin-user-doc -->
300 * <!-- end-user-doc --> 264 * <!-- end-user-doc -->
301 * @generated 265 * @generated
302 * @ordered 266 * @ordered
303 */ 267 */
304 int ACTOR__YSPEED = 7; 268 int ACTOR__DIST_NEAR = 7;
269
270 /**
271 * The feature id for the '<em><b>Dist med</b></em>' reference list.
272 * <!-- begin-user-doc -->
273 * <!-- end-user-doc -->
274 * @generated
275 * @ordered
276 */
277 int ACTOR__DIST_MED = 8;
278
279 /**
280 * The feature id for the '<em><b>Dist far</b></em>' reference list.
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 * @ordered
285 */
286 int ACTOR__DIST_FAR = 9;
305 287
306 /** 288 /**
307 * The number of structural features of the '<em>Actor</em>' class. 289 * The number of structural features of the '<em>Actor</em>' class.
@@ -310,7 +292,7 @@ public interface CrossingScenarioPackage extends EPackage {
310 * @generated 292 * @generated
311 * @ordered 293 * @ordered
312 */ 294 */
313 int ACTOR_FEATURE_COUNT = 8; 295 int ACTOR_FEATURE_COUNT = 10;
314 296
315 /** 297 /**
316 * The number of operations of the '<em>Actor</em>' class. 298 * The number of operations of the '<em>Actor</em>' class.
@@ -341,13 +323,22 @@ public interface CrossingScenarioPackage extends EPackage {
341 int RELATION__TARGET = 0; 323 int RELATION__TARGET = 0;
342 324
343 /** 325 /**
326 * The feature id for the '<em><b>Source</b></em>' reference.
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 * @ordered
331 */
332 int RELATION__SOURCE = 1;
333
334 /**
344 * The number of structural features of the '<em>Relation</em>' class. 335 * The number of structural features of the '<em>Relation</em>' class.
345 * <!-- begin-user-doc --> 336 * <!-- begin-user-doc -->
346 * <!-- end-user-doc --> 337 * <!-- end-user-doc -->
347 * @generated 338 * @generated
348 * @ordered 339 * @ordered
349 */ 340 */
350 int RELATION_FEATURE_COUNT = 1; 341 int RELATION_FEATURE_COUNT = 2;
351 342
352 /** 343 /**
353 * The number of operations of the '<em>Relation</em>' class. 344 * The number of operations of the '<em>Relation</em>' class.
@@ -378,6 +369,15 @@ public interface CrossingScenarioPackage extends EPackage {
378 int SPATIAL_RELATION__TARGET = RELATION__TARGET; 369 int SPATIAL_RELATION__TARGET = RELATION__TARGET;
379 370
380 /** 371 /**
372 * The feature id for the '<em><b>Source</b></em>' reference.
373 * <!-- begin-user-doc -->
374 * <!-- end-user-doc -->
375 * @generated
376 * @ordered
377 */
378 int SPATIAL_RELATION__SOURCE = RELATION__SOURCE;
379
380 /**
381 * The number of structural features of the '<em>Spatial Relation</em>' class. 381 * The number of structural features of the '<em>Spatial Relation</em>' class.
382 * <!-- begin-user-doc --> 382 * <!-- begin-user-doc -->
383 * <!-- end-user-doc --> 383 * <!-- end-user-doc -->
@@ -415,6 +415,15 @@ public interface CrossingScenarioPackage extends EPackage {
415 int TEMPORAL_RELATION__TARGET = RELATION__TARGET; 415 int TEMPORAL_RELATION__TARGET = RELATION__TARGET;
416 416
417 /** 417 /**
418 * The feature id for the '<em><b>Source</b></em>' reference.
419 * <!-- begin-user-doc -->
420 * <!-- end-user-doc -->
421 * @generated
422 * @ordered
423 */
424 int TEMPORAL_RELATION__SOURCE = RELATION__SOURCE;
425
426 /**
418 * The number of structural features of the '<em>Temporal Relation</em>' class. 427 * The number of structural features of the '<em>Temporal Relation</em>' class.
419 * <!-- begin-user-doc --> 428 * <!-- begin-user-doc -->
420 * <!-- end-user-doc --> 429 * <!-- end-user-doc -->
@@ -452,6 +461,15 @@ public interface CrossingScenarioPackage extends EPackage {
452 int VISION_BLOCKED__TARGET = SPATIAL_RELATION__TARGET; 461 int VISION_BLOCKED__TARGET = SPATIAL_RELATION__TARGET;
453 462
454 /** 463 /**
464 * The feature id for the '<em><b>Source</b></em>' reference.
465 * <!-- begin-user-doc -->
466 * <!-- end-user-doc -->
467 * @generated
468 * @ordered
469 */
470 int VISION_BLOCKED__SOURCE = SPATIAL_RELATION__SOURCE;
471
472 /**
455 * The feature id for the '<em><b>Blocked By</b></em>' reference. 473 * The feature id for the '<em><b>Blocked By</b></em>' reference.
456 * <!-- begin-user-doc --> 474 * <!-- begin-user-doc -->
457 * <!-- end-user-doc --> 475 * <!-- end-user-doc -->
@@ -498,6 +516,15 @@ public interface CrossingScenarioPackage extends EPackage {
498 int SEPARATION_DISTANCE__TARGET = SPATIAL_RELATION__TARGET; 516 int SEPARATION_DISTANCE__TARGET = SPATIAL_RELATION__TARGET;
499 517
500 /** 518 /**
519 * The feature id for the '<em><b>Source</b></em>' reference.
520 * <!-- begin-user-doc -->
521 * <!-- end-user-doc -->
522 * @generated
523 * @ordered
524 */
525 int SEPARATION_DISTANCE__SOURCE = SPATIAL_RELATION__SOURCE;
526
527 /**
501 * The feature id for the '<em><b>Distance</b></em>' attribute. 528 * The feature id for the '<em><b>Distance</b></em>' attribute.
502 * <!-- begin-user-doc --> 529 * <!-- begin-user-doc -->
503 * <!-- end-user-doc --> 530 * <!-- end-user-doc -->
@@ -544,6 +571,15 @@ public interface CrossingScenarioPackage extends EPackage {
544 int COLLISION_EXISTS__TARGET = TEMPORAL_RELATION__TARGET; 571 int COLLISION_EXISTS__TARGET = TEMPORAL_RELATION__TARGET;
545 572
546 /** 573 /**
574 * The feature id for the '<em><b>Source</b></em>' reference.
575 * <!-- begin-user-doc -->
576 * <!-- end-user-doc -->
577 * @generated
578 * @ordered
579 */
580 int COLLISION_EXISTS__SOURCE = TEMPORAL_RELATION__SOURCE;
581
582 /**
547 * The feature id for the '<em><b>Collision Time</b></em>' attribute. 583 * The feature id for the '<em><b>Collision Time</b></em>' attribute.
548 * <!-- begin-user-doc --> 584 * <!-- begin-user-doc -->
549 * <!-- end-user-doc --> 585 * <!-- end-user-doc -->
@@ -590,6 +626,15 @@ public interface CrossingScenarioPackage extends EPackage {
590 int COLLISION_DOES_NOT_EXIST__TARGET = TEMPORAL_RELATION__TARGET; 626 int COLLISION_DOES_NOT_EXIST__TARGET = TEMPORAL_RELATION__TARGET;
591 627
592 /** 628 /**
629 * The feature id for the '<em><b>Source</b></em>' reference.
630 * <!-- begin-user-doc -->
631 * <!-- end-user-doc -->
632 * @generated
633 * @ordered
634 */
635 int COLLISION_DOES_NOT_EXIST__SOURCE = TEMPORAL_RELATION__SOURCE;
636
637 /**
593 * The number of structural features of the '<em>Collision Does Not Exist</em>' class. 638 * The number of structural features of the '<em>Collision Does Not Exist</em>' class.
594 * <!-- begin-user-doc --> 639 * <!-- begin-user-doc -->
595 * <!-- end-user-doc --> 640 * <!-- end-user-doc -->
@@ -663,31 +708,49 @@ public interface CrossingScenarioPackage extends EPackage {
663 int PEDESTRIAN__XSPEED = ACTOR__XSPEED; 708 int PEDESTRIAN__XSPEED = ACTOR__XSPEED;
664 709
665 /** 710 /**
666 * The feature id for the '<em><b>Relations</b></em>' containment reference list. 711 * The feature id for the '<em><b>Placed On</b></em>' reference.
667 * <!-- begin-user-doc --> 712 * <!-- begin-user-doc -->
668 * <!-- end-user-doc --> 713 * <!-- end-user-doc -->
669 * @generated 714 * @generated
670 * @ordered 715 * @ordered
671 */ 716 */
672 int PEDESTRIAN__RELATIONS = ACTOR__RELATIONS; 717 int PEDESTRIAN__PLACED_ON = ACTOR__PLACED_ON;
673 718
674 /** 719 /**
675 * The feature id for the '<em><b>Placed On</b></em>' reference. 720 * The feature id for the '<em><b>YSpeed</b></em>' attribute.
676 * <!-- begin-user-doc --> 721 * <!-- begin-user-doc -->
677 * <!-- end-user-doc --> 722 * <!-- end-user-doc -->
678 * @generated 723 * @generated
679 * @ordered 724 * @ordered
680 */ 725 */
681 int PEDESTRIAN__PLACED_ON = ACTOR__PLACED_ON; 726 int PEDESTRIAN__YSPEED = ACTOR__YSPEED;
682 727
683 /** 728 /**
684 * The feature id for the '<em><b>YSpeed</b></em>' attribute. 729 * The feature id for the '<em><b>Dist near</b></em>' reference list.
685 * <!-- begin-user-doc --> 730 * <!-- begin-user-doc -->
686 * <!-- end-user-doc --> 731 * <!-- end-user-doc -->
687 * @generated 732 * @generated
688 * @ordered 733 * @ordered
689 */ 734 */
690 int PEDESTRIAN__YSPEED = ACTOR__YSPEED; 735 int PEDESTRIAN__DIST_NEAR = ACTOR__DIST_NEAR;
736
737 /**
738 * The feature id for the '<em><b>Dist med</b></em>' reference list.
739 * <!-- begin-user-doc -->
740 * <!-- end-user-doc -->
741 * @generated
742 * @ordered
743 */
744 int PEDESTRIAN__DIST_MED = ACTOR__DIST_MED;
745
746 /**
747 * The feature id for the '<em><b>Dist far</b></em>' reference list.
748 * <!-- begin-user-doc -->
749 * <!-- end-user-doc -->
750 * @generated
751 * @ordered
752 */
753 int PEDESTRIAN__DIST_FAR = ACTOR__DIST_FAR;
691 754
692 /** 755 /**
693 * The number of structural features of the '<em>Pedestrian</em>' class. 756 * The number of structural features of the '<em>Pedestrian</em>' class.
@@ -763,15 +826,6 @@ public interface CrossingScenarioPackage extends EPackage {
763 int VEHICLE__XSPEED = ACTOR__XSPEED; 826 int VEHICLE__XSPEED = ACTOR__XSPEED;
764 827
765 /** 828 /**
766 * The feature id for the '<em><b>Relations</b></em>' containment reference list.
767 * <!-- begin-user-doc -->
768 * <!-- end-user-doc -->
769 * @generated
770 * @ordered
771 */
772 int VEHICLE__RELATIONS = ACTOR__RELATIONS;
773
774 /**
775 * The feature id for the '<em><b>Placed On</b></em>' reference. 829 * The feature id for the '<em><b>Placed On</b></em>' reference.
776 * <!-- begin-user-doc --> 830 * <!-- begin-user-doc -->
777 * <!-- end-user-doc --> 831 * <!-- end-user-doc -->
@@ -790,77 +844,77 @@ public interface CrossingScenarioPackage extends EPackage {
790 int VEHICLE__YSPEED = ACTOR__YSPEED; 844 int VEHICLE__YSPEED = ACTOR__YSPEED;
791 845
792 /** 846 /**
793 * The number of structural features of the '<em>Vehicle</em>' class. 847 * The feature id for the '<em><b>Dist near</b></em>' reference list.
794 * <!-- begin-user-doc --> 848 * <!-- begin-user-doc -->
795 * <!-- end-user-doc --> 849 * <!-- end-user-doc -->
796 * @generated 850 * @generated
797 * @ordered 851 * @ordered
798 */ 852 */
799 int VEHICLE_FEATURE_COUNT = ACTOR_FEATURE_COUNT + 0; 853 int VEHICLE__DIST_NEAR = ACTOR__DIST_NEAR;
800 854
801 /** 855 /**
802 * The number of operations of the '<em>Vehicle</em>' class. 856 * The feature id for the '<em><b>Dist med</b></em>' reference list.
803 * <!-- begin-user-doc --> 857 * <!-- begin-user-doc -->
804 * <!-- end-user-doc --> 858 * <!-- end-user-doc -->
805 * @generated 859 * @generated
806 * @ordered 860 * @ordered
807 */ 861 */
808 int VEHICLE_OPERATION_COUNT = ACTOR_OPERATION_COUNT + 0; 862 int VEHICLE__DIST_MED = ACTOR__DIST_MED;
809 863
810 /** 864 /**
811 * The meta object id for the '{@link crossingScenario.impl.Lane_HorizontalImpl <em>Lane Horizontal</em>}' class. 865 * The feature id for the '<em><b>Dist far</b></em>' reference list.
812 * <!-- begin-user-doc --> 866 * <!-- begin-user-doc -->
813 * <!-- end-user-doc --> 867 * <!-- end-user-doc -->
814 * @see crossingScenario.impl.Lane_HorizontalImpl
815 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane_Horizontal()
816 * @generated 868 * @generated
869 * @ordered
817 */ 870 */
818 int LANE_HORIZONTAL = 12; 871 int VEHICLE__DIST_FAR = ACTOR__DIST_FAR;
819 872
820 /** 873 /**
821 * The feature id for the '<em><b>Width</b></em>' attribute. 874 * The number of structural features of the '<em>Vehicle</em>' class.
822 * <!-- begin-user-doc --> 875 * <!-- begin-user-doc -->
823 * <!-- end-user-doc --> 876 * <!-- end-user-doc -->
824 * @generated 877 * @generated
825 * @ordered 878 * @ordered
826 */ 879 */
827 int LANE_HORIZONTAL__WIDTH = LANE__WIDTH; 880 int VEHICLE_FEATURE_COUNT = ACTOR_FEATURE_COUNT + 0;
828 881
829 /** 882 /**
830 * The feature id for the '<em><b>Reference Coord</b></em>' attribute. 883 * The number of operations of the '<em>Vehicle</em>' class.
831 * <!-- begin-user-doc --> 884 * <!-- begin-user-doc -->
832 * <!-- end-user-doc --> 885 * <!-- end-user-doc -->
833 * @generated 886 * @generated
834 * @ordered 887 * @ordered
835 */ 888 */
836 int LANE_HORIZONTAL__REFERENCE_COORD = LANE__REFERENCE_COORD; 889 int VEHICLE_OPERATION_COUNT = ACTOR_OPERATION_COUNT + 0;
837 890
838 /** 891 /**
839 * The feature id for the '<em><b>Prev Lane</b></em>' reference. 892 * The meta object id for the '{@link crossingScenario.impl.Lane_HorizontalImpl <em>Lane Horizontal</em>}' class.
840 * <!-- begin-user-doc --> 893 * <!-- begin-user-doc -->
841 * <!-- end-user-doc --> 894 * <!-- end-user-doc -->
895 * @see crossingScenario.impl.Lane_HorizontalImpl
896 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane_Horizontal()
842 * @generated 897 * @generated
843 * @ordered
844 */ 898 */
845 int LANE_HORIZONTAL__PREV_LANE = LANE__PREV_LANE; 899 int LANE_HORIZONTAL = 12;
846 900
847 /** 901 /**
848 * The feature id for the '<em><b>Actors</b></em>' reference list. 902 * The feature id for the '<em><b>Reference Coord</b></em>' attribute.
849 * <!-- begin-user-doc --> 903 * <!-- begin-user-doc -->
850 * <!-- end-user-doc --> 904 * <!-- end-user-doc -->
851 * @generated 905 * @generated
852 * @ordered 906 * @ordered
853 */ 907 */
854 int LANE_HORIZONTAL__ACTORS = LANE__ACTORS; 908 int LANE_HORIZONTAL__REFERENCE_COORD = LANE__REFERENCE_COORD;
855 909
856 /** 910 /**
857 * The feature id for the '<em><b>Num Width</b></em>' attribute. 911 * The feature id for the '<em><b>Actors</b></em>' reference list.
858 * <!-- begin-user-doc --> 912 * <!-- begin-user-doc -->
859 * <!-- end-user-doc --> 913 * <!-- end-user-doc -->
860 * @generated 914 * @generated
861 * @ordered 915 * @ordered
862 */ 916 */
863 int LANE_HORIZONTAL__NUM_WIDTH = LANE__NUM_WIDTH; 917 int LANE_HORIZONTAL__ACTORS = LANE__ACTORS;
864 918
865 /** 919 /**
866 * The number of structural features of the '<em>Lane Horizontal</em>' class. 920 * The number of structural features of the '<em>Lane Horizontal</em>' class.
@@ -891,15 +945,6 @@ public interface CrossingScenarioPackage extends EPackage {
891 int LANE_VERTICAL = 13; 945 int LANE_VERTICAL = 13;
892 946
893 /** 947 /**
894 * The feature id for the '<em><b>Width</b></em>' attribute.
895 * <!-- begin-user-doc -->
896 * <!-- end-user-doc -->
897 * @generated
898 * @ordered
899 */
900 int LANE_VERTICAL__WIDTH = LANE__WIDTH;
901
902 /**
903 * The feature id for the '<em><b>Reference Coord</b></em>' attribute. 948 * The feature id for the '<em><b>Reference Coord</b></em>' attribute.
904 * <!-- begin-user-doc --> 949 * <!-- begin-user-doc -->
905 * <!-- end-user-doc --> 950 * <!-- end-user-doc -->
@@ -909,15 +954,6 @@ public interface CrossingScenarioPackage extends EPackage {
909 int LANE_VERTICAL__REFERENCE_COORD = LANE__REFERENCE_COORD; 954 int LANE_VERTICAL__REFERENCE_COORD = LANE__REFERENCE_COORD;
910 955
911 /** 956 /**
912 * The feature id for the '<em><b>Prev Lane</b></em>' reference.
913 * <!-- begin-user-doc -->
914 * <!-- end-user-doc -->
915 * @generated
916 * @ordered
917 */
918 int LANE_VERTICAL__PREV_LANE = LANE__PREV_LANE;
919
920 /**
921 * The feature id for the '<em><b>Actors</b></em>' reference list. 957 * The feature id for the '<em><b>Actors</b></em>' reference list.
922 * <!-- begin-user-doc --> 958 * <!-- begin-user-doc -->
923 * <!-- end-user-doc --> 959 * <!-- end-user-doc -->
@@ -927,15 +963,6 @@ public interface CrossingScenarioPackage extends EPackage {
927 int LANE_VERTICAL__ACTORS = LANE__ACTORS; 963 int LANE_VERTICAL__ACTORS = LANE__ACTORS;
928 964
929 /** 965 /**
930 * The feature id for the '<em><b>Num Width</b></em>' attribute.
931 * <!-- begin-user-doc -->
932 * <!-- end-user-doc -->
933 * @generated
934 * @ordered
935 */
936 int LANE_VERTICAL__NUM_WIDTH = LANE__NUM_WIDTH;
937
938 /**
939 * The number of structural features of the '<em>Lane Vertical</em>' class. 966 * The number of structural features of the '<em>Lane Vertical</em>' class.
940 * <!-- begin-user-doc --> 967 * <!-- begin-user-doc -->
941 * <!-- end-user-doc --> 968 * <!-- end-user-doc -->
@@ -954,16 +981,6 @@ public interface CrossingScenarioPackage extends EPackage {
954 int LANE_VERTICAL_OPERATION_COUNT = LANE_OPERATION_COUNT + 0; 981 int LANE_VERTICAL_OPERATION_COUNT = LANE_OPERATION_COUNT + 0;
955 982
956 /** 983 /**
957 * The meta object id for the '{@link crossingScenario.Size <em>Size</em>}' enum.
958 * <!-- begin-user-doc -->
959 * <!-- end-user-doc -->
960 * @see crossingScenario.Size
961 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getSize()
962 * @generated
963 */
964 int SIZE = 14;
965
966 /**
967 * The meta object id for the '{@link crossingScenario.Distance <em>Distance</em>}' enum. 984 * The meta object id for the '{@link crossingScenario.Distance <em>Distance</em>}' enum.
968 * <!-- begin-user-doc --> 985 * <!-- begin-user-doc -->
969 * <!-- end-user-doc --> 986 * <!-- end-user-doc -->
@@ -971,7 +988,7 @@ public interface CrossingScenarioPackage extends EPackage {
971 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getDistance() 988 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getDistance()
972 * @generated 989 * @generated
973 */ 990 */
974 int DISTANCE = 15; 991 int DISTANCE = 14;
975 992
976 993
977 /** 994 /**
@@ -1040,26 +1057,15 @@ public interface CrossingScenarioPackage extends EPackage {
1040 EAttribute getCrossingScenario_MaxTime(); 1057 EAttribute getCrossingScenario_MaxTime();
1041 1058
1042 /** 1059 /**
1043 * Returns the meta object for the reference '{@link crossingScenario.CrossingScenario#getHorizontal_head <em>Horizontal head</em>}'. 1060 * Returns the meta object for the containment reference list '{@link crossingScenario.CrossingScenario#getRelations <em>Relations</em>}'.
1044 * <!-- begin-user-doc -->
1045 * <!-- end-user-doc -->
1046 * @return the meta object for the reference '<em>Horizontal head</em>'.
1047 * @see crossingScenario.CrossingScenario#getHorizontal_head()
1048 * @see #getCrossingScenario()
1049 * @generated
1050 */
1051 EReference getCrossingScenario_Horizontal_head();
1052
1053 /**
1054 * Returns the meta object for the reference '{@link crossingScenario.CrossingScenario#getVertical_head <em>Vertical head</em>}'.
1055 * <!-- begin-user-doc --> 1061 * <!-- begin-user-doc -->
1056 * <!-- end-user-doc --> 1062 * <!-- end-user-doc -->
1057 * @return the meta object for the reference '<em>Vertical head</em>'. 1063 * @return the meta object for the containment reference list '<em>Relations</em>'.
1058 * @see crossingScenario.CrossingScenario#getVertical_head() 1064 * @see crossingScenario.CrossingScenario#getRelations()
1059 * @see #getCrossingScenario() 1065 * @see #getCrossingScenario()
1060 * @generated 1066 * @generated
1061 */ 1067 */
1062 EReference getCrossingScenario_Vertical_head(); 1068 EReference getCrossingScenario_Relations();
1063 1069
1064 /** 1070 /**
1065 * Returns the meta object for class '{@link crossingScenario.Lane <em>Lane</em>}'. 1071 * Returns the meta object for class '{@link crossingScenario.Lane <em>Lane</em>}'.
@@ -1072,17 +1078,6 @@ public interface CrossingScenarioPackage extends EPackage {
1072 EClass getLane(); 1078 EClass getLane();
1073 1079
1074 /** 1080 /**
1075 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getWidth <em>Width</em>}'.
1076 * <!-- begin-user-doc -->
1077 * <!-- end-user-doc -->
1078 * @return the meta object for the attribute '<em>Width</em>'.
1079 * @see crossingScenario.Lane#getWidth()
1080 * @see #getLane()
1081 * @generated
1082 */
1083 EAttribute getLane_Width();
1084
1085 /**
1086 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getReferenceCoord <em>Reference Coord</em>}'. 1081 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getReferenceCoord <em>Reference Coord</em>}'.
1087 * <!-- begin-user-doc --> 1082 * <!-- begin-user-doc -->
1088 * <!-- end-user-doc --> 1083 * <!-- end-user-doc -->
@@ -1094,17 +1089,6 @@ public interface CrossingScenarioPackage extends EPackage {
1094 EAttribute getLane_ReferenceCoord(); 1089 EAttribute getLane_ReferenceCoord();
1095 1090
1096 /** 1091 /**
1097 * Returns the meta object for the reference '{@link crossingScenario.Lane#getPrevLane <em>Prev Lane</em>}'.
1098 * <!-- begin-user-doc -->
1099 * <!-- end-user-doc -->
1100 * @return the meta object for the reference '<em>Prev Lane</em>'.
1101 * @see crossingScenario.Lane#getPrevLane()
1102 * @see #getLane()
1103 * @generated
1104 */
1105 EReference getLane_PrevLane();
1106
1107 /**
1108 * Returns the meta object for the reference list '{@link crossingScenario.Lane#getActors <em>Actors</em>}'. 1092 * Returns the meta object for the reference list '{@link crossingScenario.Lane#getActors <em>Actors</em>}'.
1109 * <!-- begin-user-doc --> 1093 * <!-- begin-user-doc -->
1110 * <!-- end-user-doc --> 1094 * <!-- end-user-doc -->
@@ -1116,17 +1100,6 @@ public interface CrossingScenarioPackage extends EPackage {
1116 EReference getLane_Actors(); 1100 EReference getLane_Actors();
1117 1101
1118 /** 1102 /**
1119 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getNumWidth <em>Num Width</em>}'.
1120 * <!-- begin-user-doc -->
1121 * <!-- end-user-doc -->
1122 * @return the meta object for the attribute '<em>Num Width</em>'.
1123 * @see crossingScenario.Lane#getNumWidth()
1124 * @see #getLane()
1125 * @generated
1126 */
1127 EAttribute getLane_NumWidth();
1128
1129 /**
1130 * Returns the meta object for class '{@link crossingScenario.Actor <em>Actor</em>}'. 1103 * Returns the meta object for class '{@link crossingScenario.Actor <em>Actor</em>}'.
1131 * <!-- begin-user-doc --> 1104 * <!-- begin-user-doc -->
1132 * <!-- end-user-doc --> 1105 * <!-- end-user-doc -->
@@ -1192,17 +1165,6 @@ public interface CrossingScenarioPackage extends EPackage {
1192 EAttribute getActor_XSpeed(); 1165 EAttribute getActor_XSpeed();
1193 1166
1194 /** 1167 /**
1195 * Returns the meta object for the containment reference list '{@link crossingScenario.Actor#getRelations <em>Relations</em>}'.
1196 * <!-- begin-user-doc -->
1197 * <!-- end-user-doc -->
1198 * @return the meta object for the containment reference list '<em>Relations</em>'.
1199 * @see crossingScenario.Actor#getRelations()
1200 * @see #getActor()
1201 * @generated
1202 */
1203 EReference getActor_Relations();
1204
1205 /**
1206 * Returns the meta object for the reference '{@link crossingScenario.Actor#getPlacedOn <em>Placed On</em>}'. 1168 * Returns the meta object for the reference '{@link crossingScenario.Actor#getPlacedOn <em>Placed On</em>}'.
1207 * <!-- begin-user-doc --> 1169 * <!-- begin-user-doc -->
1208 * <!-- end-user-doc --> 1170 * <!-- end-user-doc -->
@@ -1225,6 +1187,39 @@ public interface CrossingScenarioPackage extends EPackage {
1225 EAttribute getActor_YSpeed(); 1187 EAttribute getActor_YSpeed();
1226 1188
1227 /** 1189 /**
1190 * Returns the meta object for the reference list '{@link crossingScenario.Actor#getDist_near <em>Dist near</em>}'.
1191 * <!-- begin-user-doc -->
1192 * <!-- end-user-doc -->
1193 * @return the meta object for the reference list '<em>Dist near</em>'.
1194 * @see crossingScenario.Actor#getDist_near()
1195 * @see #getActor()
1196 * @generated
1197 */
1198 EReference getActor_Dist_near();
1199
1200 /**
1201 * Returns the meta object for the reference list '{@link crossingScenario.Actor#getDist_med <em>Dist med</em>}'.
1202 * <!-- begin-user-doc -->
1203 * <!-- end-user-doc -->
1204 * @return the meta object for the reference list '<em>Dist med</em>'.
1205 * @see crossingScenario.Actor#getDist_med()
1206 * @see #getActor()
1207 * @generated
1208 */
1209 EReference getActor_Dist_med();
1210
1211 /**
1212 * Returns the meta object for the reference list '{@link crossingScenario.Actor#getDist_far <em>Dist far</em>}'.
1213 * <!-- begin-user-doc -->
1214 * <!-- end-user-doc -->
1215 * @return the meta object for the reference list '<em>Dist far</em>'.
1216 * @see crossingScenario.Actor#getDist_far()
1217 * @see #getActor()
1218 * @generated
1219 */
1220 EReference getActor_Dist_far();
1221
1222 /**
1228 * Returns the meta object for class '{@link crossingScenario.Relation <em>Relation</em>}'. 1223 * Returns the meta object for class '{@link crossingScenario.Relation <em>Relation</em>}'.
1229 * <!-- begin-user-doc --> 1224 * <!-- begin-user-doc -->
1230 * <!-- end-user-doc --> 1225 * <!-- end-user-doc -->
@@ -1246,6 +1241,17 @@ public interface CrossingScenarioPackage extends EPackage {
1246 EReference getRelation_Target(); 1241 EReference getRelation_Target();
1247 1242
1248 /** 1243 /**
1244 * Returns the meta object for the reference '{@link crossingScenario.Relation#getSource <em>Source</em>}'.
1245 * <!-- begin-user-doc -->
1246 * <!-- end-user-doc -->
1247 * @return the meta object for the reference '<em>Source</em>'.
1248 * @see crossingScenario.Relation#getSource()
1249 * @see #getRelation()
1250 * @generated
1251 */
1252 EReference getRelation_Source();
1253
1254 /**
1249 * Returns the meta object for class '{@link crossingScenario.SpatialRelation <em>Spatial Relation</em>}'. 1255 * Returns the meta object for class '{@link crossingScenario.SpatialRelation <em>Spatial Relation</em>}'.
1250 * <!-- begin-user-doc --> 1256 * <!-- begin-user-doc -->
1251 * <!-- end-user-doc --> 1257 * <!-- end-user-doc -->
@@ -1379,16 +1385,6 @@ public interface CrossingScenarioPackage extends EPackage {
1379 EClass getLane_Vertical(); 1385 EClass getLane_Vertical();
1380 1386
1381 /** 1387 /**
1382 * Returns the meta object for enum '{@link crossingScenario.Size <em>Size</em>}'.
1383 * <!-- begin-user-doc -->
1384 * <!-- end-user-doc -->
1385 * @return the meta object for enum '<em>Size</em>'.
1386 * @see crossingScenario.Size
1387 * @generated
1388 */
1389 EEnum getSize();
1390
1391 /**
1392 * Returns the meta object for enum '{@link crossingScenario.Distance <em>Distance</em>}'. 1388 * Returns the meta object for enum '{@link crossingScenario.Distance <em>Distance</em>}'.
1393 * <!-- begin-user-doc --> 1389 * <!-- begin-user-doc -->
1394 * <!-- end-user-doc --> 1390 * <!-- end-user-doc -->
@@ -1472,20 +1468,12 @@ public interface CrossingScenarioPackage extends EPackage {
1472 EAttribute CROSSING_SCENARIO__MAX_TIME = eINSTANCE.getCrossingScenario_MaxTime(); 1468 EAttribute CROSSING_SCENARIO__MAX_TIME = eINSTANCE.getCrossingScenario_MaxTime();
1473 1469
1474 /** 1470 /**
1475 * The meta object literal for the '<em><b>Horizontal head</b></em>' reference feature. 1471 * The meta object literal for the '<em><b>Relations</b></em>' containment reference list feature.
1476 * <!-- begin-user-doc -->
1477 * <!-- end-user-doc -->
1478 * @generated
1479 */
1480 EReference CROSSING_SCENARIO__HORIZONTAL_HEAD = eINSTANCE.getCrossingScenario_Horizontal_head();
1481
1482 /**
1483 * The meta object literal for the '<em><b>Vertical head</b></em>' reference feature.
1484 * <!-- begin-user-doc --> 1472 * <!-- begin-user-doc -->
1485 * <!-- end-user-doc --> 1473 * <!-- end-user-doc -->
1486 * @generated 1474 * @generated
1487 */ 1475 */
1488 EReference CROSSING_SCENARIO__VERTICAL_HEAD = eINSTANCE.getCrossingScenario_Vertical_head(); 1476 EReference CROSSING_SCENARIO__RELATIONS = eINSTANCE.getCrossingScenario_Relations();
1489 1477
1490 /** 1478 /**
1491 * The meta object literal for the '{@link crossingScenario.impl.LaneImpl <em>Lane</em>}' class. 1479 * The meta object literal for the '{@link crossingScenario.impl.LaneImpl <em>Lane</em>}' class.
@@ -1498,14 +1486,6 @@ public interface CrossingScenarioPackage extends EPackage {
1498 EClass LANE = eINSTANCE.getLane(); 1486 EClass LANE = eINSTANCE.getLane();
1499 1487
1500 /** 1488 /**
1501 * The meta object literal for the '<em><b>Width</b></em>' attribute feature.
1502 * <!-- begin-user-doc -->
1503 * <!-- end-user-doc -->
1504 * @generated
1505 */
1506 EAttribute LANE__WIDTH = eINSTANCE.getLane_Width();
1507
1508 /**
1509 * The meta object literal for the '<em><b>Reference Coord</b></em>' attribute feature. 1489 * The meta object literal for the '<em><b>Reference Coord</b></em>' attribute feature.
1510 * <!-- begin-user-doc --> 1490 * <!-- begin-user-doc -->
1511 * <!-- end-user-doc --> 1491 * <!-- end-user-doc -->
@@ -1514,14 +1494,6 @@ public interface CrossingScenarioPackage extends EPackage {
1514 EAttribute LANE__REFERENCE_COORD = eINSTANCE.getLane_ReferenceCoord(); 1494 EAttribute LANE__REFERENCE_COORD = eINSTANCE.getLane_ReferenceCoord();
1515 1495
1516 /** 1496 /**
1517 * The meta object literal for the '<em><b>Prev Lane</b></em>' reference feature.
1518 * <!-- begin-user-doc -->
1519 * <!-- end-user-doc -->
1520 * @generated
1521 */
1522 EReference LANE__PREV_LANE = eINSTANCE.getLane_PrevLane();
1523
1524 /**
1525 * The meta object literal for the '<em><b>Actors</b></em>' reference list feature. 1497 * The meta object literal for the '<em><b>Actors</b></em>' reference list feature.
1526 * <!-- begin-user-doc --> 1498 * <!-- begin-user-doc -->
1527 * <!-- end-user-doc --> 1499 * <!-- end-user-doc -->
@@ -1530,14 +1502,6 @@ public interface CrossingScenarioPackage extends EPackage {
1530 EReference LANE__ACTORS = eINSTANCE.getLane_Actors(); 1502 EReference LANE__ACTORS = eINSTANCE.getLane_Actors();
1531 1503
1532 /** 1504 /**
1533 * The meta object literal for the '<em><b>Num Width</b></em>' attribute feature.
1534 * <!-- begin-user-doc -->
1535 * <!-- end-user-doc -->
1536 * @generated
1537 */
1538 EAttribute LANE__NUM_WIDTH = eINSTANCE.getLane_NumWidth();
1539
1540 /**
1541 * The meta object literal for the '{@link crossingScenario.impl.ActorImpl <em>Actor</em>}' class. 1505 * The meta object literal for the '{@link crossingScenario.impl.ActorImpl <em>Actor</em>}' class.
1542 * <!-- begin-user-doc --> 1506 * <!-- begin-user-doc -->
1543 * <!-- end-user-doc --> 1507 * <!-- end-user-doc -->
@@ -1588,28 +1552,44 @@ public interface CrossingScenarioPackage extends EPackage {
1588 EAttribute ACTOR__XSPEED = eINSTANCE.getActor_XSpeed(); 1552 EAttribute ACTOR__XSPEED = eINSTANCE.getActor_XSpeed();
1589 1553
1590 /** 1554 /**
1591 * The meta object literal for the '<em><b>Relations</b></em>' containment reference list feature. 1555 * The meta object literal for the '<em><b>Placed On</b></em>' reference feature.
1592 * <!-- begin-user-doc --> 1556 * <!-- begin-user-doc -->
1593 * <!-- end-user-doc --> 1557 * <!-- end-user-doc -->
1594 * @generated 1558 * @generated
1595 */ 1559 */
1596 EReference ACTOR__RELATIONS = eINSTANCE.getActor_Relations(); 1560 EReference ACTOR__PLACED_ON = eINSTANCE.getActor_PlacedOn();
1597 1561
1598 /** 1562 /**
1599 * The meta object literal for the '<em><b>Placed On</b></em>' reference feature. 1563 * The meta object literal for the '<em><b>YSpeed</b></em>' attribute feature.
1600 * <!-- begin-user-doc --> 1564 * <!-- begin-user-doc -->
1601 * <!-- end-user-doc --> 1565 * <!-- end-user-doc -->
1602 * @generated 1566 * @generated
1603 */ 1567 */
1604 EReference ACTOR__PLACED_ON = eINSTANCE.getActor_PlacedOn(); 1568 EAttribute ACTOR__YSPEED = eINSTANCE.getActor_YSpeed();
1605 1569
1606 /** 1570 /**
1607 * The meta object literal for the '<em><b>YSpeed</b></em>' attribute feature. 1571 * The meta object literal for the '<em><b>Dist near</b></em>' reference list feature.
1608 * <!-- begin-user-doc --> 1572 * <!-- begin-user-doc -->
1609 * <!-- end-user-doc --> 1573 * <!-- end-user-doc -->
1610 * @generated 1574 * @generated
1611 */ 1575 */
1612 EAttribute ACTOR__YSPEED = eINSTANCE.getActor_YSpeed(); 1576 EReference ACTOR__DIST_NEAR = eINSTANCE.getActor_Dist_near();
1577
1578 /**
1579 * The meta object literal for the '<em><b>Dist med</b></em>' reference list feature.
1580 * <!-- begin-user-doc -->
1581 * <!-- end-user-doc -->
1582 * @generated
1583 */
1584 EReference ACTOR__DIST_MED = eINSTANCE.getActor_Dist_med();
1585
1586 /**
1587 * The meta object literal for the '<em><b>Dist far</b></em>' reference list feature.
1588 * <!-- begin-user-doc -->
1589 * <!-- end-user-doc -->
1590 * @generated
1591 */
1592 EReference ACTOR__DIST_FAR = eINSTANCE.getActor_Dist_far();
1613 1593
1614 /** 1594 /**
1615 * The meta object literal for the '{@link crossingScenario.impl.RelationImpl <em>Relation</em>}' class. 1595 * The meta object literal for the '{@link crossingScenario.impl.RelationImpl <em>Relation</em>}' class.
@@ -1630,6 +1610,14 @@ public interface CrossingScenarioPackage extends EPackage {
1630 EReference RELATION__TARGET = eINSTANCE.getRelation_Target(); 1610 EReference RELATION__TARGET = eINSTANCE.getRelation_Target();
1631 1611
1632 /** 1612 /**
1613 * The meta object literal for the '<em><b>Source</b></em>' reference feature.
1614 * <!-- begin-user-doc -->
1615 * <!-- end-user-doc -->
1616 * @generated
1617 */
1618 EReference RELATION__SOURCE = eINSTANCE.getRelation_Source();
1619
1620 /**
1633 * The meta object literal for the '{@link crossingScenario.impl.SpatialRelationImpl <em>Spatial Relation</em>}' class. 1621 * The meta object literal for the '{@link crossingScenario.impl.SpatialRelationImpl <em>Spatial Relation</em>}' class.
1634 * <!-- begin-user-doc --> 1622 * <!-- begin-user-doc -->
1635 * <!-- end-user-doc --> 1623 * <!-- end-user-doc -->
@@ -1754,16 +1742,6 @@ public interface CrossingScenarioPackage extends EPackage {
1754 EClass LANE_VERTICAL = eINSTANCE.getLane_Vertical(); 1742 EClass LANE_VERTICAL = eINSTANCE.getLane_Vertical();
1755 1743
1756 /** 1744 /**
1757 * The meta object literal for the '{@link crossingScenario.Size <em>Size</em>}' enum.
1758 * <!-- begin-user-doc -->
1759 * <!-- end-user-doc -->
1760 * @see crossingScenario.Size
1761 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getSize()
1762 * @generated
1763 */
1764 EEnum SIZE = eINSTANCE.getSize();
1765
1766 /**
1767 * The meta object literal for the '{@link crossingScenario.Distance <em>Distance</em>}' enum. 1745 * The meta object literal for the '{@link crossingScenario.Distance <em>Distance</em>}' enum.
1768 * <!-- begin-user-doc --> 1746 * <!-- begin-user-doc -->
1769 * <!-- end-user-doc --> 1747 * <!-- end-user-doc -->
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java
index d27cf644..ef45e1b9 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java
@@ -15,11 +15,8 @@ import org.eclipse.emf.ecore.EObject;
15 * The following features are supported: 15 * The following features are supported:
16 * </p> 16 * </p>
17 * <ul> 17 * <ul>
18 * <li>{@link crossingScenario.Lane#getWidth <em>Width</em>}</li>
19 * <li>{@link crossingScenario.Lane#getReferenceCoord <em>Reference Coord</em>}</li> 18 * <li>{@link crossingScenario.Lane#getReferenceCoord <em>Reference Coord</em>}</li>
20 * <li>{@link crossingScenario.Lane#getPrevLane <em>Prev Lane</em>}</li>
21 * <li>{@link crossingScenario.Lane#getActors <em>Actors</em>}</li> 19 * <li>{@link crossingScenario.Lane#getActors <em>Actors</em>}</li>
22 * <li>{@link crossingScenario.Lane#getNumWidth <em>Num Width</em>}</li>
23 * </ul> 20 * </ul>
24 * 21 *
25 * @see crossingScenario.CrossingScenarioPackage#getLane() 22 * @see crossingScenario.CrossingScenarioPackage#getLane()
@@ -28,31 +25,6 @@ import org.eclipse.emf.ecore.EObject;
28 */ 25 */
29public interface Lane extends EObject { 26public interface Lane extends EObject {
30 /** 27 /**
31 * Returns the value of the '<em><b>Width</b></em>' attribute.
32 * The literals are from the enumeration {@link crossingScenario.Size}.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Width</em>' attribute.
36 * @see crossingScenario.Size
37 * @see #setWidth(Size)
38 * @see crossingScenario.CrossingScenarioPackage#getLane_Width()
39 * @model required="true"
40 * @generated
41 */
42 Size getWidth();
43
44 /**
45 * Sets the value of the '{@link crossingScenario.Lane#getWidth <em>Width</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @param value the new value of the '<em>Width</em>' attribute.
49 * @see crossingScenario.Size
50 * @see #getWidth()
51 * @generated
52 */
53 void setWidth(Size value);
54
55 /**
56 * Returns the value of the '<em><b>Reference Coord</b></em>' attribute. 28 * Returns the value of the '<em><b>Reference Coord</b></em>' attribute.
57 * <!-- begin-user-doc --> 29 * <!-- begin-user-doc -->
58 * <!-- end-user-doc --> 30 * <!-- end-user-doc -->
@@ -75,28 +47,6 @@ public interface Lane extends EObject {
75 void setReferenceCoord(double value); 47 void setReferenceCoord(double value);
76 48
77 /** 49 /**
78 * Returns the value of the '<em><b>Prev Lane</b></em>' reference.
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @return the value of the '<em>Prev Lane</em>' reference.
82 * @see #setPrevLane(Lane)
83 * @see crossingScenario.CrossingScenarioPackage#getLane_PrevLane()
84 * @model
85 * @generated
86 */
87 Lane getPrevLane();
88
89 /**
90 * Sets the value of the '{@link crossingScenario.Lane#getPrevLane <em>Prev Lane</em>}' reference.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @param value the new value of the '<em>Prev Lane</em>' reference.
94 * @see #getPrevLane()
95 * @generated
96 */
97 void setPrevLane(Lane value);
98
99 /**
100 * Returns the value of the '<em><b>Actors</b></em>' reference list. 50 * Returns the value of the '<em><b>Actors</b></em>' reference list.
101 * The list contents are of type {@link crossingScenario.Actor}. 51 * The list contents are of type {@link crossingScenario.Actor}.
102 * It is bidirectional and its opposite is '{@link crossingScenario.Actor#getPlacedOn <em>Placed On</em>}'. 52 * It is bidirectional and its opposite is '{@link crossingScenario.Actor#getPlacedOn <em>Placed On</em>}'.
@@ -110,27 +60,4 @@ public interface Lane extends EObject {
110 */ 60 */
111 EList<Actor> getActors(); 61 EList<Actor> getActors();
112 62
113 /**
114 * Returns the value of the '<em><b>Num Width</b></em>' attribute.
115 * The default value is <code>"0.0"</code>.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @return the value of the '<em>Num Width</em>' attribute.
119 * @see #setNumWidth(double)
120 * @see crossingScenario.CrossingScenarioPackage#getLane_NumWidth()
121 * @model default="0.0" required="true"
122 * @generated
123 */
124 double getNumWidth();
125
126 /**
127 * Sets the value of the '{@link crossingScenario.Lane#getNumWidth <em>Num Width</em>}' attribute.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @param value the new value of the '<em>Num Width</em>' attribute.
131 * @see #getNumWidth()
132 * @generated
133 */
134 void setNumWidth(double value);
135
136} // Lane 63} // Lane
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/Relation.java b/Domains/crossingScenario/ecore-gen/crossingScenario/Relation.java
index 213f4df2..75a3f58f 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/Relation.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/Relation.java
@@ -14,6 +14,7 @@ import org.eclipse.emf.ecore.EObject;
14 * </p> 14 * </p>
15 * <ul> 15 * <ul>
16 * <li>{@link crossingScenario.Relation#getTarget <em>Target</em>}</li> 16 * <li>{@link crossingScenario.Relation#getTarget <em>Target</em>}</li>
17 * <li>{@link crossingScenario.Relation#getSource <em>Source</em>}</li>
17 * </ul> 18 * </ul>
18 * 19 *
19 * @see crossingScenario.CrossingScenarioPackage#getRelation() 20 * @see crossingScenario.CrossingScenarioPackage#getRelation()
@@ -43,4 +44,26 @@ public interface Relation extends EObject {
43 */ 44 */
44 void setTarget(Actor value); 45 void setTarget(Actor value);
45 46
47 /**
48 * Returns the value of the '<em><b>Source</b></em>' reference.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @return the value of the '<em>Source</em>' reference.
52 * @see #setSource(Actor)
53 * @see crossingScenario.CrossingScenarioPackage#getRelation_Source()
54 * @model required="true"
55 * @generated
56 */
57 Actor getSource();
58
59 /**
60 * Sets the value of the '{@link crossingScenario.Relation#getSource <em>Source</em>}' reference.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @param value the new value of the '<em>Source</em>' reference.
64 * @see #getSource()
65 * @generated
66 */
67 void setSource(Actor value);
68
46} // Relation 69} // Relation
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/ActorImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/ActorImpl.java
index 46e60ec2..a308360b 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/ActorImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/ActorImpl.java
@@ -5,8 +5,6 @@ package crossingScenario.impl;
5import crossingScenario.Actor; 5import crossingScenario.Actor;
6import crossingScenario.CrossingScenarioPackage; 6import crossingScenario.CrossingScenarioPackage;
7import crossingScenario.Lane; 7import crossingScenario.Lane;
8import crossingScenario.Relation;
9
10import java.util.Collection; 8import java.util.Collection;
11 9
12import org.eclipse.emf.common.notify.Notification; 10import org.eclipse.emf.common.notify.Notification;
@@ -20,9 +18,6 @@ import org.eclipse.emf.ecore.InternalEObject;
20import org.eclipse.emf.ecore.impl.ENotificationImpl; 18import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 19import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22 20
23import org.eclipse.emf.ecore.util.EObjectContainmentEList;
24import org.eclipse.emf.ecore.util.InternalEList;
25
26/** 21/**
27 * <!-- begin-user-doc --> 22 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Actor</b></em>'. 23 * An implementation of the model object '<em><b>Actor</b></em>'.
@@ -36,9 +31,11 @@ import org.eclipse.emf.ecore.util.InternalEList;
36 * <li>{@link crossingScenario.impl.ActorImpl#getLength <em>Length</em>}</li> 31 * <li>{@link crossingScenario.impl.ActorImpl#getLength <em>Length</em>}</li>
37 * <li>{@link crossingScenario.impl.ActorImpl#getWidth <em>Width</em>}</li> 32 * <li>{@link crossingScenario.impl.ActorImpl#getWidth <em>Width</em>}</li>
38 * <li>{@link crossingScenario.impl.ActorImpl#getXSpeed <em>XSpeed</em>}</li> 33 * <li>{@link crossingScenario.impl.ActorImpl#getXSpeed <em>XSpeed</em>}</li>
39 * <li>{@link crossingScenario.impl.ActorImpl#getRelations <em>Relations</em>}</li>
40 * <li>{@link crossingScenario.impl.ActorImpl#getPlacedOn <em>Placed On</em>}</li> 34 * <li>{@link crossingScenario.impl.ActorImpl#getPlacedOn <em>Placed On</em>}</li>
41 * <li>{@link crossingScenario.impl.ActorImpl#getYSpeed <em>YSpeed</em>}</li> 35 * <li>{@link crossingScenario.impl.ActorImpl#getYSpeed <em>YSpeed</em>}</li>
36 * <li>{@link crossingScenario.impl.ActorImpl#getDist_near <em>Dist near</em>}</li>
37 * <li>{@link crossingScenario.impl.ActorImpl#getDist_med <em>Dist med</em>}</li>
38 * <li>{@link crossingScenario.impl.ActorImpl#getDist_far <em>Dist far</em>}</li>
42 * </ul> 39 * </ul>
43 * 40 *
44 * @generated 41 * @generated
@@ -145,16 +142,6 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
145 protected double xSpeed = XSPEED_EDEFAULT; 142 protected double xSpeed = XSPEED_EDEFAULT;
146 143
147 /** 144 /**
148 * The cached value of the '{@link #getRelations() <em>Relations</em>}' containment reference list.
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @see #getRelations()
152 * @generated
153 * @ordered
154 */
155 protected EList<Relation> relations;
156
157 /**
158 * The cached value of the '{@link #getPlacedOn() <em>Placed On</em>}' reference. 145 * The cached value of the '{@link #getPlacedOn() <em>Placed On</em>}' reference.
159 * <!-- begin-user-doc --> 146 * <!-- begin-user-doc -->
160 * <!-- end-user-doc --> 147 * <!-- end-user-doc -->
@@ -324,19 +311,6 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
324 * @generated 311 * @generated
325 */ 312 */
326 @Override 313 @Override
327 public EList<Relation> getRelations() {
328 if (relations == null) {
329 relations = new EObjectContainmentEList<Relation>(Relation.class, this, CrossingScenarioPackage.ACTOR__RELATIONS);
330 }
331 return relations;
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 @Override
340 public Lane getPlacedOn() { 314 public Lane getPlacedOn() {
341 if (placedOn != null && placedOn.eIsProxy()) { 315 if (placedOn != null && placedOn.eIsProxy()) {
342 InternalEObject oldPlacedOn = (InternalEObject)placedOn; 316 InternalEObject oldPlacedOn = (InternalEObject)placedOn;
@@ -422,6 +396,48 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
422 * @generated 396 * @generated
423 */ 397 */
424 @Override 398 @Override
399 public EList<Actor> getDist_near() {
400 // TODO: implement this method to return the 'Dist near' reference list
401 // Ensure that you remove @generated or mark it @generated NOT
402 // The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
403 // so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
404 throw new UnsupportedOperationException();
405 }
406
407 /**
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @generated
411 */
412 @Override
413 public EList<Actor> getDist_med() {
414 // TODO: implement this method to return the 'Dist med' reference list
415 // Ensure that you remove @generated or mark it @generated NOT
416 // The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
417 // so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
418 throw new UnsupportedOperationException();
419 }
420
421 /**
422 * <!-- begin-user-doc -->
423 * <!-- end-user-doc -->
424 * @generated
425 */
426 @Override
427 public EList<Actor> getDist_far() {
428 // TODO: implement this method to return the 'Dist far' reference list
429 // Ensure that you remove @generated or mark it @generated NOT
430 // The list is expected to implement org.eclipse.emf.ecore.util.InternalEList and org.eclipse.emf.ecore.EStructuralFeature.Setting
431 // so it's likely that an appropriate subclass of org.eclipse.emf.ecore.util.EcoreEList should be used.
432 throw new UnsupportedOperationException();
433 }
434
435 /**
436 * <!-- begin-user-doc -->
437 * <!-- end-user-doc -->
438 * @generated
439 */
440 @Override
425 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 441 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
426 switch (featureID) { 442 switch (featureID) {
427 case CrossingScenarioPackage.ACTOR__PLACED_ON: 443 case CrossingScenarioPackage.ACTOR__PLACED_ON:
@@ -440,8 +456,6 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
440 @Override 456 @Override
441 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 457 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
442 switch (featureID) { 458 switch (featureID) {
443 case CrossingScenarioPackage.ACTOR__RELATIONS:
444 return ((InternalEList<?>)getRelations()).basicRemove(otherEnd, msgs);
445 case CrossingScenarioPackage.ACTOR__PLACED_ON: 459 case CrossingScenarioPackage.ACTOR__PLACED_ON:
446 return basicSetPlacedOn(null, msgs); 460 return basicSetPlacedOn(null, msgs);
447 } 461 }
@@ -466,13 +480,17 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
466 return getWidth(); 480 return getWidth();
467 case CrossingScenarioPackage.ACTOR__XSPEED: 481 case CrossingScenarioPackage.ACTOR__XSPEED:
468 return getXSpeed(); 482 return getXSpeed();
469 case CrossingScenarioPackage.ACTOR__RELATIONS:
470 return getRelations();
471 case CrossingScenarioPackage.ACTOR__PLACED_ON: 483 case CrossingScenarioPackage.ACTOR__PLACED_ON:
472 if (resolve) return getPlacedOn(); 484 if (resolve) return getPlacedOn();
473 return basicGetPlacedOn(); 485 return basicGetPlacedOn();
474 case CrossingScenarioPackage.ACTOR__YSPEED: 486 case CrossingScenarioPackage.ACTOR__YSPEED:
475 return getYSpeed(); 487 return getYSpeed();
488 case CrossingScenarioPackage.ACTOR__DIST_NEAR:
489 return getDist_near();
490 case CrossingScenarioPackage.ACTOR__DIST_MED:
491 return getDist_med();
492 case CrossingScenarioPackage.ACTOR__DIST_FAR:
493 return getDist_far();
476 } 494 }
477 return super.eGet(featureID, resolve, coreType); 495 return super.eGet(featureID, resolve, coreType);
478 } 496 }
@@ -501,16 +519,24 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
501 case CrossingScenarioPackage.ACTOR__XSPEED: 519 case CrossingScenarioPackage.ACTOR__XSPEED:
502 setXSpeed((Double)newValue); 520 setXSpeed((Double)newValue);
503 return; 521 return;
504 case CrossingScenarioPackage.ACTOR__RELATIONS:
505 getRelations().clear();
506 getRelations().addAll((Collection<? extends Relation>)newValue);
507 return;
508 case CrossingScenarioPackage.ACTOR__PLACED_ON: 522 case CrossingScenarioPackage.ACTOR__PLACED_ON:
509 setPlacedOn((Lane)newValue); 523 setPlacedOn((Lane)newValue);
510 return; 524 return;
511 case CrossingScenarioPackage.ACTOR__YSPEED: 525 case CrossingScenarioPackage.ACTOR__YSPEED:
512 setYSpeed((Double)newValue); 526 setYSpeed((Double)newValue);
513 return; 527 return;
528 case CrossingScenarioPackage.ACTOR__DIST_NEAR:
529 getDist_near().clear();
530 getDist_near().addAll((Collection<? extends Actor>)newValue);
531 return;
532 case CrossingScenarioPackage.ACTOR__DIST_MED:
533 getDist_med().clear();
534 getDist_med().addAll((Collection<? extends Actor>)newValue);
535 return;
536 case CrossingScenarioPackage.ACTOR__DIST_FAR:
537 getDist_far().clear();
538 getDist_far().addAll((Collection<? extends Actor>)newValue);
539 return;
514 } 540 }
515 super.eSet(featureID, newValue); 541 super.eSet(featureID, newValue);
516 } 542 }
@@ -538,15 +564,21 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
538 case CrossingScenarioPackage.ACTOR__XSPEED: 564 case CrossingScenarioPackage.ACTOR__XSPEED:
539 setXSpeed(XSPEED_EDEFAULT); 565 setXSpeed(XSPEED_EDEFAULT);
540 return; 566 return;
541 case CrossingScenarioPackage.ACTOR__RELATIONS:
542 getRelations().clear();
543 return;
544 case CrossingScenarioPackage.ACTOR__PLACED_ON: 567 case CrossingScenarioPackage.ACTOR__PLACED_ON:
545 setPlacedOn((Lane)null); 568 setPlacedOn((Lane)null);
546 return; 569 return;
547 case CrossingScenarioPackage.ACTOR__YSPEED: 570 case CrossingScenarioPackage.ACTOR__YSPEED:
548 setYSpeed(YSPEED_EDEFAULT); 571 setYSpeed(YSPEED_EDEFAULT);
549 return; 572 return;
573 case CrossingScenarioPackage.ACTOR__DIST_NEAR:
574 getDist_near().clear();
575 return;
576 case CrossingScenarioPackage.ACTOR__DIST_MED:
577 getDist_med().clear();
578 return;
579 case CrossingScenarioPackage.ACTOR__DIST_FAR:
580 getDist_far().clear();
581 return;
550 } 582 }
551 super.eUnset(featureID); 583 super.eUnset(featureID);
552 } 584 }
@@ -569,12 +601,16 @@ public abstract class ActorImpl extends MinimalEObjectImpl.Container implements
569 return width != WIDTH_EDEFAULT; 601 return width != WIDTH_EDEFAULT;
570 case CrossingScenarioPackage.ACTOR__XSPEED: 602 case CrossingScenarioPackage.ACTOR__XSPEED:
571 return xSpeed != XSPEED_EDEFAULT; 603 return xSpeed != XSPEED_EDEFAULT;
572 case CrossingScenarioPackage.ACTOR__RELATIONS:
573 return relations != null && !relations.isEmpty();
574 case CrossingScenarioPackage.ACTOR__PLACED_ON: 604 case CrossingScenarioPackage.ACTOR__PLACED_ON:
575 return placedOn != null; 605 return placedOn != null;
576 case CrossingScenarioPackage.ACTOR__YSPEED: 606 case CrossingScenarioPackage.ACTOR__YSPEED:
577 return ySpeed != YSPEED_EDEFAULT; 607 return ySpeed != YSPEED_EDEFAULT;
608 case CrossingScenarioPackage.ACTOR__DIST_NEAR:
609 return !getDist_near().isEmpty();
610 case CrossingScenarioPackage.ACTOR__DIST_MED:
611 return !getDist_med().isEmpty();
612 case CrossingScenarioPackage.ACTOR__DIST_FAR:
613 return !getDist_far().isEmpty();
578 } 614 }
579 return super.eIsSet(featureID); 615 return super.eIsSet(featureID);
580 } 616 }
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java
index ee407bc5..b6362cc2 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java
@@ -79,8 +79,6 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
79 @Override 79 @Override
80 public Object createFromString(EDataType eDataType, String initialValue) { 80 public Object createFromString(EDataType eDataType, String initialValue) {
81 switch (eDataType.getClassifierID()) { 81 switch (eDataType.getClassifierID()) {
82 case CrossingScenarioPackage.SIZE:
83 return createSizeFromString(eDataType, initialValue);
84 case CrossingScenarioPackage.DISTANCE: 82 case CrossingScenarioPackage.DISTANCE:
85 return createDistanceFromString(eDataType, initialValue); 83 return createDistanceFromString(eDataType, initialValue);
86 default: 84 default:
@@ -96,8 +94,6 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
96 @Override 94 @Override
97 public String convertToString(EDataType eDataType, Object instanceValue) { 95 public String convertToString(EDataType eDataType, Object instanceValue) {
98 switch (eDataType.getClassifierID()) { 96 switch (eDataType.getClassifierID()) {
99 case CrossingScenarioPackage.SIZE:
100 return convertSizeToString(eDataType, instanceValue);
101 case CrossingScenarioPackage.DISTANCE: 97 case CrossingScenarioPackage.DISTANCE:
102 return convertDistanceToString(eDataType, instanceValue); 98 return convertDistanceToString(eDataType, instanceValue);
103 default: 99 default:
@@ -209,26 +205,6 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
209 * <!-- end-user-doc --> 205 * <!-- end-user-doc -->
210 * @generated 206 * @generated
211 */ 207 */
212 public Size createSizeFromString(EDataType eDataType, String initialValue) {
213 Size result = Size.get(initialValue);
214 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
215 return result;
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 public String convertSizeToString(EDataType eDataType, Object instanceValue) {
224 return instanceValue == null ? null : instanceValue.toString();
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 public Distance createDistanceFromString(EDataType eDataType, String initialValue) { 208 public Distance createDistanceFromString(EDataType eDataType, String initialValue) {
233 Distance result = Distance.get(initialValue); 209 Distance result = Distance.get(initialValue);
234 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); 210 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java
index 5dd65a39..b2b0d579 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java
@@ -6,9 +6,7 @@ import crossingScenario.Actor;
6import crossingScenario.CrossingScenario; 6import crossingScenario.CrossingScenario;
7import crossingScenario.CrossingScenarioPackage; 7import crossingScenario.CrossingScenarioPackage;
8import crossingScenario.Lane; 8import crossingScenario.Lane;
9 9import crossingScenario.Relation;
10import crossingScenario.Lane_Horizontal;
11import crossingScenario.Lane_Vertical;
12import java.util.Collection; 10import java.util.Collection;
13 11
14import org.eclipse.emf.common.notify.Notification; 12import org.eclipse.emf.common.notify.Notification;
@@ -38,8 +36,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
38 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getActors <em>Actors</em>}</li> 36 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getActors <em>Actors</em>}</li>
39 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getLanes <em>Lanes</em>}</li> 37 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getLanes <em>Lanes</em>}</li>
40 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getMaxTime <em>Max Time</em>}</li> 38 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getMaxTime <em>Max Time</em>}</li>
41 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getHorizontal_head <em>Horizontal head</em>}</li> 39 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getRelations <em>Relations</em>}</li>
42 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getVertical_head <em>Vertical head</em>}</li>
43 * </ul> 40 * </ul>
44 * 41 *
45 * @generated 42 * @generated
@@ -126,24 +123,14 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
126 protected double maxTime = MAX_TIME_EDEFAULT; 123 protected double maxTime = MAX_TIME_EDEFAULT;
127 124
128 /** 125 /**
129 * The cached value of the '{@link #getHorizontal_head() <em>Horizontal head</em>}' reference. 126 * The cached value of the '{@link #getRelations() <em>Relations</em>}' containment reference list.
130 * <!-- begin-user-doc --> 127 * <!-- begin-user-doc -->
131 * <!-- end-user-doc --> 128 * <!-- end-user-doc -->
132 * @see #getHorizontal_head() 129 * @see #getRelations()
133 * @generated 130 * @generated
134 * @ordered 131 * @ordered
135 */ 132 */
136 protected Lane_Horizontal horizontal_head; 133 protected EList<Relation> relations;
137
138 /**
139 * The cached value of the '{@link #getVertical_head() <em>Vertical head</em>}' reference.
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @see #getVertical_head()
143 * @generated
144 * @ordered
145 */
146 protected Lane_Vertical vertical_head;
147 134
148 /** 135 /**
149 * <!-- begin-user-doc --> 136 * <!-- begin-user-doc -->
@@ -265,78 +252,11 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
265 * @generated 252 * @generated
266 */ 253 */
267 @Override 254 @Override
268 public Lane_Horizontal getHorizontal_head() { 255 public EList<Relation> getRelations() {
269 if (horizontal_head != null && horizontal_head.eIsProxy()) { 256 if (relations == null) {
270 InternalEObject oldHorizontal_head = (InternalEObject)horizontal_head; 257 relations = new EObjectContainmentEList<Relation>(Relation.class, this, CrossingScenarioPackage.CROSSING_SCENARIO__RELATIONS);
271 horizontal_head = (Lane_Horizontal)eResolveProxy(oldHorizontal_head);
272 if (horizontal_head != oldHorizontal_head) {
273 if (eNotificationRequired())
274 eNotify(new ENotificationImpl(this, Notification.RESOLVE, CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD, oldHorizontal_head, horizontal_head));
275 }
276 } 258 }
277 return horizontal_head; 259 return relations;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 public Lane_Horizontal basicGetHorizontal_head() {
286 return horizontal_head;
287 }
288
289 /**
290 * <!-- begin-user-doc -->
291 * <!-- end-user-doc -->
292 * @generated
293 */
294 @Override
295 public void setHorizontal_head(Lane_Horizontal newHorizontal_head) {
296 Lane_Horizontal oldHorizontal_head = horizontal_head;
297 horizontal_head = newHorizontal_head;
298 if (eNotificationRequired())
299 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD, oldHorizontal_head, horizontal_head));
300 }
301
302 /**
303 * <!-- begin-user-doc -->
304 * <!-- end-user-doc -->
305 * @generated
306 */
307 @Override
308 public Lane_Vertical getVertical_head() {
309 if (vertical_head != null && vertical_head.eIsProxy()) {
310 InternalEObject oldVertical_head = (InternalEObject)vertical_head;
311 vertical_head = (Lane_Vertical)eResolveProxy(oldVertical_head);
312 if (vertical_head != oldVertical_head) {
313 if (eNotificationRequired())
314 eNotify(new ENotificationImpl(this, Notification.RESOLVE, CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD, oldVertical_head, vertical_head));
315 }
316 }
317 return vertical_head;
318 }
319
320 /**
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @generated
324 */
325 public Lane_Vertical basicGetVertical_head() {
326 return vertical_head;
327 }
328
329 /**
330 * <!-- begin-user-doc -->
331 * <!-- end-user-doc -->
332 * @generated
333 */
334 @Override
335 public void setVertical_head(Lane_Vertical newVertical_head) {
336 Lane_Vertical oldVertical_head = vertical_head;
337 vertical_head = newVertical_head;
338 if (eNotificationRequired())
339 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD, oldVertical_head, vertical_head));
340 } 260 }
341 261
342 /** 262 /**
@@ -351,6 +271,8 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
351 return ((InternalEList<?>)getActors()).basicRemove(otherEnd, msgs); 271 return ((InternalEList<?>)getActors()).basicRemove(otherEnd, msgs);
352 case CrossingScenarioPackage.CROSSING_SCENARIO__LANES: 272 case CrossingScenarioPackage.CROSSING_SCENARIO__LANES:
353 return ((InternalEList<?>)getLanes()).basicRemove(otherEnd, msgs); 273 return ((InternalEList<?>)getLanes()).basicRemove(otherEnd, msgs);
274 case CrossingScenarioPackage.CROSSING_SCENARIO__RELATIONS:
275 return ((InternalEList<?>)getRelations()).basicRemove(otherEnd, msgs);
354 } 276 }
355 return super.eInverseRemove(otherEnd, featureID, msgs); 277 return super.eInverseRemove(otherEnd, featureID, msgs);
356 } 278 }
@@ -373,12 +295,8 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
373 return getLanes(); 295 return getLanes();
374 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 296 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
375 return getMaxTime(); 297 return getMaxTime();
376 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD: 298 case CrossingScenarioPackage.CROSSING_SCENARIO__RELATIONS:
377 if (resolve) return getHorizontal_head(); 299 return getRelations();
378 return basicGetHorizontal_head();
379 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
380 if (resolve) return getVertical_head();
381 return basicGetVertical_head();
382 } 300 }
383 return super.eGet(featureID, resolve, coreType); 301 return super.eGet(featureID, resolve, coreType);
384 } 302 }
@@ -409,11 +327,9 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
409 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 327 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
410 setMaxTime((Double)newValue); 328 setMaxTime((Double)newValue);
411 return; 329 return;
412 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD: 330 case CrossingScenarioPackage.CROSSING_SCENARIO__RELATIONS:
413 setHorizontal_head((Lane_Horizontal)newValue); 331 getRelations().clear();
414 return; 332 getRelations().addAll((Collection<? extends Relation>)newValue);
415 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
416 setVertical_head((Lane_Vertical)newValue);
417 return; 333 return;
418 } 334 }
419 super.eSet(featureID, newValue); 335 super.eSet(featureID, newValue);
@@ -442,11 +358,8 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
442 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 358 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
443 setMaxTime(MAX_TIME_EDEFAULT); 359 setMaxTime(MAX_TIME_EDEFAULT);
444 return; 360 return;
445 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD: 361 case CrossingScenarioPackage.CROSSING_SCENARIO__RELATIONS:
446 setHorizontal_head((Lane_Horizontal)null); 362 getRelations().clear();
447 return;
448 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
449 setVertical_head((Lane_Vertical)null);
450 return; 363 return;
451 } 364 }
452 super.eUnset(featureID); 365 super.eUnset(featureID);
@@ -470,10 +383,8 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
470 return lanes != null && !lanes.isEmpty(); 383 return lanes != null && !lanes.isEmpty();
471 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 384 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
472 return maxTime != MAX_TIME_EDEFAULT; 385 return maxTime != MAX_TIME_EDEFAULT;
473 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD: 386 case CrossingScenarioPackage.CROSSING_SCENARIO__RELATIONS:
474 return horizontal_head != null; 387 return relations != null && !relations.isEmpty();
475 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
476 return vertical_head != null;
477 } 388 }
478 return super.eIsSet(featureID); 389 return super.eIsSet(featureID);
479 } 390 }
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java
index 41c1bdd0..b8261c86 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java
@@ -15,7 +15,6 @@ import crossingScenario.Lane_Vertical;
15import crossingScenario.Pedestrian; 15import crossingScenario.Pedestrian;
16import crossingScenario.Relation; 16import crossingScenario.Relation;
17import crossingScenario.SeparationDistance; 17import crossingScenario.SeparationDistance;
18import crossingScenario.Size;
19import crossingScenario.SpatialRelation; 18import crossingScenario.SpatialRelation;
20import crossingScenario.TemporalRelation; 19import crossingScenario.TemporalRelation;
21import crossingScenario.Vehicle; 20import crossingScenario.Vehicle;
@@ -139,13 +138,6 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
139 * <!-- end-user-doc --> 138 * <!-- end-user-doc -->
140 * @generated 139 * @generated
141 */ 140 */
142 private EEnum sizeEEnum = null;
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 private EEnum distanceEEnum = null; 141 private EEnum distanceEEnum = null;
150 142
151 /** 143 /**
@@ -275,7 +267,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
275 * @generated 267 * @generated
276 */ 268 */
277 @Override 269 @Override
278 public EReference getCrossingScenario_Horizontal_head() { 270 public EReference getCrossingScenario_Relations() {
279 return (EReference)crossingScenarioEClass.getEStructuralFeatures().get(5); 271 return (EReference)crossingScenarioEClass.getEStructuralFeatures().get(5);
280 } 272 }
281 273
@@ -285,16 +277,6 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
285 * @generated 277 * @generated
286 */ 278 */
287 @Override 279 @Override
288 public EReference getCrossingScenario_Vertical_head() {
289 return (EReference)crossingScenarioEClass.getEStructuralFeatures().get(6);
290 }
291
292 /**
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @generated
296 */
297 @Override
298 public EClass getLane() { 280 public EClass getLane() {
299 return laneEClass; 281 return laneEClass;
300 } 282 }
@@ -305,7 +287,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
305 * @generated 287 * @generated
306 */ 288 */
307 @Override 289 @Override
308 public EAttribute getLane_Width() { 290 public EAttribute getLane_ReferenceCoord() {
309 return (EAttribute)laneEClass.getEStructuralFeatures().get(0); 291 return (EAttribute)laneEClass.getEStructuralFeatures().get(0);
310 } 292 }
311 293
@@ -315,8 +297,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
315 * @generated 297 * @generated
316 */ 298 */
317 @Override 299 @Override
318 public EAttribute getLane_ReferenceCoord() { 300 public EReference getLane_Actors() {
319 return (EAttribute)laneEClass.getEStructuralFeatures().get(1); 301 return (EReference)laneEClass.getEStructuralFeatures().get(1);
320 } 302 }
321 303
322 /** 304 /**
@@ -325,8 +307,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
325 * @generated 307 * @generated
326 */ 308 */
327 @Override 309 @Override
328 public EReference getLane_PrevLane() { 310 public EClass getActor() {
329 return (EReference)laneEClass.getEStructuralFeatures().get(2); 311 return actorEClass;
330 } 312 }
331 313
332 /** 314 /**
@@ -335,8 +317,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
335 * @generated 317 * @generated
336 */ 318 */
337 @Override 319 @Override
338 public EReference getLane_Actors() { 320 public EAttribute getActor_XPos() {
339 return (EReference)laneEClass.getEStructuralFeatures().get(3); 321 return (EAttribute)actorEClass.getEStructuralFeatures().get(0);
340 } 322 }
341 323
342 /** 324 /**
@@ -345,8 +327,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
345 * @generated 327 * @generated
346 */ 328 */
347 @Override 329 @Override
348 public EAttribute getLane_NumWidth() { 330 public EAttribute getActor_YPos() {
349 return (EAttribute)laneEClass.getEStructuralFeatures().get(4); 331 return (EAttribute)actorEClass.getEStructuralFeatures().get(1);
350 } 332 }
351 333
352 /** 334 /**
@@ -355,8 +337,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
355 * @generated 337 * @generated
356 */ 338 */
357 @Override 339 @Override
358 public EClass getActor() { 340 public EAttribute getActor_Length() {
359 return actorEClass; 341 return (EAttribute)actorEClass.getEStructuralFeatures().get(2);
360 } 342 }
361 343
362 /** 344 /**
@@ -365,8 +347,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
365 * @generated 347 * @generated
366 */ 348 */
367 @Override 349 @Override
368 public EAttribute getActor_XPos() { 350 public EAttribute getActor_Width() {
369 return (EAttribute)actorEClass.getEStructuralFeatures().get(0); 351 return (EAttribute)actorEClass.getEStructuralFeatures().get(3);
370 } 352 }
371 353
372 /** 354 /**
@@ -375,8 +357,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
375 * @generated 357 * @generated
376 */ 358 */
377 @Override 359 @Override
378 public EAttribute getActor_YPos() { 360 public EAttribute getActor_XSpeed() {
379 return (EAttribute)actorEClass.getEStructuralFeatures().get(1); 361 return (EAttribute)actorEClass.getEStructuralFeatures().get(4);
380 } 362 }
381 363
382 /** 364 /**
@@ -385,8 +367,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
385 * @generated 367 * @generated
386 */ 368 */
387 @Override 369 @Override
388 public EAttribute getActor_Length() { 370 public EReference getActor_PlacedOn() {
389 return (EAttribute)actorEClass.getEStructuralFeatures().get(2); 371 return (EReference)actorEClass.getEStructuralFeatures().get(5);
390 } 372 }
391 373
392 /** 374 /**
@@ -395,8 +377,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
395 * @generated 377 * @generated
396 */ 378 */
397 @Override 379 @Override
398 public EAttribute getActor_Width() { 380 public EAttribute getActor_YSpeed() {
399 return (EAttribute)actorEClass.getEStructuralFeatures().get(3); 381 return (EAttribute)actorEClass.getEStructuralFeatures().get(6);
400 } 382 }
401 383
402 /** 384 /**
@@ -405,8 +387,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
405 * @generated 387 * @generated
406 */ 388 */
407 @Override 389 @Override
408 public EAttribute getActor_XSpeed() { 390 public EReference getActor_Dist_near() {
409 return (EAttribute)actorEClass.getEStructuralFeatures().get(4); 391 return (EReference)actorEClass.getEStructuralFeatures().get(7);
410 } 392 }
411 393
412 /** 394 /**
@@ -415,8 +397,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
415 * @generated 397 * @generated
416 */ 398 */
417 @Override 399 @Override
418 public EReference getActor_Relations() { 400 public EReference getActor_Dist_med() {
419 return (EReference)actorEClass.getEStructuralFeatures().get(5); 401 return (EReference)actorEClass.getEStructuralFeatures().get(8);
420 } 402 }
421 403
422 /** 404 /**
@@ -425,8 +407,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
425 * @generated 407 * @generated
426 */ 408 */
427 @Override 409 @Override
428 public EReference getActor_PlacedOn() { 410 public EReference getActor_Dist_far() {
429 return (EReference)actorEClass.getEStructuralFeatures().get(6); 411 return (EReference)actorEClass.getEStructuralFeatures().get(9);
430 } 412 }
431 413
432 /** 414 /**
@@ -435,8 +417,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
435 * @generated 417 * @generated
436 */ 418 */
437 @Override 419 @Override
438 public EAttribute getActor_YSpeed() { 420 public EClass getRelation() {
439 return (EAttribute)actorEClass.getEStructuralFeatures().get(7); 421 return relationEClass;
440 } 422 }
441 423
442 /** 424 /**
@@ -445,8 +427,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
445 * @generated 427 * @generated
446 */ 428 */
447 @Override 429 @Override
448 public EClass getRelation() { 430 public EReference getRelation_Target() {
449 return relationEClass; 431 return (EReference)relationEClass.getEStructuralFeatures().get(0);
450 } 432 }
451 433
452 /** 434 /**
@@ -455,8 +437,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
455 * @generated 437 * @generated
456 */ 438 */
457 @Override 439 @Override
458 public EReference getRelation_Target() { 440 public EReference getRelation_Source() {
459 return (EReference)relationEClass.getEStructuralFeatures().get(0); 441 return (EReference)relationEClass.getEStructuralFeatures().get(1);
460 } 442 }
461 443
462 /** 444 /**
@@ -595,16 +577,6 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
595 * @generated 577 * @generated
596 */ 578 */
597 @Override 579 @Override
598 public EEnum getSize() {
599 return sizeEEnum;
600 }
601
602 /**
603 * <!-- begin-user-doc -->
604 * <!-- end-user-doc -->
605 * @generated
606 */
607 @Override
608 public EEnum getDistance() { 580 public EEnum getDistance() {
609 return distanceEEnum; 581 return distanceEEnum;
610 } 582 }
@@ -644,15 +616,11 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
644 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__ACTORS); 616 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__ACTORS);
645 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__LANES); 617 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__LANES);
646 createEAttribute(crossingScenarioEClass, CROSSING_SCENARIO__MAX_TIME); 618 createEAttribute(crossingScenarioEClass, CROSSING_SCENARIO__MAX_TIME);
647 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__HORIZONTAL_HEAD); 619 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__RELATIONS);
648 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__VERTICAL_HEAD);
649 620
650 laneEClass = createEClass(LANE); 621 laneEClass = createEClass(LANE);
651 createEAttribute(laneEClass, LANE__WIDTH);
652 createEAttribute(laneEClass, LANE__REFERENCE_COORD); 622 createEAttribute(laneEClass, LANE__REFERENCE_COORD);
653 createEReference(laneEClass, LANE__PREV_LANE);
654 createEReference(laneEClass, LANE__ACTORS); 623 createEReference(laneEClass, LANE__ACTORS);
655 createEAttribute(laneEClass, LANE__NUM_WIDTH);
656 624
657 actorEClass = createEClass(ACTOR); 625 actorEClass = createEClass(ACTOR);
658 createEAttribute(actorEClass, ACTOR__XPOS); 626 createEAttribute(actorEClass, ACTOR__XPOS);
@@ -660,12 +628,15 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
660 createEAttribute(actorEClass, ACTOR__LENGTH); 628 createEAttribute(actorEClass, ACTOR__LENGTH);
661 createEAttribute(actorEClass, ACTOR__WIDTH); 629 createEAttribute(actorEClass, ACTOR__WIDTH);
662 createEAttribute(actorEClass, ACTOR__XSPEED); 630 createEAttribute(actorEClass, ACTOR__XSPEED);
663 createEReference(actorEClass, ACTOR__RELATIONS);
664 createEReference(actorEClass, ACTOR__PLACED_ON); 631 createEReference(actorEClass, ACTOR__PLACED_ON);
665 createEAttribute(actorEClass, ACTOR__YSPEED); 632 createEAttribute(actorEClass, ACTOR__YSPEED);
633 createEReference(actorEClass, ACTOR__DIST_NEAR);
634 createEReference(actorEClass, ACTOR__DIST_MED);
635 createEReference(actorEClass, ACTOR__DIST_FAR);
666 636
667 relationEClass = createEClass(RELATION); 637 relationEClass = createEClass(RELATION);
668 createEReference(relationEClass, RELATION__TARGET); 638 createEReference(relationEClass, RELATION__TARGET);
639 createEReference(relationEClass, RELATION__SOURCE);
669 640
670 spatialRelationEClass = createEClass(SPATIAL_RELATION); 641 spatialRelationEClass = createEClass(SPATIAL_RELATION);
671 642
@@ -691,7 +662,6 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
691 lane_VerticalEClass = createEClass(LANE_VERTICAL); 662 lane_VerticalEClass = createEClass(LANE_VERTICAL);
692 663
693 // Create enums 664 // Create enums
694 sizeEEnum = createEEnum(SIZE);
695 distanceEEnum = createEEnum(DISTANCE); 665 distanceEEnum = createEEnum(DISTANCE);
696 } 666 }
697 667
@@ -741,15 +711,11 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
741 initEReference(getCrossingScenario_Actors(), this.getActor(), null, "actors", null, 0, -1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 711 initEReference(getCrossingScenario_Actors(), this.getActor(), null, "actors", null, 0, -1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
742 initEReference(getCrossingScenario_Lanes(), this.getLane(), null, "lanes", null, 0, -1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 712 initEReference(getCrossingScenario_Lanes(), this.getLane(), null, "lanes", null, 0, -1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
743 initEAttribute(getCrossingScenario_MaxTime(), ecorePackage.getEDouble(), "maxTime", null, 0, 1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 713 initEAttribute(getCrossingScenario_MaxTime(), ecorePackage.getEDouble(), "maxTime", null, 0, 1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
744 initEReference(getCrossingScenario_Horizontal_head(), this.getLane_Horizontal(), null, "horizontal_head", null, 1, 1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 714 initEReference(getCrossingScenario_Relations(), this.getRelation(), null, "relations", null, 0, -1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
745 initEReference(getCrossingScenario_Vertical_head(), this.getLane_Vertical(), null, "vertical_head", null, 1, 1, CrossingScenario.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
746 715
747 initEClass(laneEClass, Lane.class, "Lane", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 716 initEClass(laneEClass, Lane.class, "Lane", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
748 initEAttribute(getLane_Width(), this.getSize(), "width", null, 1, 1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
749 initEAttribute(getLane_ReferenceCoord(), ecorePackage.getEDouble(), "referenceCoord", null, 1, 1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 717 initEAttribute(getLane_ReferenceCoord(), ecorePackage.getEDouble(), "referenceCoord", null, 1, 1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
750 initEReference(getLane_PrevLane(), this.getLane(), null, "prevLane", null, 0, 1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
751 initEReference(getLane_Actors(), this.getActor(), this.getActor_PlacedOn(), "actors", null, 0, -1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 718 initEReference(getLane_Actors(), this.getActor(), this.getActor_PlacedOn(), "actors", null, 0, -1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
752 initEAttribute(getLane_NumWidth(), ecorePackage.getEDouble(), "numWidth", "0.0", 1, 1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
753 719
754 initEClass(actorEClass, Actor.class, "Actor", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 720 initEClass(actorEClass, Actor.class, "Actor", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
755 initEAttribute(getActor_XPos(), ecorePackage.getEDouble(), "xPos", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 721 initEAttribute(getActor_XPos(), ecorePackage.getEDouble(), "xPos", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -757,12 +723,15 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
757 initEAttribute(getActor_Length(), ecorePackage.getEDouble(), "length", "0.0", 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 723 initEAttribute(getActor_Length(), ecorePackage.getEDouble(), "length", "0.0", 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
758 initEAttribute(getActor_Width(), ecorePackage.getEDouble(), "width", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 724 initEAttribute(getActor_Width(), ecorePackage.getEDouble(), "width", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
759 initEAttribute(getActor_XSpeed(), ecorePackage.getEDouble(), "xSpeed", "0.0", 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 725 initEAttribute(getActor_XSpeed(), ecorePackage.getEDouble(), "xSpeed", "0.0", 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
760 initEReference(getActor_Relations(), this.getRelation(), null, "relations", null, 0, -1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
761 initEReference(getActor_PlacedOn(), this.getLane(), this.getLane_Actors(), "placedOn", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 726 initEReference(getActor_PlacedOn(), this.getLane(), this.getLane_Actors(), "placedOn", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
762 initEAttribute(getActor_YSpeed(), ecorePackage.getEDouble(), "ySpeed", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 727 initEAttribute(getActor_YSpeed(), ecorePackage.getEDouble(), "ySpeed", null, 1, 1, Actor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
728 initEReference(getActor_Dist_near(), this.getActor(), null, "dist_near", null, 0, -1, Actor.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
729 initEReference(getActor_Dist_med(), this.getActor(), null, "dist_med", null, 0, -1, Actor.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
730 initEReference(getActor_Dist_far(), this.getActor(), null, "dist_far", null, 0, -1, Actor.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
763 731
764 initEClass(relationEClass, Relation.class, "Relation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 732 initEClass(relationEClass, Relation.class, "Relation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
765 initEReference(getRelation_Target(), this.getActor(), null, "target", null, 1, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 733 initEReference(getRelation_Target(), this.getActor(), null, "target", null, 1, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
734 initEReference(getRelation_Source(), this.getActor(), null, "source", null, 1, 1, Relation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
766 735
767 initEClass(spatialRelationEClass, SpatialRelation.class, "SpatialRelation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 736 initEClass(spatialRelationEClass, SpatialRelation.class, "SpatialRelation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
768 737
@@ -788,11 +757,6 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
788 initEClass(lane_VerticalEClass, Lane_Vertical.class, "Lane_Vertical", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 757 initEClass(lane_VerticalEClass, Lane_Vertical.class, "Lane_Vertical", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
789 758
790 // Initialize enums and add enum literals 759 // Initialize enums and add enum literals
791 initEEnum(sizeEEnum, Size.class, "Size");
792 addEEnumLiteral(sizeEEnum, Size.SSMALL);
793 addEEnumLiteral(sizeEEnum, Size.SMED);
794 addEEnumLiteral(sizeEEnum, Size.SLARGE);
795
796 initEEnum(distanceEEnum, Distance.class, "Distance"); 760 initEEnum(distanceEEnum, Distance.class, "Distance");
797 addEEnumLiteral(distanceEEnum, Distance.DNEAR); 761 addEEnumLiteral(distanceEEnum, Distance.DNEAR);
798 addEEnumLiteral(distanceEEnum, Distance.DMED); 762 addEEnumLiteral(distanceEEnum, Distance.DMED);
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java
index c0a25d6e..be316759 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java
@@ -5,8 +5,6 @@ package crossingScenario.impl;
5import crossingScenario.Actor; 5import crossingScenario.Actor;
6import crossingScenario.CrossingScenarioPackage; 6import crossingScenario.CrossingScenarioPackage;
7import crossingScenario.Lane; 7import crossingScenario.Lane;
8import crossingScenario.Size;
9
10import java.util.Collection; 8import java.util.Collection;
11 9
12import org.eclipse.emf.common.notify.Notification; 10import org.eclipse.emf.common.notify.Notification;
@@ -31,37 +29,14 @@ import org.eclipse.emf.ecore.util.InternalEList;
31 * The following features are implemented: 29 * The following features are implemented:
32 * </p> 30 * </p>
33 * <ul> 31 * <ul>
34 * <li>{@link crossingScenario.impl.LaneImpl#getWidth <em>Width</em>}</li>
35 * <li>{@link crossingScenario.impl.LaneImpl#getReferenceCoord <em>Reference Coord</em>}</li> 32 * <li>{@link crossingScenario.impl.LaneImpl#getReferenceCoord <em>Reference Coord</em>}</li>
36 * <li>{@link crossingScenario.impl.LaneImpl#getPrevLane <em>Prev Lane</em>}</li>
37 * <li>{@link crossingScenario.impl.LaneImpl#getActors <em>Actors</em>}</li> 33 * <li>{@link crossingScenario.impl.LaneImpl#getActors <em>Actors</em>}</li>
38 * <li>{@link crossingScenario.impl.LaneImpl#getNumWidth <em>Num Width</em>}</li>
39 * </ul> 34 * </ul>
40 * 35 *
41 * @generated 36 * @generated
42 */ 37 */
43public abstract class LaneImpl extends MinimalEObjectImpl.Container implements Lane { 38public abstract class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
44 /** 39 /**
45 * The default value of the '{@link #getWidth() <em>Width</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getWidth()
49 * @generated
50 * @ordered
51 */
52 protected static final Size WIDTH_EDEFAULT = Size.SSMALL;
53
54 /**
55 * The cached value of the '{@link #getWidth() <em>Width</em>}' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getWidth()
59 * @generated
60 * @ordered
61 */
62 protected Size width = WIDTH_EDEFAULT;
63
64 /**
65 * The default value of the '{@link #getReferenceCoord() <em>Reference Coord</em>}' attribute. 40 * The default value of the '{@link #getReferenceCoord() <em>Reference Coord</em>}' attribute.
66 * <!-- begin-user-doc --> 41 * <!-- begin-user-doc -->
67 * <!-- end-user-doc --> 42 * <!-- end-user-doc -->
@@ -82,16 +57,6 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
82 protected double referenceCoord = REFERENCE_COORD_EDEFAULT; 57 protected double referenceCoord = REFERENCE_COORD_EDEFAULT;
83 58
84 /** 59 /**
85 * The cached value of the '{@link #getPrevLane() <em>Prev Lane</em>}' reference.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @see #getPrevLane()
89 * @generated
90 * @ordered
91 */
92 protected Lane prevLane;
93
94 /**
95 * The cached value of the '{@link #getActors() <em>Actors</em>}' reference list. 60 * The cached value of the '{@link #getActors() <em>Actors</em>}' reference list.
96 * <!-- begin-user-doc --> 61 * <!-- begin-user-doc -->
97 * <!-- end-user-doc --> 62 * <!-- end-user-doc -->
@@ -102,26 +67,6 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
102 protected EList<Actor> actors; 67 protected EList<Actor> actors;
103 68
104 /** 69 /**
105 * The default value of the '{@link #getNumWidth() <em>Num Width</em>}' attribute.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @see #getNumWidth()
109 * @generated
110 * @ordered
111 */
112 protected static final double NUM_WIDTH_EDEFAULT = 0.0;
113
114 /**
115 * The cached value of the '{@link #getNumWidth() <em>Num Width</em>}' attribute.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see #getNumWidth()
119 * @generated
120 * @ordered
121 */
122 protected double numWidth = NUM_WIDTH_EDEFAULT;
123
124 /**
125 * <!-- begin-user-doc --> 70 * <!-- begin-user-doc -->
126 * <!-- end-user-doc --> 71 * <!-- end-user-doc -->
127 * @generated 72 * @generated
@@ -146,29 +91,6 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
146 * @generated 91 * @generated
147 */ 92 */
148 @Override 93 @Override
149 public Size getWidth() {
150 return width;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 @Override
159 public void setWidth(Size newWidth) {
160 Size oldWidth = width;
161 width = newWidth == null ? WIDTH_EDEFAULT : newWidth;
162 if (eNotificationRequired())
163 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.LANE__WIDTH, oldWidth, width));
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public double getReferenceCoord() { 94 public double getReferenceCoord() {
173 return referenceCoord; 95 return referenceCoord;
174 } 96 }
@@ -192,46 +114,6 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
192 * @generated 114 * @generated
193 */ 115 */
194 @Override 116 @Override
195 public Lane getPrevLane() {
196 if (prevLane != null && prevLane.eIsProxy()) {
197 InternalEObject oldPrevLane = (InternalEObject)prevLane;
198 prevLane = (Lane)eResolveProxy(oldPrevLane);
199 if (prevLane != oldPrevLane) {
200 if (eNotificationRequired())
201 eNotify(new ENotificationImpl(this, Notification.RESOLVE, CrossingScenarioPackage.LANE__PREV_LANE, oldPrevLane, prevLane));
202 }
203 }
204 return prevLane;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 public Lane basicGetPrevLane() {
213 return prevLane;
214 }
215
216 /**
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 */
221 @Override
222 public void setPrevLane(Lane newPrevLane) {
223 Lane oldPrevLane = prevLane;
224 prevLane = newPrevLane;
225 if (eNotificationRequired())
226 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.LANE__PREV_LANE, oldPrevLane, prevLane));
227 }
228
229 /**
230 * <!-- begin-user-doc -->
231 * <!-- end-user-doc -->
232 * @generated
233 */
234 @Override
235 public EList<Actor> getActors() { 117 public EList<Actor> getActors() {
236 if (actors == null) { 118 if (actors == null) {
237 actors = new EObjectWithInverseResolvingEList<Actor>(Actor.class, this, CrossingScenarioPackage.LANE__ACTORS, CrossingScenarioPackage.ACTOR__PLACED_ON); 119 actors = new EObjectWithInverseResolvingEList<Actor>(Actor.class, this, CrossingScenarioPackage.LANE__ACTORS, CrossingScenarioPackage.ACTOR__PLACED_ON);
@@ -244,29 +126,6 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
244 * <!-- end-user-doc --> 126 * <!-- end-user-doc -->
245 * @generated 127 * @generated
246 */ 128 */
247 @Override
248 public double getNumWidth() {
249 return numWidth;
250 }
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 @Override
258 public void setNumWidth(double newNumWidth) {
259 double oldNumWidth = numWidth;
260 numWidth = newNumWidth;
261 if (eNotificationRequired())
262 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.LANE__NUM_WIDTH, oldNumWidth, numWidth));
263 }
264
265 /**
266 * <!-- begin-user-doc -->
267 * <!-- end-user-doc -->
268 * @generated
269 */
270 @SuppressWarnings("unchecked") 129 @SuppressWarnings("unchecked")
271 @Override 130 @Override
272 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 131 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
@@ -299,17 +158,10 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
299 @Override 158 @Override
300 public Object eGet(int featureID, boolean resolve, boolean coreType) { 159 public Object eGet(int featureID, boolean resolve, boolean coreType) {
301 switch (featureID) { 160 switch (featureID) {
302 case CrossingScenarioPackage.LANE__WIDTH:
303 return getWidth();
304 case CrossingScenarioPackage.LANE__REFERENCE_COORD: 161 case CrossingScenarioPackage.LANE__REFERENCE_COORD:
305 return getReferenceCoord(); 162 return getReferenceCoord();
306 case CrossingScenarioPackage.LANE__PREV_LANE:
307 if (resolve) return getPrevLane();
308 return basicGetPrevLane();
309 case CrossingScenarioPackage.LANE__ACTORS: 163 case CrossingScenarioPackage.LANE__ACTORS:
310 return getActors(); 164 return getActors();
311 case CrossingScenarioPackage.LANE__NUM_WIDTH:
312 return getNumWidth();
313 } 165 }
314 return super.eGet(featureID, resolve, coreType); 166 return super.eGet(featureID, resolve, coreType);
315 } 167 }
@@ -323,22 +175,13 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
323 @Override 175 @Override
324 public void eSet(int featureID, Object newValue) { 176 public void eSet(int featureID, Object newValue) {
325 switch (featureID) { 177 switch (featureID) {
326 case CrossingScenarioPackage.LANE__WIDTH:
327 setWidth((Size)newValue);
328 return;
329 case CrossingScenarioPackage.LANE__REFERENCE_COORD: 178 case CrossingScenarioPackage.LANE__REFERENCE_COORD:
330 setReferenceCoord((Double)newValue); 179 setReferenceCoord((Double)newValue);
331 return; 180 return;
332 case CrossingScenarioPackage.LANE__PREV_LANE:
333 setPrevLane((Lane)newValue);
334 return;
335 case CrossingScenarioPackage.LANE__ACTORS: 181 case CrossingScenarioPackage.LANE__ACTORS:
336 getActors().clear(); 182 getActors().clear();
337 getActors().addAll((Collection<? extends Actor>)newValue); 183 getActors().addAll((Collection<? extends Actor>)newValue);
338 return; 184 return;
339 case CrossingScenarioPackage.LANE__NUM_WIDTH:
340 setNumWidth((Double)newValue);
341 return;
342 } 185 }
343 super.eSet(featureID, newValue); 186 super.eSet(featureID, newValue);
344 } 187 }
@@ -351,21 +194,12 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
351 @Override 194 @Override
352 public void eUnset(int featureID) { 195 public void eUnset(int featureID) {
353 switch (featureID) { 196 switch (featureID) {
354 case CrossingScenarioPackage.LANE__WIDTH:
355 setWidth(WIDTH_EDEFAULT);
356 return;
357 case CrossingScenarioPackage.LANE__REFERENCE_COORD: 197 case CrossingScenarioPackage.LANE__REFERENCE_COORD:
358 setReferenceCoord(REFERENCE_COORD_EDEFAULT); 198 setReferenceCoord(REFERENCE_COORD_EDEFAULT);
359 return; 199 return;
360 case CrossingScenarioPackage.LANE__PREV_LANE:
361 setPrevLane((Lane)null);
362 return;
363 case CrossingScenarioPackage.LANE__ACTORS: 200 case CrossingScenarioPackage.LANE__ACTORS:
364 getActors().clear(); 201 getActors().clear();
365 return; 202 return;
366 case CrossingScenarioPackage.LANE__NUM_WIDTH:
367 setNumWidth(NUM_WIDTH_EDEFAULT);
368 return;
369 } 203 }
370 super.eUnset(featureID); 204 super.eUnset(featureID);
371 } 205 }
@@ -378,16 +212,10 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
378 @Override 212 @Override
379 public boolean eIsSet(int featureID) { 213 public boolean eIsSet(int featureID) {
380 switch (featureID) { 214 switch (featureID) {
381 case CrossingScenarioPackage.LANE__WIDTH:
382 return width != WIDTH_EDEFAULT;
383 case CrossingScenarioPackage.LANE__REFERENCE_COORD: 215 case CrossingScenarioPackage.LANE__REFERENCE_COORD:
384 return referenceCoord != REFERENCE_COORD_EDEFAULT; 216 return referenceCoord != REFERENCE_COORD_EDEFAULT;
385 case CrossingScenarioPackage.LANE__PREV_LANE:
386 return prevLane != null;
387 case CrossingScenarioPackage.LANE__ACTORS: 217 case CrossingScenarioPackage.LANE__ACTORS:
388 return actors != null && !actors.isEmpty(); 218 return actors != null && !actors.isEmpty();
389 case CrossingScenarioPackage.LANE__NUM_WIDTH:
390 return numWidth != NUM_WIDTH_EDEFAULT;
391 } 219 }
392 return super.eIsSet(featureID); 220 return super.eIsSet(featureID);
393 } 221 }
@@ -402,12 +230,8 @@ public abstract class LaneImpl extends MinimalEObjectImpl.Container implements L
402 if (eIsProxy()) return super.toString(); 230 if (eIsProxy()) return super.toString();
403 231
404 StringBuilder result = new StringBuilder(super.toString()); 232 StringBuilder result = new StringBuilder(super.toString());
405 result.append(" (width: "); 233 result.append(" (referenceCoord: ");
406 result.append(width);
407 result.append(", referenceCoord: ");
408 result.append(referenceCoord); 234 result.append(referenceCoord);
409 result.append(", numWidth: ");
410 result.append(numWidth);
411 result.append(')'); 235 result.append(')');
412 return result.toString(); 236 return result.toString();
413 } 237 }
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/RelationImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/RelationImpl.java
index 5b8ec921..97131c99 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/RelationImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/RelationImpl.java
@@ -23,6 +23,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
23 * </p> 23 * </p>
24 * <ul> 24 * <ul>
25 * <li>{@link crossingScenario.impl.RelationImpl#getTarget <em>Target</em>}</li> 25 * <li>{@link crossingScenario.impl.RelationImpl#getTarget <em>Target</em>}</li>
26 * <li>{@link crossingScenario.impl.RelationImpl#getSource <em>Source</em>}</li>
26 * </ul> 27 * </ul>
27 * 28 *
28 * @generated 29 * @generated
@@ -39,6 +40,16 @@ public abstract class RelationImpl extends MinimalEObjectImpl.Container implemen
39 protected Actor target; 40 protected Actor target;
40 41
41 /** 42 /**
43 * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getSource()
47 * @generated
48 * @ordered
49 */
50 protected Actor source;
51
52 /**
42 * <!-- begin-user-doc --> 53 * <!-- begin-user-doc -->
43 * <!-- end-user-doc --> 54 * <!-- end-user-doc -->
44 * @generated 55 * @generated
@@ -103,11 +114,54 @@ public abstract class RelationImpl extends MinimalEObjectImpl.Container implemen
103 * @generated 114 * @generated
104 */ 115 */
105 @Override 116 @Override
117 public Actor getSource() {
118 if (source != null && source.eIsProxy()) {
119 InternalEObject oldSource = (InternalEObject)source;
120 source = (Actor)eResolveProxy(oldSource);
121 if (source != oldSource) {
122 if (eNotificationRequired())
123 eNotify(new ENotificationImpl(this, Notification.RESOLVE, CrossingScenarioPackage.RELATION__SOURCE, oldSource, source));
124 }
125 }
126 return source;
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 public Actor basicGetSource() {
135 return source;
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public void setSource(Actor newSource) {
145 Actor oldSource = source;
146 source = newSource;
147 if (eNotificationRequired())
148 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.RELATION__SOURCE, oldSource, source));
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
106 public Object eGet(int featureID, boolean resolve, boolean coreType) { 157 public Object eGet(int featureID, boolean resolve, boolean coreType) {
107 switch (featureID) { 158 switch (featureID) {
108 case CrossingScenarioPackage.RELATION__TARGET: 159 case CrossingScenarioPackage.RELATION__TARGET:
109 if (resolve) return getTarget(); 160 if (resolve) return getTarget();
110 return basicGetTarget(); 161 return basicGetTarget();
162 case CrossingScenarioPackage.RELATION__SOURCE:
163 if (resolve) return getSource();
164 return basicGetSource();
111 } 165 }
112 return super.eGet(featureID, resolve, coreType); 166 return super.eGet(featureID, resolve, coreType);
113 } 167 }
@@ -123,6 +177,9 @@ public abstract class RelationImpl extends MinimalEObjectImpl.Container implemen
123 case CrossingScenarioPackage.RELATION__TARGET: 177 case CrossingScenarioPackage.RELATION__TARGET:
124 setTarget((Actor)newValue); 178 setTarget((Actor)newValue);
125 return; 179 return;
180 case CrossingScenarioPackage.RELATION__SOURCE:
181 setSource((Actor)newValue);
182 return;
126 } 183 }
127 super.eSet(featureID, newValue); 184 super.eSet(featureID, newValue);
128 } 185 }
@@ -138,6 +195,9 @@ public abstract class RelationImpl extends MinimalEObjectImpl.Container implemen
138 case CrossingScenarioPackage.RELATION__TARGET: 195 case CrossingScenarioPackage.RELATION__TARGET:
139 setTarget((Actor)null); 196 setTarget((Actor)null);
140 return; 197 return;
198 case CrossingScenarioPackage.RELATION__SOURCE:
199 setSource((Actor)null);
200 return;
141 } 201 }
142 super.eUnset(featureID); 202 super.eUnset(featureID);
143 } 203 }
@@ -152,6 +212,8 @@ public abstract class RelationImpl extends MinimalEObjectImpl.Container implemen
152 switch (featureID) { 212 switch (featureID) {
153 case CrossingScenarioPackage.RELATION__TARGET: 213 case CrossingScenarioPackage.RELATION__TARGET:
154 return target != null; 214 return target != null;
215 case CrossingScenarioPackage.RELATION__SOURCE:
216 return source != null;
155 } 217 }
156 return super.eIsSet(featureID); 218 return super.eIsSet(featureID);
157 } 219 }
diff --git a/Domains/crossingScenario/inputs/cSinit4x4.xmi b/Domains/crossingScenario/inputs/cSinit4x4.xmi
new file mode 100644
index 00000000..dd9b41de
--- /dev/null
+++ b/Domains/crossingScenario/inputs/cSinit4x4.xmi
@@ -0,0 +1,27 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<crossingScenario:CrossingScenario
3 xmi:version="2.0"
4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xmlns:crossingScenario="http://www.example.com/crossingScenario"
7 xsi:schemaLocation="http://www.example.com/crossingScenario ../model/crossingScenario.ecore"
8 xSize="100.0"
9 ySize="100.0"
10 maxTime="60.0">
11 <lanes xsi:type="crossingScenario:Lane_Horizontal"/>
12 <lanes xsi:type="crossingScenario:Lane_Horizontal"
13 referenceCoord="5.0"/>
14 <lanes xsi:type="crossingScenario:Lane_Horizontal"
15 referenceCoord="10.0"/>
16 <lanes xsi:type="crossingScenario:Lane_Horizontal"
17 referenceCoord="15.0"/>
18 <lanes xsi:type="crossingScenario:Lane_Vertical"/>
19 <lanes xsi:type="crossingScenario:Lane_Vertical"
20 referenceCoord="5.0"/>
21 <lanes xsi:type="crossingScenario:Lane_Vertical"
22 referenceCoord="10.0"/>
23 <lanes xsi:type="crossingScenario:Lane_Vertical"
24 referenceCoord="15.0"/>
25 <relations
26 xsi:type="crossingScenario:VisionBlocked"/>
27</crossingScenario:CrossingScenario>
diff --git a/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig b/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig
index a5c862e4..1db557a9 100644
--- a/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig
+++ b/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig
@@ -4,25 +4,26 @@ import viatra "queries/crossingScenarioQueries.vql"
4generate { 4generate {
5 metamodel = { package crossingScenario } 5 metamodel = { package crossingScenario }
6 constraints = { package queries} 6 constraints = { package queries}
7 partial-model = { "inputs/crossingScenarioInit.xmi"} 7 //partial-model = { "inputs/crossingScenarioInit.xmi"}
8 partial-model = { "inputs/cSinit4x4.xmi"}
8 solver = ViatraSolver 9 solver = ViatraSolver
9 scope = { 10 scope = {
10 #node = 2..* 11 #node += 2..*
11 //, 12 ,#<Lane> += 0
12 //#<Lane> = 25..*
13 //,#<Actor> = 25..* 13 //,#<Actor> = 25..*
14 //,#<CollisionExists> = 1..10 14 ,#<Relation> += 0
15 //,#<SeparationDistance> = 1..10 15 //,#<CollisionExists> = 1
16 //,#<VisionBlocked> = 1..10 16 //,#<SeparationDistance> = 0
17 //,#<Relation> = 1..10 17 //,#<VisionBlocked> += 0
18 } 18 //,#<CollisionDoesNotExist> += 0
19 }
19 20
20 config = { 21 config = {
21 runtime = 10000, 22 runtime = 10000,
22 log-level = none, 23 log-level = none,
23 "numeric-solver" = "dreal-local", 24 "numeric-solver" = "dreal-local",
24 "dreal-local-path" = "/home/models/dreal4/bazel-bin/dreal/dreal", 25 "dreal-local-path" = "/home/models/dreal4/bazel-bin/dreal/dreal",
25 "scopePropagator" = "typeHierarchy"} 26 "scopePropagator" = "polyhedral"}
26 27
27 runs = 1 28 runs = 1
28 number = 10 29 number = 10
diff --git a/Domains/crossingScenario/model/crossingScenario.aird b/Domains/crossingScenario/model/crossingScenario.aird
index 3620b29d..0a776802 100644
--- a/Domains/crossingScenario/model/crossingScenario.aird
+++ b/Domains/crossingScenario/model/crossingScenario.aird
@@ -5,7 +5,7 @@
5 <semanticResources>crossingScenario.genmodel</semanticResources> 5 <semanticResources>crossingScenario.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_LaDLgFZ_Eeugh9dythfu8g"> 6 <ownedViews xmi:type="viewpoint:DView" uid="_LaDLgFZ_Eeugh9dythfu8g">
7 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> 7 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_MXYWcFZ_Eeugh9dythfu8g" name="crossingScenario class diagram" repPath="#_MV4hoFZ_Eeugh9dythfu8g" changeId="4eabaeda-42e7-42e2-a865-c4dd91b6f627"> 8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_MXYWcFZ_Eeugh9dythfu8g" name="crossingScenario class diagram" repPath="#_MV4hoFZ_Eeugh9dythfu8g" changeId="fa4b3d36-f766-4838-b660-63e511bbcfd6">
9 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 9 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
10 <target xmi:type="ecore:EPackage" href="crossingScenario.ecore#/"/> 10 <target xmi:type="ecore:EPackage" href="crossingScenario.ecore#/"/>
11 </ownedRepresentationDescriptors> 11 </ownedRepresentationDescriptors>
@@ -48,6 +48,15 @@
48 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> 48 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
49 </endLabelStyleDescription> 49 </endLabelStyleDescription>
50 </computedStyleDescriptions> 50 </computedStyleDescriptions>
51 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ahefpltLEeuZZYOcQVw9qw" routingStyle="manhattan">
52 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
53 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ahefp1tLEeuZZYOcQVw9qw" showIcon="false" labelExpression="service:render">
54 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
55 </centerLabelStyleDescription>
56 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ahefqFtLEeuZZYOcQVw9qw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
57 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
58 </endLabelStyleDescription>
59 </computedStyleDescriptions>
51 </data> 60 </data>
52 </ownedAnnotationEntries> 61 </ownedAnnotationEntries>
53 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_MYg-4FZ_Eeugh9dythfu8g" source="GMF_DIAGRAMS"> 62 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_MYg-4FZ_Eeugh9dythfu8g" source="GMF_DIAGRAMS">
@@ -76,44 +85,15 @@
76 <children xmi:type="notation:Node" xmi:id="_NbmzkFZ_Eeugh9dythfu8g" type="2003" element="_NaCGQFZ_Eeugh9dythfu8g"> 85 <children xmi:type="notation:Node" xmi:id="_NbmzkFZ_Eeugh9dythfu8g" type="2003" element="_NaCGQFZ_Eeugh9dythfu8g">
77 <children xmi:type="notation:Node" xmi:id="_NbnaoFZ_Eeugh9dythfu8g" type="5007"/> 86 <children xmi:type="notation:Node" xmi:id="_NbnaoFZ_Eeugh9dythfu8g" type="5007"/>
78 <children xmi:type="notation:Node" xmi:id="_NbnaoVZ_Eeugh9dythfu8g" type="7004"> 87 <children xmi:type="notation:Node" xmi:id="_NbnaoVZ_Eeugh9dythfu8g" type="7004">
79 <children xmi:type="notation:Node" xmi:id="_Nb3SQFZ_Eeugh9dythfu8g" type="3010" element="_NauCwFZ_Eeugh9dythfu8g">
80 <styles xmi:type="notation:FontStyle" xmi:id="_Nb3SQVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/>
81 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb3SQlZ_Eeugh9dythfu8g"/>
82 </children>
83 <children xmi:type="notation:Node" xmi:id="_Nb35UFZ_Eeugh9dythfu8g" type="3010" element="_Naup0FZ_Eeugh9dythfu8g"> 88 <children xmi:type="notation:Node" xmi:id="_Nb35UFZ_Eeugh9dythfu8g" type="3010" element="_Naup0FZ_Eeugh9dythfu8g">
84 <styles xmi:type="notation:FontStyle" xmi:id="_Nb35UVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/> 89 <styles xmi:type="notation:FontStyle" xmi:id="_Nb35UVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/>
85 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb35UlZ_Eeugh9dythfu8g"/> 90 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb35UlZ_Eeugh9dythfu8g"/>
86 </children> 91 </children>
87 <children xmi:type="notation:Node" xmi:id="_Nb35U1Z_Eeugh9dythfu8g" type="3010" element="_NavQ4FZ_Eeugh9dythfu8g">
88 <styles xmi:type="notation:FontStyle" xmi:id="_Nb35VFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/>
89 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb35VVZ_Eeugh9dythfu8g"/>
90 </children>
91 <styles xmi:type="notation:SortingStyle" xmi:id="_NbnaolZ_Eeugh9dythfu8g"/> 92 <styles xmi:type="notation:SortingStyle" xmi:id="_NbnaolZ_Eeugh9dythfu8g"/>
92 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbnao1Z_Eeugh9dythfu8g"/> 93 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbnao1Z_Eeugh9dythfu8g"/>
93 </children> 94 </children>
94 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbmzkVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 95 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbmzkVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
95 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbmzklZ_Eeugh9dythfu8g" x="48" y="266" height="84"/> 96 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbmzklZ_Eeugh9dythfu8g" x="48" y="266" height="49"/>
96 </children>
97 <children xmi:type="notation:Node" xmi:id="_NboowFZ_Eeugh9dythfu8g" type="2003" element="_NaGXsFZ_Eeugh9dythfu8g">
98 <children xmi:type="notation:Node" xmi:id="_NbpP0FZ_Eeugh9dythfu8g" type="5007"/>
99 <children xmi:type="notation:Node" xmi:id="_Nbp24FZ_Eeugh9dythfu8g" type="7004">
100 <children xmi:type="notation:Node" xmi:id="_Nb5HcFZ_Eeugh9dythfu8g" type="3010" element="_Na63EFZ_Eeugh9dythfu8g">
101 <styles xmi:type="notation:FontStyle" xmi:id="_Nb5HcVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
102 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb5HclZ_Eeugh9dythfu8g"/>
103 </children>
104 <children xmi:type="notation:Node" xmi:id="_Nb5Hc1Z_Eeugh9dythfu8g" type="3010" element="_Na63ElZ_Eeugh9dythfu8g">
105 <styles xmi:type="notation:FontStyle" xmi:id="_Nb5HdFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
106 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb5HdVZ_Eeugh9dythfu8g"/>
107 </children>
108 <children xmi:type="notation:Node" xmi:id="_Nb5ugFZ_Eeugh9dythfu8g" type="3010" element="_Na7eIFZ_Eeugh9dythfu8g">
109 <styles xmi:type="notation:FontStyle" xmi:id="_Nb5ugVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
110 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb5uglZ_Eeugh9dythfu8g"/>
111 </children>
112 <styles xmi:type="notation:SortingStyle" xmi:id="_Nbp24VZ_Eeugh9dythfu8g"/>
113 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbp24lZ_Eeugh9dythfu8g"/>
114 </children>
115 <styles xmi:type="notation:ShapeStyle" xmi:id="_NboowVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
116 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NboowlZ_Eeugh9dythfu8g" x="790" y="25" width="74" height="86"/>
117 </children> 97 </children>
118 <children xmi:type="notation:Node" xmi:id="_Nbp241Z_Eeugh9dythfu8g" type="2003" element="_NaHl0FZ_Eeugh9dythfu8g"> 98 <children xmi:type="notation:Node" xmi:id="_Nbp241Z_Eeugh9dythfu8g" type="2003" element="_NaHl0FZ_Eeugh9dythfu8g">
119 <children xmi:type="notation:Node" xmi:id="_NbrFAFZ_Eeugh9dythfu8g" type="5007"/> 99 <children xmi:type="notation:Node" xmi:id="_NbrFAFZ_Eeugh9dythfu8g" type="5007"/>
@@ -146,7 +126,7 @@
146 <styles xmi:type="notation:FilteringStyle" xmi:id="_NbrFA1Z_Eeugh9dythfu8g"/> 126 <styles xmi:type="notation:FilteringStyle" xmi:id="_NbrFA1Z_Eeugh9dythfu8g"/>
147 </children> 127 </children>
148 <styles xmi:type="notation:ShapeStyle" xmi:id="_Nbp25FZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" italic="true"/> 128 <styles xmi:type="notation:ShapeStyle" xmi:id="_Nbp25FZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" italic="true"/>
149 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nbp25VZ_Eeugh9dythfu8g" x="300" y="144"/> 129 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nbp25VZ_Eeugh9dythfu8g" x="335" y="194"/>
150 </children> 130 </children>
151 <children xmi:type="notation:Node" xmi:id="_NbrsEFZ_Eeugh9dythfu8g" type="2003" element="_NaKpIVZ_Eeugh9dythfu8g"> 131 <children xmi:type="notation:Node" xmi:id="_NbrsEFZ_Eeugh9dythfu8g" type="2003" element="_NaKpIVZ_Eeugh9dythfu8g">
152 <children xmi:type="notation:Node" xmi:id="_NbsTIFZ_Eeugh9dythfu8g" type="5007"/> 132 <children xmi:type="notation:Node" xmi:id="_NbsTIFZ_Eeugh9dythfu8g" type="5007"/>
@@ -155,7 +135,7 @@
155 <styles xmi:type="notation:FilteringStyle" xmi:id="_NbsTI1Z_Eeugh9dythfu8g"/> 135 <styles xmi:type="notation:FilteringStyle" xmi:id="_NbsTI1Z_Eeugh9dythfu8g"/>
156 </children> 136 </children>
157 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbrsEVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" italic="true"/> 137 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbrsEVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" italic="true"/>
158 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbrsElZ_Eeugh9dythfu8g" x="663" y="227" height="39"/> 138 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbrsElZ_Eeugh9dythfu8g" x="665" y="220" height="39"/>
159 </children> 139 </children>
160 <children xmi:type="notation:Node" xmi:id="_Nbs6MFZ_Eeugh9dythfu8g" type="2003" element="_NaL3QVZ_Eeugh9dythfu8g"> 140 <children xmi:type="notation:Node" xmi:id="_Nbs6MFZ_Eeugh9dythfu8g" type="2003" element="_NaL3QVZ_Eeugh9dythfu8g">
161 <children xmi:type="notation:Node" xmi:id="_NbthQFZ_Eeugh9dythfu8g" type="5007"/> 141 <children xmi:type="notation:Node" xmi:id="_NbthQFZ_Eeugh9dythfu8g" type="5007"/>
@@ -238,7 +218,7 @@
238 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbzn41Z_Eeugh9dythfu8g"/> 218 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbzn41Z_Eeugh9dythfu8g"/>
239 </children> 219 </children>
240 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbzA0VZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 220 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbzA0VZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
241 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbzA0lZ_Eeugh9dythfu8g" x="706" y="25" width="74" height="86"/> 221 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbzA0lZ_Eeugh9dythfu8g" x="775" y="27" width="74" height="86"/>
242 </children> 222 </children>
243 <children xmi:type="notation:Node" xmi:id="_Nbzn5FZ_Eeugh9dythfu8g" type="2003" element="_NaVoQFZ_Eeugh9dythfu8g"> 223 <children xmi:type="notation:Node" xmi:id="_Nbzn5FZ_Eeugh9dythfu8g" type="2003" element="_NaVoQFZ_Eeugh9dythfu8g">
244 <children xmi:type="notation:Node" xmi:id="_Nb0O8FZ_Eeugh9dythfu8g" type="5007"/> 224 <children xmi:type="notation:Node" xmi:id="_Nb0O8FZ_Eeugh9dythfu8g" type="5007"/>
@@ -247,7 +227,7 @@
247 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nb0O81Z_Eeugh9dythfu8g"/> 227 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nb0O81Z_Eeugh9dythfu8g"/>
248 </children> 228 </children>
249 <styles xmi:type="notation:ShapeStyle" xmi:id="_Nbzn5VZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 229 <styles xmi:type="notation:ShapeStyle" xmi:id="_Nbzn5VZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
250 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nbzn5lZ_Eeugh9dythfu8g" x="284" y="298" width="88" height="39"/> 230 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nbzn5lZ_Eeugh9dythfu8g" x="319" y="348" width="88" height="39"/>
251 </children> 231 </children>
252 <children xmi:type="notation:Node" xmi:id="_Nb0O9FZ_Eeugh9dythfu8g" type="2003" element="_NaWPUVZ_Eeugh9dythfu8g"> 232 <children xmi:type="notation:Node" xmi:id="_Nb0O9FZ_Eeugh9dythfu8g" type="2003" element="_NaWPUVZ_Eeugh9dythfu8g">
253 <children xmi:type="notation:Node" xmi:id="_Nb02AFZ_Eeugh9dythfu8g" type="5007"/> 233 <children xmi:type="notation:Node" xmi:id="_Nb02AFZ_Eeugh9dythfu8g" type="5007"/>
@@ -256,7 +236,7 @@
256 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nb02A1Z_Eeugh9dythfu8g"/> 236 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nb02A1Z_Eeugh9dythfu8g"/>
257 </children> 237 </children>
258 <styles xmi:type="notation:ShapeStyle" xmi:id="_Nb0O9VZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 238 <styles xmi:type="notation:ShapeStyle" xmi:id="_Nb0O9VZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
259 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nb0O9lZ_Eeugh9dythfu8g" x="386" y="300" width="66" height="39"/> 239 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nb0O9lZ_Eeugh9dythfu8g" x="421" y="350" width="66" height="39"/>
260 </children> 240 </children>
261 <children xmi:type="notation:Shape" xmi:id="_vqpaUFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="No junctions, only straight lanes. Action limited to forward motion." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1"> 241 <children xmi:type="notation:Shape" xmi:id="_vqpaUFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="No junctions, only straight lanes. Action limited to forward motion." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
262 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqpaUVaAEeugh9dythfu8g" source="specificStyles"> 242 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vqpaUVaAEeugh9dythfu8g" source="specificStyles">
@@ -271,7 +251,7 @@
271 <styles xmi:type="notation:TextStyle" xmi:id="_vqpaU1aAEeugh9dythfu8g" textAlignment="Center"/> 251 <styles xmi:type="notation:TextStyle" xmi:id="_vqpaU1aAEeugh9dythfu8g" textAlignment="Center"/>
272 <styles xmi:type="notation:LineTypeStyle" xmi:id="_vqpaVFaAEeugh9dythfu8g"/> 252 <styles xmi:type="notation:LineTypeStyle" xmi:id="_vqpaVFaAEeugh9dythfu8g"/>
273 <element xsi:nil="true"/> 253 <element xsi:nil="true"/>
274 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vqpaVVaAEeugh9dythfu8g" x="369" y="24" width="133" height="73"/> 254 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vqpaVVaAEeugh9dythfu8g" x="8" y="10" width="133" height="73"/>
275 </children> 255 </children>
276 <children xmi:type="notation:Shape" xmi:id="_wKszYFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="referenceCoord is (x of left side for vertical lanes) and (y of bottomfor horizontal lanes). Assumption that lanes are infinite length. Limitations are bound of SimpleScenario." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1"> 256 <children xmi:type="notation:Shape" xmi:id="_wKszYFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="referenceCoord is (x of left side for vertical lanes) and (y of bottomfor horizontal lanes). Assumption that lanes are infinite length. Limitations are bound of SimpleScenario." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
277 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wKszYVaAEeugh9dythfu8g" source="specificStyles"> 257 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wKszYVaAEeugh9dythfu8g" source="specificStyles">
@@ -286,7 +266,7 @@
286 <styles xmi:type="notation:TextStyle" xmi:id="_wKszY1aAEeugh9dythfu8g" textAlignment="Center"/> 266 <styles xmi:type="notation:TextStyle" xmi:id="_wKszY1aAEeugh9dythfu8g" textAlignment="Center"/>
287 <styles xmi:type="notation:LineTypeStyle" xmi:id="_wKszZFaAEeugh9dythfu8g"/> 267 <styles xmi:type="notation:LineTypeStyle" xmi:id="_wKszZFaAEeugh9dythfu8g"/>
288 <element xsi:nil="true"/> 268 <element xsi:nil="true"/>
289 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKszZVaAEeugh9dythfu8g" x="48" y="492" width="205" height="112"/> 269 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKszZVaAEeugh9dythfu8g" x="48" y="492" width="411" height="59"/>
290 </children> 270 </children>
291 <children xmi:type="notation:Shape" xmi:id="_wh8OsFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="This might be 0..1: because we might not care about which is the bloking actorm as long as vision is blocked. TO FURTHER RESTRICT: might need to make this 1..1, or enforce this to a certain extent from queries." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1"> 271 <children xmi:type="notation:Shape" xmi:id="_wh8OsFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="This might be 0..1: because we might not care about which is the bloking actorm as long as vision is blocked. TO FURTHER RESTRICT: might need to make this 1..1, or enforce this to a certain extent from queries." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
292 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wh8OsVaAEeugh9dythfu8g" source="specificStyles"> 272 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wh8OsVaAEeugh9dythfu8g" source="specificStyles">
@@ -301,7 +281,7 @@
301 <styles xmi:type="notation:TextStyle" xmi:id="_wh8Os1aAEeugh9dythfu8g" textAlignment="Center"/> 281 <styles xmi:type="notation:TextStyle" xmi:id="_wh8Os1aAEeugh9dythfu8g" textAlignment="Center"/>
302 <styles xmi:type="notation:LineTypeStyle" xmi:id="_wh8OtFaAEeugh9dythfu8g"/> 282 <styles xmi:type="notation:LineTypeStyle" xmi:id="_wh8OtFaAEeugh9dythfu8g"/>
303 <element xsi:nil="true"/> 283 <element xsi:nil="true"/>
304 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wh8OtVaAEeugh9dythfu8g" x="274" y="363" width="229" height="105"/> 284 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wh8OtVaAEeugh9dythfu8g" x="197" y="402" width="316" height="81"/>
305 </children> 285 </children>
306 <children xmi:type="notation:Shape" xmi:id="_xVl5MFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="length and width hard-coded wrt. actor type for now. speed is in the direction of the lane tht it is in." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1"> 286 <children xmi:type="notation:Shape" xmi:id="_xVl5MFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="length and width hard-coded wrt. actor type for now. speed is in the direction of the lane tht it is in." fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
307 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVl5MVaAEeugh9dythfu8g" source="specificStyles"> 287 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVl5MVaAEeugh9dythfu8g" source="specificStyles">
@@ -316,7 +296,7 @@
316 <styles xmi:type="notation:TextStyle" xmi:id="_xVl5M1aAEeugh9dythfu8g" textAlignment="Center"/> 296 <styles xmi:type="notation:TextStyle" xmi:id="_xVl5M1aAEeugh9dythfu8g" textAlignment="Center"/>
317 <styles xmi:type="notation:LineTypeStyle" xmi:id="_xVl5NFaAEeugh9dythfu8g"/> 297 <styles xmi:type="notation:LineTypeStyle" xmi:id="_xVl5NFaAEeugh9dythfu8g"/>
318 <element xsi:nil="true"/> 298 <element xsi:nil="true"/>
319 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVl5NVaAEeugh9dythfu8g" x="516" y="60" width="170" height="85"/> 299 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVl5NVaAEeugh9dythfu8g" x="464" y="67" width="282" height="50"/>
320 </children> 300 </children>
321 <children xmi:type="notation:Shape" xmi:id="_xuFRsFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="Actor.CollisionExists(a, b) implies that a nad b collide at time collisionTime. However, this is NOT A DOUBLE-IMPLICATION" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1"> 301 <children xmi:type="notation:Shape" xmi:id="_xuFRsFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="Actor.CollisionExists(a, b) implies that a nad b collide at time collisionTime. However, this is NOT A DOUBLE-IMPLICATION" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
322 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xuFRsVaAEeugh9dythfu8g" source="specificStyles"> 302 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xuFRsVaAEeugh9dythfu8g" source="specificStyles">
@@ -355,7 +335,7 @@
355 <styles xmi:type="notation:FilteringStyle" xmi:id="_d-Hqclh-Eeu-o58Hgezqgw"/> 335 <styles xmi:type="notation:FilteringStyle" xmi:id="_d-Hqclh-Eeu-o58Hgezqgw"/>
356 </children> 336 </children>
357 <styles xmi:type="notation:ShapeStyle" xmi:id="_d-EnIVh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/> 337 <styles xmi:type="notation:ShapeStyle" xmi:id="_d-EnIVh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
358 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-EnIlh-Eeu-o58Hgezqgw" x="48" y="372" width="110" height="38"/> 338 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-EnIlh-Eeu-o58Hgezqgw" x="47" y="343" width="110" height="38"/>
359 </children> 339 </children>
360 <children xmi:type="notation:Node" xmi:id="_iaquQFh-Eeu-o58Hgezqgw" type="2003" element="_iaOCUFh-Eeu-o58Hgezqgw"> 340 <children xmi:type="notation:Node" xmi:id="_iaquQFh-Eeu-o58Hgezqgw" type="2003" element="_iaOCUFh-Eeu-o58Hgezqgw">
361 <children xmi:type="notation:Node" xmi:id="_iarVUFh-Eeu-o58Hgezqgw" type="5007"/> 341 <children xmi:type="notation:Node" xmi:id="_iarVUFh-Eeu-o58Hgezqgw" type="5007"/>
@@ -364,28 +344,73 @@
364 <styles xmi:type="notation:FilteringStyle" xmi:id="_iarVU1h-Eeu-o58Hgezqgw"/> 344 <styles xmi:type="notation:FilteringStyle" xmi:id="_iarVU1h-Eeu-o58Hgezqgw"/>
365 </children> 345 </children>
366 <styles xmi:type="notation:ShapeStyle" xmi:id="_iaquQVh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/> 346 <styles xmi:type="notation:ShapeStyle" xmi:id="_iaquQVh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
367 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iaquQlh-Eeu-o58Hgezqgw" x="168" y="405" width="98" height="30"/> 347 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iaquQlh-Eeu-o58Hgezqgw" x="173" y="344" width="98" height="30"/>
348 </children>
349 <children xmi:type="notation:Shape" xmi:id="_ABSfIFtDEeuZZYOcQVw9qw" type="Note" fontName="Cantarell" description="Attributes: width:EEnum, numWidth:EDouble; Self-relation: prevLane[0..1]" fillColor="10265827" transparency="0" lineColor="6737151" lineWidth="1">
350 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ABSfIVtDEeuZZYOcQVw9qw" source="specificStyles">
351 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ABSfIltDEeuZZYOcQVw9qw" key="verticalAlignment" value="8"/>
352 </eAnnotations>
353 <children xmi:type="notation:BasicDecorationNode" xmi:id="_ABTtQFtDEeuZZYOcQVw9qw" type="DiagramName">
354 <element xsi:nil="true"/>
355 </children>
356 <children xmi:type="notation:BasicDecorationNode" xmi:id="_ABUUUFtDEeuZZYOcQVw9qw" type="Description">
357 <element xsi:nil="true"/>
358 </children>
359 <styles xmi:type="notation:TextStyle" xmi:id="_ABSfI1tDEeuZZYOcQVw9qw" textAlignment="Center"/>
360 <styles xmi:type="notation:LineTypeStyle" xmi:id="_ABSfJFtDEeuZZYOcQVw9qw"/>
361 <element xsi:nil="true"/>
362 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABSfJVtDEeuZZYOcQVw9qw" x="36" y="406" width="135"/>
363 </children>
364 <children xmi:type="notation:Shape" xmi:id="_Pao80FtFEeuZZYOcQVw9qw" type="Note" fontName="Cantarell" description="Relation: horizontal_head [1..1] -> Lane_Horizontal, vertical_head [1..1] -> Lane_Vertical" fillColor="10265827" transparency="0" lineColor="6737151" lineWidth="1">
365 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pao80VtFEeuZZYOcQVw9qw" source="specificStyles">
366 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pao80ltFEeuZZYOcQVw9qw" key="verticalAlignment" value="8"/>
367 </eAnnotations>
368 <children xmi:type="notation:BasicDecorationNode" xmi:id="_Papj4FtFEeuZZYOcQVw9qw" type="DiagramName">
369 <element xsi:nil="true"/>
370 </children>
371 <children xmi:type="notation:BasicDecorationNode" xmi:id="_Papj4VtFEeuZZYOcQVw9qw" type="Description">
372 <element xsi:nil="true"/>
373 </children>
374 <styles xmi:type="notation:TextStyle" xmi:id="_Pao801tFEeuZZYOcQVw9qw" textAlignment="Center"/>
375 <styles xmi:type="notation:LineTypeStyle" xmi:id="_Pao81FtFEeuZZYOcQVw9qw"/>
376 <element xsi:nil="true"/>
377 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pao81VtFEeuZZYOcQVw9qw" x="8" y="127" width="130" height="100"/>
378 </children>
379 <children xmi:type="notation:Shape" xmi:id="_NK6gcFtGEeuZZYOcQVw9qw" type="Note" fontName="Cantarell" description="EEnum Size: S_Small, S_Med, S_Large" fillColor="10011046" transparency="0" lineColor="6737151" lineWidth="1">
380 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NK7HgFtGEeuZZYOcQVw9qw" source="specificStyles">
381 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NK7HgVtGEeuZZYOcQVw9qw" key="verticalAlignment" value="8"/>
382 </eAnnotations>
383 <children xmi:type="notation:BasicDecorationNode" xmi:id="_NK8VoFtGEeuZZYOcQVw9qw" type="DiagramName">
384 <element xsi:nil="true"/>
385 </children>
386 <children xmi:type="notation:BasicDecorationNode" xmi:id="_NK8VoVtGEeuZZYOcQVw9qw" type="Description">
387 <element xsi:nil="true"/>
388 </children>
389 <styles xmi:type="notation:TextStyle" xmi:id="_NK7HgltGEeuZZYOcQVw9qw" textAlignment="Center"/>
390 <styles xmi:type="notation:LineTypeStyle" xmi:id="_NK7Hg1tGEeuZZYOcQVw9qw"/>
391 <element xsi:nil="true"/>
392 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NK7HhFtGEeuZZYOcQVw9qw" x="861" y="30" width="95" height="81"/>
368 </children> 393 </children>
369 <styles xmi:type="notation:DiagramStyle" xmi:id="_MYg-4lZ_Eeugh9dythfu8g"/> 394 <styles xmi:type="notation:DiagramStyle" xmi:id="_MYg-4lZ_Eeugh9dythfu8g"/>
370 <edges xmi:type="notation:Edge" xmi:id="_NcAcMFZ_Eeugh9dythfu8g" type="4001" element="_NbAWoFZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g"> 395 <edges xmi:type="notation:Edge" xmi:id="_NcAcMFZ_Eeugh9dythfu8g" type="4001" element="_NbAWoFZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
371 <children xmi:type="notation:Node" xmi:id="_NcBqUFZ_Eeugh9dythfu8g" type="6001"> 396 <children xmi:type="notation:Node" xmi:id="_NcBqUFZ_Eeugh9dythfu8g" type="6001">
372 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcBqUVZ_Eeugh9dythfu8g" x="16" y="16"/> 397 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcBqUVZ_Eeugh9dythfu8g" x="-2" y="-53"/>
373 </children> 398 </children>
374 <children xmi:type="notation:Node" xmi:id="_NcC4cFZ_Eeugh9dythfu8g" type="6002"> 399 <children xmi:type="notation:Node" xmi:id="_NcC4cFZ_Eeugh9dythfu8g" type="6002">
375 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcC4cVZ_Eeugh9dythfu8g" x="17" y="-17"/> 400 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcC4cVZ_Eeugh9dythfu8g" x="15"/>
376 </children> 401 </children>
377 <children xmi:type="notation:Node" xmi:id="_NcDfgFZ_Eeugh9dythfu8g" type="6003"> 402 <children xmi:type="notation:Node" xmi:id="_NcDfgFZ_Eeugh9dythfu8g" type="6003">
378 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcDfgVZ_Eeugh9dythfu8g" x="6" y="-6"/> 403 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcDfgVZ_Eeugh9dythfu8g" x="-50" y="-88"/>
379 </children> 404 </children>
380 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcAcMVZ_Eeugh9dythfu8g" routing="Rectilinear"/> 405 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcAcMVZ_Eeugh9dythfu8g" routing="Rectilinear"/>
381 <styles xmi:type="notation:FontStyle" xmi:id="_NcAcMlZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 406 <styles xmi:type="notation:FontStyle" xmi:id="_NcAcMlZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
382 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcAcM1Z_Eeugh9dythfu8g" points="[77, 70, -65, -175]$[124, 70, -18, -175]$[124, 120, -18, -125]"/> 407 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcAcM1Z_Eeugh9dythfu8g" points="[19, 85, -157, -210]$[19, 199, -157, -96]$[106, 199, -70, -96]"/>
383 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcMpcFZ_Eeugh9dythfu8g" id="(0.5032258064516129,0.0)"/> 408 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcMpcFZ_Eeugh9dythfu8g" id="(0.5032258064516129,0.0)"/>
384 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcMpcVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/> 409 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcMpcVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/>
385 </edges> 410 </edges>
386 <edges xmi:type="notation:Edge" xmi:id="_NcNQgFZ_Eeugh9dythfu8g" type="4001" element="_NbCL0FZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g"> 411 <edges xmi:type="notation:Edge" xmi:id="_NcNQgFZ_Eeugh9dythfu8g" type="4001" element="_NbCL0FZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g">
387 <children xmi:type="notation:Node" xmi:id="_NcNQhFZ_Eeugh9dythfu8g" type="6001"> 412 <children xmi:type="notation:Node" xmi:id="_NcNQhFZ_Eeugh9dythfu8g" type="6001">
388 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcNQhVZ_Eeugh9dythfu8g" x="-50" y="30"/> 413 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcNQhVZ_Eeugh9dythfu8g" x="61" y="30"/>
389 </children> 414 </children>
390 <children xmi:type="notation:Node" xmi:id="_NcN3kFZ_Eeugh9dythfu8g" type="6002"> 415 <children xmi:type="notation:Node" xmi:id="_NcN3kFZ_Eeugh9dythfu8g" type="6002">
391 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcN3kVZ_Eeugh9dythfu8g" x="-5"/> 416 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcN3kVZ_Eeugh9dythfu8g" x="-5"/>
@@ -399,67 +424,35 @@
399 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lFZ_Eeugh9dythfu8g" id="(0.06451612903225806,1.0)"/> 424 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lFZ_Eeugh9dythfu8g" id="(0.06451612903225806,1.0)"/>
400 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lVZ_Eeugh9dythfu8g" id="(0.6941747572815534,0.0)"/> 425 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lVZ_Eeugh9dythfu8g" id="(0.6941747572815534,0.0)"/>
401 </edges> 426 </edges>
402 <edges xmi:type="notation:Edge" xmi:id="_NcN3llZ_Eeugh9dythfu8g" type="4001" element="_NbEBAFZ_Eeugh9dythfu8g" source="_NbmzkFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g">
403 <children xmi:type="notation:Node" xmi:id="_NcOeoFZ_Eeugh9dythfu8g" type="6001">
404 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOeoVZ_Eeugh9dythfu8g" x="-11" y="-14"/>
405 </children>
406 <children xmi:type="notation:Node" xmi:id="_NcOeolZ_Eeugh9dythfu8g" type="6002">
407 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOeo1Z_Eeugh9dythfu8g" x="1"/>
408 </children>
409 <children xmi:type="notation:Node" xmi:id="_NcOepFZ_Eeugh9dythfu8g" type="6003">
410 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOepVZ_Eeugh9dythfu8g" x="-1" y="10"/>
411 </children>
412 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcN3l1Z_Eeugh9dythfu8g" routing="Rectilinear"/>
413 <styles xmi:type="notation:FontStyle" xmi:id="_NcN3mFZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
414 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcN3mVZ_Eeugh9dythfu8g" points="[-47, -48, 33, -3]$[-47, -69, 33, -24]$[-15, -69, 65, -24]$[-15, -48, 65, -3]"/>
415 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcPFsFZ_Eeugh9dythfu8g" id="(0.5,0.5917874396135266)"/>
416 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcPswFZ_Eeugh9dythfu8g" id="(0.0825242718446602,0.04830917874396135)"/>
417 </edges>
418 <edges xmi:type="notation:Edge" xmi:id="_NcPswVZ_Eeugh9dythfu8g" type="4001" element="_NbFPIFZ_Eeugh9dythfu8g" source="_Nbp241Z_Eeugh9dythfu8g" target="_NbrsEFZ_Eeugh9dythfu8g">
419 <children xmi:type="notation:Node" xmi:id="_NcQT0FZ_Eeugh9dythfu8g" type="6001">
420 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcQT0VZ_Eeugh9dythfu8g" x="136" y="4"/>
421 </children>
422 <children xmi:type="notation:Node" xmi:id="_NcQT0lZ_Eeugh9dythfu8g" type="6002">
423 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcQT01Z_Eeugh9dythfu8g" x="39" y="10"/>
424 </children>
425 <children xmi:type="notation:Node" xmi:id="_NcQT1FZ_Eeugh9dythfu8g" type="6003">
426 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcQT1VZ_Eeugh9dythfu8g" x="-11" y="-10"/>
427 </children>
428 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcPswlZ_Eeugh9dythfu8g" routing="Rectilinear"/>
429 <styles xmi:type="notation:FontStyle" xmi:id="_NcPsw1Z_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
430 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcPsxFZ_Eeugh9dythfu8g" points="[75, -48, -272, -120]$[330, -48, -17, -120]$[330, 21, -17, -51]"/>
431 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcQ64FZ_Eeugh9dythfu8g" id="(0.5,0.5)"/>
432 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcQ64VZ_Eeugh9dythfu8g" id="(0.5,1.3243243243243243)"/>
433 </edges>
434 <edges xmi:type="notation:Edge" xmi:id="_NcQ64lZ_Eeugh9dythfu8g" type="4001" element="_NbGdQ1Z_Eeugh9dythfu8g" source="_NbrsEFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g"> 427 <edges xmi:type="notation:Edge" xmi:id="_NcQ64lZ_Eeugh9dythfu8g" type="4001" element="_NbGdQ1Z_Eeugh9dythfu8g" source="_NbrsEFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
435 <children xmi:type="notation:Node" xmi:id="_NcRh8FZ_Eeugh9dythfu8g" type="6001"> 428 <children xmi:type="notation:Node" xmi:id="_NcRh8FZ_Eeugh9dythfu8g" type="6001">
436 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcRh8VZ_Eeugh9dythfu8g" x="74" y="-14"/> 429 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcRh8VZ_Eeugh9dythfu8g" x="52" y="-13"/>
437 </children> 430 </children>
438 <children xmi:type="notation:Node" xmi:id="_NcRh8lZ_Eeugh9dythfu8g" type="6002"> 431 <children xmi:type="notation:Node" xmi:id="_NcRh8lZ_Eeugh9dythfu8g" type="6002">
439 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcRh81Z_Eeugh9dythfu8g" x="8" y="-10"/> 432 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcRh81Z_Eeugh9dythfu8g" x="2" y="-10"/>
440 </children> 433 </children>
441 <children xmi:type="notation:Node" xmi:id="_NcRh9FZ_Eeugh9dythfu8g" type="6003"> 434 <children xmi:type="notation:Node" xmi:id="_NcRh9FZ_Eeugh9dythfu8g" type="6003">
442 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcRh9VZ_Eeugh9dythfu8g" x="-23" y="-10"/> 435 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcRh9VZ_Eeugh9dythfu8g" x="-1" y="-10"/>
443 </children> 436 </children>
444 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcQ641Z_Eeugh9dythfu8g" routing="Rectilinear"/> 437 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcQ641Z_Eeugh9dythfu8g" routing="Rectilinear"/>
445 <styles xmi:type="notation:FontStyle" xmi:id="_NcQ65FZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 438 <styles xmi:type="notation:FontStyle" xmi:id="_NcQ65FZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
446 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcQ65VZ_Eeugh9dythfu8g" points="[-39, -103, 308, 83]$[-39, -138, 308, 48]$[-273, -138, 74, 48]"/> 439 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcQ65VZ_Eeugh9dythfu8g" points="[-60, -75, 260, 54]$[-251, -75, 69, 54]"/>
447 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcSJAFZ_Eeugh9dythfu8g" id="(0.5084745762711864,2.6486486486486487)"/> 440 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcSJAFZ_Eeugh9dythfu8g" id="(0.5084745762711864,2.6486486486486487)"/>
448 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcSJAVZ_Eeugh9dythfu8g" id="(0.5066666666666667,0.0)"/> 441 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcSJAVZ_Eeugh9dythfu8g" id="(0.5066666666666667,0.0)"/>
449 </edges> 442 </edges>
450 <edges xmi:type="notation:Edge" xmi:id="_NcSJAlZ_Eeugh9dythfu8g" type="4001" element="_NbHEWVZ_Eeugh9dythfu8g" source="_NbvWdFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g"> 443 <edges xmi:type="notation:Edge" xmi:id="_NcSJAlZ_Eeugh9dythfu8g" type="4001" element="_NbHEWVZ_Eeugh9dythfu8g" source="_NbvWdFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
451 <children xmi:type="notation:Node" xmi:id="_NcSJBlZ_Eeugh9dythfu8g" type="6001"> 444 <children xmi:type="notation:Node" xmi:id="_NcSJBlZ_Eeugh9dythfu8g" type="6001">
452 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcSJB1Z_Eeugh9dythfu8g" x="-12" y="-74"/> 445 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcSJB1Z_Eeugh9dythfu8g" x="-20" y="-24"/>
453 </children> 446 </children>
454 <children xmi:type="notation:Node" xmi:id="_NcSwEFZ_Eeugh9dythfu8g" type="6002"> 447 <children xmi:type="notation:Node" xmi:id="_NcSwEFZ_Eeugh9dythfu8g" type="6002">
455 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcSwEVZ_Eeugh9dythfu8g" x="99" y="-89"/> 448 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcSwEVZ_Eeugh9dythfu8g" x="62" y="-89"/>
456 </children> 449 </children>
457 <children xmi:type="notation:Node" xmi:id="_NcSwElZ_Eeugh9dythfu8g" type="6003"> 450 <children xmi:type="notation:Node" xmi:id="_NcSwElZ_Eeugh9dythfu8g" type="6003">
458 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcSwE1Z_Eeugh9dythfu8g" x="18" y="-10"/> 451 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcSwE1Z_Eeugh9dythfu8g" x="11" y="-10"/>
459 </children> 452 </children>
460 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcSJA1Z_Eeugh9dythfu8g" routing="Rectilinear"/> 453 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcSJA1Z_Eeugh9dythfu8g" routing="Rectilinear"/>
461 <styles xmi:type="notation:FontStyle" xmi:id="_NcSJBFZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 454 <styles xmi:type="notation:FontStyle" xmi:id="_NcSJBFZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
462 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcSJBVZ_Eeugh9dythfu8g" points="[-38, 0, 195, 98]$[-38, -126, 195, -28]$[-159, -126, 74, -28]"/> 455 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcSJBVZ_Eeugh9dythfu8g" points="[-41, 0, 163, 48]$[-41, -76, 163, -28]$[-135, -76, 69, -28]"/>
463 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcT-MFZ_Eeugh9dythfu8g" id="(0.597609561752988,0.0)"/> 456 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcT-MFZ_Eeugh9dythfu8g" id="(0.597609561752988,0.0)"/>
464 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcT-MVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/> 457 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcT-MVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/>
465 </edges> 458 </edges>
@@ -577,34 +570,34 @@
577 </edges> 570 </edges>
578 <edges xmi:type="notation:Edge" xmi:id="_NcdIIlZ_Eeugh9dythfu8g" type="4001" element="_NbT4plZ_Eeugh9dythfu8g" source="_Nb0O9FZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g"> 571 <edges xmi:type="notation:Edge" xmi:id="_NcdIIlZ_Eeugh9dythfu8g" type="4001" element="_NbT4plZ_Eeugh9dythfu8g" source="_Nb0O9FZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
579 <children xmi:type="notation:Node" xmi:id="_NcdvMFZ_Eeugh9dythfu8g" type="6001"> 572 <children xmi:type="notation:Node" xmi:id="_NcdvMFZ_Eeugh9dythfu8g" type="6001">
580 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcdvMVZ_Eeugh9dythfu8g" x="-14" y="-10"/> 573 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcdvMVZ_Eeugh9dythfu8g" x="-38" y="-1"/>
581 </children> 574 </children>
582 <children xmi:type="notation:Node" xmi:id="_NcdvMlZ_Eeugh9dythfu8g" type="6002"> 575 <children xmi:type="notation:Node" xmi:id="_NcdvMlZ_Eeugh9dythfu8g" type="6002">
583 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcdvM1Z_Eeugh9dythfu8g" x="23" y="10"/> 576 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcdvM1Z_Eeugh9dythfu8g" x="-15" y="-2"/>
584 </children> 577 </children>
585 <children xmi:type="notation:Node" xmi:id="_NceWQFZ_Eeugh9dythfu8g" type="6003"> 578 <children xmi:type="notation:Node" xmi:id="_NceWQFZ_Eeugh9dythfu8g" type="6003">
586 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NceWQVZ_Eeugh9dythfu8g" x="-8" y="26"/> 579 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NceWQVZ_Eeugh9dythfu8g" x="-10" y="-26"/>
587 </children> 580 </children>
588 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcdII1Z_Eeugh9dythfu8g" routing="Tree"/> 581 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcdII1Z_Eeugh9dythfu8g" routing="Tree"/>
589 <styles xmi:type="notation:FontStyle" xmi:id="_NcdIJFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 582 <styles xmi:type="notation:FontStyle" xmi:id="_NcdIJFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
590 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcdIJVZ_Eeugh9dythfu8g" points="[-1, 0, 13, 79]$[-1, -59, 13, 20]$[-17, -59, -3, 20]$[-17, -79, -3, 0]"/> 583 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcdIJVZ_Eeugh9dythfu8g" points="[0, -3, 51, 31]$[0, -10, 51, 24]$[-54, -10, -3, 24]$[-54, -34, -3, 0]"/>
591 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nce9UFZ_Eeugh9dythfu8g" id="(0.546875,0.07692307692307693)"/> 584 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nce9UFZ_Eeugh9dythfu8g" id="(0.546875,0.07692307692307693)"/>
592 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nce9UVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/> 585 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nce9UVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/>
593 </edges> 586 </edges>
594 <edges xmi:type="notation:Edge" xmi:id="_Nce9UlZ_Eeugh9dythfu8g" type="4001" element="_NbVGwFZ_Eeugh9dythfu8g" source="_NbmzkFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g"> 587 <edges xmi:type="notation:Edge" xmi:id="_Nce9UlZ_Eeugh9dythfu8g" type="4001" element="_NbVGwFZ_Eeugh9dythfu8g" source="_NbmzkFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
595 <children xmi:type="notation:Node" xmi:id="_NcfkYFZ_Eeugh9dythfu8g" type="6001"> 588 <children xmi:type="notation:Node" xmi:id="_NcfkYFZ_Eeugh9dythfu8g" type="6001">
596 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcfkYVZ_Eeugh9dythfu8g" x="14" y="66"/> 589 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcfkYVZ_Eeugh9dythfu8g" x="-49" y="1"/>
597 </children> 590 </children>
598 <children xmi:type="notation:Node" xmi:id="_NcfkYlZ_Eeugh9dythfu8g" type="6002"> 591 <children xmi:type="notation:Node" xmi:id="_NcfkYlZ_Eeugh9dythfu8g" type="6002">
599 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcfkY1Z_Eeugh9dythfu8g" x="69" y="34"/> 592 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcfkY1Z_Eeugh9dythfu8g" x="19" y="-14"/>
600 </children> 593 </children>
601 <children xmi:type="notation:Node" xmi:id="_NcfkZFZ_Eeugh9dythfu8g" type="6003"> 594 <children xmi:type="notation:Node" xmi:id="_NcfkZFZ_Eeugh9dythfu8g" type="6003">
602 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcfkZVZ_Eeugh9dythfu8g" x="5" y="10"/> 595 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcfkZVZ_Eeugh9dythfu8g" x="-16" y="16"/>
603 </children> 596 </children>
604 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nce9U1Z_Eeugh9dythfu8g" routing="Rectilinear"/> 597 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nce9U1Z_Eeugh9dythfu8g" routing="Rectilinear"/>
605 <styles xmi:type="notation:FontStyle" xmi:id="_Nce9VFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 598 <styles xmi:type="notation:FontStyle" xmi:id="_Nce9VFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
606 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nce9VVZ_Eeugh9dythfu8g" points="[50, -8, -148, -3]$[50, -88, -148, -83]$[122, -88, -76, -83]"/> 599 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nce9VVZ_Eeugh9dythfu8g" points="[67, 27, -177, -19]$[174, 27, -70, -19]"/>
607 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcFZ_Eeugh9dythfu8g" id="(0.6310679611650486,0.0966183574879227)"/> 600 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcFZ_Eeugh9dythfu8g" id="(0.6310679611650486,0.16856819817041832)"/>
608 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/> 601 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/>
609 </edges> 602 </edges>
610 <edges xmi:type="notation:Connector" xmi:id="_gKseAFaBEeugh9dythfu8g" type="NoteAttachment" source="_NbmzkFZ_Eeugh9dythfu8g" target="_wKszYFaAEeugh9dythfu8g" lineWidth="1"> 603 <edges xmi:type="notation:Connector" xmi:id="_gKseAFaBEeugh9dythfu8g" type="NoteAttachment" source="_NbmzkFZ_Eeugh9dythfu8g" target="_wKszYFaAEeugh9dythfu8g" lineWidth="1">
@@ -619,7 +612,7 @@
619 <styles xmi:type="notation:ArrowStyle" xmi:id="_mMm9IVaBEeugh9dythfu8g"/> 612 <styles xmi:type="notation:ArrowStyle" xmi:id="_mMm9IVaBEeugh9dythfu8g"/>
620 <styles xmi:type="notation:LineTypeStyle" xmi:id="_mMm9IlaBEeugh9dythfu8g"/> 613 <styles xmi:type="notation:LineTypeStyle" xmi:id="_mMm9IlaBEeugh9dythfu8g"/>
621 <element xsi:nil="true"/> 614 <element xsi:nil="true"/>
622 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mMm9I1aBEeugh9dythfu8g" points="[-123, 10, 212, -18]$[-181, 15, 154, -13]"/> 615 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mMm9I1aBEeugh9dythfu8g" points="[10, 16, -15, -26]$[25, 42, 0, 0]"/>
623 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mMqngFaBEeugh9dythfu8g" id="(0.925,0.3116883116883117)"/> 616 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mMqngFaBEeugh9dythfu8g" id="(0.925,0.3116883116883117)"/>
624 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mMqngVaBEeugh9dythfu8g" id="(0.0064516129032258064,0.5882352941176471)"/> 617 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mMqngVaBEeugh9dythfu8g" id="(0.0064516129032258064,0.5882352941176471)"/>
625 </edges> 618 </edges>
@@ -627,7 +620,7 @@
627 <styles xmi:type="notation:ArrowStyle" xmi:id="_79OJwVaBEeugh9dythfu8g"/> 620 <styles xmi:type="notation:ArrowStyle" xmi:id="_79OJwVaBEeugh9dythfu8g"/>
628 <styles xmi:type="notation:LineTypeStyle" xmi:id="_79OJwlaBEeugh9dythfu8g"/> 621 <styles xmi:type="notation:LineTypeStyle" xmi:id="_79OJwlaBEeugh9dythfu8g"/>
629 <element xsi:nil="true"/> 622 <element xsi:nil="true"/>
630 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_79OJw1aBEeugh9dythfu8g" points="[-4, 1, 83, -21]$[-80, 20, 7, -2]"/> 623 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_79OJw1aBEeugh9dythfu8g" points="[-1, 13, 4, -79]$[-5, 90, 0, -2]"/>
631 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_79TpUFaBEeugh9dythfu8g" id="(0.023529411764705882,0.7529411764705882)"/> 624 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_79TpUFaBEeugh9dythfu8g" id="(0.023529411764705882,0.7529411764705882)"/>
632 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_79TpUVaBEeugh9dythfu8g" id="(0.8866666666666667,0.016)"/> 625 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_79TpUVaBEeugh9dythfu8g" id="(0.8866666666666667,0.016)"/>
633 </edges> 626 </edges>
@@ -635,7 +628,7 @@
635 <styles xmi:type="notation:ArrowStyle" xmi:id="__9Ht0VaBEeugh9dythfu8g"/> 628 <styles xmi:type="notation:ArrowStyle" xmi:id="__9Ht0VaBEeugh9dythfu8g"/>
636 <styles xmi:type="notation:LineTypeStyle" xmi:id="__9Ht0laBEeugh9dythfu8g"/> 629 <styles xmi:type="notation:LineTypeStyle" xmi:id="__9Ht0laBEeugh9dythfu8g"/>
637 <element xsi:nil="true"/> 630 <element xsi:nil="true"/>
638 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__9Ht01aBEeugh9dythfu8g" points="[2, -2, 34, 132]$[105, -76, 137, 58]"/> 631 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__9Ht01aBEeugh9dythfu8g" points="[1, -1, -60, 60]$[71, -67, 10, -6]"/>
639 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__9KKEFaBEeugh9dythfu8g" id="(0.9301310043668122,0.009523809523809525)"/> 632 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__9KKEFaBEeugh9dythfu8g" id="(0.9301310043668122,0.009523809523809525)"/>
640 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__9KKEVaBEeugh9dythfu8g" id="(0.918918918918919,0.6089743589743589)"/> 633 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__9KKEVaBEeugh9dythfu8g" id="(0.918918918918919,0.6089743589743589)"/>
641 </edges> 634 </edges>
@@ -669,7 +662,7 @@
669 <styles xmi:type="notation:FontStyle" xmi:id="_sbmAolh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/> 662 <styles xmi:type="notation:FontStyle" xmi:id="_sbmAolh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
670 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sbmAo1h-Eeu-o58Hgezqgw" points="[0, 0, 60, 57]$[-60, -57, 0, 0]"/> 663 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sbmAo1h-Eeu-o58Hgezqgw" points="[0, 0, 60, 57]$[-60, -57, 0, 0]"/>
671 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sbnOwFh-Eeu-o58Hgezqgw" id="(0.375,0.0)"/> 664 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sbnOwFh-Eeu-o58Hgezqgw" id="(0.375,0.0)"/>
672 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sbnOwVh-Eeu-o58Hgezqgw" id="(0.5,0.5)"/> 665 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sbnOwVh-Eeu-o58Hgezqgw" id="(0.5,0.8723404255319149)"/>
673 </edges> 666 </edges>
674 <edges xmi:type="notation:Edge" xmi:id="_tvl_IFh-Eeu-o58Hgezqgw" type="4001" element="_tvUSVlh-Eeu-o58Hgezqgw" source="_d-EnIFh-Eeu-o58Hgezqgw" target="_NbmzkFZ_Eeugh9dythfu8g"> 667 <edges xmi:type="notation:Edge" xmi:id="_tvl_IFh-Eeu-o58Hgezqgw" type="4001" element="_tvUSVlh-Eeu-o58Hgezqgw" source="_d-EnIFh-Eeu-o58Hgezqgw" target="_NbmzkFZ_Eeugh9dythfu8g">
675 <children xmi:type="notation:Node" xmi:id="_tvl_JFh-Eeu-o58Hgezqgw" type="6001"> 668 <children xmi:type="notation:Node" xmi:id="_tvl_JFh-Eeu-o58Hgezqgw" type="6001">
@@ -687,41 +680,113 @@
687 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tvmmNFh-Eeu-o58Hgezqgw" id="(0.4351851851851852,0.0)"/> 680 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tvmmNFh-Eeu-o58Hgezqgw" id="(0.4351851851851852,0.0)"/>
688 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tvmmNVh-Eeu-o58Hgezqgw" id="(0.6941747572815534,0.0)"/> 681 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tvmmNVh-Eeu-o58Hgezqgw" id="(0.6941747572815534,0.0)"/>
689 </edges> 682 </edges>
690 <edges xmi:type="notation:Edge" xmi:id="_y4qxwFh-Eeu-o58Hgezqgw" type="4001" element="_y4Wotlh-Eeu-o58Hgezqgw" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_d-EnIFh-Eeu-o58Hgezqgw"> 683 <edges xmi:type="notation:Connector" xmi:id="_KrO5UFtDEeuZZYOcQVw9qw" type="NoteAttachment" source="_ABSfIFtDEeuZZYOcQVw9qw" target="_NbmzkFZ_Eeugh9dythfu8g" lineWidth="1">
691 <children xmi:type="notation:Node" xmi:id="_y4rY0Fh-Eeu-o58Hgezqgw" type="6001"> 684 <styles xmi:type="notation:ArrowStyle" xmi:id="_KrO5UVtDEeuZZYOcQVw9qw"/>
692 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4rY0Vh-Eeu-o58Hgezqgw" x="-88" y="-63"/> 685 <styles xmi:type="notation:LineTypeStyle" xmi:id="_KrO5UltDEeuZZYOcQVw9qw"/>
686 <element xsi:nil="true"/>
687 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KrO5U1tDEeuZZYOcQVw9qw" points="[2, -4, -64, 94]$[65, -97, -1, 1]"/>
688 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KrYqUFtDEeuZZYOcQVw9qw" id="(0.562962962962963,0.05357142857142857)"/>
689 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KrYqUVtDEeuZZYOcQVw9qw" id="(0.7222222222222222,0.9787234042553191)"/>
690 </edges>
691 <edges xmi:type="notation:Connector" xmi:id="_fP7agFtFEeuZZYOcQVw9qw" type="NoteAttachment" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_Pao80FtFEeuZZYOcQVw9qw" lineWidth="1">
692 <styles xmi:type="notation:ArrowStyle" xmi:id="_fP7agVtFEeuZZYOcQVw9qw"/>
693 <styles xmi:type="notation:LineTypeStyle" xmi:id="_fP8BkFtFEeuZZYOcQVw9qw"/>
694 <element xsi:nil="true"/>
695 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fP8BkVtFEeuZZYOcQVw9qw" points="[-1, 0, 95, -36]$[-96, 0, 0, -36]$[-96, 27, 0, -9]"/>
696 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJc8FtFEeuZZYOcQVw9qw" id="(0.006802721088435374,0.8941176470588236)"/>
697 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJc8VtFEeuZZYOcQVw9qw" id="(0.4076923076923077,0.09)"/>
698 </edges>
699 <edges xmi:type="notation:Connector" xmi:id="_gqf7EFtFEeuZZYOcQVw9qw" type="NoteAttachment" source="_Pao80FtFEeuZZYOcQVw9qw" target="_NbmzkFZ_Eeugh9dythfu8g" lineWidth="1">
700 <styles xmi:type="notation:ArrowStyle" xmi:id="_gqf7EVtFEeuZZYOcQVw9qw"/>
701 <styles xmi:type="notation:LineTypeStyle" xmi:id="_gqf7EltFEeuZZYOcQVw9qw"/>
702 <element xsi:nil="true"/>
703 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gqf7E1tFEeuZZYOcQVw9qw" points="[0, 0, -1, -57]$[0, 39, -1, -18]"/>
704 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gqmBsFtFEeuZZYOcQVw9qw" id="(0.47692307692307695,1.0)"/>
705 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gqmBsVtFEeuZZYOcQVw9qw" id="(0.12777777777777777,0.3829787234042553)"/>
706 </edges>
707 <edges xmi:type="notation:Edge" xmi:id="_to4AkFtGEeuZZYOcQVw9qw" type="4001" element="_tociw1tGEeuZZYOcQVw9qw" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_NbrsEFZ_Eeugh9dythfu8g">
708 <children xmi:type="notation:Node" xmi:id="_to7q8FtGEeuZZYOcQVw9qw" type="6001">
709 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_to7q8VtGEeuZZYOcQVw9qw" x="-4" y="-10"/>
710 </children>
711 <children xmi:type="notation:Node" xmi:id="_to8SAFtGEeuZZYOcQVw9qw" type="6002">
712 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_to8SAVtGEeuZZYOcQVw9qw" x="-1" y="10"/>
713 </children>
714 <children xmi:type="notation:Node" xmi:id="_to9gIFtGEeuZZYOcQVw9qw" type="6003">
715 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_to9gIVtGEeuZZYOcQVw9qw" x="8" y="10"/>
716 </children>
717 <styles xmi:type="notation:ConnectorStyle" xmi:id="_to4AkVtGEeuZZYOcQVw9qw" routing="Rectilinear"/>
718 <styles xmi:type="notation:FontStyle" xmi:id="_to4AkltGEeuZZYOcQVw9qw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
719 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_to5OsFtGEeuZZYOcQVw9qw" points="[7, -11, -453, -173]$[457, -11, -3, -173]$[457, 161, -3, -1]"/>
720 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_to_VUFtGEeuZZYOcQVw9qw" id="(0.9523809523809523,0.4117647058823529)"/>
721 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_to_VUVtGEeuZZYOcQVw9qw" id="(0.7711864406779662,0.02564102564102564)"/>
722 </edges>
723 <edges xmi:type="notation:Edge" xmi:id="_V6FdwFtLEeuZZYOcQVw9qw" type="4001" element="_V5wGk1tLEeuZZYOcQVw9qw" source="_Nbp241Z_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
724 <children xmi:type="notation:Node" xmi:id="_V6FdxFtLEeuZZYOcQVw9qw" type="6001">
725 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V6FdxVtLEeuZZYOcQVw9qw" x="26" y="-17"/>
693 </children> 726 </children>
694 <children xmi:type="notation:Node" xmi:id="_y4rY0lh-Eeu-o58Hgezqgw" type="6002"> 727 <children xmi:type="notation:Node" xmi:id="_V6FdxltLEeuZZYOcQVw9qw" type="6002">
695 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4rY01h-Eeu-o58Hgezqgw" x="-5" y="10"/> 728 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V6Fdx1tLEeuZZYOcQVw9qw" x="2"/>
696 </children> 729 </children>
697 <children xmi:type="notation:Node" xmi:id="_y4r_4Fh-Eeu-o58Hgezqgw" type="6003"> 730 <children xmi:type="notation:Node" xmi:id="_V6FdyFtLEeuZZYOcQVw9qw" type="6003">
698 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4r_4Vh-Eeu-o58Hgezqgw" x="-27" y="10"/> 731 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V6FdyVtLEeuZZYOcQVw9qw" x="-31" y="-10"/>
699 </children> 732 </children>
700 <styles xmi:type="notation:ConnectorStyle" xmi:id="_y4qxwVh-Eeu-o58Hgezqgw" routing="Rectilinear"/> 733 <styles xmi:type="notation:ConnectorStyle" xmi:id="_V6FdwVtLEeuZZYOcQVw9qw" routing="Rectilinear"/>
701 <styles xmi:type="notation:FontStyle" xmi:id="_y4qxwlh-Eeu-o58Hgezqgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 734 <styles xmi:type="notation:FontStyle" xmi:id="_V6FdwltLEeuZZYOcQVw9qw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
702 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y4qxw1h-Eeu-o58Hgezqgw" points="[0, 24, 96, -300]$[-120, 24, -24, -300]$[-120, 344, -24, 20]$[-108, 344, -12, 20]"/> 735 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_V6Fdw1tLEeuZZYOcQVw9qw" points="[0, -8, -6, -6]$[0, -120, -6, -118]$[21, -120, 15, -118]$[21, -8, 15, -6]"/>
703 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y4r_4lh-Eeu-o58Hgezqgw" id="(0.0,0.2823529411764706)"/> 736 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V6FdyltLEeuZZYOcQVw9qw" id="(0.06474820143884892,0.064)"/>
704 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y4r_41h-Eeu-o58Hgezqgw" id="(0.1111111111111111,0.0)"/> 737 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V6Fdy1tLEeuZZYOcQVw9qw" id="(0.1079136690647482,0.048)"/>
705 </edges> 738 </edges>
706 <edges xmi:type="notation:Edge" xmi:id="_7DSp0Fh-Eeu-o58Hgezqgw" type="4001" element="_7C_u7Fh-Eeu-o58Hgezqgw" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_iaquQFh-Eeu-o58Hgezqgw"> 739 <edges xmi:type="notation:Edge" xmi:id="_gKjoAFtLEeuZZYOcQVw9qw" type="4001" element="_gJ0oPFtLEeuZZYOcQVw9qw" source="_Nbp241Z_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
707 <children xmi:type="notation:Node" xmi:id="_7DTQ4Fh-Eeu-o58Hgezqgw" type="6001"> 740 <children xmi:type="notation:Node" xmi:id="_gKkPEFtLEeuZZYOcQVw9qw" type="6001">
708 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DTQ4Vh-Eeu-o58Hgezqgw" x="-207" y="-72"/> 741 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gKkPEVtLEeuZZYOcQVw9qw" x="26" y="-12"/>
709 </children> 742 </children>
710 <children xmi:type="notation:Node" xmi:id="_7DTQ4lh-Eeu-o58Hgezqgw" type="6002"> 743 <children xmi:type="notation:Node" xmi:id="_gKkPEltLEeuZZYOcQVw9qw" type="6002">
711 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DTQ41h-Eeu-o58Hgezqgw" x="-1" y="-10"/> 744 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gKkPE1tLEeuZZYOcQVw9qw" x="-3"/>
712 </children> 745 </children>
713 <children xmi:type="notation:Node" xmi:id="_7DT38Fh-Eeu-o58Hgezqgw" type="6003"> 746 <children xmi:type="notation:Node" xmi:id="_gKkPFFtLEeuZZYOcQVw9qw" type="6003">
714 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DT38Vh-Eeu-o58Hgezqgw" x="1" y="10"/> 747 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gKkPFVtLEeuZZYOcQVw9qw" x="-29" y="-4"/>
715 </children> 748 </children>
716 <styles xmi:type="notation:ConnectorStyle" xmi:id="_7DSp0Vh-Eeu-o58Hgezqgw" routing="Rectilinear"/> 749 <styles xmi:type="notation:ConnectorStyle" xmi:id="_gKjoAVtLEeuZZYOcQVw9qw" routing="Rectilinear"/>
717 <styles xmi:type="notation:FontStyle" xmi:id="_7DSp0lh-Eeu-o58Hgezqgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 750 <styles xmi:type="notation:FontStyle" xmi:id="_gKjoAltLEeuZZYOcQVw9qw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
718 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7DSp01h-Eeu-o58Hgezqgw" points="[0, -49, -12, -365]$[-132, -49, -144, -365]$[-132, 316, -144, 0]$[12, 316, 0, 0]"/> 751 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gKjoA1tLEeuZZYOcQVw9qw" points="[-3, 0, -8, -5]$[-3, -75, -8, -80]$[18, -75, 13, -80]$[18, 0, 13, -5]"/>
719 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7DT38lh-Eeu-o58Hgezqgw" id="(0.0,1.0)"/> 752 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gKk2IFtLEeuZZYOcQVw9qw" id="(0.3669064748201439,0.0)"/>
720 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7DT381h-Eeu-o58Hgezqgw" id="(0.0,0.5128205128205128)"/> 753 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gKk2IVtLEeuZZYOcQVw9qw" id="(0.4028776978417266,0.04)"/>
754 </edges>
755 <edges xmi:type="notation:Edge" xmi:id="_nAXCMFtLEeuZZYOcQVw9qw" type="4001" element="_nADgPFtLEeuZZYOcQVw9qw" source="_Nbp241Z_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
756 <children xmi:type="notation:Node" xmi:id="_nAXCNFtLEeuZZYOcQVw9qw" type="6001">
757 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nAXCNVtLEeuZZYOcQVw9qw" x="24" y="-13"/>
758 </children>
759 <children xmi:type="notation:Node" xmi:id="_nAXCNltLEeuZZYOcQVw9qw" type="6002">
760 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nAXCN1tLEeuZZYOcQVw9qw" x="-9"/>
761 </children>
762 <children xmi:type="notation:Node" xmi:id="_nAXCOFtLEeuZZYOcQVw9qw" type="6003">
763 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nAXCOVtLEeuZZYOcQVw9qw" x="-6" y="-10"/>
764 </children>
765 <styles xmi:type="notation:ConnectorStyle" xmi:id="_nAXCMVtLEeuZZYOcQVw9qw" routing="Rectilinear"/>
766 <styles xmi:type="notation:FontStyle" xmi:id="_nAXCMltLEeuZZYOcQVw9qw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
767 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nAXCM1tLEeuZZYOcQVw9qw" points="[-16, -2, -30, -5]$[-16, -48, -30, -51]$[2, -48, -12, -51]$[2, -2, -12, -5]"/>
768 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nAXCOltLEeuZZYOcQVw9qw" id="(0.762589928057554,0.016)"/>
769 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nAXCO1tLEeuZZYOcQVw9qw" id="(0.8633093525179856,0.04)"/>
770 </edges>
771 <edges xmi:type="notation:Edge" xmi:id="_zbrOMFtdEeuZZYOcQVw9qw" type="4001" element="_zbbWkFtdEeuZZYOcQVw9qw" source="_NbrsEFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
772 <children xmi:type="notation:Node" xmi:id="_zbrONFtdEeuZZYOcQVw9qw" type="6001">
773 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zbrONVtdEeuZZYOcQVw9qw" x="52" y="14"/>
774 </children>
775 <children xmi:type="notation:Node" xmi:id="_zbrONltdEeuZZYOcQVw9qw" type="6002">
776 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zbrON1tdEeuZZYOcQVw9qw" y="10"/>
777 </children>
778 <children xmi:type="notation:Node" xmi:id="_zbrOOFtdEeuZZYOcQVw9qw" type="6003">
779 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zbrOOVtdEeuZZYOcQVw9qw" y="10"/>
780 </children>
781 <styles xmi:type="notation:ConnectorStyle" xmi:id="_zbrOMVtdEeuZZYOcQVw9qw" routing="Rectilinear"/>
782 <styles xmi:type="notation:FontStyle" xmi:id="_zbrOMltdEeuZZYOcQVw9qw" fontColor="7490599" fontName="Cantarell" fontHeight="8"/>
783 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zbrOM1tdEeuZZYOcQVw9qw" points="[-8, -1, 200, 0]$[-199, -1, 9, 0]"/>
784 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zbrOOltdEeuZZYOcQVw9qw" id="(0.06779661016949153,0.3076923076923077)"/>
785 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zbrOO1tdEeuZZYOcQVw9qw" id="(0.935251798561151,0.296)"/>
721 </edges> 786 </edges>
722 </data> 787 </data>
723 </ownedAnnotationEntries> 788 </ownedAnnotationEntries>
724 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NZ9NwFZ_Eeugh9dythfu8g" name="CrossingScenario" tooltipText="" outgoingEdges="_NbAWoFZ_Eeugh9dythfu8g _NbCL0FZ_Eeugh9dythfu8g _y4Wotlh-Eeu-o58Hgezqgw _7C_u7Fh-Eeu-o58Hgezqgw" width="12" height="10"> 789 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NZ9NwFZ_Eeugh9dythfu8g" name="CrossingScenario" tooltipText="" outgoingEdges="_NbAWoFZ_Eeugh9dythfu8g _NbCL0FZ_Eeugh9dythfu8g _tociw1tGEeuZZYOcQVw9qw" width="12" height="10">
725 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/> 790 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/>
726 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/> 791 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/>
727 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 792 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -756,7 +821,7 @@
756 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 821 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
757 </ownedElements> 822 </ownedElements>
758 </ownedDiagramElements> 823 </ownedDiagramElements>
759 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaCGQFZ_Eeugh9dythfu8g" name="Lane" tooltipText="" outgoingEdges="_NbEBAFZ_Eeugh9dythfu8g _NbVGwFZ_Eeugh9dythfu8g" incomingEdges="_NbCL0FZ_Eeugh9dythfu8g _NbEBAFZ_Eeugh9dythfu8g _sbU64Fh-Eeu-o58Hgezqgw _tvUSVlh-Eeu-o58Hgezqgw" width="12" height="10"> 824 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaCGQFZ_Eeugh9dythfu8g" name="Lane" tooltipText="" outgoingEdges="_NbVGwFZ_Eeugh9dythfu8g" incomingEdges="_NbCL0FZ_Eeugh9dythfu8g _sbU64Fh-Eeu-o58Hgezqgw _tvUSVlh-Eeu-o58Hgezqgw" width="12" height="10">
760 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/> 825 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/>
761 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/> 826 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/>
762 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 827 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -767,14 +832,6 @@
767 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> 832 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
768 </ownedStyle> 833 </ownedStyle>
769 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 834 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
770 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NauCwFZ_Eeugh9dythfu8g" name="width : Size = S_Small" tooltipText="">
771 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/width"/>
772 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/width"/>
773 <ownedStyle xmi:type="diagram:BundledImage" uid="_NauCwVZ_Eeugh9dythfu8g" labelAlignment="LEFT" description="_NatbsFZ_Eeugh9dythfu8g">
774 <labelFormat>bold</labelFormat>
775 </ownedStyle>
776 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
777 </ownedElements>
778 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Naup0FZ_Eeugh9dythfu8g" name="referenceCoord : EDouble = 0.0" tooltipText=""> 835 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Naup0FZ_Eeugh9dythfu8g" name="referenceCoord : EDouble = 0.0" tooltipText="">
779 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/referenceCoord"/> 836 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/referenceCoord"/>
780 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/referenceCoord"/> 837 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/referenceCoord"/>
@@ -783,51 +840,8 @@
783 </ownedStyle> 840 </ownedStyle>
784 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 841 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
785 </ownedElements> 842 </ownedElements>
786 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NavQ4FZ_Eeugh9dythfu8g" name="numWidth : EDouble = 0.0" tooltipText="">
787 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/numWidth"/>
788 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/numWidth"/>
789 <ownedStyle xmi:type="diagram:BundledImage" uid="_Nav38FZ_Eeugh9dythfu8g" labelAlignment="LEFT" description="_NatbsFZ_Eeugh9dythfu8g">
790 <labelFormat>bold</labelFormat>
791 </ownedStyle>
792 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
793 </ownedElements>
794 </ownedDiagramElements> 843 </ownedDiagramElements>
795 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaGXsFZ_Eeugh9dythfu8g" name="Size" tooltipText="" width="12" height="10"> 844 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaHl0FZ_Eeugh9dythfu8g" name="Actor" tooltipText="" outgoingEdges="_V5wGk1tLEeuZZYOcQVw9qw _gJ0oPFtLEeuZZYOcQVw9qw _nADgPFtLEeuZZYOcQVw9qw" incomingEdges="_NbAWoFZ_Eeugh9dythfu8g _NbGdQ1Z_Eeugh9dythfu8g _NbHEWVZ_Eeugh9dythfu8g _NbTRkFZ_Eeugh9dythfu8g _NbT4plZ_Eeugh9dythfu8g _NbVGwFZ_Eeugh9dythfu8g _V5wGk1tLEeuZZYOcQVw9qw _gJ0oPFtLEeuZZYOcQVw9qw _nADgPFtLEeuZZYOcQVw9qw _zbbWkFtdEeuZZYOcQVw9qw" width="12" height="10">
796 <target xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Size"/>
797 <semanticElements xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Size"/>
798 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
799 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
800 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
801 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_NaG-wFZ_Eeugh9dythfu8g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
802 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
803 </ownedStyle>
804 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
805 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Na63EFZ_Eeugh9dythfu8g" name="S_Small" tooltipText="">
806 <target xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Size/S_Small"/>
807 <semanticElements xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Size/S_Small"/>
808 <ownedStyle xmi:type="diagram:BundledImage" uid="_Na63EVZ_Eeugh9dythfu8g" labelAlignment="LEFT">
809 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
810 </ownedStyle>
811 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
812 </ownedElements>
813 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Na63ElZ_Eeugh9dythfu8g" name="S_Med" tooltipText="">
814 <target xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Size/S_Med"/>
815 <semanticElements xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Size/S_Med"/>
816 <ownedStyle xmi:type="diagram:BundledImage" uid="_Na63E1Z_Eeugh9dythfu8g" labelAlignment="LEFT">
817 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
818 </ownedStyle>
819 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
820 </ownedElements>
821 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Na7eIFZ_Eeugh9dythfu8g" name="S_Large" tooltipText="">
822 <target xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Size/S_Large"/>
823 <semanticElements xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Size/S_Large"/>
824 <ownedStyle xmi:type="diagram:BundledImage" uid="_Na7eIVZ_Eeugh9dythfu8g" labelAlignment="LEFT">
825 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
826 </ownedStyle>
827 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
828 </ownedElements>
829 </ownedDiagramElements>
830 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaHl0FZ_Eeugh9dythfu8g" name="Actor" tooltipText="" outgoingEdges="_NbFPIFZ_Eeugh9dythfu8g" incomingEdges="_NbAWoFZ_Eeugh9dythfu8g _NbGdQ1Z_Eeugh9dythfu8g _NbHEWVZ_Eeugh9dythfu8g _NbTRkFZ_Eeugh9dythfu8g _NbT4plZ_Eeugh9dythfu8g _NbVGwFZ_Eeugh9dythfu8g" width="12" height="10">
831 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Actor"/> 845 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Actor"/>
832 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Actor"/> 846 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Actor"/>
833 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 847 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -887,7 +901,7 @@
887 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 901 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
888 </ownedElements> 902 </ownedElements>
889 </ownedDiagramElements> 903 </ownedDiagramElements>
890 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaKpIVZ_Eeugh9dythfu8g" name="Relation" tooltipText="" outgoingEdges="_NbGdQ1Z_Eeugh9dythfu8g" incomingEdges="_NbFPIFZ_Eeugh9dythfu8g _NbI5gFZ_Eeugh9dythfu8g _NbNyAFZ_Eeugh9dythfu8g" width="12" height="10"> 904 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaKpIVZ_Eeugh9dythfu8g" name="Relation" tooltipText="" outgoingEdges="_NbGdQ1Z_Eeugh9dythfu8g _zbbWkFtdEeuZZYOcQVw9qw" incomingEdges="_NbI5gFZ_Eeugh9dythfu8g _NbNyAFZ_Eeugh9dythfu8g _tociw1tGEeuZZYOcQVw9qw" width="12" height="10">
891 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Relation"/> 905 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Relation"/>
892 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Relation"/> 906 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Relation"/>
893 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 907 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1066,33 +1080,6 @@
1066 </ownedStyle> 1080 </ownedStyle>
1067 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 1081 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1068 </ownedDiagramElements> 1082 </ownedDiagramElements>
1069 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NbEBAFZ_Eeugh9dythfu8g" name="[0..1] prevLane" sourceNode="_NaCGQFZ_Eeugh9dythfu8g" targetNode="_NaCGQFZ_Eeugh9dythfu8g">
1070 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Lane/prevLane"/>
1071 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Lane/prevLane"/>
1072 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NbEoEFZ_Eeugh9dythfu8g" routingStyle="manhattan" strokeColor="0,0,0">
1073 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1074 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NbEoElZ_Eeugh9dythfu8g" showIcon="false">
1075 <customFeatures>labelSize</customFeatures>
1076 </centerLabelStyle>
1077 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_NbEoEVZ_Eeugh9dythfu8g" showIcon="false" labelColor="39,76,114">
1078 <customFeatures>labelSize</customFeatures>
1079 </endLabelStyle>
1080 </ownedStyle>
1081 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1082 </ownedDiagramElements>
1083 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NbFPIFZ_Eeugh9dythfu8g" name="[0..*] relations" sourceNode="_NaHl0FZ_Eeugh9dythfu8g" targetNode="_NaKpIVZ_Eeugh9dythfu8g">
1084 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/relations"/>
1085 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/relations"/>
1086 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NbF2MFZ_Eeugh9dythfu8g" description="_NbA9sFZ_Eeugh9dythfu8g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1087 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NbF2MlZ_Eeugh9dythfu8g" showIcon="false">
1088 <customFeatures>labelSize</customFeatures>
1089 </centerLabelStyle>
1090 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_NbF2MVZ_Eeugh9dythfu8g" showIcon="false" labelColor="39,76,114">
1091 <customFeatures>labelSize</customFeatures>
1092 </endLabelStyle>
1093 </ownedStyle>
1094 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1095 </ownedDiagramElements>
1096 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NbGdQ1Z_Eeugh9dythfu8g" name="[1..1] target" sourceNode="_NaKpIVZ_Eeugh9dythfu8g" targetNode="_NaHl0FZ_Eeugh9dythfu8g"> 1083 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_NbGdQ1Z_Eeugh9dythfu8g" name="[1..1] target" sourceNode="_NaKpIVZ_Eeugh9dythfu8g" targetNode="_NaHl0FZ_Eeugh9dythfu8g">
1097 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Relation/target"/> 1084 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Relation/target"/>
1098 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Relation/target"/> 1085 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Relation/target"/>
@@ -1228,7 +1215,7 @@
1228 </ownedStyle> 1215 </ownedStyle>
1229 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> 1216 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
1230 </ownedDiagramElements> 1217 </ownedDiagramElements>
1231 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_d9eKMFh-Eeu-o58Hgezqgw" name="Lane_Horizontal" tooltipText="" outgoingEdges="_tvUSVlh-Eeu-o58Hgezqgw" incomingEdges="_y4Wotlh-Eeu-o58Hgezqgw" width="12" height="10"> 1218 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_d9eKMFh-Eeu-o58Hgezqgw" name="Lane_Horizontal" tooltipText="" outgoingEdges="_tvUSVlh-Eeu-o58Hgezqgw" width="12" height="10">
1232 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/> 1219 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/>
1233 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/> 1220 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/>
1234 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1221 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1239,7 +1226,7 @@
1239 </ownedStyle> 1226 </ownedStyle>
1240 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1227 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1241 </ownedDiagramElements> 1228 </ownedDiagramElements>
1242 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iaOCUFh-Eeu-o58Hgezqgw" name="Lane_Vertical" tooltipText="" outgoingEdges="_sbU64Fh-Eeu-o58Hgezqgw" incomingEdges="_7C_u7Fh-Eeu-o58Hgezqgw" width="12" height="10"> 1229 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iaOCUFh-Eeu-o58Hgezqgw" name="Lane_Vertical" tooltipText="" outgoingEdges="_sbU64Fh-Eeu-o58Hgezqgw" width="12" height="10">
1243 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/> 1230 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/>
1244 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/> 1231 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/>
1245 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1232 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1274,25 +1261,50 @@
1274 </ownedStyle> 1261 </ownedStyle>
1275 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 1262 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1276 </ownedDiagramElements> 1263 </ownedDiagramElements>
1277 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_y4Wotlh-Eeu-o58Hgezqgw" name="[1..1] horizontal_head" sourceNode="_NZ9NwFZ_Eeugh9dythfu8g" targetNode="_d9eKMFh-Eeu-o58Hgezqgw"> 1264 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_tociw1tGEeuZZYOcQVw9qw" name="[0..*] relations" sourceNode="_NZ9NwFZ_Eeugh9dythfu8g" targetNode="_NaKpIVZ_Eeugh9dythfu8g">
1278 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/horizontal_head"/> 1265 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/relations"/>
1279 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/horizontal_head"/> 1266 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/relations"/>
1280 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0-GNMFh-Eeu-o58Hgezqgw" description="_NbHEUFZ_Eeugh9dythfu8g" routingStyle="manhattan" strokeColor="0,0,0"> 1267 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2zDRJltGEeuZZYOcQVw9qw" description="_NbA9sFZ_Eeugh9dythfu8g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1281 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0-GNMlh-Eeu-o58Hgezqgw" showIcon="false"> 1268 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_2zDRKFtGEeuZZYOcQVw9qw" showIcon="false"/>
1282 <labelFormat>bold</labelFormat> 1269 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2zDRJ1tGEeuZZYOcQVw9qw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1283 </centerLabelStyle> 1270 </ownedStyle>
1284 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_0-GNMVh-Eeu-o58Hgezqgw" labelSize="6" showIcon="false" labelColor="39,76,114"/> 1271 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1272 </ownedDiagramElements>
1273 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_V5wGk1tLEeuZZYOcQVw9qw" name="[0..*] /dist_near" sourceNode="_NaHl0FZ_Eeugh9dythfu8g" targetNode="_NaHl0FZ_Eeugh9dythfu8g">
1274 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/dist_near"/>
1275 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/dist_near"/>
1276 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ahefqVtLEeuZZYOcQVw9qw" description="_ahefpltLEeuZZYOcQVw9qw" routingStyle="manhattan" strokeColor="114,159,207">
1277 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ahefq1tLEeuZZYOcQVw9qw" showIcon="false" labelColor="39,76,114"/>
1278 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ahefqltLEeuZZYOcQVw9qw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1279 </ownedStyle>
1280 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1281 </ownedDiagramElements>
1282 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_gJ0oPFtLEeuZZYOcQVw9qw" name="[0..*] /dist_med" sourceNode="_NaHl0FZ_Eeugh9dythfu8g" targetNode="_NaHl0FZ_Eeugh9dythfu8g">
1283 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/dist_med"/>
1284 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/dist_med"/>
1285 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_lfr5pltLEeuZZYOcQVw9qw" description="_ahefpltLEeuZZYOcQVw9qw" routingStyle="manhattan" strokeColor="114,159,207">
1286 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_lfr5qFtLEeuZZYOcQVw9qw" showIcon="false" labelColor="39,76,114"/>
1287 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_lfr5p1tLEeuZZYOcQVw9qw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1288 </ownedStyle>
1289 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1290 </ownedDiagramElements>
1291 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_nADgPFtLEeuZZYOcQVw9qw" name="[0..*] /dist_far" sourceNode="_NaHl0FZ_Eeugh9dythfu8g" targetNode="_NaHl0FZ_Eeugh9dythfu8g">
1292 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/dist_far"/>
1293 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Actor/dist_far"/>
1294 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_q3u8YFtLEeuZZYOcQVw9qw" description="_ahefpltLEeuZZYOcQVw9qw" routingStyle="manhattan" strokeColor="114,159,207">
1295 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_q3u8YltLEeuZZYOcQVw9qw" showIcon="false" labelColor="39,76,114"/>
1296 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_q3u8YVtLEeuZZYOcQVw9qw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1285 </ownedStyle> 1297 </ownedStyle>
1286 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 1298 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1287 </ownedDiagramElements> 1299 </ownedDiagramElements>
1288 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_7C_u7Fh-Eeu-o58Hgezqgw" name="[1..1] vertical_head" sourceNode="_NZ9NwFZ_Eeugh9dythfu8g" targetNode="_iaOCUFh-Eeu-o58Hgezqgw"> 1300 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zbbWkFtdEeuZZYOcQVw9qw" name="[1..1] source" sourceNode="_NaKpIVZ_Eeugh9dythfu8g" targetNode="_NaHl0FZ_Eeugh9dythfu8g">
1289 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/vertical_head"/> 1301 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//Relation/source"/>
1290 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/vertical_head"/> 1302 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//Relation/source"/>
1291 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_8sA7IFh-Eeu-o58Hgezqgw" description="_NbHEUFZ_Eeugh9dythfu8g" routingStyle="manhattan" strokeColor="0,0,0"> 1303 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0Dc_5ltdEeuZZYOcQVw9qw" description="_NbHEUFZ_Eeugh9dythfu8g" routingStyle="manhattan" strokeColor="0,0,0">
1292 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_8sA7Ilh-Eeu-o58Hgezqgw" showIcon="false"> 1304 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0Dc_6FtdEeuZZYOcQVw9qw" showIcon="false">
1293 <labelFormat>bold</labelFormat> 1305 <labelFormat>bold</labelFormat>
1294 </centerLabelStyle> 1306 </centerLabelStyle>
1295 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_8sA7IVh-Eeu-o58Hgezqgw" labelSize="6" showIcon="false" labelColor="39,76,114"/> 1307 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_0Dc_51tdEeuZZYOcQVw9qw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1296 </ownedStyle> 1308 </ownedStyle>
1297 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 1309 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1298 </ownedDiagramElements> 1310 </ownedDiagramElements>
diff --git a/Domains/crossingScenario/model/crossingScenario.ecore b/Domains/crossingScenario/model/crossingScenario.ecore
index b023a2fa..c1aab2b8 100644
--- a/Domains/crossingScenario/model/crossingScenario.ecore
+++ b/Domains/crossingScenario/model/crossingScenario.ecore
@@ -10,25 +10,14 @@
10 <eStructuralFeatures xsi:type="ecore:EReference" name="lanes" upperBound="-1" 10 <eStructuralFeatures xsi:type="ecore:EReference" name="lanes" upperBound="-1"
11 eType="#//Lane" containment="true"/> 11 eType="#//Lane" containment="true"/>
12 <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 12 <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxTime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
13 <eStructuralFeatures xsi:type="ecore:EReference" name="horizontal_head" lowerBound="1" 13 <eStructuralFeatures xsi:type="ecore:EReference" name="relations" upperBound="-1"
14 eType="#//Lane_Horizontal"/> 14 eType="#//Relation" containment="true"/>
15 <eStructuralFeatures xsi:type="ecore:EReference" name="vertical_head" lowerBound="1"
16 eType="#//Lane_Vertical"/>
17 </eClassifiers> 15 </eClassifiers>
18 <eClassifiers xsi:type="ecore:EClass" name="Lane" abstract="true"> 16 <eClassifiers xsi:type="ecore:EClass" name="Lane" abstract="true">
19 <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="#//Size"/>
20 <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceCoord" lowerBound="1" 17 <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceCoord" lowerBound="1"
21 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 18 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
22 <eStructuralFeatures xsi:type="ecore:EReference" name="prevLane" eType="#//Lane"/>
23 <eStructuralFeatures xsi:type="ecore:EReference" name="actors" upperBound="-1" 19 <eStructuralFeatures xsi:type="ecore:EReference" name="actors" upperBound="-1"
24 eType="#//Actor" eOpposite="#//Actor/placedOn"/> 20 eType="#//Actor" eOpposite="#//Actor/placedOn"/>
25 <eStructuralFeatures xsi:type="ecore:EAttribute" name="numWidth" lowerBound="1"
26 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
27 </eClassifiers>
28 <eClassifiers xsi:type="ecore:EEnum" name="Size">
29 <eLiterals name="S_Small"/>
30 <eLiterals name="S_Med" value="1"/>
31 <eLiterals name="S_Large" value="2"/>
32 </eClassifiers> 21 </eClassifiers>
33 <eClassifiers xsi:type="ecore:EClass" name="Actor" abstract="true"> 22 <eClassifiers xsi:type="ecore:EClass" name="Actor" abstract="true">
34 <eStructuralFeatures xsi:type="ecore:EAttribute" name="xPos" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="xPos" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
@@ -38,16 +27,22 @@
38 <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
39 <eStructuralFeatures xsi:type="ecore:EAttribute" name="xSpeed" lowerBound="1" 28 <eStructuralFeatures xsi:type="ecore:EAttribute" name="xSpeed" lowerBound="1"
40 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/> 29 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
41 <eStructuralFeatures xsi:type="ecore:EReference" name="relations" upperBound="-1"
42 eType="#//Relation" containment="true"/>
43 <eStructuralFeatures xsi:type="ecore:EReference" name="placedOn" lowerBound="1" 30 <eStructuralFeatures xsi:type="ecore:EReference" name="placedOn" lowerBound="1"
44 eType="#//Lane" eOpposite="#//Lane/actors"/> 31 eType="#//Lane" eOpposite="#//Lane/actors"/>
45 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ySpeed" lowerBound="1" 32 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ySpeed" lowerBound="1"
46 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 33 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
34 <eStructuralFeatures xsi:type="ecore:EReference" name="dist_near" upperBound="-1"
35 eType="#//Actor" volatile="true" transient="true" derived="true"/>
36 <eStructuralFeatures xsi:type="ecore:EReference" name="dist_med" upperBound="-1"
37 eType="#//Actor" volatile="true" transient="true" derived="true"/>
38 <eStructuralFeatures xsi:type="ecore:EReference" name="dist_far" upperBound="-1"
39 eType="#//Actor" volatile="true" transient="true" derived="true"/>
47 </eClassifiers> 40 </eClassifiers>
48 <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true"> 41 <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true">
49 <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1" 42 <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
50 eType="#//Actor"/> 43 eType="#//Actor"/>
44 <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
45 eType="#//Actor"/>
51 </eClassifiers> 46 </eClassifiers>
52 <eClassifiers xsi:type="ecore:EClass" name="SpatialRelation" abstract="true" eSuperTypes="#//Relation"/> 47 <eClassifiers xsi:type="ecore:EClass" name="SpatialRelation" abstract="true" eSuperTypes="#//Relation"/>
53 <eClassifiers xsi:type="ecore:EClass" name="TemporalRelation" abstract="true" eSuperTypes="#//Relation"/> 48 <eClassifiers xsi:type="ecore:EClass" name="TemporalRelation" abstract="true" eSuperTypes="#//Relation"/>
diff --git a/Domains/crossingScenario/model/crossingScenario.genmodel b/Domains/crossingScenario/model/crossingScenario.genmodel
index 173681c0..a5d7c5eb 100644
--- a/Domains/crossingScenario/model/crossingScenario.genmodel
+++ b/Domains/crossingScenario/model/crossingScenario.genmodel
@@ -6,11 +6,6 @@
6 operationReflection="true" importOrganizing="true"> 6 operationReflection="true" importOrganizing="true">
7 <foreignModel>crossingScenario.ecore</foreignModel> 7 <foreignModel>crossingScenario.ecore</foreignModel>
8 <genPackages prefix="CrossingScenario" disposableProviderFactory="true" ecorePackage="crossingScenario.ecore#/"> 8 <genPackages prefix="CrossingScenario" disposableProviderFactory="true" ecorePackage="crossingScenario.ecore#/">
9 <genEnums typeSafeEnumCompatible="false" ecoreEnum="crossingScenario.ecore#//Size">
10 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Small"/>
11 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Med"/>
12 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Large"/>
13 </genEnums>
14 <genEnums typeSafeEnumCompatible="false" ecoreEnum="crossingScenario.ecore#//Distance"> 9 <genEnums typeSafeEnumCompatible="false" ecoreEnum="crossingScenario.ecore#//Distance">
15 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Distance/D_Near"/> 10 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Distance/D_Near"/>
16 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Distance/D_Med"/> 11 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Distance/D_Med"/>
@@ -22,15 +17,11 @@
22 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/actors"/> 17 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/actors"/>
23 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/lanes"/> 18 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/lanes"/>
24 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//CrossingScenario/maxTime"/> 19 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//CrossingScenario/maxTime"/>
25 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/horizontal_head"/> 20 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/relations"/>
26 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/vertical_head"/>
27 </genClasses> 21 </genClasses>
28 <genClasses ecoreClass="crossingScenario.ecore#//Lane"> 22 <genClasses ecoreClass="crossingScenario.ecore#//Lane">
29 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/width"/>
30 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/referenceCoord"/> 23 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/referenceCoord"/>
31 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Lane/prevLane"/>
32 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Lane/actors"/> 24 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Lane/actors"/>
33 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/numWidth"/>
34 </genClasses> 25 </genClasses>
35 <genClasses image="false" ecoreClass="crossingScenario.ecore#//Actor"> 26 <genClasses image="false" ecoreClass="crossingScenario.ecore#//Actor">
36 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/xPos"/> 27 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/xPos"/>
@@ -38,12 +29,15 @@
38 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/length"/> 29 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/length"/>
39 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/width"/> 30 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/width"/>
40 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/xSpeed"/> 31 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/xSpeed"/>
41 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Actor/relations"/>
42 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Actor/placedOn"/> 32 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Actor/placedOn"/>
43 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/ySpeed"/> 33 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Actor/ySpeed"/>
34 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Actor/dist_near"/>
35 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Actor/dist_med"/>
36 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Actor/dist_far"/>
44 </genClasses> 37 </genClasses>
45 <genClasses image="false" ecoreClass="crossingScenario.ecore#//Relation"> 38 <genClasses image="false" ecoreClass="crossingScenario.ecore#//Relation">
46 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Relation/target"/> 39 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Relation/target"/>
40 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Relation/source"/>
47 </genClasses> 41 </genClasses>
48 <genClasses image="false" ecoreClass="crossingScenario.ecore#//SpatialRelation"/> 42 <genClasses image="false" ecoreClass="crossingScenario.ecore#//SpatialRelation"/>
49 <genClasses image="false" ecoreClass="crossingScenario.ecore#//TemporalRelation"/> 43 <genClasses image="false" ecoreClass="crossingScenario.ecore#//TemporalRelation"/>
diff --git a/Domains/crossingScenario/plugin.xml b/Domains/crossingScenario/plugin.xml
index 39c9cd2b..c8846e1b 100644
--- a/Domains/crossingScenario/plugin.xml
+++ b/Domains/crossingScenario/plugin.xml
@@ -4,9 +4,4 @@
4 <!-- @generated crossingScenario --> 4 <!-- @generated crossingScenario -->
5 <package class="crossingScenario.CrossingScenarioPackage" genModel="model/crossingScenario.genmodel" uri="http://www.example.com/crossingScenario"/> 5 <package class="crossingScenario.CrossingScenarioPackage" genModel="model/crossingScenario.genmodel" uri="http://www.example.com/crossingScenario"/>
6 </extension> 6 </extension>
7 <extension id="queries.Queries" point="org.eclipse.viatra.query.runtime.queryspecification">
8 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:queries.Queries" id="queries.Queries">
9 <query-specification fqn="queries.x"/>
10 </group>
11 </extension>
12</plugin> 7</plugin>
diff --git a/Domains/crossingScenario/queries/crossingScenarioQueries.vql b/Domains/crossingScenario/queries/crossingScenarioQueries.vql
index 34eff55c..179da874 100644
--- a/Domains/crossingScenario/queries/crossingScenarioQueries.vql
+++ b/Domains/crossingScenario/queries/crossingScenarioQueries.vql
@@ -14,160 +14,172 @@ import "http://www.eclipse.org/emf/2002/Ecore"
14//CrossingScenario 14//CrossingScenario
15///////////// 15/////////////
16 16
17/*
17//TODO Hard-code xSize? 18//TODO Hard-code xSize?
18//TODO Hard-code ySize? 19//TODO Hard-code ySize?
19 20
20//TODO Hard-code maxTime? 21//TODO Hard-code maxTime?
21//@Constraint(severity="error", key={l}, message="3 CrossingScenari") 22@Constraint(severity="error", key={l}, message="3 CrossingScenari")
22//pattern define_cs_maxTime(cs:CrossingScenario) { 23pattern define_cs_maxTime(cs:CrossingScenario) {
23// CrossingScenario.maxTime(cs, mt); 24 CrossingScenario.maxTime(cs, mt);
24// check(mt != 60.0); 25 check(mt != 60.0);
25//}
26
27
28//////////////
29//Lane
30//////////////
31
32@Constraint(severity="error", key={l}, message="1 Lane")
33pattern define_numWidth_small(l : Lane) {
34 Lane.width(l, Size::S_Small);
35 Lane.numWidth(l, nw);
36 check(nw <= 5.0);
37} or {
38 Lane.width(l, Size::S_Small);
39 Lane.numWidth(l, nw);
40 check(nw >= 10.0);
41} 26}
27*/
42 28
43@Constraint(severity="error", key={l}, message="2 Lane") 29///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
44pattern define_numWidth_medium(l : Lane) { 30//Lane
45 Lane.width(l, ::S_Med); 31///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
46 Lane.numWidth(l, nw); 32/*
47 check(nw <= 10.0); 33
48} 34////<<<<OLD>>>>
49or { 35////Width: Different Lanes
50 Lane.width(l, Size::S_Med); 36//@Constraint(severity="error", key={l}, message="1 Lane")
51 Lane.numWidth(l, nw); 37//pattern define_numWidth_small(l : Lane) {
52 check(nw >= 15.0); 38// Lane.width(l, Size::S_Small);
53} 39// Lane.numWidth(l, nw);
40// check(nw <= 5.0);
41//} or {
42// Lane.width(l, Size::S_Small);
43// Lane.numWidth(l, nw);
44// check(nw >= 10.0);
45//}
46//
47//@Constraint(severity="error", key={l}, message="2 Lane")
48//pattern define_numWidth_medium(l : Lane) {
49// Lane.width(l, ::S_Med);
50// Lane.numWidth(l, nw);
51// check(nw <= 10.0);
52//}
53//or {
54// Lane.width(l, Size::S_Med);
55// Lane.numWidth(l, nw);
56// check(nw >= 15.0);
57//}
58//
59//@Constraint(severity="error", key={l}, message="3 Lane")
60//pattern define_numWidth_large(l : Lane) {
61// Lane.width(l, Size::S_Large);
62// Lane.numWidth(l, nw);
63// check(nw <= 15.0);
64//}
65//or {
66// Lane.width(l, Size::S_Large);
67// Lane.numWidth(l, nw);
68// check(nw >= 20.0);
69//}
54 70
55@Constraint(severity="error", key={l}, message="3 Lane") 71//<<<<NEW>>>>
56pattern define_numWidth_large(l : Lane) { 72//Width is FIXED: always 5
57 Lane.width(l, Size::S_Large);
58 Lane.numWidth(l, nw);
59 check(nw <= 15.0);
60}
61or {
62 Lane.width(l, Size::S_Large);
63 Lane.numWidth(l, nw);
64 check(nw >= 20.0);
65}
66 73
67/////////////Prevlane 74/////////////Prevlane
68 75
69////////head lanes do not have prevLane 76////<<<<OLD>>>>
70@Constraint(severity="error", key={l}, message="6.1 Lane") 77////Generating 2 linkedlists (1 for horizontal, 1 for vertical lanes)
71pattern define_prevLane_headVertLaneDoesNotHavePrevLane(cs:CrossingScenario, l:Lane_Vertical) { 78//////////head lanes do not have prevLane
72 CrossingScenario.vertical_head(cs, l); 79//@Constraint(severity="error", key={l}, message="6.1 Lane")
73 Lane.prevLane(l, _); 80//pattern define_prevLane_headVertLaneDoesNotHavePrevLane(cs:CrossingScenario, l:Lane_Vertical) {
74} 81// CrossingScenario.vertical_head(cs, l);
75 82// Lane.prevLane(l, _);
76@Constraint(severity="error", key={l}, message="6.2 Lane") 83//}
77pattern define_prevLane_headHoriLaneDoesNotHavePrevLane(cs:CrossingScenario, l:Lane_Horizontal) { 84//
78 CrossingScenario.horizontal_head(cs, l); 85//@Constraint(severity="error", key={l}, message="6.2 Lane")
79 Lane.prevLane(l, _); 86//pattern define_prevLane_headHoriLaneDoesNotHavePrevLane(cs:CrossingScenario, l:Lane_Horizontal) {
80} 87// CrossingScenario.horizontal_head(cs, l);
81 88// Lane.prevLane(l, _);
82////////Non-head lanes must have prevLane 89//}
83@Constraint(severity="error", key={l}, message="6.1 Lane") 90//
84pattern define_prevLane_nonheadVertLaneHasPrevLane(l:Lane_Vertical) { 91//////////Non-head lanes must have prevLane
85 neg find find_headVertLane(l); 92//@Constraint(severity="error", key={l}, message="6.1 Lane")
86 neg find find_laneWithPrevLane(l); 93//pattern define_prevLane_nonheadVertLaneHasPrevLane(l:Lane_Vertical) {
87} 94// neg find find_headVertLane(l);
88 95// neg find find_laneWithPrevLane(l);
89@Constraint(severity="error", key={l}, message="6.1 Lane") 96//}
90pattern define_prevLane_nonheadHoriLaneHasPrevLane(l:Lane_Horizontal) { 97//
91 neg find find_headHoriLane(l); 98//@Constraint(severity="error", key={l}, message="6.1 Lane")
92 neg find find_laneWithPrevLane(l); 99//pattern define_prevLane_nonheadHoriLaneHasPrevLane(l:Lane_Horizontal) {
93} 100// neg find find_headHoriLane(l);
94 101// neg find find_laneWithPrevLane(l);
95private pattern find_headVertLane(l:Lane_Vertical) { 102//}
96 CrossingScenario.vertical_head(_, l); 103//
97} 104//private pattern find_headVertLane(l:Lane_Vertical) {
98private pattern find_headHoriLane(l:Lane_Horizontal) { 105// CrossingScenario.vertical_head(_, l);
99 CrossingScenario.horizontal_head(_, l); 106//}
100} 107//private pattern find_headHoriLane(l:Lane_Horizontal) {
101private pattern find_laneWithPrevLane(l:Lane) { 108// CrossingScenario.horizontal_head(_, l);
102 Lane.prevLane(l, _); 109//}
103} 110//private pattern find_laneWithPrevLane(l:Lane) {
104 111// Lane.prevLane(l, _);
105/////////Lane cannot be its own recursive prevLane 112//}
106@Constraint(severity="error", key={l}, message="6.1 Lane") 113//
107pattern define_prevLane_lanecannotBeItsOwnPrevLane(l:Lane) { 114///////////Lane cannot be its own recursive prevLane
108 Lane.prevLane(l, l); 115//@Constraint(severity="error", key={l}, message="6.1 Lane")
109} 116//pattern define_prevLane_lanecannotBeItsOwnPrevLane(l:Lane) {
110 117// Lane.prevLane(l, l);
111@Constraint(severity="error", key={l}, message="6.2 Lane") 118//}
112pattern define_prevLane_lanecannotBeItsOwnRecursivePrevLane(l:Lane) { 119//
113 find find_prevLane+(l, l); 120//@Constraint(severity="error", key={l}, message="6.2 Lane")
114} 121//pattern define_prevLane_lanecannotBeItsOwnRecursivePrevLane(l:Lane) {
115private pattern find_prevLane(l1:Lane, l2:Lane) { 122// find find_prevLane+(l, l);
116 Lane.prevLane(l1, l2); 123//}
117} 124//private pattern find_prevLane(l1:Lane, l2:Lane) {
118 125// Lane.prevLane(l1, l2);
119//////Lane cannot be prevLane of >1 other lane 126//}
120@Constraint(severity="error", key={l1, l2}, message="7 Lane") 127//
121pattern define_prevLane_lanecannotbeprevLaneof2lanes(l1:Lane, l2:Lane) { 128////////Lane cannot be prevLane of >1 other lane
122 Lane.prevLane(l1, l); 129//@Constraint(severity="error", key={l1, l2}, message="7 Lane")
123 Lane.prevLane(l2, l); 130//pattern define_prevLane_lanecannotbeprevLaneof2lanes(l1:Lane, l2:Lane) {
124 l1 != l2; 131// Lane.prevLane(l1, l);
125} 132// Lane.prevLane(l2, l);
126 133// l1 != l2;
127//////consecutive lanes must have same orientation 134//}
128@Constraint(severity="error", key={l1, l2}, message="8 Lane") 135//
129pattern define_prevLane_consecutiveLanesMustHaveSameOrientation1(l1:Lane_Horizontal, l2:Lane_Vertical) { 136////////consecutive lanes must have same orientation
130 Lane.prevLane(l1, l2); 137//@Constraint(severity="error", key={l1, l2}, message="8 Lane")
131} 138//pattern define_prevLane_consecutiveLanesMustHaveSameOrientation1(l1:Lane_Horizontal, l2:Lane_Vertical) {
132 139// Lane.prevLane(l1, l2);
133@Constraint(severity="error", key={l1, l2}, message="8 Lane") 140//}
134pattern define_prevLane_consecutiveLanesMustHaveSameOrientation2(l1:Lane_Vertical, l2:Lane_Horizontal) { 141//
135 Lane.prevLane(l1, l2); 142//@Constraint(severity="error", key={l1, l2}, message="8 Lane")
136} 143//pattern define_prevLane_consecutiveLanesMustHaveSameOrientation2(l1:Lane_Vertical, l2:Lane_Horizontal) {
137 144// Lane.prevLane(l1, l2);
138/////////////ReferenceCoord 145//}
139 146//
140/////refCoord of head lanes must be 0 147///////////////ReferenceCoord
141@Constraint(severity="error", key={l}, message="6.2 Lane") 148//
142pattern define_prevLane_headHoriLaneHas0RefCoord(cs:CrossingScenario, l:Lane_Horizontal) { 149///////refCoord of head lanes must be 0
143 CrossingScenario.horizontal_head(cs, l); 150//@Constraint(severity="error", key={l}, message="6.2 Lane")
144 Lane.referenceCoord(l, rc); 151//pattern define_prevLane_headHoriLaneHas0RefCoord(cs:CrossingScenario, l:Lane_Horizontal) {
145 check(rc != 0.0); 152// CrossingScenario.horizontal_head(cs, l);
146} 153// Lane.referenceCoord(l, rc);
147 154// check(rc != 0.0);
148@Constraint(severity="error", key={l}, message="6.2 Lane") 155//}
149pattern define_prevLane_headVertLaneHas0RefCoord(cs:CrossingScenario, l:Lane_Vertical) { 156//
150 CrossingScenario.vertical_head(cs, l); 157//@Constraint(severity="error", key={l}, message="6.2 Lane")
151 Lane.referenceCoord(l, rc); 158//pattern define_prevLane_headVertLaneHas0RefCoord(cs:CrossingScenario, l:Lane_Vertical) {
152 check(rc != 0.0); 159// CrossingScenario.vertical_head(cs, l);
153} 160// Lane.referenceCoord(l, rc);
154 161// check(rc != 0.0);
155//////refCoord of a lane is prevLane.rc + curLane.numWidth 162//}
156 163//
157@Constraint(severity="error", key={l}, message="6.2 Lane") 164////////refCoord of a lane is prevLane.rc + curLane.numWidth
158pattern define_referenceCoord_laneWithPrevHasCorrectRefCoord(l:Lane) { 165//
159 Lane.prevLane(l, prev); 166//@Constraint(severity="error", key={l}, message="6.2 Lane")
160 Lane.referenceCoord(l, rcCur); 167//pattern define_referenceCoord_laneWithPrevHasCorrectRefCoord(l:Lane) {
161 168// Lane.prevLane(l, prev);
162 Lane.numWidth(prev, wPrev); 169// Lane.referenceCoord(l, rcCur);
163 Lane.referenceCoord(prev, rcPrev); 170//
164 check(rcCur != rcPrev + wPrev); 171// Lane.numWidth(prev, wPrev);
165} 172// Lane.referenceCoord(prev, rcPrev);
173// check(rcCur != rcPrev + wPrev);
174//}
166 175
176//<<<<NEW>>>>
177//Lanes are all predefind
178*/
167 179
168////////////// 180///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
169//Lane+Actor 181//Lane+Actor
170////////////// 182///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
171 183
172/////////Actor (a) on vertical lane (l) must have a.xPos=[l.rc, l.rc + l.nw] 184/////////Actor (a) on vertical lane (l) must have a.xPos=[l.rc, l.rc + l.nw]
173@Constraint(severity = "error", key = {a}, message = "this defines the placedOn relation for vertical lanes") 185@Constraint(severity = "error", key = {a}, message = "this defines the placedOn relation for vertical lanes")
@@ -180,8 +192,12 @@ pattern define_placedOn_actorOnVerticalLane(a : Actor, vl:Lane_Vertical) {
180 Actor.placedOn(a, vl); 192 Actor.placedOn(a, vl);
181 Actor.xPos(a, x); 193 Actor.xPos(a, x);
182 Lane.referenceCoord(vl, r); 194 Lane.referenceCoord(vl, r);
183 Lane.numWidth(vl, w); 195// //<<<<OLD>>>>
184 check(x >= (r + w)); 196// Lane.numWidth(vl, w);
197// check(x >= (r + w));
198
199 //<<<<NEW>>>>: lanes all have width=5
200 check(x >= (r + 5.0));
185} 201}
186 202
187@Constraint(severity = "error", key = {a}, message = "this defines the placedOn relation for vertical lanes") 203@Constraint(severity = "error", key = {a}, message = "this defines the placedOn relation for vertical lanes")
@@ -192,62 +208,88 @@ pattern define_placedOn_actorOnHorizLane(a : Actor, hl:Lane_Horizontal) {
192 check(y <= r); 208 check(y <= r);
193} or { 209} or {
194 Actor.placedOn(a, hl); 210 Actor.placedOn(a, hl);
195 Actor.yPos(a, y); 211 Actor.yPos(a, y);
196 Lane.referenceCoord(hl, r); 212 Lane.referenceCoord(hl, r);
197 Lane.numWidth(hl, w); 213// //<<OLD>>
198 check(y >= (r + w)); 214// Lane.numWidth(hl, w);
215// check(y >= (r + w));
216
217 //<<NEW>>
218 check(y >= (r + 5.0));
219
199} 220}
200 221
201////////////// 222///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
202//Actor 223//Actor
203////////////// 224///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
204 225
205//Hard-coded stuff 226//Xpos and Ypos Bounds
206//TODO THIS IS HARD_CODED
207@Constraint(severity="error", key={a}, message="x")
208pattern define_actor_maxXp(a:Actor) {
209 Actor.xPos(a, xP);
210 check(xP >= 1000.0);}
211 227
212@Constraint(severity="error", key={a}, message="x") 228private pattern helper_getXAndBounds(cs:CrossingScenario, a:Actor,
213pattern define_actor_minXp(a:Actor) { 229 xMax:java Double, xP:java Double) {
230 CrossingScenario.actors(cs, a);
231 CrossingScenario.xSize(cs, xMax);
214 Actor.xPos(a, xP); 232 Actor.xPos(a, xP);
215 check(xP <= 0-1000.0);} 233}
216 234
217//TODO THIS IS HARD_CODED 235private pattern helper_getYAndBounds(cs:CrossingScenario, a:Actor,
218@Constraint(severity="error", key={a}, message="x") 236 yMax:java Double, yP:java Double) {
219pattern define_actor_maxYp(a:Actor) { 237 CrossingScenario.actors(cs, a);
220 Actor.yPos(a, yP); 238 CrossingScenario.ySize(cs, yMax);
221 check(yP >= 1000.0);}
222
223@Constraint(severity="error", key={a}, message="x")
224pattern define_actor_minYp(a:Actor) {
225 Actor.yPos(a, yP); 239 Actor.yPos(a, yP);
226 check(yP <= 0-1000.0);} 240}
241
242@Constraint(severity="error", key={cs}, message="x")
243pattern define_actor_maxXp(cs:CrossingScenario, a:Actor) {
244 Actor.placedOn(a, hl);
245 Lane_Horizontal(hl);
246 find helper_getXAndBounds(cs, a, xMax, xP);
247 check(xP >= xMax);}
248
249@Constraint(severity="error", key={cs}, message="x")
250pattern define_actor_minXp(cs:CrossingScenario, a:Actor) {
251 Actor.placedOn(a, hl);
252 Lane_Horizontal(hl);
253 find helper_getXAndBounds(cs, a, xMax, xP);
254 check(xP <= 0-xMax);}
227 255
228//TODO THIS IS HARD_CODED 256@Constraint(severity="error", key={cs}, message="x")
229@Constraint(severity="error", key={a}, message="x") 257pattern define_actor_maxYp(cs:CrossingScenario, a:Actor) {
230pattern define_actor_maxXs(a:Actor) { 258 Actor.placedOn(a, vl);
231 Actor.xSpeed(a, xS); 259 Lane_Vertical(vl);
232 check(xS >= 100.0);} 260 find helper_getYAndBounds(cs, a, yMax, yP);
261 check(yP >= yMax);}
262
263@Constraint(severity="error", key={cs}, message="x")
264pattern define_actor_minYp(cs:CrossingScenario, a:Actor) {
265 Actor.placedOn(a, vl);
266 Lane_Vertical(vl);
267 find helper_getYAndBounds(cs, a, yMax, yP);
268 check(yP <= 0-yMax);}
233 269
234@Constraint(severity="error", key={a}, message="x") 270//Xspeed and Yspeed bounds
235pattern define_actor_minXs(a:Actor) {
236 Actor.xSpeed(a, xS);
237 check(xS <= 0-100.0);}
238 271
239//TODO THIS IS HARD_CODED 272//TODO THIS IS HARD_CODED
240@Constraint(severity="error", key={a}, message="x") 273//@Constraint(severity="error", key={a}, message="x")
241pattern define_actor_maxYs(a:Actor) { 274//pattern define_actor_maxXs(a:Actor) {
242 Actor.ySpeed(a, yS); 275// Actor.xSpeed(a, xS);
243 check(yS >= 100.0);} 276// check(xS >= 100.0);}
244 277//
245@Constraint(severity="error", key={a}, message="x") 278//@Constraint(severity="error", key={a}, message="x")
246pattern define_actor_minYs(a:Actor) { 279//pattern define_actor_minXs(a:Actor) {
247 Actor.ySpeed(a, yS); 280// Actor.xSpeed(a, xS);
248 check(yS <= 0-100.0);} 281// check(xS <= 0-100.0);}
249 282//
250 283////TODO THIS IS HARD_CODED
284//@Constraint(severity="error", key={a}, message="x")
285//pattern define_actor_maxYs(a:Actor) {
286// Actor.ySpeed(a, yS);
287// check(yS >= 100.0);}
288//
289//@Constraint(severity="error", key={a}, message="x")
290//pattern define_actor_minYs(a:Actor) {
291// Actor.ySpeed(a, yS);
292// check(yS <= 0-100.0);}
251//END Hard-coded stuff 293//END Hard-coded stuff
252 294
253////TODO May be required 295////TODO May be required
@@ -323,237 +365,218 @@ pattern define_actor_actorOnHoriLaneHasySpeed0(a:Actor, hl:Lane_Horizontal) {
323 check(ySpeed != 0); 365 check(ySpeed != 0);
324} 366}
325 367
326////////////// 368//<<NEW>> Derived Features
327//Relation 369private pattern helper_getCoords(a1:Actor,
328////////////// 370 a2: Actor, x1:java Double, x2:java Double, y1:java Double, y2:java Double) {
329@Constraint(severity="error", key={a1, a2}, message="1 Relation") 371 Actor.xPos(a1, x1);
330pattern define_relation_noSelfRelation(a1:Actor, a2:Actor) { 372 Actor.yPos(a1, y1);
331 Actor.relations(a1, r); 373 Actor.xPos(a2, x2);
332 Relation.target(r, a2); 374 Actor.yPos(a2, y2);
333 a1 == a2;
334} 375}
335 376
336//TODO do above but transitively? 377@QueryBasedFeature
337 378pattern dist_near(a1: Actor, a2: Actor) {
338////////////// 379 find helper_actorsAreNear(a1, a2);
339//CollisionExists 380 Actor.dist_near(a1, a2);
340//////////////
341
342//TODO THIS IS HARD_CODED
343@Constraint(severity="error", key={c}, message="x")
344pattern collisionExists_timeWithinBound(c:CollisionExists) {
345 CollisionExists. collisionTime(c, cTime);
346 check(cTime >= 60.0);}
347
348//TODO replace above with this (more general)
349//@Constraint(severity="error", key={c}, message="x")
350//pattern collisionExists_timeWithinBound(ss:CrossingScenario, c:CollisionExists) {
351// CrossingScenario.actors.relations(ss, c);
352// CrossingScenario.maxTime(ss, maxTime);
353// CollisionExists. collisionTime(c, cTime);
354// check(cTime >= maxTime);}
355
356@Constraint(severity="error", key={c}, message="x")
357pattern collisionExists_timeNotNegative(c:CollisionExists) {
358 CollisionExists. collisionTime(c, cTime);
359 check(cTime <= 0.0);}
360
361@Constraint(severity="error", key={a1, c}, message="x")
362pattern collisionExists_defineCollision_y1(a1:Actor, a2:Actor, c:CollisionExists) {
363 Actor.relations(a1, c);
364 CollisionExists.target(c, a2);
365
366 Actor.length(a1, l1);
367 Actor.yPos(a1, yPos1);
368 Actor.ySpeed(a1, ySpeed1);
369 Actor.length(a2, l2);
370 Actor.yPos(a2, yPos2);
371 Actor.ySpeed(a2, ySpeed2);
372 CollisionExists. collisionTime(c, cTime);
373 //check(y_1_bottom > y_2_top
374 check((yPos1 + (ySpeed1 * cTime)) - (l1/2) > (yPos2 + (ySpeed2 * cTime)) + (l2/2));
375} 381}
376 382
377@Constraint(severity="error", key={a1, c}, message="x") 383private pattern helper_actorsAreNear(a1: Actor, a2: Actor) {
378pattern collisionExists_defineCollision_y2(a1:Actor, a2:Actor, c:CollisionExists) { 384 find helper_getCoords(a1, a2, x1, x2, y1, y2);
379 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 385 //check(dx^2 + dy^2 < 10^2)
380 Actor.relations(a1, c); 386 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 10*10);
381 CollisionExists.target(c, a2);
382
383 Actor.length(a1, l1);
384 Actor.yPos(a1, yPos1);
385 Actor.ySpeed(a1, ySpeed1);
386 Actor.length(a2, l2);
387 Actor.yPos(a2, yPos2);
388 Actor.ySpeed(a2, ySpeed2);
389 CollisionExists. collisionTime(c, cTime);
390 //check(y_1_top < y_2_bottom)
391 check((yPos1 + (ySpeed1 * cTime)) + (l1/2) < (yPos2 + (ySpeed2 * cTime)) - (l2/2));
392} 387}
393 388
394@Constraint(severity="error", key={a1, c}, message="x") 389@QueryBasedFeature
395pattern collisionExists_defineCollision_x1(a1:Actor, a2:Actor, c:CollisionExists) { 390pattern dist_med(a1: Actor, a2: Actor) {
396 Actor.relations(a1, c); 391 find helper_actorsAreMed(a1, a2);
397 CollisionExists.target(c, a2); 392 Actor.dist_med(a1, a2);
398
399 Actor.width(a1, w1);
400 Actor.xPos(a1, xPos1);
401 Actor.xSpeed(a1, xSpeed1);
402 Actor.width(a2, w2);
403 Actor.xPos(a2, xPos2);
404 Actor.xSpeed(a2, xSpeed2);
405 CollisionExists. collisionTime(c, cTime);
406 //check(x_1_left > x_2_right)
407 check((xPos1 + (xSpeed1 * cTime)) - (w1/2) > (xPos2 + (xSpeed2 * cTime)) + (w2/2));
408} 393}
409 394
410@Constraint(severity="error", key={a1, c}, message="x") 395private pattern helper_actorsAreMed(a1: Actor, a2: Actor) {
411pattern collisionExists_defineCollision_x2(a1:Actor, a2:Actor, c:CollisionExists) { 396 find helper_getCoords(a1, a2, x1, x2, y1, y2);
412 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 397 //check(10^2 < dx^2 + dy^2 < 15^2)
413 Actor.relations(a1, c); 398 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 10*10);
414 CollisionExists.target(c, a2); 399 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15);
415
416 Actor.width(a1, w1);
417 Actor.xPos(a1, xPos1);
418 Actor.xSpeed(a1, xSpeed1);
419 Actor.width(a2, w2);
420 Actor.xPos(a2, xPos2);
421 Actor.xSpeed(a2, xSpeed2);
422 CollisionExists. collisionTime(c, cTime);
423 //check(x_1_right < x_2_left)
424 check((xPos1 + (xSpeed1 * cTime)) + (w1/2) < (xPos2 + (xSpeed2 * cTime)) - (w2/2));
425} 400}
426 401
427////////////// 402@QueryBasedFeature
428//SeparationDistance 403pattern dist_far(a1: Actor, a2: Actor) {
429////////////// 404 find helper_actorsAreFar(a1, a2);
430@Constraint(severity="error", key={a1, sd}, message="x") 405 Actor.dist_far(a1, a2);
431pattern SeparationDistance_near_lb(a1:Actor, a2:Actor, sd:SeparationDistance) {
432 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
433 Actor.relations(a1, sd);
434 SeparationDistance.target(sd, a2);
435 SeparationDistance.distance(sd, Distance::D_Near);
436
437 Actor.xPos(a1, x1);
438 Actor.yPos(a1, y1);
439 Actor.xPos(a2, x2);
440 Actor.yPos(a2, y2);
441 //check(dx^2 + dy^2 < 5^2)
442 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 5*5);
443} 406}
444 407
445@Constraint(severity="error", key={a1, sd}, message="x") 408private pattern helper_actorsAreFar(a1: Actor, a2: Actor) {
446pattern SeparationDistance_near_ub(a1:Actor, a2:Actor, sd:SeparationDistance) { 409 find helper_getCoords(a1, a2, x1, x2, y1, y2);
447 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 410 //check(dx^2 + dy^2 > 20^2)
448 Actor.relations(a1, sd); 411 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 20*20);
449 SeparationDistance.target(sd, a2);
450 SeparationDistance.distance(sd, Distance::D_Near);
451
452 Actor.xPos(a1, x1);
453 Actor.yPos(a1, y1);
454 Actor.xPos(a2, x2);
455 Actor.yPos(a2, y2);
456 //check(dx^2 + dy^2 > 10^2)
457 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 10*10);
458} 412}
459 413
460@Constraint(severity="error", key={a1, sd}, message="x") 414//<<END NEW>>
461pattern SeparationDistance_medium_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { 415
462 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 416///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
463 Actor.relations(a1, sd); 417//Relation
464 SeparationDistance.target(sd, a2); 418///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
465 SeparationDistance.distance(sd, Distance::D_Med);
466
467 Actor.xPos(a1, x1);
468 Actor.yPos(a1, y1);
469 Actor.xPos(a2, x2);
470 Actor.yPos(a2, y2);
471 //check(dx^2 + dy^2 < 10^2)
472 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 10*10);
473}
474 419
475@Constraint(severity="error", key={a1, sd}, message="x") 420@Constraint(severity="error", key={a1, a2}, message="1 Relation")
476pattern SeparationDistance_medium_ub(a1:Actor, a2:Actor, sd:SeparationDistance) { 421pattern define_relation_noSelfRelation(a1:Actor, a2:Actor) {
477 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 422 Relation.source(r, a1);
478 Actor.relations(a1, sd); 423 Relation.target(r, a2);
479 SeparationDistance.target(sd, a2); 424 a1 == a2;
480 SeparationDistance.distance(sd, Distance::D_Med);
481
482 Actor.xPos(a1, x1);
483 Actor.yPos(a1, y1);
484 Actor.xPos(a2, x2);
485 Actor.yPos(a2, y2);
486 //check(dx^2 + dy^2 > 1^2)
487 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 15*15);
488} 425}
489 426
490@Constraint(severity="error", key={a1, sd}, message="x") 427//TODO do above but transitively?/
491pattern SeparationDistance_far_lb(a1:Actor, a2:Actor, sd:SeparationDistance) { 428//////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
492 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 429//CollisionExists
493 Actor.relations(a1, sd); 430///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
494 SeparationDistance.target(sd, a2);
495 SeparationDistance.distance(sd, Distance::D_Far);
496 431
497 Actor.xPos(a1, x1); 432//@Constraint(severity="error", key={c}, message="x")
498 Actor.yPos(a1, y1); 433//pattern collisionExists_timeWithinBound(ss:CrossingScenario, c:CollisionExists) {
499 Actor.xPos(a2, x2); 434// CrossingScenario.relations(ss, c);
500 Actor.yPos(a2, y2); 435// CrossingScenario.maxTime(ss, maxTime);
501 //check(dx^2 + dy^2 < 15^2) 436// CollisionExists.collisionTime(c, cTime);
502 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15); 437// check(cTime >= maxTime);}
503} 438//
439//@Constraint(severity="error", key={c}, message="x")
440//pattern collisionExists_timeNotNegative(c:CollisionExists) {
441// CollisionExists. collisionTime(c, cTime);
442// check(cTime <= 0.0);}
443//
444//private pattern helper_getCollExistsTime(a1:Actor, a2: Actor, cTime:java Double) {
445// CollisionExists.source(c, a1);
446// CollisionExists.target(c, a2);
447// CollisionExists. collisionTime(c, cTime);
448//}
449//
450//private pattern helper_getYCoords(a:Actor, l:java Double,
451// yPos:java Double, ySpeed:java Double) {
452//
453// Actor.length(a, l);
454// Actor.yPos(a, yPos);
455// Actor.ySpeed(a, ySpeed);
456//}
457//
458//private pattern helper_getAllYCoords(a1:Actor, a2: Actor,
459// l1:java Double, l2:java Double, yPos1:java Double, yPos2:java Double,
460// ySpeed1:java Double, ySpeed2:java Double) {
461//
462// find helper_getYCoords(a1, l1, yPos1, ySpeed1);
463// find helper_getYCoords(a2, l2, yPos2, ySpeed2);
464//}
465//
466//private pattern helper_getXCoords(a:Actor, l:java Double,
467// xPos:java Double, xSpeed:java Double) {
468//
469// Actor.length(a, l);
470// Actor.xPos(a, xPos);
471// Actor.xSpeed(a, xSpeed);
472//}
473//
474//private pattern helper_getAllXCoords(a1:Actor, a2: Actor,
475// w1:java Double, w2:java Double, xPos1:java Double, xPos2:java Double,
476// xSpeed1:java Double, xSpeed2:java Double) {
477//
478// find helper_getYCoords(a1, w1, xPos1, xSpeed1);
479// find helper_getYCoords(a2, w2, xPos2, xSpeed2);
480//}
481//
482//@Constraint(severity="error", key={a1}, message="x")
483//pattern collisionExists_defineCollision_y1(a1:Actor, a2:Actor) {
484//
485// find helper_getCollExistsTime(a1, a2, cTime);
486// find helper_getAllYCoords(a1, a2, l1, l2, yPos1, yPos2, ySpeed1, ySpeed2);
487//
488// //check(y_1_bottom > y_2_top
489// check((yPos1 + (ySpeed1 * cTime)) - (l1/2) > (yPos2 + (ySpeed2 * cTime)) + (l2/2));
490//}
491//
492//@Constraint(severity="error", key={a1}, message="x")
493//pattern collisionExists_defineCollision_y2(a1:Actor, a2:Actor) {
494// //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
495//
496// find helper_getCollExistsTime(a1, a2, cTime);
497// find helper_getAllYCoords(a1, a2, l1, l2, yPos1, yPos2, ySpeed1, ySpeed2);
498//
499// //check(y_1_top < y_2_bottom)
500// check((yPos1 + (ySpeed1 * cTime)) + (l1/2) < (yPos2 + (ySpeed2 * cTime)) - (l2/2));
501//}
502//
503//@Constraint(severity="error", key={a1}, message="x")
504//pattern collisionExists_defineCollision_x1(a1:Actor, a2:Actor) {
505//
506// find helper_getCollExistsTime(a1, a2, cTime);
507// find helper_getAllYCoords(a1, a2, w1, w2, xPos1, xPos2, xSpeed1, xSpeed2);
508//
509// //check(x_1_left > x_2_right)
510// check((xPos1 + (xSpeed1 * cTime)) - (w1/2) > (xPos2 + (xSpeed2 * cTime)) + (w2/2));
511//}
512//
513//@Constraint(severity="error", key={a1}, message="x")
514//pattern collisionExists_defineCollision_x2(a1:Actor, a2:Actor) {
515// //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
516//
517// find helper_getCollExistsTime(a1, a2, cTime);
518// find helper_getAllYCoords(a1, a2, w1, w2, xPos1, xPos2, xSpeed1, xSpeed2);
519//
520// //check(x_1_right < x_2_left)
521// check((xPos1 + (xSpeed1 * cTime)) + (w1/2) < (xPos2 + (xSpeed2 * cTime)) - (w2/2));
522//}
504 523
505////////////////
506////CollisionDoesNotExist
507////////////////
508//TODO
509////@Constraint(severity="error", key={a1, cdne}, message="x")
510////pattern collisionDoesNotExist(a1:Actor, a2:Actor, ss:CrossingScenario, cdne:CollisionDoesNotExist) {
511//// //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
512////
513//// CrossingScenario.actors(ss, a1);
514//// CrossingScenario.actors(ss, a2);
515//// Actor.relations(a1, cdne);
516//// CollisionDoesNotExist.target(cdne, a2);
517//// CrossingScenario.maxTime(ss, maxTime);
518////
519//// Actor.width(a1, w1);
520//// Actor.length(a1, l1);
521//// Actor.xPos(a1, xPos1);
522//// Actor.yPos(a1, yPos1);
523//// Actor.xSpeed(a1, xSpeed1);
524//// Actor.ySpeed(a1, ySpeed1);
525////
526//// Actor.width(a2, w2);
527//// Actor.length(a2, l2);
528//// Actor.xPos(a2, xPos2);
529//// Actor.yPos(a2, yPos2);
530//// Actor.xSpeed(a2, xSpeed2);
531//// Actor.ySpeed(a2, ySpeed2);
532//// //check(dx^2 + dy^2 < 15^2)
533//// check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15);
534////}
535 524
536////////////// 525///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
537//VisionBlocked 526//VisionBlocked
538////////////// 527///////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
528
529//<<QUALTATIF ABSTRACTION>>
539 530
540@Constraint(severity="error", key={a1, a2}, message="x") 531@Constraint(severity="error", key={a1, a2}, message="x")
541pattern visionBlocked_invalidBlocker(a1:Actor, a2:Actor) { 532pattern visionBlocked_qualAbstr(a1:Actor, a2:Actor) {
542 Actor.relations(a1, vb); 533 VisionBlocked.source(vb, a1);
543 VisionBlocked.target(vb, a2); 534 VisionBlocked.target(vb, a2);
535 Actor.placedOn(a1, l);
536 Actor.placedOn(a2, l);
537} or {
538 VisionBlocked.source(vb, a1);
539 VisionBlocked.blockedBy(vb, a2);
540 Actor.placedOn(a1, l);
541 Actor.placedOn(a2, l);
542} or {
544 VisionBlocked.blockedBy(vb, a1); 543 VisionBlocked.blockedBy(vb, a1);
544 VisionBlocked.target(vb, a2);
545 Actor.placedOn(a1, l);
546 Actor.placedOn(a2, l);
547}
548//<<END QUALITATIF ABSTRACTION>>
549
550@Constraint(severity="error", key={a1, a2}, message="x")
551pattern visionBlocked_invalidBlocker(a1:Actor, a2:Actor) {
552 VisionBlocked.source(vb, a1);
553 VisionBlocked.target(vb, a2);
554 VisionBlocked.blockedBy(vb, a2);
545} or { 555} or {
546 Actor.relations(a1, vb); 556 VisionBlocked.source(vb, a1);
547 VisionBlocked.target(vb, a2); 557 VisionBlocked.target(vb, a2);
548 VisionBlocked.blockedBy(vb, a1); 558 VisionBlocked.blockedBy(vb, a1);
549} 559}
550 560
561@Constraint(severity="error", key={a1, vb}, message="x")
562pattern visionBlocked_ites_notOnSameVertLine(a1:Actor, a2:Actor, vb:VisionBlocked) {
563 //REQUIRED to avoid division by 0 in next 2 queries
564 VisionBlocked.source(vb, a1);
565 VisionBlocked.target(vb, a2);
566
567 Actor.xPos(a1, x1);
568 Actor.xPos(a2, x2);
569
570 //check(slope of a1-to-BlockerTop < slope of a1-to-a2)
571 check(x1 == x2);
572}
573
551//OPTIONS 1: everything is from a single check expression containing ITEs 574//OPTIONS 1: everything is from a single check expression containing ITEs
552//Currently unhandled bygenerator 575//Currently unhandled bygenerator
553@Constraint(severity="error", key={a1, vb}, message="x") 576@Constraint(severity="error", key={a1, vb}, message="x")
554pattern visionBlocked_ites_top(a1:Actor, a2:Actor, vb:VisionBlocked) { 577pattern visionBlocked_ites_top(a1:Actor, a2:Actor, vb:VisionBlocked) {
555 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 578 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
556 Actor.relations(a1, vb); 579 VisionBlocked.source(vb, a1);
557 VisionBlocked.target(vb, a2); 580 VisionBlocked.target(vb, a2);
558 VisionBlocked.blockedBy(vb, aBlocker); 581 VisionBlocked.blockedBy(vb, aBlocker);
559 582
@@ -576,7 +599,7 @@ pattern visionBlocked_ites_top(a1:Actor, a2:Actor, vb:VisionBlocked) {
576@Constraint(severity="error", key={a1, vb}, message="x") 599@Constraint(severity="error", key={a1, vb}, message="x")
577pattern visionBlocked_ites_bottom(a1:Actor, a2:Actor, vb:VisionBlocked) { 600pattern visionBlocked_ites_bottom(a1:Actor, a2:Actor, vb:VisionBlocked) {
578 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1 601 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
579 Actor.relations(a1, vb); 602 VisionBlocked.source(vb, a1);
580 VisionBlocked.target(vb, a2); 603 VisionBlocked.target(vb, a2);
581 VisionBlocked.blockedBy(vb, aBlocker); 604 VisionBlocked.blockedBy(vb, aBlocker);
582 605
@@ -596,15 +619,104 @@ pattern visionBlocked_ites_bottom(a1:Actor, a2:Actor, vb:VisionBlocked) {
596 > ((y1-y2)/(x1-x2))); 619 > ((y1-y2)/(x1-x2)));
597} 620}
598 621
622/////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
623//SeparationDistance
624/////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
625/*
626private pattern helper_getSeperateActorsCoords(a1:Actor,
627 a2: Actor, sd:SeparationDistance,
628 x1:java Double, x2:java Double, y1:java Double, y2:java Double) {
629 SeperationDistance.source(sd, a1);
630 SeparationDistance.target(sd, a2);
631
632 find helper_getCoords(a1, a2, x1, x2, y1, y2);
633}
634
635@Constraint(severity="error", key={a1, sd}, message="x")
636pattern SeparationDistance_near_lb(a1:Actor, a2:Actor, sd:SeparationDistance) {
637 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
638
639 find helper_getSeparateActorsCoords(a1, a2, sd, x1, x2, y1, y2);
640 SeparationDistance.distance(sd, Distance::D_Near);
641
642 //check(dx^2 + dy^2 < 5^2)
643 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 5*5);
644}
645
646@Constraint(severity="error", key={a1, sd}, message="x")
647pattern SeparationDistance_near_ub(a1:Actor, a2:Actor, sd:SeparationDistance) {
648 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
649
650 find helper_getSeparateActorsCoords(a1, a2, sd, x1, x2, y1, y2);
651 SeparationDistance.distance(sd, Distance::D_Near);
599 652
653 //check(dx^2 + dy^2 > 10^2)
654 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 10*10);
655}
600 656
601////OPTION 2: 657@Constraint(severity="error", key={a1, sd}, message="x")
602////we handle ITE by seperating the constraints 658pattern SeparationDistance_medium_lb(a1:Actor, a2:Actor, sd:SeparationDistance) {
603// 659 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
604////This will involve 1 constarint for each decision path, but will require multiple check expressions within the same pattern 660
605// 661 find helper_getSeparateActorsCoords(a1, a2, sd, x1, x2, y1, y2);
606////OPTION 3: 662 SeparationDistance.distance(sd, Distance::D_Med);
607////If this is nott working still, we will have to add some strctural components to the MM 663
608////to differentiate the different cases and reduce the requirements of if, then, else 664 //check(dx^2 + dy^2 < 10^2)
609// 665 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 10*10);
610////This will involve more patterns, and some that are pstructural as well. \ No newline at end of file 666}
667
668@Constraint(severity="error", key={a1, sd}, message="x")
669pattern SeparationDistance_medium_ub(a1:Actor, a2:Actor, sd:SeparationDistance) {
670 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
671
672 find helper_getSeparateActorsCoords(a1, a2, sd, x1, x2, y1, y2);
673 SeparationDistance.distance(sd, Distance::D_Med);
674
675 //check(dx^2 + dy^2 > 1^2)
676 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) > 15*15);
677}
678
679@Constraint(severity="error", key={a1, sd}, message="x")
680pattern SeparationDistance_far_lb(a1:Actor, a2:Actor, sd:SeparationDistance) {
681 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
682
683 find helper_getSeparateActorsCoords(a1, a2, sd, x1, x2, y1, y2);
684 SeparationDistance.distance(sd, Distance::D_Far);
685
686 //check(dx^2 + dy^2 < 15^2)
687 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15);
688}
689*/
690
691/////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
692//CollisionDoesNotExist
693/////*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*-_-*//////
694/*
695//TODO
696@Constraint(severity="error", key={a1, cdne}, message="x")
697pattern collisionDoesNotExist(a1:Actor, a2:Actor, ss:CrossingScenario, cdne:CollisionDoesNotExist) {
698 //This second one is required because we do not want to enforce both a1->c->a2 and a2->c->a1
699
700 CrossingScenario.actors(ss, a1);
701 CrossingScenario.actors(ss, a2);
702 Actor.relations(a1, cdne);
703 CollisionDoesNotExist.target(cdne, a2);
704 CrossingScenario.maxTime(ss, maxTime);
705
706 Actor.width(a1, w1);
707 Actor.length(a1, l1);
708 Actor.xPos(a1, xPos1);
709 Actor.yPos(a1, yPos1);
710 Actor.xSpeed(a1, xSpeed1);
711 Actor.ySpeed(a1, ySpeed1);
712
713 Actor.width(a2, w2);
714 Actor.length(a2, l2);
715 Actor.xPos(a2, xPos2);
716 Actor.yPos(a2, yPos2);
717 Actor.xSpeed(a2, xSpeed2);
718 Actor.ySpeed(a2, ySpeed2);
719 //check(dx^2 + dy^2 < 15^2)
720 check((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) < 15*15);
721}
722*/ \ No newline at end of file
diff --git a/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java b/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java
index 57a91dfc..9d0860ec 100644
--- a/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java
+++ b/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java
@@ -29,12 +29,25 @@ public class CrossingScenarioMain {
29 System.out.println(errorMessages); 29 System.out.println(errorMessages);
30 } 30 }
31 31
32 Path pathStats = Paths.get("outputs/statistics.csv");
33 String pathXmi = "outputs/models/1.xmi";
34// Path target = Paths.get("../..//Tests/MODELS2020-CaseStudies/case.study.pledge.run/measurements1/stats.csv");
35// Files.copy(path, target, StandardCopyOption.REPLACE_EXISTING);
32 36
33 Path path = Paths.get("outputs/statistics.csv"); 37 printStats(pathStats);
34 Path target = Paths.get("../..//Tests/MODELS2020-CaseStudies/case.study.pledge.run/measurements1/stats.csv"); 38 DrawScenario.drawScenario(pathXmi);
35 Files.copy(path, target, StandardCopyOption.REPLACE_EXISTING);
36 39
37 List<String> content = Files.readAllLines(path); 40// String p1 = "outputs/models/1.xmi";
41// String p2 = "outputs/simplePrevLane.tgf";
42// QueryDebug.checkPrevLanes(p1, p2);
43// Desktop.getDesktop().open(new File(p2));
44 System.gc();
45 System.gc();
46 System.gc();
47 }
48
49 public static void printStats(Path pathToStats) throws IOException {
50 List<String> content = Files.readAllLines(pathToStats);
38 String[] times = content.get(1).split(","); 51 String[] times = content.get(1).split(",");
39 System.out.println("STATISTICS"); 52 System.out.println("STATISTICS");
40 int t1 = Integer.parseInt(times[3]); 53 int t1 = Integer.parseInt(times[3]);
@@ -49,13 +62,5 @@ public class CrossingScenarioMain {
49 System.out.println("postprocessing -> " + t4); 62 System.out.println("postprocessing -> " + t4);
50 63
51 System.out.println("TOTAL -> " + tot); 64 System.out.println("TOTAL -> " + tot);
52
53 String p1 = "outputs/models/1.xmi";
54 String p2 = "outputs/simplePrevLane.tgf";
55// QueryDebug.checkPrevLanes(p1, p2);
56// Desktop.getDesktop().open(new File(p2));
57 System.gc();
58 System.gc();
59 System.gc();
60 } 65 }
61} 66}
diff --git a/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java b/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
index f9041e87..3fea18de 100644
--- a/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
+++ b/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
@@ -34,48 +34,48 @@ public class QueryDebug {
34 } 34 }
35 35
36 public static void checkPrevLanes(String pathSrc, String pathTgt) throws FileNotFoundException { 36 public static void checkPrevLanes(String pathSrc, String pathTgt) throws FileNotFoundException {
37 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl()); 37// Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl());
38 EPackage.Registry.INSTANCE.put(CrossingScenarioPackage.eNS_URI, CrossingScenarioPackage.eINSTANCE); 38// EPackage.Registry.INSTANCE.put(CrossingScenarioPackage.eNS_URI, CrossingScenarioPackage.eINSTANCE);
39 ResourceSet rs = new ResourceSetImpl(); 39// ResourceSet rs = new ResourceSetImpl();
40 Resource res = rs.getResource(URI.createFileURI(pathSrc), true); 40// Resource res = rs.getResource(URI.createFileURI(pathSrc), true);
41 41//
42 PrintWriter printer = new PrintWriter(pathTgt); 42// PrintWriter printer = new PrintWriter(pathTgt);
43 43//
44 CrossingScenario cs = ((CrossingScenario) res.getContents().get(0)); 44// CrossingScenario cs = ((CrossingScenario) res.getContents().get(0));
45 45//
46 for (Actor o : cs.getActors()) { 46// for (Actor o : cs.getActors()) {
47 String nodeName = "A(" + rndbl(o.getXPos(), 1)+","+rndbl(o.getYPos(), 1) + ")"; 47// String nodeName = "A(" + rndbl(o.getXPos(), 1)+","+rndbl(o.getYPos(), 1) + ")";
48 printer.println(o.hashCode() + " " + nodeName); 48// printer.println(o.hashCode() + " " + nodeName);
49 } 49// }
50 50//
51 for (Lane o : cs.getLanes()) { 51// for (Lane o : cs.getLanes()) {
52 String prefix = ""; 52// String prefix = "";
53 if (cs.getHorizontal_head().equals(o) || cs.getVertical_head().equals(o)) { 53// if (cs.getHorizontal_head().equals(o) || cs.getVertical_head().equals(o)) {
54 prefix = "HEAD"; 54// prefix = "HEAD";
55 } 55// }
56 String nodeName = prefix + "L(" + rndbl(o.getReferenceCoord(), 3) + ")" + 56// String nodeName = prefix + "L(" + rndbl(o.getReferenceCoord(), 3) + ")" +
57 o.eClass().getName().substring(5, 9); 57// o.eClass().getName().substring(5, 9);
58 printer.println(o.hashCode() + " " + nodeName); 58// printer.println(o.hashCode() + " " + nodeName);
59 } 59// }
60 printer.println("#"); 60// printer.println("#");
61 for (Lane o : cs.getLanes()) { 61// for (Lane o : cs.getLanes()) {
62 if (o.getPrevLane() != null){ 62// if (o.getPrevLane() != null){
63 int curName = o.hashCode(); 63// int curName = o.hashCode();
64 int curPrev = o.getPrevLane().hashCode(); 64// int curPrev = o.getPrevLane().hashCode();
65 double edgeLabel = rndbl(o.getPrevLane().getNumWidth(), 1); 65// double edgeLabel = rndbl(o.getPrevLane().getNumWidth(), 1);
66 printer.println(curName + " " + curPrev + " " + edgeLabel); 66// printer.println(curName + " " + curPrev + " " + edgeLabel);
67 } 67// }
68 } 68// }
69 69//
70 for (Actor o : cs.getActors()) { 70// for (Actor o : cs.getActors()) {
71 int actName = o.hashCode(); 71// int actName = o.hashCode();
72 int lanName = o.getPlacedOn().hashCode(); 72// int lanName = o.getPlacedOn().hashCode();
73 printer.println(actName + " " + lanName ); 73// printer.println(actName + " " + lanName );
74 } 74// }
75 75//
76 printer.flush(); 76// printer.flush();
77 printer.close(); 77// printer.close();
78 System.out.println("TGF CREATED"); 78// System.out.println("TGF CREATED");
79 79
80 } 80 }
81 81
diff --git a/Domains/crossingScenario/src/queries/queries.vql b/Domains/crossingScenario/src/queries/queries.vql
deleted file mode 100644
index d00fae3f..00000000
--- a/Domains/crossingScenario/src/queries/queries.vql
+++ /dev/null
@@ -1,10 +0,0 @@
1package queries
2
3import "http://www.example.com/crossingScenario"
4import "http://www.eclipse.org/emf/2002/Ecore"
5
6/////////pedestrian-width (4) //TODO Derived?
7pattern x(p:Pedestrian) {
8 Pedestrian.length(p, l);
9 check(l != 1.0);
10} \ No newline at end of file
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericDrealProblemSolver.java b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericDrealProblemSolver.java
index 575a9224..b8ab8e95 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericDrealProblemSolver.java
+++ b/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericDrealProblemSolver.java
@@ -193,15 +193,24 @@ public class NumericDrealProblemSolver extends NumericProblemSolver{
193 PrimitiveElement matchedObj = aMatch.get(((XFeatureCall) e).getFeature()); 193 PrimitiveElement matchedObj = aMatch.get(((XFeatureCall) e).getFeature());
194 boolean isInt = matchedObj instanceof IntegerElement; 194 boolean isInt = matchedObj instanceof IntegerElement;
195 if (!matchedObj.isValueSet()) { 195 if (!matchedObj.isValueSet()) {
196 //e is UNDEFINED term
196 if (varMap.get(matchedObj) == null) { 197 if (varMap.get(matchedObj) == null) {
198 //define and store the name of the matchedObj
197 expr = ((XFeatureCall) e).getFeature().getQualifiedName() + matchedObj.hashCode(); //TODO ISSUE 199 expr = ((XFeatureCall) e).getFeature().getQualifiedName() + matchedObj.hashCode(); //TODO ISSUE
198 varMap.put(matchedObj, expr); 200 varMap.put(matchedObj, expr);
199 } else { 201 } else {
202 //get name if already seen
200 expr = varMap.get(matchedObj); 203 expr = varMap.get(matchedObj);
201 } 204 }
205 //Add variable declarations, only for UNDEFINED
206 if(! curVar2Decl.keySet().contains(expr)) {
207 String varDecl = "(declare-fun " + expr + " () ";
208 if (isInt) {varDecl += "Int)";}
209 else {varDecl += "Real)";}
210 curVar2Decl.put(expr, varDecl);
211 }
202 } else { 212 } else {
203 //TODO unsure what it means if something gets in here 213 //e is DEFINED term (has a value)
204 System.err.println("Reached weird place");
205 if (isInt) { 214 if (isInt) {
206 expr = Integer.toString(((IntegerElement) matchedObj).getValue()); 215 expr = Integer.toString(((IntegerElement) matchedObj).getValue());
207 } else { 216 } else {
@@ -210,13 +219,6 @@ public class NumericDrealProblemSolver extends NumericProblemSolver{
210 } 219 }
211 varMap.put(matchedObj, expr); 220 varMap.put(matchedObj, expr);
212 } 221 }
213 //Add variable declarations
214 if(! curVar2Decl.keySet().contains(expr)) {
215 String varDecl = "(declare-fun " + expr + " () ";
216 if (isInt) {varDecl += "Int)";}
217 else {varDecl += "Real)";}
218 curVar2Decl.put(expr, varDecl);
219 }
220 } 222 }
221 // Constants 223 // Constants
222 else if (e instanceof XNumberLiteral) { 224 else if (e instanceof XNumberLiteral) {
@@ -375,8 +377,9 @@ public class NumericDrealProblemSolver extends NumericProblemSolver{
375 //DEBUG - Print things 377 //DEBUG - Print things
376 if (outputProcess == null) { 378 if (outputProcess == null) {
377 System.err.println("TIMEOUT"); 379 System.err.println("TIMEOUT");
378// printOutput(numProbContent); 380 printOutput(numProbContent);
379 } 381 }
382
380// printOutput(numProbContent); 383// printOutput(numProbContent);
381// if (outputs != null) printOutput(outputs.get(0)); 384// if (outputs != null) printOutput(outputs.get(0));
382// System.out.println(result); 385// System.out.println(result);
@@ -434,8 +437,8 @@ public class NumericDrealProblemSolver extends NumericProblemSolver{
434 437
435 //DEBUG - Print things 438 //DEBUG - Print things
436 System.out.println("Getting Solution!"); 439 System.out.println("Getting Solution!");
437// printOutput(numProbContent); 440 printOutput(numProbContent);
438// printOutput(outputs.get(0)); 441 printOutput(outputs.get(0));
439// System.out.println(result); 442// System.out.println(result);
440 //END DEBUG 443 //END DEBUG
441 444