aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Domains/crossingScenario/.gitignore1
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java46
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioFactory.java27
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java274
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java28
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Horizontal.java17
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Vertical.java17
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java32
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java126
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java77
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java61
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_HorizontalImpl.java37
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_VerticalImpl.java37
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioAdapterFactory.java36
-rw-r--r--Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioSwitch.java44
-rw-r--r--Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig11
-rw-r--r--Domains/crossingScenario/model/crossingScenario.aird270
-rw-r--r--Domains/crossingScenario/model/crossingScenario.ecore14
-rw-r--r--Domains/crossingScenario/model/crossingScenario.genmodel9
-rw-r--r--Domains/crossingScenario/queries/crossingScenarioQueries.vql167
-rw-r--r--Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java8
-rw-r--r--Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java135
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/src/hu/bme/mit/inf/dslreasoner/viatra2logic/NumericDrealProblemSolver.java34
23 files changed, 1103 insertions, 405 deletions
diff --git a/Domains/crossingScenario/.gitignore b/Domains/crossingScenario/.gitignore
index 0370ac06..4c033661 100644
--- a/Domains/crossingScenario/.gitignore
+++ b/Domains/crossingScenario/.gitignore
@@ -2,3 +2,4 @@
2/outputs/ 2/outputs/
3/src-gen/ 3/src-gen/
4/xtend-gen/ 4/xtend-gen/
5/src/queries/
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java
index afbe34e7..b4f01423 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenario.java
@@ -20,6 +20,8 @@ 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>
24 * <li>{@link crossingScenario.CrossingScenario#getVertical_head <em>Vertical head</em>}</li>
23 * </ul> 25 * </ul>
24 * 26 *
25 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario() 27 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario()
@@ -117,4 +119,48 @@ public interface CrossingScenario extends EObject {
117 */ 119 */
118 void setMaxTime(double value); 120 void setMaxTime(double value);
119 121
122 /**
123 * Returns the value of the '<em><b>Horizontal head</b></em>' reference.
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @return the value of the '<em>Horizontal head</em>' reference.
127 * @see #setHorizontal_head(Lane_Horizontal)
128 * @see crossingScenario.CrossingScenarioPackage#getCrossingScenario_Horizontal_head()
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
163 */
164 void setVertical_head(Lane_Vertical value);
165
120} // CrossingScenario 166} // CrossingScenario
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioFactory.java b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioFactory.java
index b281559c..8ac3df81 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioFactory.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioFactory.java
@@ -31,15 +31,6 @@ public interface CrossingScenarioFactory extends EFactory {
31 CrossingScenario createCrossingScenario(); 31 CrossingScenario createCrossingScenario();
32 32
33 /** 33 /**
34 * Returns a new object of class '<em>Lane</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Lane</em>'.
38 * @generated
39 */
40 Lane createLane();
41
42 /**
43 * Returns a new object of class '<em>Vision Blocked</em>'. 34 * Returns a new object of class '<em>Vision Blocked</em>'.
44 * <!-- begin-user-doc --> 35 * <!-- begin-user-doc -->
45 * <!-- end-user-doc --> 36 * <!-- end-user-doc -->
@@ -94,6 +85,24 @@ public interface CrossingScenarioFactory extends EFactory {
94 Vehicle createVehicle(); 85 Vehicle createVehicle();
95 86
96 /** 87 /**
88 * Returns a new object of class '<em>Lane Horizontal</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Lane Horizontal</em>'.
92 * @generated
93 */
94 Lane_Horizontal createLane_Horizontal();
95
96 /**
97 * Returns a new object of class '<em>Lane Vertical</em>'.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return a new object of class '<em>Lane Vertical</em>'.
101 * @generated
102 */
103 Lane_Vertical createLane_Vertical();
104
105 /**
97 * Returns the package supported by this factory. 106 * Returns the package supported by this factory.
98 * <!-- begin-user-doc --> 107 * <!-- begin-user-doc -->
99 * <!-- end-user-doc --> 108 * <!-- end-user-doc -->
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java
index c690a23c..813466ef 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/CrossingScenarioPackage.java
@@ -113,41 +113,50 @@ 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 number of structural features of the '<em>Crossing Scenario</em>' class. 116 * The feature id for the '<em><b>Horizontal head</b></em>' reference.
117 * <!-- begin-user-doc --> 117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc --> 118 * <!-- end-user-doc -->
119 * @generated 119 * @generated
120 * @ordered 120 * @ordered
121 */ 121 */
122 int CROSSING_SCENARIO_FEATURE_COUNT = 5; 122 int CROSSING_SCENARIO__HORIZONTAL_HEAD = 5;
123 123
124 /** 124 /**
125 * The number of operations of the '<em>Crossing Scenario</em>' class. 125 * The feature id for the '<em><b>Vertical head</b></em>' reference.
126 * <!-- begin-user-doc --> 126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc --> 127 * <!-- end-user-doc -->
128 * @generated 128 * @generated
129 * @ordered 129 * @ordered
130 */ 130 */
131 int CROSSING_SCENARIO_OPERATION_COUNT = 0; 131 int CROSSING_SCENARIO__VERTICAL_HEAD = 6;
132 132
133 /** 133 /**
134 * The meta object id for the '{@link crossingScenario.impl.LaneImpl <em>Lane</em>}' class. 134 * The number of structural features of the '<em>Crossing Scenario</em>' class.
135 * <!-- begin-user-doc --> 135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc --> 136 * <!-- end-user-doc -->
137 * @see crossingScenario.impl.LaneImpl
138 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane()
139 * @generated 137 * @generated
138 * @ordered
140 */ 139 */
141 int LANE = 1; 140 int CROSSING_SCENARIO_FEATURE_COUNT = 7;
142 141
143 /** 142 /**
144 * The feature id for the '<em><b>Orientation</b></em>' attribute. 143 * The number of operations of the '<em>Crossing Scenario</em>' class.
145 * <!-- begin-user-doc --> 144 * <!-- begin-user-doc -->
146 * <!-- end-user-doc --> 145 * <!-- end-user-doc -->
147 * @generated 146 * @generated
148 * @ordered 147 * @ordered
149 */ 148 */
150 int LANE__ORIENTATION = 0; 149 int CROSSING_SCENARIO_OPERATION_COUNT = 0;
150
151 /**
152 * The meta object id for the '{@link crossingScenario.impl.LaneImpl <em>Lane</em>}' class.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @see crossingScenario.impl.LaneImpl
156 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane()
157 * @generated
158 */
159 int LANE = 1;
151 160
152 /** 161 /**
153 * The feature id for the '<em><b>Width</b></em>' attribute. 162 * The feature id for the '<em><b>Width</b></em>' attribute.
@@ -156,7 +165,7 @@ public interface CrossingScenarioPackage extends EPackage {
156 * @generated 165 * @generated
157 * @ordered 166 * @ordered
158 */ 167 */
159 int LANE__WIDTH = 1; 168 int LANE__WIDTH = 0;
160 169
161 /** 170 /**
162 * The feature id for the '<em><b>Reference Coord</b></em>' attribute. 171 * The feature id for the '<em><b>Reference Coord</b></em>' attribute.
@@ -165,7 +174,7 @@ public interface CrossingScenarioPackage extends EPackage {
165 * @generated 174 * @generated
166 * @ordered 175 * @ordered
167 */ 176 */
168 int LANE__REFERENCE_COORD = 2; 177 int LANE__REFERENCE_COORD = 1;
169 178
170 /** 179 /**
171 * The feature id for the '<em><b>Prev Lane</b></em>' reference. 180 * The feature id for the '<em><b>Prev Lane</b></em>' reference.
@@ -174,7 +183,7 @@ public interface CrossingScenarioPackage extends EPackage {
174 * @generated 183 * @generated
175 * @ordered 184 * @ordered
176 */ 185 */
177 int LANE__PREV_LANE = 3; 186 int LANE__PREV_LANE = 2;
178 187
179 /** 188 /**
180 * The feature id for the '<em><b>Actors</b></em>' reference list. 189 * The feature id for the '<em><b>Actors</b></em>' reference list.
@@ -183,7 +192,7 @@ public interface CrossingScenarioPackage extends EPackage {
183 * @generated 192 * @generated
184 * @ordered 193 * @ordered
185 */ 194 */
186 int LANE__ACTORS = 4; 195 int LANE__ACTORS = 3;
187 196
188 /** 197 /**
189 * The feature id for the '<em><b>Num Width</b></em>' attribute. 198 * The feature id for the '<em><b>Num Width</b></em>' attribute.
@@ -192,7 +201,7 @@ public interface CrossingScenarioPackage extends EPackage {
192 * @generated 201 * @generated
193 * @ordered 202 * @ordered
194 */ 203 */
195 int LANE__NUM_WIDTH = 5; 204 int LANE__NUM_WIDTH = 4;
196 205
197 /** 206 /**
198 * The number of structural features of the '<em>Lane</em>' class. 207 * The number of structural features of the '<em>Lane</em>' class.
@@ -201,7 +210,7 @@ public interface CrossingScenarioPackage extends EPackage {
201 * @generated 210 * @generated
202 * @ordered 211 * @ordered
203 */ 212 */
204 int LANE_FEATURE_COUNT = 6; 213 int LANE_FEATURE_COUNT = 5;
205 214
206 /** 215 /**
207 * The number of operations of the '<em>Lane</em>' class. 216 * The number of operations of the '<em>Lane</em>' class.
@@ -799,14 +808,150 @@ public interface CrossingScenarioPackage extends EPackage {
799 int VEHICLE_OPERATION_COUNT = ACTOR_OPERATION_COUNT + 0; 808 int VEHICLE_OPERATION_COUNT = ACTOR_OPERATION_COUNT + 0;
800 809
801 /** 810 /**
802 * The meta object id for the '{@link crossingScenario.Orientation <em>Orientation</em>}' enum. 811 * The meta object id for the '{@link crossingScenario.impl.Lane_HorizontalImpl <em>Lane Horizontal</em>}' class.
812 * <!-- begin-user-doc -->
813 * <!-- end-user-doc -->
814 * @see crossingScenario.impl.Lane_HorizontalImpl
815 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane_Horizontal()
816 * @generated
817 */
818 int LANE_HORIZONTAL = 12;
819
820 /**
821 * The feature id for the '<em><b>Width</b></em>' attribute.
822 * <!-- begin-user-doc -->
823 * <!-- end-user-doc -->
824 * @generated
825 * @ordered
826 */
827 int LANE_HORIZONTAL__WIDTH = LANE__WIDTH;
828
829 /**
830 * The feature id for the '<em><b>Reference Coord</b></em>' attribute.
831 * <!-- begin-user-doc -->
832 * <!-- end-user-doc -->
833 * @generated
834 * @ordered
835 */
836 int LANE_HORIZONTAL__REFERENCE_COORD = LANE__REFERENCE_COORD;
837
838 /**
839 * The feature id for the '<em><b>Prev Lane</b></em>' reference.
840 * <!-- begin-user-doc -->
841 * <!-- end-user-doc -->
842 * @generated
843 * @ordered
844 */
845 int LANE_HORIZONTAL__PREV_LANE = LANE__PREV_LANE;
846
847 /**
848 * The feature id for the '<em><b>Actors</b></em>' reference list.
849 * <!-- begin-user-doc -->
850 * <!-- end-user-doc -->
851 * @generated
852 * @ordered
853 */
854 int LANE_HORIZONTAL__ACTORS = LANE__ACTORS;
855
856 /**
857 * The feature id for the '<em><b>Num Width</b></em>' attribute.
858 * <!-- begin-user-doc -->
859 * <!-- end-user-doc -->
860 * @generated
861 * @ordered
862 */
863 int LANE_HORIZONTAL__NUM_WIDTH = LANE__NUM_WIDTH;
864
865 /**
866 * The number of structural features of the '<em>Lane Horizontal</em>' class.
867 * <!-- begin-user-doc -->
868 * <!-- end-user-doc -->
869 * @generated
870 * @ordered
871 */
872 int LANE_HORIZONTAL_FEATURE_COUNT = LANE_FEATURE_COUNT + 0;
873
874 /**
875 * The number of operations of the '<em>Lane Horizontal</em>' class.
876 * <!-- begin-user-doc -->
877 * <!-- end-user-doc -->
878 * @generated
879 * @ordered
880 */
881 int LANE_HORIZONTAL_OPERATION_COUNT = LANE_OPERATION_COUNT + 0;
882
883 /**
884 * The meta object id for the '{@link crossingScenario.impl.Lane_VerticalImpl <em>Lane Vertical</em>}' class.
885 * <!-- begin-user-doc -->
886 * <!-- end-user-doc -->
887 * @see crossingScenario.impl.Lane_VerticalImpl
888 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane_Vertical()
889 * @generated
890 */
891 int LANE_VERTICAL = 13;
892
893 /**
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.
803 * <!-- begin-user-doc --> 904 * <!-- begin-user-doc -->
804 * <!-- end-user-doc --> 905 * <!-- end-user-doc -->
805 * @see crossingScenario.Orientation
806 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getOrientation()
807 * @generated 906 * @generated
907 * @ordered
808 */ 908 */
809 int ORIENTATION = 12; 909 int LANE_VERTICAL__REFERENCE_COORD = LANE__REFERENCE_COORD;
910
911 /**
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.
922 * <!-- begin-user-doc -->
923 * <!-- end-user-doc -->
924 * @generated
925 * @ordered
926 */
927 int LANE_VERTICAL__ACTORS = LANE__ACTORS;
928
929 /**
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.
940 * <!-- begin-user-doc -->
941 * <!-- end-user-doc -->
942 * @generated
943 * @ordered
944 */
945 int LANE_VERTICAL_FEATURE_COUNT = LANE_FEATURE_COUNT + 0;
946
947 /**
948 * The number of operations of the '<em>Lane Vertical</em>' class.
949 * <!-- begin-user-doc -->
950 * <!-- end-user-doc -->
951 * @generated
952 * @ordered
953 */
954 int LANE_VERTICAL_OPERATION_COUNT = LANE_OPERATION_COUNT + 0;
810 955
811 /** 956 /**
812 * The meta object id for the '{@link crossingScenario.Size <em>Size</em>}' enum. 957 * The meta object id for the '{@link crossingScenario.Size <em>Size</em>}' enum.
@@ -816,7 +961,7 @@ public interface CrossingScenarioPackage extends EPackage {
816 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getSize() 961 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getSize()
817 * @generated 962 * @generated
818 */ 963 */
819 int SIZE = 13; 964 int SIZE = 14;
820 965
821 /** 966 /**
822 * The meta object id for the '{@link crossingScenario.Distance <em>Distance</em>}' enum. 967 * The meta object id for the '{@link crossingScenario.Distance <em>Distance</em>}' enum.
@@ -826,7 +971,7 @@ public interface CrossingScenarioPackage extends EPackage {
826 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getDistance() 971 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getDistance()
827 * @generated 972 * @generated
828 */ 973 */
829 int DISTANCE = 14; 974 int DISTANCE = 15;
830 975
831 976
832 /** 977 /**
@@ -895,25 +1040,36 @@ public interface CrossingScenarioPackage extends EPackage {
895 EAttribute getCrossingScenario_MaxTime(); 1040 EAttribute getCrossingScenario_MaxTime();
896 1041
897 /** 1042 /**
898 * Returns the meta object for class '{@link crossingScenario.Lane <em>Lane</em>}'. 1043 * Returns the meta object for the reference '{@link crossingScenario.CrossingScenario#getHorizontal_head <em>Horizontal head</em>}'.
899 * <!-- begin-user-doc --> 1044 * <!-- begin-user-doc -->
900 * <!-- end-user-doc --> 1045 * <!-- end-user-doc -->
901 * @return the meta object for class '<em>Lane</em>'. 1046 * @return the meta object for the reference '<em>Horizontal head</em>'.
902 * @see crossingScenario.Lane 1047 * @see crossingScenario.CrossingScenario#getHorizontal_head()
1048 * @see #getCrossingScenario()
903 * @generated 1049 * @generated
904 */ 1050 */
905 EClass getLane(); 1051 EReference getCrossingScenario_Horizontal_head();
906 1052
907 /** 1053 /**
908 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getOrientation <em>Orientation</em>}'. 1054 * Returns the meta object for the reference '{@link crossingScenario.CrossingScenario#getVertical_head <em>Vertical head</em>}'.
909 * <!-- begin-user-doc --> 1055 * <!-- begin-user-doc -->
910 * <!-- end-user-doc --> 1056 * <!-- end-user-doc -->
911 * @return the meta object for the attribute '<em>Orientation</em>'. 1057 * @return the meta object for the reference '<em>Vertical head</em>'.
912 * @see crossingScenario.Lane#getOrientation() 1058 * @see crossingScenario.CrossingScenario#getVertical_head()
913 * @see #getLane() 1059 * @see #getCrossingScenario()
1060 * @generated
1061 */
1062 EReference getCrossingScenario_Vertical_head();
1063
1064 /**
1065 * Returns the meta object for class '{@link crossingScenario.Lane <em>Lane</em>}'.
1066 * <!-- begin-user-doc -->
1067 * <!-- end-user-doc -->
1068 * @return the meta object for class '<em>Lane</em>'.
1069 * @see crossingScenario.Lane
914 * @generated 1070 * @generated
915 */ 1071 */
916 EAttribute getLane_Orientation(); 1072 EClass getLane();
917 1073
918 /** 1074 /**
919 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getWidth <em>Width</em>}'. 1075 * Returns the meta object for the attribute '{@link crossingScenario.Lane#getWidth <em>Width</em>}'.
@@ -1203,14 +1359,24 @@ public interface CrossingScenarioPackage extends EPackage {
1203 EClass getVehicle(); 1359 EClass getVehicle();
1204 1360
1205 /** 1361 /**
1206 * Returns the meta object for enum '{@link crossingScenario.Orientation <em>Orientation</em>}'. 1362 * Returns the meta object for class '{@link crossingScenario.Lane_Horizontal <em>Lane Horizontal</em>}'.
1363 * <!-- begin-user-doc -->
1364 * <!-- end-user-doc -->
1365 * @return the meta object for class '<em>Lane Horizontal</em>'.
1366 * @see crossingScenario.Lane_Horizontal
1367 * @generated
1368 */
1369 EClass getLane_Horizontal();
1370
1371 /**
1372 * Returns the meta object for class '{@link crossingScenario.Lane_Vertical <em>Lane Vertical</em>}'.
1207 * <!-- begin-user-doc --> 1373 * <!-- begin-user-doc -->
1208 * <!-- end-user-doc --> 1374 * <!-- end-user-doc -->
1209 * @return the meta object for enum '<em>Orientation</em>'. 1375 * @return the meta object for class '<em>Lane Vertical</em>'.
1210 * @see crossingScenario.Orientation 1376 * @see crossingScenario.Lane_Vertical
1211 * @generated 1377 * @generated
1212 */ 1378 */
1213 EEnum getOrientation(); 1379 EClass getLane_Vertical();
1214 1380
1215 /** 1381 /**
1216 * Returns the meta object for enum '{@link crossingScenario.Size <em>Size</em>}'. 1382 * Returns the meta object for enum '{@link crossingScenario.Size <em>Size</em>}'.
@@ -1306,22 +1472,30 @@ public interface CrossingScenarioPackage extends EPackage {
1306 EAttribute CROSSING_SCENARIO__MAX_TIME = eINSTANCE.getCrossingScenario_MaxTime(); 1472 EAttribute CROSSING_SCENARIO__MAX_TIME = eINSTANCE.getCrossingScenario_MaxTime();
1307 1473
1308 /** 1474 /**
1309 * The meta object literal for the '{@link crossingScenario.impl.LaneImpl <em>Lane</em>}' class. 1475 * The meta object literal for the '<em><b>Horizontal head</b></em>' reference feature.
1310 * <!-- begin-user-doc --> 1476 * <!-- begin-user-doc -->
1311 * <!-- end-user-doc --> 1477 * <!-- end-user-doc -->
1312 * @see crossingScenario.impl.LaneImpl
1313 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane()
1314 * @generated 1478 * @generated
1315 */ 1479 */
1316 EClass LANE = eINSTANCE.getLane(); 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 -->
1485 * <!-- end-user-doc -->
1486 * @generated
1487 */
1488 EReference CROSSING_SCENARIO__VERTICAL_HEAD = eINSTANCE.getCrossingScenario_Vertical_head();
1317 1489
1318 /** 1490 /**
1319 * The meta object literal for the '<em><b>Orientation</b></em>' attribute feature. 1491 * The meta object literal for the '{@link crossingScenario.impl.LaneImpl <em>Lane</em>}' class.
1320 * <!-- begin-user-doc --> 1492 * <!-- begin-user-doc -->
1321 * <!-- end-user-doc --> 1493 * <!-- end-user-doc -->
1494 * @see crossingScenario.impl.LaneImpl
1495 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane()
1322 * @generated 1496 * @generated
1323 */ 1497 */
1324 EAttribute LANE__ORIENTATION = eINSTANCE.getLane_Orientation(); 1498 EClass LANE = eINSTANCE.getLane();
1325 1499
1326 /** 1500 /**
1327 * The meta object literal for the '<em><b>Width</b></em>' attribute feature. 1501 * The meta object literal for the '<em><b>Width</b></em>' attribute feature.
@@ -1560,14 +1734,24 @@ public interface CrossingScenarioPackage extends EPackage {
1560 EClass VEHICLE = eINSTANCE.getVehicle(); 1734 EClass VEHICLE = eINSTANCE.getVehicle();
1561 1735
1562 /** 1736 /**
1563 * The meta object literal for the '{@link crossingScenario.Orientation <em>Orientation</em>}' enum. 1737 * The meta object literal for the '{@link crossingScenario.impl.Lane_HorizontalImpl <em>Lane Horizontal</em>}' class.
1738 * <!-- begin-user-doc -->
1739 * <!-- end-user-doc -->
1740 * @see crossingScenario.impl.Lane_HorizontalImpl
1741 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane_Horizontal()
1742 * @generated
1743 */
1744 EClass LANE_HORIZONTAL = eINSTANCE.getLane_Horizontal();
1745
1746 /**
1747 * The meta object literal for the '{@link crossingScenario.impl.Lane_VerticalImpl <em>Lane Vertical</em>}' class.
1564 * <!-- begin-user-doc --> 1748 * <!-- begin-user-doc -->
1565 * <!-- end-user-doc --> 1749 * <!-- end-user-doc -->
1566 * @see crossingScenario.Orientation 1750 * @see crossingScenario.impl.Lane_VerticalImpl
1567 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getOrientation() 1751 * @see crossingScenario.impl.CrossingScenarioPackageImpl#getLane_Vertical()
1568 * @generated 1752 * @generated
1569 */ 1753 */
1570 EEnum ORIENTATION = eINSTANCE.getOrientation(); 1754 EClass LANE_VERTICAL = eINSTANCE.getLane_Vertical();
1571 1755
1572 /** 1756 /**
1573 * The meta object literal for the '{@link crossingScenario.Size <em>Size</em>}' enum. 1757 * The meta object literal for the '{@link crossingScenario.Size <em>Size</em>}' enum.
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java
index fd04b3c9..d27cf644 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane.java
@@ -15,7 +15,6 @@ 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#getOrientation <em>Orientation</em>}</li>
19 * <li>{@link crossingScenario.Lane#getWidth <em>Width</em>}</li> 18 * <li>{@link crossingScenario.Lane#getWidth <em>Width</em>}</li>
20 * <li>{@link crossingScenario.Lane#getReferenceCoord <em>Reference Coord</em>}</li> 19 * <li>{@link crossingScenario.Lane#getReferenceCoord <em>Reference Coord</em>}</li>
21 * <li>{@link crossingScenario.Lane#getPrevLane <em>Prev Lane</em>}</li> 20 * <li>{@link crossingScenario.Lane#getPrevLane <em>Prev Lane</em>}</li>
@@ -24,36 +23,11 @@ import org.eclipse.emf.ecore.EObject;
24 * </ul> 23 * </ul>
25 * 24 *
26 * @see crossingScenario.CrossingScenarioPackage#getLane() 25 * @see crossingScenario.CrossingScenarioPackage#getLane()
27 * @model 26 * @model abstract="true"
28 * @generated 27 * @generated
29 */ 28 */
30public interface Lane extends EObject { 29public interface Lane extends EObject {
31 /** 30 /**
32 * Returns the value of the '<em><b>Orientation</b></em>' attribute.
33 * The literals are from the enumeration {@link crossingScenario.Orientation}.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @return the value of the '<em>Orientation</em>' attribute.
37 * @see crossingScenario.Orientation
38 * @see #setOrientation(Orientation)
39 * @see crossingScenario.CrossingScenarioPackage#getLane_Orientation()
40 * @model required="true"
41 * @generated
42 */
43 Orientation getOrientation();
44
45 /**
46 * Sets the value of the '{@link crossingScenario.Lane#getOrientation <em>Orientation</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @param value the new value of the '<em>Orientation</em>' attribute.
50 * @see crossingScenario.Orientation
51 * @see #getOrientation()
52 * @generated
53 */
54 void setOrientation(Orientation value);
55
56 /**
57 * Returns the value of the '<em><b>Width</b></em>' attribute. 31 * Returns the value of the '<em><b>Width</b></em>' attribute.
58 * The literals are from the enumeration {@link crossingScenario.Size}. 32 * The literals are from the enumeration {@link crossingScenario.Size}.
59 * <!-- begin-user-doc --> 33 * <!-- begin-user-doc -->
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Horizontal.java b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Horizontal.java
new file mode 100644
index 00000000..aec6413e
--- /dev/null
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Horizontal.java
@@ -0,0 +1,17 @@
1/**
2 */
3package crossingScenario;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Lane Horizontal</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see crossingScenario.CrossingScenarioPackage#getLane_Horizontal()
13 * @model
14 * @generated
15 */
16public interface Lane_Horizontal extends Lane {
17} // Lane_Horizontal
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Vertical.java b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Vertical.java
new file mode 100644
index 00000000..cf818bc2
--- /dev/null
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/Lane_Vertical.java
@@ -0,0 +1,17 @@
1/**
2 */
3package crossingScenario;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Lane Vertical</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see crossingScenario.CrossingScenarioPackage#getLane_Vertical()
13 * @model
14 * @generated
15 */
16public interface Lane_Vertical extends Lane {
17} // Lane_Vertical
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java
index 6e5bab16..ee407bc5 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioFactoryImpl.java
@@ -58,13 +58,14 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
58 public EObject create(EClass eClass) { 58 public EObject create(EClass eClass) {
59 switch (eClass.getClassifierID()) { 59 switch (eClass.getClassifierID()) {
60 case CrossingScenarioPackage.CROSSING_SCENARIO: return createCrossingScenario(); 60 case CrossingScenarioPackage.CROSSING_SCENARIO: return createCrossingScenario();
61 case CrossingScenarioPackage.LANE: return createLane();
62 case CrossingScenarioPackage.VISION_BLOCKED: return createVisionBlocked(); 61 case CrossingScenarioPackage.VISION_BLOCKED: return createVisionBlocked();
63 case CrossingScenarioPackage.SEPARATION_DISTANCE: return createSeparationDistance(); 62 case CrossingScenarioPackage.SEPARATION_DISTANCE: return createSeparationDistance();
64 case CrossingScenarioPackage.COLLISION_EXISTS: return createCollisionExists(); 63 case CrossingScenarioPackage.COLLISION_EXISTS: return createCollisionExists();
65 case CrossingScenarioPackage.COLLISION_DOES_NOT_EXIST: return createCollisionDoesNotExist(); 64 case CrossingScenarioPackage.COLLISION_DOES_NOT_EXIST: return createCollisionDoesNotExist();
66 case CrossingScenarioPackage.PEDESTRIAN: return createPedestrian(); 65 case CrossingScenarioPackage.PEDESTRIAN: return createPedestrian();
67 case CrossingScenarioPackage.VEHICLE: return createVehicle(); 66 case CrossingScenarioPackage.VEHICLE: return createVehicle();
67 case CrossingScenarioPackage.LANE_HORIZONTAL: return createLane_Horizontal();
68 case CrossingScenarioPackage.LANE_VERTICAL: return createLane_Vertical();
68 default: 69 default:
69 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); 70 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
70 } 71 }
@@ -78,8 +79,6 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
78 @Override 79 @Override
79 public Object createFromString(EDataType eDataType, String initialValue) { 80 public Object createFromString(EDataType eDataType, String initialValue) {
80 switch (eDataType.getClassifierID()) { 81 switch (eDataType.getClassifierID()) {
81 case CrossingScenarioPackage.ORIENTATION:
82 return createOrientationFromString(eDataType, initialValue);
83 case CrossingScenarioPackage.SIZE: 82 case CrossingScenarioPackage.SIZE:
84 return createSizeFromString(eDataType, initialValue); 83 return createSizeFromString(eDataType, initialValue);
85 case CrossingScenarioPackage.DISTANCE: 84 case CrossingScenarioPackage.DISTANCE:
@@ -97,8 +96,6 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
97 @Override 96 @Override
98 public String convertToString(EDataType eDataType, Object instanceValue) { 97 public String convertToString(EDataType eDataType, Object instanceValue) {
99 switch (eDataType.getClassifierID()) { 98 switch (eDataType.getClassifierID()) {
100 case CrossingScenarioPackage.ORIENTATION:
101 return convertOrientationToString(eDataType, instanceValue);
102 case CrossingScenarioPackage.SIZE: 99 case CrossingScenarioPackage.SIZE:
103 return convertSizeToString(eDataType, instanceValue); 100 return convertSizeToString(eDataType, instanceValue);
104 case CrossingScenarioPackage.DISTANCE: 101 case CrossingScenarioPackage.DISTANCE:
@@ -125,17 +122,6 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
125 * @generated 122 * @generated
126 */ 123 */
127 @Override 124 @Override
128 public Lane createLane() {
129 LaneImpl lane = new LaneImpl();
130 return lane;
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public VisionBlocked createVisionBlocked() { 125 public VisionBlocked createVisionBlocked() {
140 VisionBlockedImpl visionBlocked = new VisionBlockedImpl(); 126 VisionBlockedImpl visionBlocked = new VisionBlockedImpl();
141 return visionBlocked; 127 return visionBlocked;
@@ -201,10 +187,10 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
201 * <!-- end-user-doc --> 187 * <!-- end-user-doc -->
202 * @generated 188 * @generated
203 */ 189 */
204 public Orientation createOrientationFromString(EDataType eDataType, String initialValue) { 190 @Override
205 Orientation result = Orientation.get(initialValue); 191 public Lane_Horizontal createLane_Horizontal() {
206 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); 192 Lane_HorizontalImpl lane_Horizontal = new Lane_HorizontalImpl();
207 return result; 193 return lane_Horizontal;
208 } 194 }
209 195
210 /** 196 /**
@@ -212,8 +198,10 @@ public class CrossingScenarioFactoryImpl extends EFactoryImpl implements Crossin
212 * <!-- end-user-doc --> 198 * <!-- end-user-doc -->
213 * @generated 199 * @generated
214 */ 200 */
215 public String convertOrientationToString(EDataType eDataType, Object instanceValue) { 201 @Override
216 return instanceValue == null ? null : instanceValue.toString(); 202 public Lane_Vertical createLane_Vertical() {
203 Lane_VerticalImpl lane_Vertical = new Lane_VerticalImpl();
204 return lane_Vertical;
217 } 205 }
218 206
219 /** 207 /**
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java
index ad8ee90d..5dd65a39 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioImpl.java
@@ -7,6 +7,8 @@ import crossingScenario.CrossingScenario;
7import crossingScenario.CrossingScenarioPackage; 7import crossingScenario.CrossingScenarioPackage;
8import crossingScenario.Lane; 8import crossingScenario.Lane;
9 9
10import crossingScenario.Lane_Horizontal;
11import crossingScenario.Lane_Vertical;
10import java.util.Collection; 12import java.util.Collection;
11 13
12import org.eclipse.emf.common.notify.Notification; 14import org.eclipse.emf.common.notify.Notification;
@@ -36,6 +38,8 @@ import org.eclipse.emf.ecore.util.InternalEList;
36 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getActors <em>Actors</em>}</li> 38 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getActors <em>Actors</em>}</li>
37 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getLanes <em>Lanes</em>}</li> 39 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getLanes <em>Lanes</em>}</li>
38 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getMaxTime <em>Max Time</em>}</li> 40 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getMaxTime <em>Max Time</em>}</li>
41 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getHorizontal_head <em>Horizontal head</em>}</li>
42 * <li>{@link crossingScenario.impl.CrossingScenarioImpl#getVertical_head <em>Vertical head</em>}</li>
39 * </ul> 43 * </ul>
40 * 44 *
41 * @generated 45 * @generated
@@ -122,6 +126,26 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
122 protected double maxTime = MAX_TIME_EDEFAULT; 126 protected double maxTime = MAX_TIME_EDEFAULT;
123 127
124 /** 128 /**
129 * The cached value of the '{@link #getHorizontal_head() <em>Horizontal head</em>}' reference.
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @see #getHorizontal_head()
133 * @generated
134 * @ordered
135 */
136 protected Lane_Horizontal horizontal_head;
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
148 /**
125 * <!-- begin-user-doc --> 149 * <!-- begin-user-doc -->
126 * <!-- end-user-doc --> 150 * <!-- end-user-doc -->
127 * @generated 151 * @generated
@@ -241,6 +265,86 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
241 * @generated 265 * @generated
242 */ 266 */
243 @Override 267 @Override
268 public Lane_Horizontal getHorizontal_head() {
269 if (horizontal_head != null && horizontal_head.eIsProxy()) {
270 InternalEObject oldHorizontal_head = (InternalEObject)horizontal_head;
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 }
277 return horizontal_head;
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 }
341
342 /**
343 * <!-- begin-user-doc -->
344 * <!-- end-user-doc -->
345 * @generated
346 */
347 @Override
244 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 348 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
245 switch (featureID) { 349 switch (featureID) {
246 case CrossingScenarioPackage.CROSSING_SCENARIO__ACTORS: 350 case CrossingScenarioPackage.CROSSING_SCENARIO__ACTORS:
@@ -269,6 +373,12 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
269 return getLanes(); 373 return getLanes();
270 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 374 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
271 return getMaxTime(); 375 return getMaxTime();
376 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD:
377 if (resolve) return getHorizontal_head();
378 return basicGetHorizontal_head();
379 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
380 if (resolve) return getVertical_head();
381 return basicGetVertical_head();
272 } 382 }
273 return super.eGet(featureID, resolve, coreType); 383 return super.eGet(featureID, resolve, coreType);
274 } 384 }
@@ -299,6 +409,12 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
299 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 409 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
300 setMaxTime((Double)newValue); 410 setMaxTime((Double)newValue);
301 return; 411 return;
412 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD:
413 setHorizontal_head((Lane_Horizontal)newValue);
414 return;
415 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
416 setVertical_head((Lane_Vertical)newValue);
417 return;
302 } 418 }
303 super.eSet(featureID, newValue); 419 super.eSet(featureID, newValue);
304 } 420 }
@@ -326,6 +442,12 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
326 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 442 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
327 setMaxTime(MAX_TIME_EDEFAULT); 443 setMaxTime(MAX_TIME_EDEFAULT);
328 return; 444 return;
445 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD:
446 setHorizontal_head((Lane_Horizontal)null);
447 return;
448 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
449 setVertical_head((Lane_Vertical)null);
450 return;
329 } 451 }
330 super.eUnset(featureID); 452 super.eUnset(featureID);
331 } 453 }
@@ -348,6 +470,10 @@ public class CrossingScenarioImpl extends MinimalEObjectImpl.Container implement
348 return lanes != null && !lanes.isEmpty(); 470 return lanes != null && !lanes.isEmpty();
349 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME: 471 case CrossingScenarioPackage.CROSSING_SCENARIO__MAX_TIME:
350 return maxTime != MAX_TIME_EDEFAULT; 472 return maxTime != MAX_TIME_EDEFAULT;
473 case CrossingScenarioPackage.CROSSING_SCENARIO__HORIZONTAL_HEAD:
474 return horizontal_head != null;
475 case CrossingScenarioPackage.CROSSING_SCENARIO__VERTICAL_HEAD:
476 return vertical_head != null;
351 } 477 }
352 return super.eIsSet(featureID); 478 return super.eIsSet(featureID);
353 } 479 }
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java
index 3d2ccc0d..b87d2a4d 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/CrossingScenarioPackageImpl.java
@@ -10,7 +10,8 @@ import crossingScenario.CrossingScenarioFactory;
10import crossingScenario.CrossingScenarioPackage; 10import crossingScenario.CrossingScenarioPackage;
11import crossingScenario.Distance; 11import crossingScenario.Distance;
12import crossingScenario.Lane; 12import crossingScenario.Lane;
13import crossingScenario.Orientation; 13import crossingScenario.Lane_Horizontal;
14import crossingScenario.Lane_Vertical;
14import crossingScenario.Pedestrian; 15import crossingScenario.Pedestrian;
15import crossingScenario.Relation; 16import crossingScenario.Relation;
16import crossingScenario.SeparationDistance; 17import crossingScenario.SeparationDistance;
@@ -124,7 +125,14 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
124 * <!-- end-user-doc --> 125 * <!-- end-user-doc -->
125 * @generated 126 * @generated
126 */ 127 */
127 private EEnum orientationEEnum = null; 128 private EClass lane_HorizontalEClass = null;
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 private EClass lane_VerticalEClass = null;
128 136
129 /** 137 /**
130 * <!-- begin-user-doc --> 138 * <!-- begin-user-doc -->
@@ -267,8 +275,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
267 * @generated 275 * @generated
268 */ 276 */
269 @Override 277 @Override
270 public EClass getLane() { 278 public EReference getCrossingScenario_Horizontal_head() {
271 return laneEClass; 279 return (EReference)crossingScenarioEClass.getEStructuralFeatures().get(5);
272 } 280 }
273 281
274 /** 282 /**
@@ -277,8 +285,18 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
277 * @generated 285 * @generated
278 */ 286 */
279 @Override 287 @Override
280 public EAttribute getLane_Orientation() { 288 public EReference getCrossingScenario_Vertical_head() {
281 return (EAttribute)laneEClass.getEStructuralFeatures().get(0); 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() {
299 return laneEClass;
282 } 300 }
283 301
284 /** 302 /**
@@ -288,7 +306,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
288 */ 306 */
289 @Override 307 @Override
290 public EAttribute getLane_Width() { 308 public EAttribute getLane_Width() {
291 return (EAttribute)laneEClass.getEStructuralFeatures().get(1); 309 return (EAttribute)laneEClass.getEStructuralFeatures().get(0);
292 } 310 }
293 311
294 /** 312 /**
@@ -298,7 +316,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
298 */ 316 */
299 @Override 317 @Override
300 public EAttribute getLane_ReferenceCoord() { 318 public EAttribute getLane_ReferenceCoord() {
301 return (EAttribute)laneEClass.getEStructuralFeatures().get(2); 319 return (EAttribute)laneEClass.getEStructuralFeatures().get(1);
302 } 320 }
303 321
304 /** 322 /**
@@ -308,7 +326,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
308 */ 326 */
309 @Override 327 @Override
310 public EReference getLane_PrevLane() { 328 public EReference getLane_PrevLane() {
311 return (EReference)laneEClass.getEStructuralFeatures().get(3); 329 return (EReference)laneEClass.getEStructuralFeatures().get(2);
312 } 330 }
313 331
314 /** 332 /**
@@ -318,7 +336,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
318 */ 336 */
319 @Override 337 @Override
320 public EReference getLane_Actors() { 338 public EReference getLane_Actors() {
321 return (EReference)laneEClass.getEStructuralFeatures().get(4); 339 return (EReference)laneEClass.getEStructuralFeatures().get(3);
322 } 340 }
323 341
324 /** 342 /**
@@ -328,7 +346,7 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
328 */ 346 */
329 @Override 347 @Override
330 public EAttribute getLane_NumWidth() { 348 public EAttribute getLane_NumWidth() {
331 return (EAttribute)laneEClass.getEStructuralFeatures().get(5); 349 return (EAttribute)laneEClass.getEStructuralFeatures().get(4);
332 } 350 }
333 351
334 /** 352 /**
@@ -557,8 +575,18 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
557 * @generated 575 * @generated
558 */ 576 */
559 @Override 577 @Override
560 public EEnum getOrientation() { 578 public EClass getLane_Horizontal() {
561 return orientationEEnum; 579 return lane_HorizontalEClass;
580 }
581
582 /**
583 * <!-- begin-user-doc -->
584 * <!-- end-user-doc -->
585 * @generated
586 */
587 @Override
588 public EClass getLane_Vertical() {
589 return lane_VerticalEClass;
562 } 590 }
563 591
564 /** 592 /**
@@ -616,9 +644,10 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
616 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__ACTORS); 644 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__ACTORS);
617 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__LANES); 645 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__LANES);
618 createEAttribute(crossingScenarioEClass, CROSSING_SCENARIO__MAX_TIME); 646 createEAttribute(crossingScenarioEClass, CROSSING_SCENARIO__MAX_TIME);
647 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__HORIZONTAL_HEAD);
648 createEReference(crossingScenarioEClass, CROSSING_SCENARIO__VERTICAL_HEAD);
619 649
620 laneEClass = createEClass(LANE); 650 laneEClass = createEClass(LANE);
621 createEAttribute(laneEClass, LANE__ORIENTATION);
622 createEAttribute(laneEClass, LANE__WIDTH); 651 createEAttribute(laneEClass, LANE__WIDTH);
623 createEAttribute(laneEClass, LANE__REFERENCE_COORD); 652 createEAttribute(laneEClass, LANE__REFERENCE_COORD);
624 createEReference(laneEClass, LANE__PREV_LANE); 653 createEReference(laneEClass, LANE__PREV_LANE);
@@ -657,8 +686,11 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
657 686
658 vehicleEClass = createEClass(VEHICLE); 687 vehicleEClass = createEClass(VEHICLE);
659 688
689 lane_HorizontalEClass = createEClass(LANE_HORIZONTAL);
690
691 lane_VerticalEClass = createEClass(LANE_VERTICAL);
692
660 // Create enums 693 // Create enums
661 orientationEEnum = createEEnum(ORIENTATION);
662 sizeEEnum = createEEnum(SIZE); 694 sizeEEnum = createEEnum(SIZE);
663 distanceEEnum = createEEnum(DISTANCE); 695 distanceEEnum = createEEnum(DISTANCE);
664 } 696 }
@@ -699,6 +731,8 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
699 collisionDoesNotExistEClass.getESuperTypes().add(this.getTemporalRelation()); 731 collisionDoesNotExistEClass.getESuperTypes().add(this.getTemporalRelation());
700 pedestrianEClass.getESuperTypes().add(this.getActor()); 732 pedestrianEClass.getESuperTypes().add(this.getActor());
701 vehicleEClass.getESuperTypes().add(this.getActor()); 733 vehicleEClass.getESuperTypes().add(this.getActor());
734 lane_HorizontalEClass.getESuperTypes().add(this.getLane());
735 lane_VerticalEClass.getESuperTypes().add(this.getLane());
702 736
703 // Initialize classes, features, and operations; add parameters 737 // Initialize classes, features, and operations; add parameters
704 initEClass(crossingScenarioEClass, CrossingScenario.class, "CrossingScenario", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 738 initEClass(crossingScenarioEClass, CrossingScenario.class, "CrossingScenario", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -707,9 +741,10 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
707 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); 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);
708 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); 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);
709 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); 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);
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);
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);
710 746
711 initEClass(laneEClass, Lane.class, "Lane", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 747 initEClass(laneEClass, Lane.class, "Lane", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
712 initEAttribute(getLane_Orientation(), this.getOrientation(), "orientation", null, 1, 1, Lane.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
713 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); 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);
714 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); 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);
715 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); 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);
@@ -748,11 +783,11 @@ public class CrossingScenarioPackageImpl extends EPackageImpl implements Crossin
748 783
749 initEClass(vehicleEClass, Vehicle.class, "Vehicle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 784 initEClass(vehicleEClass, Vehicle.class, "Vehicle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
750 785
751 // Initialize enums and add enum literals 786 initEClass(lane_HorizontalEClass, Lane_Horizontal.class, "Lane_Horizontal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
752 initEEnum(orientationEEnum, Orientation.class, "Orientation");
753 addEEnumLiteral(orientationEEnum, Orientation.VERTICAL);
754 addEEnumLiteral(orientationEEnum, Orientation.HORIZONTAL);
755 787
788 initEClass(lane_VerticalEClass, Lane_Vertical.class, "Lane_Vertical", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
789
790 // Initialize enums and add enum literals
756 initEEnum(sizeEEnum, Size.class, "Size"); 791 initEEnum(sizeEEnum, Size.class, "Size");
757 addEEnumLiteral(sizeEEnum, Size.SSMALL); 792 addEEnumLiteral(sizeEEnum, Size.SSMALL);
758 addEEnumLiteral(sizeEEnum, Size.SMED); 793 addEEnumLiteral(sizeEEnum, Size.SMED);
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java
index 110f26c8..c0a25d6e 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/LaneImpl.java
@@ -5,7 +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.Orientation;
9import crossingScenario.Size; 8import crossingScenario.Size;
10 9
11import java.util.Collection; 10import java.util.Collection;
@@ -32,7 +31,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
32 * The following features are implemented: 31 * The following features are implemented:
33 * </p> 32 * </p>
34 * <ul> 33 * <ul>
35 * <li>{@link crossingScenario.impl.LaneImpl#getOrientation <em>Orientation</em>}</li>
36 * <li>{@link crossingScenario.impl.LaneImpl#getWidth <em>Width</em>}</li> 34 * <li>{@link crossingScenario.impl.LaneImpl#getWidth <em>Width</em>}</li>
37 * <li>{@link crossingScenario.impl.LaneImpl#getReferenceCoord <em>Reference Coord</em>}</li> 35 * <li>{@link crossingScenario.impl.LaneImpl#getReferenceCoord <em>Reference Coord</em>}</li>
38 * <li>{@link crossingScenario.impl.LaneImpl#getPrevLane <em>Prev Lane</em>}</li> 36 * <li>{@link crossingScenario.impl.LaneImpl#getPrevLane <em>Prev Lane</em>}</li>
@@ -42,27 +40,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
42 * 40 *
43 * @generated 41 * @generated
44 */ 42 */
45public class LaneImpl extends MinimalEObjectImpl.Container implements Lane { 43public abstract class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
46 /**
47 * The default value of the '{@link #getOrientation() <em>Orientation</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getOrientation()
51 * @generated
52 * @ordered
53 */
54 protected static final Orientation ORIENTATION_EDEFAULT = Orientation.VERTICAL;
55
56 /**
57 * The cached value of the '{@link #getOrientation() <em>Orientation</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #getOrientation()
61 * @generated
62 * @ordered
63 */
64 protected Orientation orientation = ORIENTATION_EDEFAULT;
65
66 /** 44 /**
67 * The default value of the '{@link #getWidth() <em>Width</em>}' attribute. 45 * The default value of the '{@link #getWidth() <em>Width</em>}' attribute.
68 * <!-- begin-user-doc --> 46 * <!-- begin-user-doc -->
@@ -168,29 +146,6 @@ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
168 * @generated 146 * @generated
169 */ 147 */
170 @Override 148 @Override
171 public Orientation getOrientation() {
172 return orientation;
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public void setOrientation(Orientation newOrientation) {
182 Orientation oldOrientation = orientation;
183 orientation = newOrientation == null ? ORIENTATION_EDEFAULT : newOrientation;
184 if (eNotificationRequired())
185 eNotify(new ENotificationImpl(this, Notification.SET, CrossingScenarioPackage.LANE__ORIENTATION, oldOrientation, orientation));
186 }
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 @Override
194 public Size getWidth() { 149 public Size getWidth() {
195 return width; 150 return width;
196 } 151 }
@@ -344,8 +299,6 @@ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
344 @Override 299 @Override
345 public Object eGet(int featureID, boolean resolve, boolean coreType) { 300 public Object eGet(int featureID, boolean resolve, boolean coreType) {
346 switch (featureID) { 301 switch (featureID) {
347 case CrossingScenarioPackage.LANE__ORIENTATION:
348 return getOrientation();
349 case CrossingScenarioPackage.LANE__WIDTH: 302 case CrossingScenarioPackage.LANE__WIDTH:
350 return getWidth(); 303 return getWidth();
351 case CrossingScenarioPackage.LANE__REFERENCE_COORD: 304 case CrossingScenarioPackage.LANE__REFERENCE_COORD:
@@ -370,9 +323,6 @@ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
370 @Override 323 @Override
371 public void eSet(int featureID, Object newValue) { 324 public void eSet(int featureID, Object newValue) {
372 switch (featureID) { 325 switch (featureID) {
373 case CrossingScenarioPackage.LANE__ORIENTATION:
374 setOrientation((Orientation)newValue);
375 return;
376 case CrossingScenarioPackage.LANE__WIDTH: 326 case CrossingScenarioPackage.LANE__WIDTH:
377 setWidth((Size)newValue); 327 setWidth((Size)newValue);
378 return; 328 return;
@@ -401,9 +351,6 @@ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
401 @Override 351 @Override
402 public void eUnset(int featureID) { 352 public void eUnset(int featureID) {
403 switch (featureID) { 353 switch (featureID) {
404 case CrossingScenarioPackage.LANE__ORIENTATION:
405 setOrientation(ORIENTATION_EDEFAULT);
406 return;
407 case CrossingScenarioPackage.LANE__WIDTH: 354 case CrossingScenarioPackage.LANE__WIDTH:
408 setWidth(WIDTH_EDEFAULT); 355 setWidth(WIDTH_EDEFAULT);
409 return; 356 return;
@@ -431,8 +378,6 @@ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
431 @Override 378 @Override
432 public boolean eIsSet(int featureID) { 379 public boolean eIsSet(int featureID) {
433 switch (featureID) { 380 switch (featureID) {
434 case CrossingScenarioPackage.LANE__ORIENTATION:
435 return orientation != ORIENTATION_EDEFAULT;
436 case CrossingScenarioPackage.LANE__WIDTH: 381 case CrossingScenarioPackage.LANE__WIDTH:
437 return width != WIDTH_EDEFAULT; 382 return width != WIDTH_EDEFAULT;
438 case CrossingScenarioPackage.LANE__REFERENCE_COORD: 383 case CrossingScenarioPackage.LANE__REFERENCE_COORD:
@@ -457,9 +402,7 @@ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane {
457 if (eIsProxy()) return super.toString(); 402 if (eIsProxy()) return super.toString();
458 403
459 StringBuilder result = new StringBuilder(super.toString()); 404 StringBuilder result = new StringBuilder(super.toString());
460 result.append(" (orientation: "); 405 result.append(" (width: ");
461 result.append(orientation);
462 result.append(", width: ");
463 result.append(width); 406 result.append(width);
464 result.append(", referenceCoord: "); 407 result.append(", referenceCoord: ");
465 result.append(referenceCoord); 408 result.append(referenceCoord);
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_HorizontalImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_HorizontalImpl.java
new file mode 100644
index 00000000..adf06602
--- /dev/null
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_HorizontalImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package crossingScenario.impl;
4
5import crossingScenario.CrossingScenarioPackage;
6import crossingScenario.Lane_Horizontal;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Lane Horizontal</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Lane_HorizontalImpl extends LaneImpl implements Lane_Horizontal {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Lane_HorizontalImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return CrossingScenarioPackage.Literals.LANE_HORIZONTAL;
35 }
36
37} //Lane_HorizontalImpl
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_VerticalImpl.java b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_VerticalImpl.java
new file mode 100644
index 00000000..cc1265e8
--- /dev/null
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/impl/Lane_VerticalImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package crossingScenario.impl;
4
5import crossingScenario.CrossingScenarioPackage;
6import crossingScenario.Lane_Vertical;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Lane Vertical</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Lane_VerticalImpl extends LaneImpl implements Lane_Vertical {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Lane_VerticalImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return CrossingScenarioPackage.Literals.LANE_VERTICAL;
35 }
36
37} //Lane_VerticalImpl
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioAdapterFactory.java b/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioAdapterFactory.java
index 0035a0ee..129432db 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioAdapterFactory.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioAdapterFactory.java
@@ -116,6 +116,14 @@ public class CrossingScenarioAdapterFactory extends AdapterFactoryImpl {
116 return createVehicleAdapter(); 116 return createVehicleAdapter();
117 } 117 }
118 @Override 118 @Override
119 public Adapter caseLane_Horizontal(Lane_Horizontal object) {
120 return createLane_HorizontalAdapter();
121 }
122 @Override
123 public Adapter caseLane_Vertical(Lane_Vertical object) {
124 return createLane_VerticalAdapter();
125 }
126 @Override
119 public Adapter defaultCase(EObject object) { 127 public Adapter defaultCase(EObject object) {
120 return createEObjectAdapter(); 128 return createEObjectAdapter();
121 } 129 }
@@ -304,6 +312,34 @@ public class CrossingScenarioAdapterFactory extends AdapterFactoryImpl {
304 } 312 }
305 313
306 /** 314 /**
315 * Creates a new adapter for an object of class '{@link crossingScenario.Lane_Horizontal <em>Lane Horizontal</em>}'.
316 * <!-- begin-user-doc -->
317 * This default implementation returns null so that we can easily ignore cases;
318 * it's useful to ignore a case when inheritance will catch all the cases anyway.
319 * <!-- end-user-doc -->
320 * @return the new adapter.
321 * @see crossingScenario.Lane_Horizontal
322 * @generated
323 */
324 public Adapter createLane_HorizontalAdapter() {
325 return null;
326 }
327
328 /**
329 * Creates a new adapter for an object of class '{@link crossingScenario.Lane_Vertical <em>Lane Vertical</em>}'.
330 * <!-- begin-user-doc -->
331 * This default implementation returns null so that we can easily ignore cases;
332 * it's useful to ignore a case when inheritance will catch all the cases anyway.
333 * <!-- end-user-doc -->
334 * @return the new adapter.
335 * @see crossingScenario.Lane_Vertical
336 * @generated
337 */
338 public Adapter createLane_VerticalAdapter() {
339 return null;
340 }
341
342 /**
307 * Creates a new adapter for the default case. 343 * Creates a new adapter for the default case.
308 * <!-- begin-user-doc --> 344 * <!-- begin-user-doc -->
309 * This default implementation returns null. 345 * This default implementation returns null.
diff --git a/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioSwitch.java b/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioSwitch.java
index b14a5c24..e07b7693 100644
--- a/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioSwitch.java
+++ b/Domains/crossingScenario/ecore-gen/crossingScenario/util/CrossingScenarioSwitch.java
@@ -150,6 +150,20 @@ public class CrossingScenarioSwitch<T> extends Switch<T> {
150 if (result == null) result = defaultCase(theEObject); 150 if (result == null) result = defaultCase(theEObject);
151 return result; 151 return result;
152 } 152 }
153 case CrossingScenarioPackage.LANE_HORIZONTAL: {
154 Lane_Horizontal lane_Horizontal = (Lane_Horizontal)theEObject;
155 T result = caseLane_Horizontal(lane_Horizontal);
156 if (result == null) result = caseLane(lane_Horizontal);
157 if (result == null) result = defaultCase(theEObject);
158 return result;
159 }
160 case CrossingScenarioPackage.LANE_VERTICAL: {
161 Lane_Vertical lane_Vertical = (Lane_Vertical)theEObject;
162 T result = caseLane_Vertical(lane_Vertical);
163 if (result == null) result = caseLane(lane_Vertical);
164 if (result == null) result = defaultCase(theEObject);
165 return result;
166 }
153 default: return defaultCase(theEObject); 167 default: return defaultCase(theEObject);
154 } 168 }
155 } 169 }
@@ -335,6 +349,36 @@ public class CrossingScenarioSwitch<T> extends Switch<T> {
335 } 349 }
336 350
337 /** 351 /**
352 * Returns the result of interpreting the object as an instance of '<em>Lane Horizontal</em>'.
353 * <!-- begin-user-doc -->
354 * This implementation returns null;
355 * returning a non-null result will terminate the switch.
356 * <!-- end-user-doc -->
357 * @param object the target of the switch.
358 * @return the result of interpreting the object as an instance of '<em>Lane Horizontal</em>'.
359 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
360 * @generated
361 */
362 public T caseLane_Horizontal(Lane_Horizontal object) {
363 return null;
364 }
365
366 /**
367 * Returns the result of interpreting the object as an instance of '<em>Lane Vertical</em>'.
368 * <!-- begin-user-doc -->
369 * This implementation returns null;
370 * returning a non-null result will terminate the switch.
371 * <!-- end-user-doc -->
372 * @param object the target of the switch.
373 * @return the result of interpreting the object as an instance of '<em>Lane Vertical</em>'.
374 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
375 * @generated
376 */
377 public T caseLane_Vertical(Lane_Vertical object) {
378 return null;
379 }
380
381 /**
338 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. 382 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
339 * <!-- begin-user-doc --> 383 * <!-- begin-user-doc -->
340 * This implementation returns null; 384 * This implementation returns null;
diff --git a/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig b/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig
index 4f8267b7..b216ed3f 100644
--- a/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig
+++ b/Domains/crossingScenario/inputs/crossingScenarioGen.vsconfig
@@ -7,16 +7,17 @@ generate {
7 partial-model = { "inputs/CrossingScenarioInit.xmi"} 7 partial-model = { "inputs/CrossingScenarioInit.xmi"}
8 solver = ViatraSolver 8 solver = ViatraSolver
9 scope = { 9 scope = {
10 #node = 20..30, 10 #node = 15..100,
11 #int = {}, 11 #int = {},
12 #<Lane> = 1..10, 12 #<Lane> = 20..25//,
13 #<Actor> = 1..10, 13 //#<Actor> = 1..10,
14 #<Relation> = 1..10} 14 //#<Relation> = 1..10
15 }
15 16
16 config = { 17 config = {
17 runtime = 10000, 18 runtime = 10000,
18 log-level = normal, 19 log-level = normal,
19 "numeric-solver" = "dreal", 20 "numeric-solver" = "z3",
20 "scopePropagator" = "typeHierarchy"} 21 "scopePropagator" = "typeHierarchy"}
21 22
22 runs = 1 23 runs = 1
diff --git a/Domains/crossingScenario/model/crossingScenario.aird b/Domains/crossingScenario/model/crossingScenario.aird
index 53943eaa..dbb8f664 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="9b933d9e-2a58-4045-89df-7d0b76cac6bf"> 8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_MXYWcFZ_Eeugh9dythfu8g" name="crossingScenario class diagram" repPath="#_MV4hoFZ_Eeugh9dythfu8g" changeId="727f8c7c-fc2b-4ee7-ba43-baea41994c39">
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>
@@ -82,10 +82,6 @@
82 <children xmi:type="notation:Node" xmi:id="_NbmzkFZ_Eeugh9dythfu8g" type="2003" element="_NaCGQFZ_Eeugh9dythfu8g"> 82 <children xmi:type="notation:Node" xmi:id="_NbmzkFZ_Eeugh9dythfu8g" type="2003" element="_NaCGQFZ_Eeugh9dythfu8g">
83 <children xmi:type="notation:Node" xmi:id="_NbnaoFZ_Eeugh9dythfu8g" type="5007"/> 83 <children xmi:type="notation:Node" xmi:id="_NbnaoFZ_Eeugh9dythfu8g" type="5007"/>
84 <children xmi:type="notation:Node" xmi:id="_NbnaoVZ_Eeugh9dythfu8g" type="7004"> 84 <children xmi:type="notation:Node" xmi:id="_NbnaoVZ_Eeugh9dythfu8g" type="7004">
85 <children xmi:type="notation:Node" xmi:id="_Nb2rM1Z_Eeugh9dythfu8g" type="3010" element="_NasNkFZ_Eeugh9dythfu8g">
86 <styles xmi:type="notation:FontStyle" xmi:id="_Nb2rNFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/>
87 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb2rNVZ_Eeugh9dythfu8g"/>
88 </children>
89 <children xmi:type="notation:Node" xmi:id="_Nb3SQFZ_Eeugh9dythfu8g" type="3010" element="_NauCwFZ_Eeugh9dythfu8g"> 85 <children xmi:type="notation:Node" xmi:id="_Nb3SQFZ_Eeugh9dythfu8g" type="3010" element="_NauCwFZ_Eeugh9dythfu8g">
90 <styles xmi:type="notation:FontStyle" xmi:id="_Nb3SQVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/> 86 <styles xmi:type="notation:FontStyle" xmi:id="_Nb3SQVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8" bold="true"/>
91 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb3SQlZ_Eeugh9dythfu8g"/> 87 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb3SQlZ_Eeugh9dythfu8g"/>
@@ -102,24 +98,7 @@
102 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbnao1Z_Eeugh9dythfu8g"/> 98 <styles xmi:type="notation:FilteringStyle" xmi:id="_Nbnao1Z_Eeugh9dythfu8g"/>
103 </children> 99 </children>
104 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbmzkVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 100 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbmzkVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
105 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbmzklZ_Eeugh9dythfu8g" x="48" y="266"/> 101 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbmzklZ_Eeugh9dythfu8g" x="48" y="266" height="84"/>
106 </children>
107 <children xmi:type="notation:Node" xmi:id="_NbnapFZ_Eeugh9dythfu8g" type="2003" element="_NaEigFZ_Eeugh9dythfu8g">
108 <children xmi:type="notation:Node" xmi:id="_NboBsFZ_Eeugh9dythfu8g" type="5007"/>
109 <children xmi:type="notation:Node" xmi:id="_NboBsVZ_Eeugh9dythfu8g" type="7004">
110 <children xmi:type="notation:Node" xmi:id="_Nb4gYFZ_Eeugh9dythfu8g" type="3010" element="_Na5o8lZ_Eeugh9dythfu8g">
111 <styles xmi:type="notation:FontStyle" xmi:id="_Nb4gYVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
112 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb4gYlZ_Eeugh9dythfu8g"/>
113 </children>
114 <children xmi:type="notation:Node" xmi:id="_Nb4gY1Z_Eeugh9dythfu8g" type="3010" element="_Na6QAFZ_Eeugh9dythfu8g">
115 <styles xmi:type="notation:FontStyle" xmi:id="_Nb4gZFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
116 <layoutConstraint xmi:type="notation:Location" xmi:id="_Nb4gZVZ_Eeugh9dythfu8g"/>
117 </children>
118 <styles xmi:type="notation:SortingStyle" xmi:id="_NboBslZ_Eeugh9dythfu8g"/>
119 <styles xmi:type="notation:FilteringStyle" xmi:id="_NboBs1Z_Eeugh9dythfu8g"/>
120 </children>
121 <styles xmi:type="notation:ShapeStyle" xmi:id="_NbnapVZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
122 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NbnaplZ_Eeugh9dythfu8g" x="36" y="31" width="86" height="74"/>
123 </children> 102 </children>
124 <children xmi:type="notation:Node" xmi:id="_NboowFZ_Eeugh9dythfu8g" type="2003" element="_NaGXsFZ_Eeugh9dythfu8g"> 103 <children xmi:type="notation:Node" xmi:id="_NboowFZ_Eeugh9dythfu8g" type="2003" element="_NaGXsFZ_Eeugh9dythfu8g">
125 <children xmi:type="notation:Node" xmi:id="_NbpP0FZ_Eeugh9dythfu8g" type="5007"/> 104 <children xmi:type="notation:Node" xmi:id="_NbpP0FZ_Eeugh9dythfu8g" type="5007"/>
@@ -313,7 +292,7 @@
313 <styles xmi:type="notation:TextStyle" xmi:id="_wKszY1aAEeugh9dythfu8g" textAlignment="Center"/> 292 <styles xmi:type="notation:TextStyle" xmi:id="_wKszY1aAEeugh9dythfu8g" textAlignment="Center"/>
314 <styles xmi:type="notation:LineTypeStyle" xmi:id="_wKszZFaAEeugh9dythfu8g"/> 293 <styles xmi:type="notation:LineTypeStyle" xmi:id="_wKszZFaAEeugh9dythfu8g"/>
315 <element xsi:nil="true"/> 294 <element xsi:nil="true"/>
316 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKszZVaAEeugh9dythfu8g" x="48" y="372" width="205" height="112"/> 295 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKszZVaAEeugh9dythfu8g" x="48" y="492" width="205" height="112"/>
317 </children> 296 </children>
318 <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"> 297 <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">
319 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wh8OsVaAEeugh9dythfu8g" source="specificStyles"> 298 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wh8OsVaAEeugh9dythfu8g" source="specificStyles">
@@ -330,21 +309,6 @@
330 <element xsi:nil="true"/> 309 <element xsi:nil="true"/>
331 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wh8OtVaAEeugh9dythfu8g" x="274" y="363" width="229" height="105"/> 310 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wh8OtVaAEeugh9dythfu8g" x="274" y="363" width="229" height="105"/>
332 </children> 311 </children>
333 <children xmi:type="notation:Shape" xmi:id="_w9GgsFaAEeugh9dythfu8g" type="Note" fontName="Segoe UI" description="might not be relevant" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
334 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w9GgsVaAEeugh9dythfu8g" source="specificStyles">
335 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w9GgslaAEeugh9dythfu8g" key="verticalAlignment" value="8"/>
336 </eAnnotations>
337 <children xmi:type="notation:BasicDecorationNode" xmi:id="_w9HHwFaAEeugh9dythfu8g" type="DiagramName">
338 <element xsi:nil="true"/>
339 </children>
340 <children xmi:type="notation:BasicDecorationNode" xmi:id="_w9HHwVaAEeugh9dythfu8g" type="Description">
341 <element xsi:nil="true"/>
342 </children>
343 <styles xmi:type="notation:TextStyle" xmi:id="_w9Ggs1aAEeugh9dythfu8g" textAlignment="Center"/>
344 <styles xmi:type="notation:LineTypeStyle" xmi:id="_w9GgtFaAEeugh9dythfu8g"/>
345 <element xsi:nil="true"/>
346 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w9GgtVaAEeugh9dythfu8g" x="36" y="168" width="84" height="44"/>
347 </children>
348 <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"> 312 <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">
349 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVl5MVaAEeugh9dythfu8g" source="specificStyles"> 313 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVl5MVaAEeugh9dythfu8g" source="specificStyles">
350 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVl5MlaAEeugh9dythfu8g" key="verticalAlignment" value="8"/> 314 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVl5MlaAEeugh9dythfu8g" key="verticalAlignment" value="8"/>
@@ -390,6 +354,24 @@
390 <element xsi:nil="true"/> 354 <element xsi:nil="true"/>
391 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EC00ZVaBEeugh9dythfu8g" x="825" y="132" width="133" height="120"/> 355 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EC00ZVaBEeugh9dythfu8g" x="825" y="132" width="133" height="120"/>
392 </children> 356 </children>
357 <children xmi:type="notation:Node" xmi:id="_d-EnIFh-Eeu-o58Hgezqgw" type="2003" element="_d9eKMFh-Eeu-o58Hgezqgw">
358 <children xmi:type="notation:Node" xmi:id="_d-GcUFh-Eeu-o58Hgezqgw" type="5007"/>
359 <children xmi:type="notation:Node" xmi:id="_d-HqcFh-Eeu-o58Hgezqgw" type="7004">
360 <styles xmi:type="notation:SortingStyle" xmi:id="_d-HqcVh-Eeu-o58Hgezqgw"/>
361 <styles xmi:type="notation:FilteringStyle" xmi:id="_d-Hqclh-Eeu-o58Hgezqgw"/>
362 </children>
363 <styles xmi:type="notation:ShapeStyle" xmi:id="_d-EnIVh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
364 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-EnIlh-Eeu-o58Hgezqgw" x="48" y="372" width="110" height="38"/>
365 </children>
366 <children xmi:type="notation:Node" xmi:id="_iaquQFh-Eeu-o58Hgezqgw" type="2003" element="_iaOCUFh-Eeu-o58Hgezqgw">
367 <children xmi:type="notation:Node" xmi:id="_iarVUFh-Eeu-o58Hgezqgw" type="5007"/>
368 <children xmi:type="notation:Node" xmi:id="_iarVUVh-Eeu-o58Hgezqgw" type="7004">
369 <styles xmi:type="notation:SortingStyle" xmi:id="_iarVUlh-Eeu-o58Hgezqgw"/>
370 <styles xmi:type="notation:FilteringStyle" xmi:id="_iarVU1h-Eeu-o58Hgezqgw"/>
371 </children>
372 <styles xmi:type="notation:ShapeStyle" xmi:id="_iaquQVh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
373 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iaquQlh-Eeu-o58Hgezqgw" x="168" y="405" width="98" height="30"/>
374 </children>
393 <styles xmi:type="notation:DiagramStyle" xmi:id="_MYg-4lZ_Eeugh9dythfu8g"/> 375 <styles xmi:type="notation:DiagramStyle" xmi:id="_MYg-4lZ_Eeugh9dythfu8g"/>
394 <edges xmi:type="notation:Edge" xmi:id="_NcAcMFZ_Eeugh9dythfu8g" type="4001" element="_NbAWoFZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g"> 376 <edges xmi:type="notation:Edge" xmi:id="_NcAcMFZ_Eeugh9dythfu8g" type="4001" element="_NbAWoFZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_Nbp241Z_Eeugh9dythfu8g">
395 <children xmi:type="notation:Node" xmi:id="_NcBqUFZ_Eeugh9dythfu8g" type="6001"> 377 <children xmi:type="notation:Node" xmi:id="_NcBqUFZ_Eeugh9dythfu8g" type="6001">
@@ -409,35 +391,35 @@
409 </edges> 391 </edges>
410 <edges xmi:type="notation:Edge" xmi:id="_NcNQgFZ_Eeugh9dythfu8g" type="4001" element="_NbCL0FZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g"> 392 <edges xmi:type="notation:Edge" xmi:id="_NcNQgFZ_Eeugh9dythfu8g" type="4001" element="_NbCL0FZ_Eeugh9dythfu8g" source="_Nbk-YFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g">
411 <children xmi:type="notation:Node" xmi:id="_NcNQhFZ_Eeugh9dythfu8g" type="6001"> 393 <children xmi:type="notation:Node" xmi:id="_NcNQhFZ_Eeugh9dythfu8g" type="6001">
412 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcNQhVZ_Eeugh9dythfu8g" x="-56"/> 394 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcNQhVZ_Eeugh9dythfu8g" x="-50" y="30"/>
413 </children> 395 </children>
414 <children xmi:type="notation:Node" xmi:id="_NcN3kFZ_Eeugh9dythfu8g" type="6002"> 396 <children xmi:type="notation:Node" xmi:id="_NcN3kFZ_Eeugh9dythfu8g" type="6002">
415 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcN3kVZ_Eeugh9dythfu8g" x="-7"/> 397 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcN3kVZ_Eeugh9dythfu8g" x="-5"/>
416 </children> 398 </children>
417 <children xmi:type="notation:Node" xmi:id="_NcN3klZ_Eeugh9dythfu8g" type="6003"> 399 <children xmi:type="notation:Node" xmi:id="_NcN3klZ_Eeugh9dythfu8g" type="6003">
418 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcN3k1Z_Eeugh9dythfu8g" x="-49"/> 400 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcN3k1Z_Eeugh9dythfu8g" x="-51"/>
419 </children> 401 </children>
420 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcNQgVZ_Eeugh9dythfu8g" routing="Rectilinear"/> 402 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcNQgVZ_Eeugh9dythfu8g" routing="Rectilinear"/>
421 <styles xmi:type="notation:FontStyle" xmi:id="_NcNQglZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 403 <styles xmi:type="notation:FontStyle" xmi:id="_NcNQglZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
422 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcNQg1Z_Eeugh9dythfu8g" points="[14, 0, -11, -157]$[14, 157, -11, 0]"/> 404 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcNQg1Z_Eeugh9dythfu8g" points="[14, 0, 0, -157]$[14, 157, 0, 0]"/>
423 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lFZ_Eeugh9dythfu8g" id="(0.06451612903225806,1.0)"/> 405 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lFZ_Eeugh9dythfu8g" id="(0.06451612903225806,1.0)"/>
424 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lVZ_Eeugh9dythfu8g" id="(0.6941747572815534,0.0)"/> 406 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcN3lVZ_Eeugh9dythfu8g" id="(0.6941747572815534,0.0)"/>
425 </edges> 407 </edges>
426 <edges xmi:type="notation:Edge" xmi:id="_NcN3llZ_Eeugh9dythfu8g" type="4001" element="_NbEBAFZ_Eeugh9dythfu8g" source="_NbmzkFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g"> 408 <edges xmi:type="notation:Edge" xmi:id="_NcN3llZ_Eeugh9dythfu8g" type="4001" element="_NbEBAFZ_Eeugh9dythfu8g" source="_NbmzkFZ_Eeugh9dythfu8g" target="_NbmzkFZ_Eeugh9dythfu8g">
427 <children xmi:type="notation:Node" xmi:id="_NcOeoFZ_Eeugh9dythfu8g" type="6001"> 409 <children xmi:type="notation:Node" xmi:id="_NcOeoFZ_Eeugh9dythfu8g" type="6001">
428 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOeoVZ_Eeugh9dythfu8g" x="-24" y="-14"/> 410 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOeoVZ_Eeugh9dythfu8g" x="-11" y="-14"/>
429 </children> 411 </children>
430 <children xmi:type="notation:Node" xmi:id="_NcOeolZ_Eeugh9dythfu8g" type="6002"> 412 <children xmi:type="notation:Node" xmi:id="_NcOeolZ_Eeugh9dythfu8g" type="6002">
431 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOeo1Z_Eeugh9dythfu8g" x="-6"/> 413 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOeo1Z_Eeugh9dythfu8g" x="1"/>
432 </children> 414 </children>
433 <children xmi:type="notation:Node" xmi:id="_NcOepFZ_Eeugh9dythfu8g" type="6003"> 415 <children xmi:type="notation:Node" xmi:id="_NcOepFZ_Eeugh9dythfu8g" type="6003">
434 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOepVZ_Eeugh9dythfu8g" x="6" y="10"/> 416 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NcOepVZ_Eeugh9dythfu8g" x="-1" y="10"/>
435 </children> 417 </children>
436 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcN3l1Z_Eeugh9dythfu8g" routing="Rectilinear"/> 418 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NcN3l1Z_Eeugh9dythfu8g" routing="Rectilinear"/>
437 <styles xmi:type="notation:FontStyle" xmi:id="_NcN3mFZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 419 <styles xmi:type="notation:FontStyle" xmi:id="_NcN3mFZ_Eeugh9dythfu8g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
438 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NcN3mVZ_Eeugh9dythfu8g" points="[-91, -49, -5, -4]$[-91, -72, -5, -27]$[-19, -72, 67, -27]$[-19, -49, 67, -4]"/> 420 <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]"/>
439 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcPFsFZ_Eeugh9dythfu8g" id="(0.5,0.5)"/> 421 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcPFsFZ_Eeugh9dythfu8g" id="(0.5,0.5917874396135266)"/>
440 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcPswFZ_Eeugh9dythfu8g" id="(0.0825242718446602,0.04081632653061224)"/> 422 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcPswFZ_Eeugh9dythfu8g" id="(0.0825242718446602,0.04830917874396135)"/>
441 </edges> 423 </edges>
442 <edges xmi:type="notation:Edge" xmi:id="_NcPswVZ_Eeugh9dythfu8g" type="4001" element="_NbFPIFZ_Eeugh9dythfu8g" source="_Nbp241Z_Eeugh9dythfu8g" target="_NbrsEFZ_Eeugh9dythfu8g"> 424 <edges xmi:type="notation:Edge" xmi:id="_NcPswVZ_Eeugh9dythfu8g" type="4001" element="_NbFPIFZ_Eeugh9dythfu8g" source="_Nbp241Z_Eeugh9dythfu8g" target="_NbrsEFZ_Eeugh9dythfu8g">
443 <children xmi:type="notation:Node" xmi:id="_NcQT0FZ_Eeugh9dythfu8g" type="6001"> 425 <children xmi:type="notation:Node" xmi:id="_NcQT0FZ_Eeugh9dythfu8g" type="6001">
@@ -628,23 +610,15 @@
628 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nce9U1Z_Eeugh9dythfu8g" routing="Rectilinear"/> 610 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nce9U1Z_Eeugh9dythfu8g" routing="Rectilinear"/>
629 <styles xmi:type="notation:FontStyle" xmi:id="_Nce9VFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/> 611 <styles xmi:type="notation:FontStyle" xmi:id="_Nce9VFZ_Eeugh9dythfu8g" fontName="Segoe UI" fontHeight="8"/>
630 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nce9VVZ_Eeugh9dythfu8g" points="[50, -8, -148, -3]$[50, -88, -148, -83]$[122, -88, -76, -83]"/> 612 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nce9VVZ_Eeugh9dythfu8g" points="[50, -8, -148, -3]$[50, -88, -148, -83]$[122, -88, -76, -83]"/>
631 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcFZ_Eeugh9dythfu8g" id="(0.6310679611650486,0.08163265306122448)"/> 613 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcFZ_Eeugh9dythfu8g" id="(0.6310679611650486,0.0966183574879227)"/>
632 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/> 614 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NcgLcVZ_Eeugh9dythfu8g" id="(0.5066666666666667,1.0)"/>
633 </edges> 615 </edges>
634 <edges xmi:type="notation:Connector" xmi:id="_Y26uYFaBEeugh9dythfu8g" type="NoteAttachment" source="_w9GgsFaAEeugh9dythfu8g" target="_NcN3llZ_Eeugh9dythfu8g" lineWidth="1">
635 <styles xmi:type="notation:ArrowStyle" xmi:id="_Y26uYVaBEeugh9dythfu8g"/>
636 <styles xmi:type="notation:LineTypeStyle" xmi:id="_Y26uYlaBEeugh9dythfu8g"/>
637 <element xsi:nil="true"/>
638 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y26uY1aBEeugh9dythfu8g" points="[3, 6, 9, -31]$[8, 15, 14, -22]$[-6, 37, 0, 0]"/>
639 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y3ZPgFaBEeugh9dythfu8g" id="(0.8809523809523809,0.8636363636363636)"/>
640 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y3ZPgVaBEeugh9dythfu8g" id="(0.6124031007751938,0.0)"/>
641 </edges>
642 <edges xmi:type="notation:Connector" xmi:id="_gKseAFaBEeugh9dythfu8g" type="NoteAttachment" source="_NbmzkFZ_Eeugh9dythfu8g" target="_wKszYFaAEeugh9dythfu8g" lineWidth="1"> 616 <edges xmi:type="notation:Connector" xmi:id="_gKseAFaBEeugh9dythfu8g" type="NoteAttachment" source="_NbmzkFZ_Eeugh9dythfu8g" target="_wKszYFaAEeugh9dythfu8g" lineWidth="1">
643 <styles xmi:type="notation:ArrowStyle" xmi:id="_gKseAVaBEeugh9dythfu8g"/> 617 <styles xmi:type="notation:ArrowStyle" xmi:id="_gKseAVaBEeugh9dythfu8g"/>
644 <styles xmi:type="notation:LineTypeStyle" xmi:id="_gKseAlaBEeugh9dythfu8g"/> 618 <styles xmi:type="notation:LineTypeStyle" xmi:id="_gKseAlaBEeugh9dythfu8g"/>
645 <element xsi:nil="true"/> 619 <element xsi:nil="true"/>
646 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gKseA1aBEeugh9dythfu8g" points="[-2, 6, 3, -12]$[-4, 14, 1, -4]"/> 620 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gKseA1aBEeugh9dythfu8g" points="[-3, 0, -7, -212]$[-39, 0, -43, -212]$[-39, 212, -43, 0]$[-3, 212, -7, 0]"/>
647 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gKu6QFaBEeugh9dythfu8g" id="(0.05825242718446602,0.9387755102040817)"/> 621 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gKu6QFaBEeugh9dythfu8g" id="(0.014563106796116505,0.1836734693877551)"/>
648 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gKu6QVaBEeugh9dythfu8g" id="(0.03414634146341464,0.03571428571428571)"/> 622 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gKu6QVaBEeugh9dythfu8g" id="(0.03414634146341464,0.03571428571428571)"/>
649 </edges> 623 </edges>
650 <edges xmi:type="notation:Connector" xmi:id="_mMm9IFaBEeugh9dythfu8g" type="NoteAttachment" source="_vqpaUFaAEeugh9dythfu8g" target="_Nbk-YFZ_Eeugh9dythfu8g" lineWidth="1"> 624 <edges xmi:type="notation:Connector" xmi:id="_mMm9IFaBEeugh9dythfu8g" type="NoteAttachment" source="_vqpaUFaAEeugh9dythfu8g" target="_Nbk-YFZ_Eeugh9dythfu8g" lineWidth="1">
@@ -687,9 +661,73 @@
687 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DNFpwFaCEeugh9dythfu8g" id="(0.8134328358208955,0.02564102564102564)"/> 661 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DNFpwFaCEeugh9dythfu8g" id="(0.8134328358208955,0.02564102564102564)"/>
688 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DNFpwVaCEeugh9dythfu8g" id="(0.8764705882352941,0.875)"/> 662 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DNFpwVaCEeugh9dythfu8g" id="(0.8764705882352941,0.875)"/>
689 </edges> 663 </edges>
664 <edges xmi:type="notation:Edge" xmi:id="_sbmAoFh-Eeu-o58Hgezqgw" type="4001" element="_sbU64Fh-Eeu-o58Hgezqgw" source="_iaquQFh-Eeu-o58Hgezqgw" target="_NbmzkFZ_Eeugh9dythfu8g">
665 <children xmi:type="notation:Node" xmi:id="_sbmnsFh-Eeu-o58Hgezqgw" type="6001">
666 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sbmnsVh-Eeu-o58Hgezqgw" y="-10"/>
667 </children>
668 <children xmi:type="notation:Node" xmi:id="_sbmnslh-Eeu-o58Hgezqgw" type="6002">
669 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sbmns1h-Eeu-o58Hgezqgw" y="10"/>
670 </children>
671 <children xmi:type="notation:Node" xmi:id="_sbmntFh-Eeu-o58Hgezqgw" type="6003">
672 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sbmntVh-Eeu-o58Hgezqgw" y="10"/>
673 </children>
674 <styles xmi:type="notation:ConnectorStyle" xmi:id="_sbmAoVh-Eeu-o58Hgezqgw" routing="Tree"/>
675 <styles xmi:type="notation:FontStyle" xmi:id="_sbmAolh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
676 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sbmAo1h-Eeu-o58Hgezqgw" points="[0, 0, 60, 57]$[-60, -57, 0, 0]"/>
677 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sbnOwFh-Eeu-o58Hgezqgw" id="(0.375,0.0)"/>
678 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sbnOwVh-Eeu-o58Hgezqgw" id="(0.5,0.5)"/>
679 </edges>
680 <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">
681 <children xmi:type="notation:Node" xmi:id="_tvl_JFh-Eeu-o58Hgezqgw" type="6001">
682 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tvl_JVh-Eeu-o58Hgezqgw" y="-10"/>
683 </children>
684 <children xmi:type="notation:Node" xmi:id="_tvmmMFh-Eeu-o58Hgezqgw" type="6002">
685 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tvmmMVh-Eeu-o58Hgezqgw" y="10"/>
686 </children>
687 <children xmi:type="notation:Node" xmi:id="_tvmmMlh-Eeu-o58Hgezqgw" type="6003">
688 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tvmmM1h-Eeu-o58Hgezqgw" y="10"/>
689 </children>
690 <styles xmi:type="notation:ConnectorStyle" xmi:id="_tvl_IVh-Eeu-o58Hgezqgw" routing="Tree"/>
691 <styles xmi:type="notation:FontStyle" xmi:id="_tvl_Ilh-Eeu-o58Hgezqgw" fontName="Segoe UI" fontHeight="8"/>
692 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tvl_I1h-Eeu-o58Hgezqgw" points="[0, 0, -48, 57]$[48, -57, 0, 0]"/>
693 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tvmmNFh-Eeu-o58Hgezqgw" id="(0.4351851851851852,0.0)"/>
694 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tvmmNVh-Eeu-o58Hgezqgw" id="(0.6941747572815534,0.0)"/>
695 </edges>
696 <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">
697 <children xmi:type="notation:Node" xmi:id="_y4rY0Fh-Eeu-o58Hgezqgw" type="6001">
698 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4rY0Vh-Eeu-o58Hgezqgw" x="-88" y="-63"/>
699 </children>
700 <children xmi:type="notation:Node" xmi:id="_y4rY0lh-Eeu-o58Hgezqgw" type="6002">
701 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4rY01h-Eeu-o58Hgezqgw" x="-5" y="10"/>
702 </children>
703 <children xmi:type="notation:Node" xmi:id="_y4r_4Fh-Eeu-o58Hgezqgw" type="6003">
704 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y4r_4Vh-Eeu-o58Hgezqgw" x="-27" y="10"/>
705 </children>
706 <styles xmi:type="notation:ConnectorStyle" xmi:id="_y4qxwVh-Eeu-o58Hgezqgw" routing="Rectilinear"/>
707 <styles xmi:type="notation:FontStyle" xmi:id="_y4qxwlh-Eeu-o58Hgezqgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
708 <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]"/>
709 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y4r_4lh-Eeu-o58Hgezqgw" id="(0.0,0.2823529411764706)"/>
710 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y4r_41h-Eeu-o58Hgezqgw" id="(0.1111111111111111,0.0)"/>
711 </edges>
712 <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">
713 <children xmi:type="notation:Node" xmi:id="_7DTQ4Fh-Eeu-o58Hgezqgw" type="6001">
714 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DTQ4Vh-Eeu-o58Hgezqgw" x="-207" y="-72"/>
715 </children>
716 <children xmi:type="notation:Node" xmi:id="_7DTQ4lh-Eeu-o58Hgezqgw" type="6002">
717 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DTQ41h-Eeu-o58Hgezqgw" x="-1" y="-10"/>
718 </children>
719 <children xmi:type="notation:Node" xmi:id="_7DT38Fh-Eeu-o58Hgezqgw" type="6003">
720 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DT38Vh-Eeu-o58Hgezqgw" x="1" y="10"/>
721 </children>
722 <styles xmi:type="notation:ConnectorStyle" xmi:id="_7DSp0Vh-Eeu-o58Hgezqgw" routing="Rectilinear"/>
723 <styles xmi:type="notation:FontStyle" xmi:id="_7DSp0lh-Eeu-o58Hgezqgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
724 <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]"/>
725 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7DT38lh-Eeu-o58Hgezqgw" id="(0.0,1.0)"/>
726 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7DT381h-Eeu-o58Hgezqgw" id="(0.0,0.5128205128205128)"/>
727 </edges>
690 </data> 728 </data>
691 </ownedAnnotationEntries> 729 </ownedAnnotationEntries>
692 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NZ9NwFZ_Eeugh9dythfu8g" name="CrossingScenario" tooltipText="" outgoingEdges="_NbAWoFZ_Eeugh9dythfu8g _NbCL0FZ_Eeugh9dythfu8g" width="12" height="10"> 730 <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">
693 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/> 731 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/>
694 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/> 732 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//CrossingScenario"/>
695 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 733 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -724,24 +762,17 @@
724 <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']"/> 762 <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']"/>
725 </ownedElements> 763 </ownedElements>
726 </ownedDiagramElements> 764 </ownedDiagramElements>
727 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaCGQFZ_Eeugh9dythfu8g" name="Lane" tooltipText="" outgoingEdges="_NbEBAFZ_Eeugh9dythfu8g _NbVGwFZ_Eeugh9dythfu8g" incomingEdges="_NbCL0FZ_Eeugh9dythfu8g _NbEBAFZ_Eeugh9dythfu8g" width="12" height="10"> 765 <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">
728 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/> 766 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/>
729 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/> 767 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane"/>
730 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 768 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
731 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 769 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
732 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 770 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
733 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_NaCtUFZ_Eeugh9dythfu8g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 771 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_qq4Q81h-Eeu-o58Hgezqgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
734 <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']/@style"/> 772 <labelFormat>italic</labelFormat>
773 <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"/>
735 </ownedStyle> 774 </ownedStyle>
736 <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']"/> 775 <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']"/>
737 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NasNkFZ_Eeugh9dythfu8g" name="orientation : Orientation = Vertical" tooltipText="">
738 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/orientation"/>
739 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/orientation"/>
740 <ownedStyle xmi:type="diagram:BundledImage" uid="_NatbsVZ_Eeugh9dythfu8g" labelAlignment="LEFT" description="_NatbsFZ_Eeugh9dythfu8g">
741 <labelFormat>bold</labelFormat>
742 </ownedStyle>
743 <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']"/>
744 </ownedElements>
745 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NauCwFZ_Eeugh9dythfu8g" name="width : Size = S_Small" tooltipText=""> 776 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NauCwFZ_Eeugh9dythfu8g" name="width : Size = S_Small" tooltipText="">
746 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/width"/> 777 <target xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/width"/>
747 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/width"/> 778 <semanticElements xmi:type="ecore:EAttribute" href="crossingScenario.ecore#//Lane/width"/>
@@ -767,33 +798,6 @@
767 <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']"/> 798 <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']"/>
768 </ownedElements> 799 </ownedElements>
769 </ownedDiagramElements> 800 </ownedDiagramElements>
770 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaEigFZ_Eeugh9dythfu8g" name="Orientation" tooltipText="" width="12" height="10">
771 <target xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Orientation"/>
772 <semanticElements xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Orientation"/>
773 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
774 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
775 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
776 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_NaFJkFZ_Eeugh9dythfu8g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
777 <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"/>
778 </ownedStyle>
779 <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']"/>
780 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Na5o8lZ_Eeugh9dythfu8g" name="Vertical" tooltipText="">
781 <target xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Orientation/Vertical"/>
782 <semanticElements xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Orientation/Vertical"/>
783 <ownedStyle xmi:type="diagram:BundledImage" uid="_Na5o81Z_Eeugh9dythfu8g" labelAlignment="LEFT">
784 <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"/>
785 </ownedStyle>
786 <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']"/>
787 </ownedElements>
788 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Na6QAFZ_Eeugh9dythfu8g" name="Horizontal" tooltipText="">
789 <target xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Orientation/Horizontal"/>
790 <semanticElements xmi:type="ecore:EEnumLiteral" href="crossingScenario.ecore#//Orientation/Horizontal"/>
791 <ownedStyle xmi:type="diagram:BundledImage" uid="_Na6QAVZ_Eeugh9dythfu8g" labelAlignment="LEFT">
792 <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"/>
793 </ownedStyle>
794 <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']"/>
795 </ownedElements>
796 </ownedDiagramElements>
797 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaGXsFZ_Eeugh9dythfu8g" name="Size" tooltipText="" width="12" height="10"> 801 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NaGXsFZ_Eeugh9dythfu8g" name="Size" tooltipText="" width="12" height="10">
798 <target xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Size"/> 802 <target xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Size"/>
799 <semanticElements xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Size"/> 803 <semanticElements xmi:type="ecore:EEnum" href="crossingScenario.ecore#//Size"/>
@@ -1230,6 +1234,74 @@
1230 </ownedStyle> 1234 </ownedStyle>
1231 <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']"/> 1235 <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']"/>
1232 </ownedDiagramElements> 1236 </ownedDiagramElements>
1237 <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">
1238 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/>
1239 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/>
1240 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1241 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1242 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1243 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_d9h0kFh-Eeu-o58Hgezqgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1244 <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']/@style"/>
1245 </ownedStyle>
1246 <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']"/>
1247 </ownedDiagramElements>
1248 <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">
1249 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/>
1250 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/>
1251 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1252 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1253 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1254 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_iaOpYFh-Eeu-o58Hgezqgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1255 <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']/@style"/>
1256 </ownedStyle>
1257 <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']"/>
1258 </ownedDiagramElements>
1259 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_sbU64Fh-Eeu-o58Hgezqgw" sourceNode="_iaOCUFh-Eeu-o58Hgezqgw" targetNode="_NaCGQFZ_Eeugh9dythfu8g">
1260 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/>
1261 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Vertical"/>
1262 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sbU64Vh-Eeu-o58Hgezqgw" targetArrow="InputClosedArrow" routingStyle="tree">
1263 <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%20ESupertypes']/@style"/>
1264 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_sbU64lh-Eeu-o58Hgezqgw" showIcon="false">
1265 <labelFormat>italic</labelFormat>
1266 </beginLabelStyle>
1267 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sbU641h-Eeu-o58Hgezqgw" showIcon="false"/>
1268 </ownedStyle>
1269 <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']"/>
1270 </ownedDiagramElements>
1271 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_tvUSVlh-Eeu-o58Hgezqgw" sourceNode="_d9eKMFh-Eeu-o58Hgezqgw" targetNode="_NaCGQFZ_Eeugh9dythfu8g">
1272 <target xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/>
1273 <semanticElements xmi:type="ecore:EClass" href="crossingScenario.ecore#//Lane_Horizontal"/>
1274 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_tvUSV1h-Eeu-o58Hgezqgw" targetArrow="InputClosedArrow" routingStyle="tree">
1275 <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%20ESupertypes']/@style"/>
1276 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_tvUSWFh-Eeu-o58Hgezqgw" showIcon="false">
1277 <labelFormat>italic</labelFormat>
1278 </beginLabelStyle>
1279 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_tvUSWVh-Eeu-o58Hgezqgw" showIcon="false"/>
1280 </ownedStyle>
1281 <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']"/>
1282 </ownedDiagramElements>
1283 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_y4Wotlh-Eeu-o58Hgezqgw" name="[1..1] horizontal_head" sourceNode="_NZ9NwFZ_Eeugh9dythfu8g" targetNode="_d9eKMFh-Eeu-o58Hgezqgw">
1284 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/horizontal_head"/>
1285 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/horizontal_head"/>
1286 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0-GNMFh-Eeu-o58Hgezqgw" description="_NbHEUFZ_Eeugh9dythfu8g" routingStyle="manhattan" strokeColor="0,0,0">
1287 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0-GNMlh-Eeu-o58Hgezqgw" showIcon="false">
1288 <labelFormat>bold</labelFormat>
1289 </centerLabelStyle>
1290 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_0-GNMVh-Eeu-o58Hgezqgw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1291 </ownedStyle>
1292 <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']"/>
1293 </ownedDiagramElements>
1294 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_7C_u7Fh-Eeu-o58Hgezqgw" name="[1..1] vertical_head" sourceNode="_NZ9NwFZ_Eeugh9dythfu8g" targetNode="_iaOCUFh-Eeu-o58Hgezqgw">
1295 <target xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/vertical_head"/>
1296 <semanticElements xmi:type="ecore:EReference" href="crossingScenario.ecore#//CrossingScenario/vertical_head"/>
1297 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_8sA7IFh-Eeu-o58Hgezqgw" description="_NbHEUFZ_Eeugh9dythfu8g" routingStyle="manhattan" strokeColor="0,0,0">
1298 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_8sA7Ilh-Eeu-o58Hgezqgw" showIcon="false">
1299 <labelFormat>bold</labelFormat>
1300 </centerLabelStyle>
1301 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_8sA7IVh-Eeu-o58Hgezqgw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
1302 </ownedStyle>
1303 <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']"/>
1304 </ownedDiagramElements>
1233 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 1305 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
1234 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_MWWbsFZ_Eeugh9dythfu8g"/> 1306 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_MWWbsFZ_Eeugh9dythfu8g"/>
1235 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 1307 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/Domains/crossingScenario/model/crossingScenario.ecore b/Domains/crossingScenario/model/crossingScenario.ecore
index d9d97470..f651db9f 100644
--- a/Domains/crossingScenario/model/crossingScenario.ecore
+++ b/Domains/crossingScenario/model/crossingScenario.ecore
@@ -10,10 +10,12 @@
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"
14 eType="#//Lane_Horizontal"/>
15 <eStructuralFeatures xsi:type="ecore:EReference" name="vertical_head" lowerBound="1"
16 eType="#//Lane_Vertical"/>
13 </eClassifiers> 17 </eClassifiers>
14 <eClassifiers xsi:type="ecore:EClass" name="Lane"> 18 <eClassifiers xsi:type="ecore:EClass" name="Lane" abstract="true">
15 <eStructuralFeatures xsi:type="ecore:EAttribute" name="orientation" lowerBound="1"
16 eType="#//Orientation"/>
17 <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="#//Size"/> 19 <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" lowerBound="1" eType="#//Size"/>
18 <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceCoord" lowerBound="1" 20 <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceCoord" lowerBound="1"
19 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 21 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
@@ -23,10 +25,6 @@
23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="numWidth" lowerBound="1" 25 <eStructuralFeatures xsi:type="ecore:EAttribute" name="numWidth" lowerBound="1"
24 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/> 26 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
25 </eClassifiers> 27 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EEnum" name="Orientation">
27 <eLiterals name="Vertical"/>
28 <eLiterals name="Horizontal" value="1"/>
29 </eClassifiers>
30 <eClassifiers xsi:type="ecore:EEnum" name="Size"> 28 <eClassifiers xsi:type="ecore:EEnum" name="Size">
31 <eLiterals name="S_Small"/> 29 <eLiterals name="S_Small"/>
32 <eLiterals name="S_Med" value="1"/> 30 <eLiterals name="S_Med" value="1"/>
@@ -75,4 +73,6 @@
75 </eClassifiers> 73 </eClassifiers>
76 <eClassifiers xsi:type="ecore:EClass" name="Pedestrian" eSuperTypes="#//Actor"/> 74 <eClassifiers xsi:type="ecore:EClass" name="Pedestrian" eSuperTypes="#//Actor"/>
77 <eClassifiers xsi:type="ecore:EClass" name="Vehicle" eSuperTypes="#//Actor"/> 75 <eClassifiers xsi:type="ecore:EClass" name="Vehicle" eSuperTypes="#//Actor"/>
76 <eClassifiers xsi:type="ecore:EClass" name="Lane_Horizontal" eSuperTypes="#//Lane"/>
77 <eClassifiers xsi:type="ecore:EClass" name="Lane_Vertical" eSuperTypes="#//Lane"/>
78</ecore:EPackage> 78</ecore:EPackage>
diff --git a/Domains/crossingScenario/model/crossingScenario.genmodel b/Domains/crossingScenario/model/crossingScenario.genmodel
index b788485b..8f1f1ddb 100644
--- a/Domains/crossingScenario/model/crossingScenario.genmodel
+++ b/Domains/crossingScenario/model/crossingScenario.genmodel
@@ -6,10 +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#//Orientation">
10 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Orientation/Vertical"/>
11 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Orientation/Horizontal"/>
12 </genEnums>
13 <genEnums typeSafeEnumCompatible="false" ecoreEnum="crossingScenario.ecore#//Size"> 9 <genEnums typeSafeEnumCompatible="false" ecoreEnum="crossingScenario.ecore#//Size">
14 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Small"/> 10 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Small"/>
15 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Med"/> 11 <genEnumLiterals ecoreEnumLiteral="crossingScenario.ecore#//Size/S_Med"/>
@@ -26,9 +22,10 @@
26 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/actors"/> 22 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/actors"/>
27 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/lanes"/> 23 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/lanes"/>
28 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//CrossingScenario/maxTime"/> 24 <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"/>
26 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//CrossingScenario/vertical_head"/>
29 </genClasses> 27 </genClasses>
30 <genClasses ecoreClass="crossingScenario.ecore#//Lane"> 28 <genClasses ecoreClass="crossingScenario.ecore#//Lane">
31 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/orientation"/>
32 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/width"/> 29 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/width"/>
33 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/referenceCoord"/> 30 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute crossingScenario.ecore#//Lane/referenceCoord"/>
34 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Lane/prevLane"/> 31 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference crossingScenario.ecore#//Lane/prevLane"/>
@@ -62,5 +59,7 @@
62 <genClasses ecoreClass="crossingScenario.ecore#//CollisionDoesNotExist"/> 59 <genClasses ecoreClass="crossingScenario.ecore#//CollisionDoesNotExist"/>
63 <genClasses ecoreClass="crossingScenario.ecore#//Pedestrian"/> 60 <genClasses ecoreClass="crossingScenario.ecore#//Pedestrian"/>
64 <genClasses ecoreClass="crossingScenario.ecore#//Vehicle"/> 61 <genClasses ecoreClass="crossingScenario.ecore#//Vehicle"/>
62 <genClasses ecoreClass="crossingScenario.ecore#//Lane_Horizontal"/>
63 <genClasses ecoreClass="crossingScenario.ecore#//Lane_Vertical"/>
65 </genPackages> 64 </genPackages>
66</genmodel:GenModel> 65</genmodel:GenModel>
diff --git a/Domains/crossingScenario/queries/crossingScenarioQueries.vql b/Domains/crossingScenario/queries/crossingScenarioQueries.vql
index 7089d0da..ee7c0b34 100644
--- a/Domains/crossingScenario/queries/crossingScenarioQueries.vql
+++ b/Domains/crossingScenario/queries/crossingScenarioQueries.vql
@@ -3,26 +3,18 @@ package queries
3import "http://www.example.com/crossingScenario" 3import "http://www.example.com/crossingScenario"
4import "http://www.eclipse.org/emf/2002/Ecore" 4import "http://www.eclipse.org/emf/2002/Ecore"
5 5
6////Minimal Failing Example 6//////Minimal Failing Example
7@Constraint(severity = "error", key = {l}, message = "this defines the placedOn relation") 7//@Constraint(severity = "error", key = {l}, message = "this defines the placedOn relation")
8pattern patterThatOnlyWorksWithInt(l : Lane) { 8//pattern patterThatOnlyWorksWithInt(l : Lane) {
9 Lane.referenceCoord(l, w); 9// Lane.referenceCoord(l, w);
10 check(w <= 0-10.0); 10// check(w <= 0-10.0);
11} 11//}
12 12
13////////////// 13//////////////
14//Lane 14//Lane
15////////////// 15//////////////
16 16
17/////////width, numWidth 17@Constraint(severity="error", key={l}, message="1 Lane")
18//@Constraint(severity="error", key={l}, message="x")
19//pattern define_numWidth_small1(l : Lane) {
20// Lane.width(l, Size::S_Small);
21// Lane.numWidth(l, nw);
22// check(nw >= 5.0);
23//}
24
25@Constraint(severity="error", key={l}, message="x")
26pattern define_numWidth_small(l : Lane) { 18pattern define_numWidth_small(l : Lane) {
27 Lane.width(l, Size::S_Small); 19 Lane.width(l, Size::S_Small);
28 Lane.numWidth(l, nw); 20 Lane.numWidth(l, nw);
@@ -33,7 +25,7 @@ pattern define_numWidth_small(l : Lane) {
33 check(nw >= 10.0); 25 check(nw >= 10.0);
34} 26}
35 27
36@Constraint(severity="error", key={l}, message="x") 28@Constraint(severity="error", key={l}, message="2 Lane")
37pattern define_numWidth_medium(l : Lane) { 29pattern define_numWidth_medium(l : Lane) {
38 Lane.width(l, ::S_Med); 30 Lane.width(l, ::S_Med);
39 Lane.numWidth(l, nw); 31 Lane.numWidth(l, nw);
@@ -45,7 +37,7 @@ or {
45 check(nw >= 15.0); 37 check(nw >= 15.0);
46} 38}
47 39
48@Constraint(severity="error", key={l}, message="x") 40@Constraint(severity="error", key={l}, message="3 Lane")
49pattern define_numWidth_large(l : Lane) { 41pattern define_numWidth_large(l : Lane) {
50 Lane.width(l, Size::S_Large); 42 Lane.width(l, Size::S_Large);
51 Lane.numWidth(l, nw); 43 Lane.numWidth(l, nw);
@@ -57,41 +49,112 @@ or {
57 check(nw >= 20.0); 49 check(nw >= 20.0);
58} 50}
59 51
60///////////referenceCoord 52/////////////Prevlane
61//@Constraint(severity="error", key={l}, message="x") 53
62//pattern define_referenceCoord_horizontalAtOrigin(l:Lane) { 54////////head lanes do not have prevLane
63// 1 == count find find_horizontalLaneAtOrigin(l); 55@Constraint(severity="error", key={l}, message="6.1 Lane")
64//} 56pattern define_prevLane_headVertLaneDoesNotHavePrevLane(cs:CrossingScenario, l:Lane_Vertical) {
65// 57 CrossingScenario.vertical_head(cs, l);
66//private pattern find_horizontalLaneAtOrigin(l:Lane){ 58 Lane.prevLane(l, _);
67// Lane.orientation(l, Orientation::Horizontal); 59}
68// Lane.referenceCoord(l, rc); 60
69// Lane.prevLane(l, _); 61@Constraint(severity="error", key={l}, message="6.2 Lane")
70// rc != 0.0; 62pattern define_prevLane_headHoriLaneDoesNotHavePrevLane(cs:CrossingScenario, l:Lane_Horizontal) {
71//} 63 CrossingScenario.horizontal_head(cs, l);
72// 64 Lane.prevLane(l, _);
73//@Constraint(severity="error", key={l}, message="x") 65}
74//pattern define_referenceCoord_verticalAtOrigin(l:Lane) { 66
75// 1 == count find find_verticalLaneAtOrigin(l); 67////////Non-head lanes must have prevLane
76//} 68@Constraint(severity="error", key={l}, message="6.1 Lane")
77// 69pattern define_prevLane_nonheadVertLaneHasPrevLane(l:Lane_Vertical) {
78//private pattern find_verticalLaneAtOrigin(l:Lane){ 70 neg find find_headVertLane(l);
79// Lane.orientation(l, Orientation::Vertical); 71 neg find find_laneWithPrevLane(l);
80// Lane.referenceCoord(l, rc); 72}
81// rc == 0.0; 73
82//} 74@Constraint(severity="error", key={l}, message="6.1 Lane")
83// 75pattern define_prevLane_nonheadHoriLaneHasPrevLane(l:Lane_Horizontal) {
84//pattern define_referenceCoord_VerticalifMultipleLanes(l1:Lane, l2:Lane) { 76 neg find find_headHoriLane(l);
85// //calculated risk??? 77 neg find find_laneWithPrevLane(l);
86// Lane.orientation(l1, Orientation::Vertical); 78}
87// Lane.orientation(l2, Orientation::Vertical); 79
88// Lane.referenceCoord(l1, rc1); 80private pattern find_headVertLane(l:Lane_Vertical) {
89// Lane.numWidth(l1, nw1); 81 CrossingScenario.vertical_head(_, l);
90// Lane.referenceCoord(l2, rc2); 82}
91// check(rc2 == rc1 + nw1); 83private pattern find_headHoriLane(l:Lane_Horizontal) {
92//} 84 CrossingScenario.horizontal_head(_, l);
93// 85}
94// 86private pattern find_laneWithPrevLane(l:Lane) {
87 Lane.prevLane(l, _);
88}
89
90/////////Lane cannot be its own recursive prevLane
91@Constraint(severity="error", key={l}, message="6.1 Lane")
92pattern define_prevLane_lanecannotBeItsOwnPrevLane(l:Lane) {
93 Lane.prevLane(l, l);
94}
95
96@Constraint(severity="error", key={l}, message="6.2 Lane")
97pattern define_prevLane_lanecannotBeItsOwnRecursivePrevLane(l:Lane) {
98 find find_prevLane+(l, l);
99}
100private pattern find_prevLane(l1:Lane, l2:Lane) {
101 Lane.prevLane(l1, l2);
102}
103
104//////Lane cannot be prevLane of >1 other lane
105@Constraint(severity="error", key={l1, l2}, message="7 Lane")
106pattern define_prevLane_lanecannotbeprevLaneof2lanes(l1:Lane, l2:Lane) {
107 Lane.prevLane(l1, l);
108 Lane.prevLane(l2, l);
109 l1 != l2;
110}
111
112//////consecutive lanes must have same orientation
113@Constraint(severity="error", key={l1, l2}, message="8 Lane")
114pattern define_prevLane_consecutiveLanesMustHaveSameOrientation1(l1:Lane_Horizontal, l2:Lane_Vertical) {
115 Lane.prevLane(l1, l2);
116}
117
118@Constraint(severity="error", key={l1, l2}, message="8 Lane")
119pattern define_prevLane_consecutiveLanesMustHaveSameOrientation2(l1:Lane_Vertical, l2:Lane_Horizontal) {
120 Lane.prevLane(l1, l2);
121}
122
123/////////////ReferenceCoord
124
125/////refCoord of head lanes must be 0
126@Constraint(severity="error", key={l}, message="6.2 Lane")
127pattern define_prevLane_headHoriLaneHas0RefCoord(cs:CrossingScenario, l:Lane_Horizontal) {
128 CrossingScenario.horizontal_head(cs, l);
129 Lane.referenceCoord(l, rc);
130 check(rc != 0.0);
131}
132
133@Constraint(severity="error", key={l}, message="6.2 Lane")
134pattern define_prevLane_headVertLaneHas0RefCoord(cs:CrossingScenario, l:Lane_Vertical) {
135 CrossingScenario.vertical_head(cs, l);
136 Lane.referenceCoord(l, rc);
137 check(rc != 0.0);
138}
139
140//////refCoord of a lane is prevLane.rc + curLane.numWidth
141
142@Constraint(severity="error", key={l}, message="6.2 Lane")
143pattern define_referenceCoord_laneWithPrevHasCorrectRefCoord(l:Lane) {
144 Lane.prevLane(l, prev);
145 Lane.referenceCoord(l, rcCur);
146
147 Lane.numWidth(prev, wPrev);
148 Lane.referenceCoord(prev, rcPrev);
149 check(rcCur != rcPrev + wPrev);
150}
151
152
153//////////////
154//Lane+Actor
155//////////////
156
157
95////@Constraint(severity = "error", key = {a}, message = "this defines the placedOn relation for vertical lanes") 158////@Constraint(severity = "error", key = {a}, message = "this defines the placedOn relation for vertical lanes")
96////pattern actorOnVerticalLane(a : Actor) { 159////pattern actorOnVerticalLane(a : Actor) {
97//// Actor.placedOn(a, l); 160//// Actor.placedOn(a, l);
diff --git a/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java b/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java
index 4442fc7d..c0646edd 100644
--- a/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java
+++ b/Domains/crossingScenario/src/crossingScenario/run/CrossingScenarioMain.java
@@ -1,5 +1,7 @@
1package crossingScenario.run; 1package crossingScenario.run;
2 2
3import java.awt.Desktop;
4import java.io.File;
3import java.io.IOException; 5import java.io.IOException;
4import java.nio.file.Files; 6import java.nio.file.Files;
5import java.nio.file.Path; 7import java.nio.file.Path;
@@ -33,6 +35,10 @@ public class CrossingScenarioMain {
33 System.out.println("postprocessing -> " + t4); 35 System.out.println("postprocessing -> " + t4);
34 36
35 System.out.println("TOTAL -> " + tot); 37 System.out.println("TOTAL -> " + tot);
36 38
39 String p1 = "outputs/models/1.xmi";
40 String p2 = "outputs/simplePrevLane.tgf";
41 QueryDebug.checkPrevLanes(p1, p2);
42 Desktop.getDesktop().open(new File(p2));
37 } 43 }
38} 44}
diff --git a/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java b/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
index 2d866e85..9f9b939b 100644
--- a/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
+++ b/Domains/crossingScenario/src/crossingScenario/run/QueryDebug.java
@@ -1,27 +1,82 @@
1package crossingScenario.run; 1package crossingScenario.run;
2 2
3import java.io.FileNotFoundException;
4import java.io.PrintWriter;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9import java.util.regex.Matcher;
10import java.util.regex.Pattern;
11
12import org.eclipse.emf.common.util.URI;
13import org.eclipse.emf.ecore.EPackage;
14import org.eclipse.emf.ecore.resource.Resource;
15import org.eclipse.emf.ecore.resource.ResourceSet;
16import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
17import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
18
19import crossingScenario.CrossingScenario;
20import crossingScenario.CrossingScenarioPackage;
21import crossingScenario.Lane;
22
3public class QueryDebug { 23public class QueryDebug {
24 public static void main(String[] args) throws FileNotFoundException {
25// checkPrevLanes("outputs/models/1.xmi", "outputs/simplePrevLane.tgf");
26 testOnInstance();
27 }
28
29 public static void checkPrevLanes(String pathSrc, String pathTgt) throws FileNotFoundException {
30 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl());
31 EPackage.Registry.INSTANCE.put(CrossingScenarioPackage.eNS_URI, CrossingScenarioPackage.eINSTANCE);
32 ResourceSet rs = new ResourceSetImpl();
33 Resource res = rs.getResource(URI.createFileURI(pathSrc), true);
34
35 PrintWriter printer = new PrintWriter(pathTgt);
36
37 CrossingScenario cs = ((CrossingScenario) res.getContents().get(0));
38 for (Lane o : cs.getLanes()) {
39 String prefix = "";
40 if (cs.getHorizontal_head().equals(o) || cs.getVertical_head().equals(o)) {
41 prefix = "HEAD";
42 }
43 String nodeName = prefix + "(" + o.getReferenceCoord() + ")" +
44 o.eClass().getName().substring(5, 9);
45 printer.println(o.hashCode() + " " + nodeName);
46 }
47 printer.println("#");
48 for (Lane o : cs.getLanes()) {
49 if (o.getPrevLane() != null){
50 int curName = o.hashCode();
51 int curPrev = o.getPrevLane().hashCode();
52 double edgeLabel = o.getPrevLane().getNumWidth();
53 printer.println(curName + " " + curPrev + " " + edgeLabel);
54 }
55 }
56 printer.flush();
57 printer.close();
58 System.out.println("TGF CREATED");
59
60 }
4 61
5// public static void main(String[] args) { 62 public static void testOnInstance() {
6// Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl()); 63 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap( ).put("*", new XMIResourceFactoryImpl());
7// EPackage.Registry.INSTANCE.put(CrossingScenarioPackage.eNS_URI, CrossingScenarioPackage.eINSTANCE); 64 EPackage.Registry.INSTANCE.put(CrossingScenarioPackage.eNS_URI, CrossingScenarioPackage.eINSTANCE);
8// ResourceSet rs = new ResourceSetImpl(); 65 ResourceSet rs = new ResourceSetImpl();
9// rs.getResource(URI.createFileURI("outputs/models/1.xmi"), true); 66 rs.getResource(URI.createFileURI("outputs/models/1.xmi"), true);
10// 67
11// ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(rs)); 68// ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(rs));
12// // Access pattern matcher 69// // Access pattern matcher
13//
14//
15//
16// CrossingScenarioQueries.instance().prepare(engine); 70// CrossingScenarioQueries.instance().prepare(engine);
17// Define_numWidth_medium.Matcher matcher = Define_numWidth_medium.Matcher.on(engine); 71//
72// Define_referenceCoord_laneWithPrevHasCorrectRefCoord.Matcher matcher = Define_referenceCoord_laneWithPrevHasCorrectRefCoord.Matcher.on(engine);
18// // Get and iterate over all matches 73// // Get and iterate over all matches
19// System.out.println("MATCHES:"); 74// System.out.println("MATCHES:");
20// for (Define_numWidth_medium.Match match : matcher.getAllMatches()) { 75// for (Define_referenceCoord_laneWithPrevHasCorrectRefCoord.Match match : matcher.getAllMatches()) {
21// // Print all the matches to the standard output 76// // Print all the matches to the standard output
22// System.out.println(match.getL()); 77// System.out.println(match.getL());
23// } 78// }
24// } 79 }
25 80
26 81
27// public static void main(String[] args) { 82// public static void main(String[] args) {
@@ -84,30 +139,34 @@ public class QueryDebug {
84// } 139// }
85 140
86 141
87// public static void main(String[] args) { 142 public static void testParsing() {
88// ArrayList<String> out = new ArrayList<String>(); 143 ArrayList<String> out = new ArrayList<String>();
89// out.add("delta-sat with delta = 0.001"); 144 out.add("delta-sat with delta = 0.001");
90// out.add("w1602659765 : [1.797693134862315708e+308, 1.797693134862315708e+308]"); 145 out.add("rc1601644608 : [1.797693134862315708e+308, 1.797693134862315708e+308]");
91// String s = "1.797693134862315708e+308"; 146 out.add("nw1149275723 : [12.49949999999999939, 12.50050000000000061]");
92// 147 out.add("nw157857530 : [7.499500000000000277, 7.500499999999999723]");
93// System.out.println(parseDrealOutput(out)); 148 out.add("nw1521058274 : [12.49949999999999939, 12.50050000000000061]");
94// 149 String s = "1.797693134862315708e+308";
95// } 150
96// 151 System.out.println(parseDrealOutput(out));
97// private static Map<String, String> parseDrealOutput(List<String> output) { 152
98// Map<String, String> res = new HashMap<String, String>(); 153 }
99// String re = "(\\w+) : \\[([0-9\\+-.e]+), ([0-9\\+-.e]+)\\]"; 154
100//// String re = "(\\w+) : \\[(.*), (.*)\\]"; 155 private static Map<String, String> parseDrealOutput(List<String> output) {
101// Pattern p = Pattern.compile(re); 156 Map<String, String> res = new HashMap<String, String>();
102// for (String varVal : output) { 157 String re = "(\\w+) : \\[([0-9\\+-.e]+), ([0-9\\+-.e]+)\\]";
103// Matcher m = p.matcher(varVal); 158// String re = "(\\w+) : \\[(.*), (.*)\\]";
104// if (m.matches()) { 159 Pattern p = Pattern.compile(re);
105// String name = m.group(1); 160 for (String varVal : output) {
106// String lowerB = m.group(2); 161 Matcher m = p.matcher(varVal);
107// String upperB = m.group(2); 162 if (m.matches()) {
108// res.put(name, lowerB); 163 String name = m.group(1);
109// } 164 String lowerB = m.group(2);
110// } 165 String upperB = m.group(2);
111// return res; 166 res.put(name, lowerB);
112// } 167 }
168 }
169 return res;
170 }
171
113} 172}
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 f410cc6d..f6c0bc71 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
@@ -7,13 +7,11 @@ import java.io.FileInputStream;
7import java.io.IOException; 7import java.io.IOException;
8import java.io.InputStream; 8import java.io.InputStream;
9import java.io.InputStreamReader; 9import java.io.InputStreamReader;
10import java.io.PrintWriter;
11import java.util.ArrayList; 10import java.util.ArrayList;
12import java.util.Arrays; 11import java.util.Arrays;
13import java.util.HashMap; 12import java.util.HashMap;
14import java.util.List; 13import java.util.List;
15import java.util.Map; 14import java.util.Map;
16import java.util.Map.Entry;
17import java.util.UUID; 15import java.util.UUID;
18import java.util.concurrent.TimeUnit; 16import java.util.concurrent.TimeUnit;
19import java.util.regex.Matcher; 17import java.util.regex.Matcher;
@@ -25,9 +23,6 @@ import org.eclipse.xtext.xbase.XExpression;
25import org.eclipse.xtext.xbase.XFeatureCall; 23import org.eclipse.xtext.xbase.XFeatureCall;
26import org.eclipse.xtext.xbase.XNumberLiteral; 24import org.eclipse.xtext.xbase.XNumberLiteral;
27 25
28import com.microsoft.z3.IntExpr;
29import com.microsoft.z3.RealExpr;
30
31import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.IntegerElement; 26import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.IntegerElement;
32import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement; 27import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement;
33import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.RealElement; 28import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.RealElement;
@@ -168,6 +163,7 @@ public class NumericDrealProblemSolver extends NumericProblemSolver{
168 } 163 }
169 } else { 164 } else {
170 //TODO unsure what it means if something gets in here 165 //TODO unsure what it means if something gets in here
166 System.err.println("Reached weird place");
171 if (isInt) { 167 if (isInt) {
172 expr = Integer.toString(((IntegerElement) matchedObj).getValue()); 168 expr = Integer.toString(((IntegerElement) matchedObj).getValue());
173 } else { 169 } else {
@@ -342,20 +338,28 @@ public class NumericDrealProblemSolver extends NumericProblemSolver{
342 if (result) { 338 if (result) {
343 long startFormingSolution = System.nanoTime(); 339 long startFormingSolution = System.nanoTime();
344 Map<String, String> solMap = parseDrealOutput(outputs.get(0)); 340 Map<String, String> solMap = parseDrealOutput(outputs.get(0));
341
342// //DEBUG
343// System.out.println("RESULT");
344// solMap.entrySet().forEach(System.out::println);
345// System.out.println("SOLMAP");
346// varMap.forEach((k, v) -> System.out.println(v + "=" + k));
347// //END DEBUG
348
345 for (PrimitiveElement obj: objs) { 349 for (PrimitiveElement obj: objs) {
346 if(varMap.containsKey(obj)) { 350 if(varMap.containsKey(obj)) {
347 if (obj instanceof IntegerElement) { 351 String varName = varMap.get(obj);
348 String varName = varMap.get(obj); 352 String value = solMap.get(varName);
349 String value = solMap.get(varName); 353 if (value != null) {
350 sol.put(obj, Integer.parseInt(value)); 354 //this means that dreal actually worked on this and found a value for it
351 } else { 355 if (obj instanceof IntegerElement) {
352 String varName = varMap.get(obj); 356 sol.put(obj, Integer.parseInt(value));
353 String value = solMap.get(varName); 357 } else {
354 sol.put(obj, Double.parseDouble(value)); 358 sol.put(obj, Double.parseDouble(value));
359 }
355 } 360 }
356
357 } else { 361 } else {
358// System.out.println(("variable " + obj + " is not used from Dreal"); 362// System.err.println("variable " + obj + " is not used from Dreal");
359 } 363 }
360 } 364 }
361 endFormingSolution = System.nanoTime() - startFormingSolution; 365 endFormingSolution = System.nanoTime() - startFormingSolution;