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