private BusTrafficLight createBusTrafficLight(int left, int top, string name, string direction) { BusTrafficLight reg = new BusTrafficLight(); reg.createTrafficLight(left, top, name, direction); this.Controls.Add(reg.regTrafficLight); return(reg); }
public Form1() { // Initialize form InitializeComponent(); /* * RegularTrafficLight for cars * BusTrafficLight for buses * CyclistTraficLight for cyclists * PedTrafficligh for pedestrians * * A = Auto(car), F = Fietser(cyclist), B = Bus, P = Voetganger(pedestrian) * * 1-1 = Trafficlight Identification Number * * down/left/right/up = direction which trafficlight is facing * * 10,10 = location on form */ RegularTrafficLight regA11 = createTrafficLight(726, 140, "A1-1", "down"); lights.Add(regA11); RegularTrafficLight regA12 = createTrafficLight(750, 140, "A1-2", "down"); lights.Add(regA12); RegularTrafficLight regA13 = createTrafficLight(772, 140, "A1-3", "down"); lights.Add(regA13); BusTrafficLight busB11 = createBusTrafficLight(796, 140, "B1-1", "down"); busLights.Add(busB11); BusTrafficLight busB12 = createBusTrafficLight(796, 180, "B1-2", "down"); busLights.Add(busB12); RegularTrafficLight regF11 = createCyclistTrafficLight(700, 125, "F1-1", "left"); lights.Add(regF11); RegularTrafficLight regF12 = createCyclistTrafficLight(880, 125, "F1-2", "right"); lights.Add(regF12); PedTrafficLight regV11 = createPedTrafficLight(700, 115, "V1-1", "left"); lights.Add(regV11); PedTrafficLight regV12 = createPedTrafficLight(817, 115, "V1-2", "left"); lights.Add(regV12); PedTrafficLight regV13 = createPedTrafficLight(817, 125, "V1-3", "right"); lights.Add(regV13); PedTrafficLight regV14 = createPedTrafficLight(880, 115, "V1-4", "right"); lights.Add(regV14); RegularTrafficLight regA21 = createTrafficLight(850, 162, "A2-1", "right"); lights.Add(regA21); RegularTrafficLight regA22 = createTrafficLight(850, 183, "A2-2", "right"); lights.Add(regA22); RegularTrafficLight regA23 = createTrafficLight(850, 207, "A2-3", "right"); lights.Add(regA23); RegularTrafficLight regA24 = createTrafficLight(850, 230, "A2-4", "right"); lights.Add(regA24); RegularTrafficLight regF21 = createCyclistTrafficLight(910, 145, "F2-1", "down"); lights.Add(regF21); RegularTrafficLight regF22 = createCyclistTrafficLight(910, 400, "F2-2", "up"); lights.Add(regF22); PedTrafficLight regV21 = createPedTrafficLight(920, 145, "V2-1", "down"); lights.Add(regV21); PedTrafficLight regV22 = createPedTrafficLight(920, 250, "V2-2", "up"); lights.Add(regV22); PedTrafficLight regV23 = createPedTrafficLight(920, 340, "V2-3", "down"); lights.Add(regV23); PedTrafficLight regV24 = createPedTrafficLight(920, 400, "V2-4", "up"); lights.Add(regV24); RegularTrafficLight regA31 = createTrafficLight(737, 320, "A3-1", "left"); lights.Add(regA31); RegularTrafficLight regA32 = createTrafficLight(737, 343, "A3-2", "left"); lights.Add(regA32); RegularTrafficLight regA33 = createTrafficLight(737, 365, "A3-3", "left"); lights.Add(regA33); RegularTrafficLight regA34 = createTrafficLight(737, 387, "A3-4", "left"); lights.Add(regA34); RegularTrafficLight regA41 = createTrafficLight(276, 421, "A4-1", "up"); lights.Add(regA41); RegularTrafficLight regA42 = createTrafficLight(298, 421, "A4-2", "up"); lights.Add(regA42); RegularTrafficLight regA43 = createTrafficLight(320, 421, "A4-3", "up"); lights.Add(regA43); RegularTrafficLight regA44 = createTrafficLight(342, 421, "A4-4", "up"); lights.Add(regA44); BusTrafficLight busB41 = createBusTrafficLight(364, 421, "B4-1", "down"); busLights.Add(busB41); RegularTrafficLight regF41 = createCyclistTrafficLight(190, 475, "F4-1", "left"); lights.Add(regF41); RegularTrafficLight regF42 = createCyclistTrafficLight(380, 475, "F4-2", "right"); lights.Add(regF42); PedTrafficLight regV41 = createPedTrafficLight(190, 485, "V4-1", "left"); lights.Add(regV41); PedTrafficLight regV42 = createPedTrafficLight(250, 475, "V4-2", "left"); lights.Add(regV42); PedTrafficLight regV43 = createPedTrafficLight(250, 485, "V4-3", "right"); lights.Add(regV43); PedTrafficLight regV44 = createPedTrafficLight(380, 485, "V4-4", "right"); lights.Add(regV44); RegularTrafficLight regA51 = createTrafficLight(178, 365, "A5-1", "left"); lights.Add(regA51); RegularTrafficLight regA52 = createTrafficLight(178, 387, "A5-2", "left"); lights.Add(regA52); RegularTrafficLight regA53 = createTrafficLight(178, 409, "A5-3", "left"); lights.Add(regA53); RegularTrafficLight regA54 = createTrafficLight(178, 431, "A5-4", "left"); lights.Add(regA54); RegularTrafficLight regF51 = createCyclistTrafficLight(165, 186, "F5-1", "down"); lights.Add(regF51); RegularTrafficLight regF52 = createCyclistTrafficLight(165, 450, "F5-2", "up"); lights.Add(regF52); PedTrafficLight regV51 = createPedTrafficLight(155, 186, "V5-1", "down"); lights.Add(regV51); PedTrafficLight regV52 = createPedTrafficLight(155, 250, "V5-2", "up"); lights.Add(regV52); PedTrafficLight regV53 = createPedTrafficLight(155, 340, "V5-3", "down"); lights.Add(regV53); PedTrafficLight regV54 = createPedTrafficLight(155, 450, "V5-4", "up"); lights.Add(regV54); RegularTrafficLight regA61 = createTrafficLight(320, 206, "A6-1", "right"); lights.Add(regA61); RegularTrafficLight regA62 = createTrafficLight(320, 227, "A6-2", "right"); lights.Add(regA62); RegularTrafficLight regA63 = createTrafficLight(320, 252, "A6-3", "right"); lights.Add(regA63); RegularTrafficLight regA64 = createTrafficLight(320, 276, "A6-4", "right"); lights.Add(regA64); /////////////////////////////////////// /* * * Regular car paths * Nodes represent location on form * * */ // Trafficlight A44 -> Secondary Trafficlight A34 Path path = new Path(); path.addNode(342, 580); path.addNode(342, 500, regA44); path.addNode(342, 411); path.addNode(383, 388); path.addNode(700, 388, regA34); path.addNode(1083, 388); paths.Add(path); // Trafficlight A44 -> Secondary Trafficlight A33 Path path2 = new Path(); path2.addNode(342, 580); path2.addNode(342, 500, regA44); path2.addNode(342, 411); path2.addNode(383, 366); path2.addNode(700, 366, regA33); path2.addNode(1083, 366); paths.Add(path2); // Trafficlight A43 -> Secondary Trafficlight A32 Path path3 = new Path(); path3.addNode(320, 580); path3.addNode(320, 500, regA43); path3.addNode(332, 366); path3.addNode(369, 342); path3.addNode(700, 342, regA32); path3.addNode(815, 342); path3.addNode(855, 320); path3.addNode(860, 0); paths.Add(path3); // Trafficlight A43 -> Secondary Trafficlight A31 Path path4 = new Path(); path4.addNode(320, 580); path4.addNode(320, 500, regA43); path4.addNode(368, 322); path4.addNode(369, 318); path4.addNode(700, 318, regA31); path4.addNode(811, 318); path4.addNode(835, 300); path4.addNode(836, 0); paths.Add(path4); // Trafficlight A42 Path path5 = new Path(); path5.addNode(296, 580); path5.addNode(296, 500, regA42); path5.addNode(296, 248); path5.addNode(278, 210); path5.addNode(0, 206); paths.Add(path5); // Trafficlight A41 Path path6 = new Path(); path6.addNode(274, 580); path6.addNode(274, 500, regA41); path6.addNode(274, 257); path6.addNode(240, 230); path6.addNode(0, 227); paths.Add(path6); // Trafficlight A54 Path path7 = new Path(); path7.addNode(-50, 433); path7.addNode(120, 433, regA54); path7.addNode(170, 433); path7.addNode(208, 433); path7.addNode(206, 610); paths.Add(path7); Path path8 = new Path(); // Trafficlight A53 path8.addNode(-50, 409); path8.addNode(120, 409, regA53); path8.addNode(170, 409); path8.addNode(208, 409); path8.addNode(224, 443); path8.addNode(230, 610); paths.Add(path8); // Trafficlight A52 -> Secondary Trafficlight A34 Path path9 = new Path(); path9.addNode(-50, 385); path9.addNode(120, 385, regA52); path9.addNode(170, 385); path9.addNode(700, 385, regA34); path9.addNode(1083, 385); paths.Add(path9); // Trafficlight A52 -> Secondary Trafficlight A33 Path path10 = new Path(); path10.addNode(-50, 385); path10.addNode(120, 385, regA52); path10.addNode(170, 385); path10.addNode(310, 385); path10.addNode(400, 363); path10.addNode(700, 363, regA33); path10.addNode(1083, 363); paths.Add(path10); // Trafficlight A51 -> Secondary Trafficlight A32 Path path11 = new Path(); path11.addNode(-50, 363); path11.addNode(120, 363, regA51); path11.addNode(170, 363); path11.addNode(272, 363); path11.addNode(401, 341); path11.addNode(700, 341, regA32); path11.addNode(837, 341); path11.addNode(862, 299); path11.addNode(862, 0); // Trafficlight A51 -> Secondary Trafficlight A31 Path path12 = new Path(); path12.addNode(-50, 363); path12.addNode(120, 363, regA51); path12.addNode(170, 363); path12.addNode(272, 363); path12.addNode(401, 318); path12.addNode(700, 318, regA31); path12.addNode(828, 312); path12.addNode(839, 299); path12.addNode(839, 0); // Trafficlight A11 -> Secondary Trafficlight A61 paths.Add(path12); Path patha11 = new Path(); patha11.addNode(726, -50); patha11.addNode(726, 80, regA11); patha11.addNode(721, 195); patha11.addNode(572, 206); patha11.addNode(391, 206, regA61); patha11.addNode(353, 206); patha11.addNode(1, 206); paths.Add(patha11); // Trafficlight A11 -> Secondary Trafficlight A62 Path patha11r = new Path(); patha11r.addNode(726, -50); patha11r.addNode(726, 80, regA11); patha11r.addNode(721, 195); patha11r.addNode(572, 227); patha11r.addNode(391, 227, regA62); patha11r.addNode(353, 227); patha11r.addNode(1, 227); paths.Add(patha11r); // Trafficlight A12 -> Secondary Trafficlight A64 Path patha12 = new Path(); patha12.addNode(750, -50); patha12.addNode(750, 80, regA12); patha12.addNode(750, 195); patha12.addNode(750, 252); patha12.addNode(571, 252); patha12.addNode(391, 252, regA64); patha12.addNode(353, 252); patha12.addNode(227, 266); patha12.addNode(206, 345); patha12.addNode(206, 606); paths.Add(patha12); // Trafficlight A12 -> Secondary Trafficlight A64 Path patha12r = new Path(); patha12r.addNode(750, -50); patha12r.addNode(750, 80, regA12); patha12r.addNode(750, 195); patha12r.addNode(750, 276); patha12r.addNode(571, 276); patha12r.addNode(391, 276, regA64); patha12r.addNode(353, 276); patha12r.addNode(240, 282); patha12r.addNode(232, 345); patha12r.addNode(232, 606); paths.Add(patha12r); // Trafficlight A13 Path patha13 = new Path(); patha13.addNode(772, -50); patha13.addNode(772, 80, regA13); patha13.addNode(772, 353); patha13.addNode(772, 388); patha13.addNode(1075, 388); paths.Add(patha13); // Trafficlight A21 Path patha21 = new Path(); patha21.addNode(1075, 162); patha21.addNode(930, 162, regA21); patha21.addNode(866, 160); patha21.addNode(866, 105); patha21.addNode(866, 1); paths.Add(patha21); // Trafficlight A21 Path patha22 = new Path(); patha22.addNode(1075, 183); patha22.addNode(930, 183, regA21); patha22.addNode(839, 105); patha22.addNode(839, 1); paths.Add(patha22); // Trafficlight A23 -> Secondary Trafficlight A61 Path patha23 = new Path(); patha23.addNode(1075, 207); patha23.addNode(930, 207, regA23); patha23.addNode(766, 207); patha23.addNode(581, 207); patha23.addNode(391, 207, regA61); patha23.addNode(353, 207); patha23.addNode(1, 207); paths.Add(patha23); // Trafficlight A24 -> Secondary Trafficlight A64 Path patha24 = new Path(); patha24.addNode(1075, 230); patha24.addNode(930, 230, regA24); patha24.addNode(765, 230); patha24.addNode(675, 253); patha24.addNode(579, 276); patha24.addNode(391, 276, regA64); patha24.addNode(240, 282); patha24.addNode(232, 345); patha24.addNode(232, 606); paths.Add(patha24); /* * * Bus paths * Nodes represent location on form * * */ // Trafficlight B41 -> Secondary Trafficlight A32 Path buspathb41 = new Path(); buspathb41.addNode(364, 592); buspathb41.addNode(364, 500, busB41); buspathb41.addNode(364, 460); buspathb41.addNode(342, 433); buspathb41.addNode(342, 342); buspathb41.addNode(700, 342, regA32); buspathb41.addNode(815, 342); buspathb41.addNode(855, 320); buspathb41.addNode(860, 0); busPaths.Add(buspathb41); // Trafficlight B11 -> Secondary Trafficlight A63 Path pathb11 = new Path(); pathb11.addNode(793, -50); pathb11.addNode(793, 55, busB11); pathb11.addNode(793, 103); pathb11.addNode(793, 195); pathb11.addNode(676, 252); pathb11.addNode(393, 252, regA63); pathb11.addNode(353, 252); pathb11.addNode(227, 266); pathb11.addNode(206, 345); pathb11.addNode(206, 606); busPaths.Add(pathb11); // Trafficlight B12 Path pathb12 = new Path(); pathb12.addNode(793, -50); pathb12.addNode(793, 55, busB12); pathb12.addNode(793, 103); pathb12.addNode(793, 195); pathb12.addNode(793, 365); pathb12.addNode(1075, 365); busPaths.Add(pathb12); Path pathb51 = new Path(); // Trafficlight A51 -> Secondary Trafficlight A32 pathb51.addNode(1, 363); pathb51.addNode(90, 363, regA51); pathb51.addNode(170, 363); pathb51.addNode(272, 363); pathb51.addNode(401, 341); pathb51.addNode(670, 341, regA32); pathb51.addNode(837, 341); pathb51.addNode(862, 299); pathb51.addNode(862, 0); busPaths.Add(pathb51); // BusTrafficlight A21 Path pathb21 = new Path(); pathb21.addNode(1075, 162); pathb21.addNode(930, 162, regA21); pathb21.addNode(866, 160); pathb21.addNode(866, 105); pathb21.addNode(866, 1); busPaths.Add(pathb21); /* * * Cyclist paths * Nodes represent location on form * * */ // Trafficlight F11 Path pathf11 = new Path(); pathf11.addNode(1, 167); pathf11.addNode(672, 167); pathf11.addNode(694, 128, regF11); pathf11.addNode(716, 128); pathf11.addNode(825, 128); pathf11.addNode(1075, 128); cyclistPaths.Add(pathf11); // Trafficlight F52 Path pathf52 = new Path(); pathf52.addNode(1, 475); pathf52.addNode(170, 475); pathf52.addNode(170, 465, regF52); pathf52.addNode(170, 265); pathf52.addNode(170, 168); pathf52.addNode(1, 168); cyclistPaths.Add(pathf52); // Trafficlight F51 Path pathf51 = new Path(); pathf51.addNode(1, 168); pathf51.addNode(170, 168); pathf51.addNode(170, 174, regF51); pathf51.addNode(170, 265); pathf51.addNode(170, 465); pathf51.addNode(170, 475); pathf51.addNode(1, 475); cyclistPaths.Add(pathf51); // Trafficlight F52 -> Secondary Trafficlight F11 Path pathf52alt = new Path(); pathf52alt.addNode(1, 475); pathf52alt.addNode(170, 475); pathf52alt.addNode(170, 465, regF52); pathf52alt.addNode(170, 265); pathf52alt.addNode(170, 167); pathf52alt.addNode(672, 167); pathf52alt.addNode(694, 128, regF11); pathf52alt.addNode(716, 128); pathf52alt.addNode(825, 128); pathf52alt.addNode(1075, 128); cyclistPaths.Add(pathf52alt); // Trafficlight F41 Path pathf41 = new Path(); pathf41.addNode(1, 475); pathf41.addNode(178, 475, regF41); pathf41.addNode(403, 475); pathf41.addNode(430, 437); pathf41.addNode(1083, 437); cyclistPaths.Add(pathf41); // Trafficlight F41 -> Secondary Trafficlight F22 Path pathf22 = new Path(); pathf22.addNode(1, 475); pathf22.addNode(178, 475, regF41); pathf22.addNode(403, 475); pathf22.addNode(430, 437); pathf22.addNode(911, 437); pathf22.addNode(911, 428, regF22); pathf22.addNode(911, 0); cyclistPaths.Add(pathf22); // Trafficlight F41 -> Secondary Trafficlight F22 Path pathf22alt = new Path(); pathf22alt.addNode(1, 475); pathf22alt.addNode(178, 475, regF41); pathf22alt.addNode(403, 475); pathf22alt.addNode(430, 437); pathf22alt.addNode(911, 437); pathf22alt.addNode(911, 428, regF22); pathf22alt.addNode(911, 128); pathf22alt.addNode(1075, 128); cyclistPaths.Add(pathf22); // Trafficlight F12 Path pathf12 = new Path(); pathf12.addNode(1075, 128); pathf12.addNode(900, 128, regF12); pathf12.addNode(882, 128); pathf12.addNode(698, 128); pathf12.addNode(666, 166); pathf12.addNode(1, 166); cyclistPaths.Add(pathf12); // Trafficlight F21 Path pathf21 = new Path(); pathf21.addNode(912, 1); pathf21.addNode(912, 137, regF21); pathf21.addNode(912, 258); pathf21.addNode(912, 359); pathf21.addNode(912, 436); pathf21.addNode(1075, 436); cyclistPaths.Add(pathf21); // Trafficlight F22 Path pathf22right = new Path(); pathf22right.addNode(1075, 438); pathf22right.addNode(914, 438); pathf22right.addNode(914, 428, regF22); pathf22right.addNode(914, 258); pathf22right.addNode(914, 142); pathf22right.addNode(914, 1); cyclistPaths.Add(pathf22right); // Trafficlight F42 Path pathf42 = new Path(); pathf42.addNode(1082, 437); pathf42.addNode(428, 437); pathf42.addNode(411, 475); pathf42.addNode(400, 475, regF42); pathf42.addNode(1, 475); cyclistPaths.Add(pathf42); /* * * Cyclist paths * Nodes represent location on form * * */ // Trafficlight V11 -> Secondary Trafficlight V13 Path pathv11 = new Path(); pathv11.addNode(1, 155); pathv11.addNode(658, 155); pathv11.addNode(700, 115, regV11); pathv11.addNode(814, 115, regV13); pathv11.addNode(891, 115); pathv11.addNode(1075, 115); pedPaths.Add(pathv11); // Trafficlight V21 -> Secondary Trafficlight V23 Path pathv21 = new Path(); pathv21.addNode(925, 1); pathv21.addNode(925, 137, regV21); pathv21.addNode(925, 258); pathv21.addNode(925, 348, regV23); pathv21.addNode(925, 448); pathv21.addNode(1075, 448); pedPaths.Add(pathv21); // Trafficlight V14 -> Secondary Trafficlight V12 Path pathv14 = new Path(); pathv14.addNode(1075, 115); pathv14.addNode(900, 115, regV14); pathv14.addNode(882, 115); pathv14.addNode(820, 115, regV12); pathv14.addNode(698, 115); pathv14.addNode(666, 155); pathv14.addNode(1, 155); pedPaths.Add(pathv14); // Trafficlight V24 -> Secondary Trafficlight V22 Path pathv24 = new Path(); pathv24.addNode(1075, 448); pathv24.addNode(924, 448); pathv24.addNode(924, 428, regV24); pathv24.addNode(924, 258, regV22); pathv24.addNode(924, 142); pathv24.addNode(924, 1); pedPaths.Add(pathv24); // Trafficlight V44 -> Secondary Trafficlight V42 Path pathv44 = new Path(); pathv44.addNode(1082, 448); pathv44.addNode(428, 448); pathv44.addNode(420, 482); pathv44.addNode(400, 488, regV44); pathv44.addNode(252, 488, regV42); pathv44.addNode(1, 488); pedPaths.Add(pathv44); // Trafficlight V41 -> Secondary Trafficlight V43 Path pathv41 = new Path(); pathv41.addNode(1, 488); pathv41.addNode(178, 488, regV41); pathv41.addNode(266, 488, regV43); pathv41.addNode(403, 488); pathv41.addNode(420, 482); pathv41.addNode(430, 448); pathv41.addNode(1083, 448); pedPaths.Add(pathv41); // Trafficlight V54 -> Secondary Trafficlight V52 Path pathv54 = new Path(); pathv54.addNode(1, 488); pathv54.addNode(155, 488); pathv54.addNode(155, 465, regV54); pathv54.addNode(155, 265, regV52); pathv54.addNode(155, 155); pathv54.addNode(1, 155); pedPaths.Add(pathv54); // Trafficlight V51 -> Secondary Trafficlight V53 Path pathv51 = new Path(); pathv51.addNode(1, 155); pathv51.addNode(155, 155); pathv51.addNode(155, 182, regV51); pathv51.addNode(155, 340, regV53); pathv51.addNode(155, 465); pathv51.addNode(155, 488); pathv51.addNode(1, 488); pedPaths.Add(pathv51); // Open the BackGroundListener on another thread so the main thread can keep simulating Thread listen = new Thread(listener.Connect); listen.Start(); }