1 package org.opentrafficsim.road.gtu.lane.tactical; 2 3 /** 4 * Interface for tactical planners that can return synchronization information for visualization. 5 * <p> 6 * Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br> 7 * BSD-style license. See <a href="http://opentrafficsim.org/node/13">OpenTrafficSim License</a>. 8 * <p> 9 * @version $Revision$, $LastChangedDate$, by $Author$, initial version 23 feb. 2018 <br> 10 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a> 11 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a> 12 * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a> 13 */ 14 public interface Synchronizable 15 { 16 17 /** 18 * Returns the synchronization state. 19 * @return State; synchronization state 20 */ 21 State getSynchronizationState(); 22 23 /** 24 * State of synchronization. 25 * <p> 26 * Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. 27 * <br> 28 * BSD-style license. See <a href="http://opentrafficsim.org/node/13">OpenTrafficSim License</a>. 29 * <p> 30 * @version $Revision$, $LastChangedDate$, by $Author$, initial version 23 feb. 2018 <br> 31 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a> 32 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a> 33 * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a> 34 */ 35 enum State 36 { 37 /** No synchronization. */ 38 NONE, 39 40 /** Subject vehicle is adjusting speed. */ 41 SYNCHRONIZING, 42 43 /** Subject vehicle is adjusting speed and indicating desired lane change. */ 44 INDICATING, 45 46 /** Subject vehicle is cooperating for a lane change of another GTU. */ 47 COOPERATING; 48 } 49 50 }