GTUCharacteristics.java
package org.opentrafficsim.core.gtu;
import java.io.Serializable;
import org.djunits.value.vdouble.scalar.Length;
import org.djunits.value.vdouble.scalar.Speed;
import org.opentrafficsim.core.dsol.OTSDEVSSimulatorInterface;
import org.opentrafficsim.core.idgenerator.IdGenerator;
import org.opentrafficsim.core.network.OTSNetwork;
/**
* Characteristics of a GTU. This class is used to store all characteristics of a (not-yet constructed) GTU.
* <p>
* Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
* BSD-style license. See <a href="http://opentrafficsim.org/docs/current/license.html">OpenTrafficSim License</a>.
* <p>
* @version $Revision$, $LastChangedDate$, by $Author$, initial version Mar 8, 2016 <br>
* @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
* @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
*/
public class GTUCharacteristics implements Serializable
{
/** */
private static final long serialVersionUID = 20160000L;
/** The type of the GTU. */
private final GTUType gtuType;
/** The id generator that will generate the id of the GTU. */
private final IdGenerator idGenerator;
/** Length of the GTU. */
private final Length length;
/** Width of the GTU. */
private final Length width;
/** Maximum speed of the GTU. */
private final Speed maximumSpeed;
/** The simulator that controls the GTU. */
private final OTSDEVSSimulatorInterface simulator;
/** The OTSNetwork that all generated GTUs will be registered in. */
private final OTSNetwork network;
/**
* Construct a new set of GTUCharacteristics.
* @param gtuType GTUType; type of the (not yet constructed) GTU
* @param idGenerator IdGenerator; the id generator for the (not yet constructed) GTU
* @param length Length; the length of the (non yet constructed) GTU
* @param width Length; the width of the (non yet constructed) GTU
* @param maximumSpeed Length; the maximum speed of the (non yet constructed) GTU
* @param simulator OTSDEVSSimulatorInterface; the simulator that controls the (not yet constructed) GTU
* @param network OTSNetwork; the network that will contain the GTU
*/
public GTUCharacteristics(final GTUType gtuType, final IdGenerator idGenerator, final Length length,
final Length width, final Speed maximumSpeed, final OTSDEVSSimulatorInterface simulator,
final OTSNetwork network)
{
this.gtuType = gtuType;
this.idGenerator = idGenerator;
this.length = length;
this.width = width;
this.maximumSpeed = maximumSpeed;
this.simulator = simulator;
this.network = network;
}
/**
* Retrieve the GTU type.
* @return GTUType.
*/
public final GTUType getGTUType()
{
return this.gtuType;
}
/**
* Retrieve the id generator.
* @return IdGenerator
*/
public final IdGenerator getIdGenerator()
{
return this.idGenerator;
}
/**
* Retrieve the length.
* @return Length
*/
public final Length getLength()
{
return this.length;
}
/**
* Retrieve the width.
* @return Width.Rel
*/
public final Length getWidth()
{
return this.width;
}
/**
* Retrieve the maximum speed.
* @return Speed
*/
public final Speed getMaximumSpeed()
{
return this.maximumSpeed;
}
/**
* Retrieve the simulator.
* @return OTSDEVSSimulatorInterface
*/
public final OTSDEVSSimulatorInterface getSimulator()
{
return this.simulator;
}
/**
* Retrieve the network.
* @return OTSNetwork
*/
public final OTSNetwork getNetwork()
{
return this.network;
}
/** {@inheritDoc} */
@Override
public final String toString()
{
return "GTUCharacteristics [gtuType=" + this.gtuType + ", length=" + this.length + ", width=" + this.width
+ ", maximumSpeed=" + this.maximumSpeed + "]";
}
}