1 package org.opentrafficsim.swing.gui;
2
3 import java.awt.Dimension;
4 import java.rmi.RemoteException;
5 import java.util.Map;
6
7 import org.opentrafficsim.core.definitions.DefaultsNl;
8 import org.opentrafficsim.core.dsol.AbstractOtsModel;
9 import org.opentrafficsim.core.dsol.OtsAnimator;
10 import org.opentrafficsim.core.dsol.OtsSimulatorInterface;
11 import org.opentrafficsim.draw.gtu.DefaultCarAnimation.GtuData.GtuMarker;
12 import org.opentrafficsim.road.network.RoadNetwork;
13
14 import nl.tudelft.simulation.dsol.SimRuntimeException;
15 import nl.tudelft.simulation.language.DsolException;
16
17
18
19
20
21
22
23
24 public class CustomSimulation extends OtsSimulationApplication<CustomSimulation.CustomModel>
25 {
26
27 private static final long serialVersionUID = 20240418L;
28
29
30
31
32
33
34
35 public CustomSimulation(final String title, final OtsAnimationPanel panel, final CustomModel model)
36 {
37 super(model, panel, Map.of(DefaultsNl.TRUCK, GtuMarker.SQUARE));
38 }
39
40
41
42
43
44
45
46 public static void demo(final boolean exitOnClose, final OtsAnimator simulator, final CustomModel model)
47 {
48 try
49 {
50 OtsAnimationPanel animationPanel = new OtsAnimationPanel(model.getNetwork().getExtent(), new Dimension(800, 600),
51 simulator, model, DEFAULT_GTU_COLORERS, model.getNetwork());
52 CustomSimulation app = new CustomSimulation("Custom Simulation", animationPanel, model);
53 app.setExitOnClose(exitOnClose);
54 animationPanel.enableSimulationControlButtons();
55 }
56 catch (SimRuntimeException | RemoteException | DsolException exception)
57 {
58 exception.printStackTrace();
59 }
60 }
61
62
63
64
65
66
67
68
69
70 public static class CustomModel extends AbstractOtsModel
71 {
72
73 private static final long serialVersionUID = 20240418L;
74
75
76 private RoadNetwork network;
77
78
79
80
81
82 public CustomModel(final OtsSimulatorInterface simulator)
83 {
84 super(simulator);
85 }
86
87
88
89
90
91 public void setNetwork(final RoadNetwork network)
92 {
93 this.network = network;
94 }
95
96 @Override
97 public void constructModel() throws SimRuntimeException
98 {
99
100 }
101
102 @Override
103 public RoadNetwork getNetwork()
104 {
105 return this.network;
106 }
107 }
108
109 }