Class MapLaneBasedObjectData
java.lang.Object
org.opentrafficsim.editor.extensions.map.MapData
org.opentrafficsim.editor.extensions.map.MapLaneBasedObjectData
- All Implemented Interfaces:
EventListener,nl.tudelft.simulation.dsol.animation.Locatable,Identifiable,EventListener,OtsShape,LineLocatable,AbstractLineAnimation.LaneBasedObjectData,EvalWrapper.EvalListener
- Direct Known Subclasses:
MapGeneratorData,MapSinkData,MapTrafficLightData
public abstract class MapLaneBasedObjectData
extends MapData
implements AbstractLineAnimation.LaneBasedObjectData, EventListener
Data class for objects that are drawn at a lane position. Implementations must call setLinkNode() in their constructor or by
some other dynamic means, or the XSD node must have a Link attribute that points to the XSD node of a link by a keyref. This
class will listen to attributes Id, Link, Lane and Position, and update visualization as needed. Attributes Id and Link are
optional.
Copyright (c) 2023-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Wouter Schakel
-
Field Summary
Fields inherited from interface org.opentrafficsim.base.geometry.OtsShape
DEFAULT_POLYGON_SEGMENTS, WORLD_MARGIN_LINE -
Constructor Summary
ConstructorsConstructorDescriptionMapLaneBasedObjectData(EditorMap map, XsdTreeNode node, OtsEditor editor) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()Destroy this data object, e.g. remove self as listener.voidNotifies the listener that evaluation results may have changed.getId()getLine()protected StringReturns an id in the form {linkId}.voidprotected voidsetLinkNode(XsdTreeNode linkNode) Sets a node as link.Methods inherited from class org.opentrafficsim.editor.extensions.map.MapData
getEval, getMap, getNode, setValueMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.opentrafficsim.draw.road.AbstractLineAnimation.LaneBasedObjectData
getZMethods inherited from interface org.opentrafficsim.draw.LineLocatable
contains, signedDistanceMethods inherited from interface org.opentrafficsim.base.geometry.OtsShape
contains, getAbsoluteBounds, getAbsoluteContour, getDirZ, signedDistance
-
Constructor Details
-
MapLaneBasedObjectData
Constructor.- Parameters:
map- map.node- node.editor- editor.
-
-
Method Details
-
setLinkNode
Sets a node as link. Sub-classes may call this in their constructor if it is a fixed node. This class will listen to changes in the Link attribute, and set a coupled node as link node if it exists.- Parameters:
linkNode- link node.
-
destroy
public void destroy()Description copied from class:MapDataDestroy this data object, e.g. remove self as listener. Override and call super if subclasses remove their own listeners. Using weak references for listeners is another option to deal with obsolete listening. -
getLaneWidth
- Specified by:
getLaneWidthin interfaceAbstractLineAnimation.LaneBasedObjectData
-
getLocation
- Specified by:
getLocationin interfaceAbstractLineAnimation.LaneBasedObjectData- Specified by:
getLocationin interfacenl.tudelft.simulation.dsol.animation.Locatable- Specified by:
getLocationin interfaceOtsShape
-
getRelativeBounds
- Specified by:
getRelativeBoundsin interfacenl.tudelft.simulation.dsol.animation.Locatable- Specified by:
getRelativeBoundsin interfaceOtsShape
-
getAbsoluteContour
- Specified by:
getAbsoluteContourin interfaceOtsShape
-
getRelativeContour
- Specified by:
getRelativeContourin interfaceOtsShape
-
getLine
- Specified by:
getLinein interfaceLineLocatable
-
getId
- Specified by:
getIdin interfaceIdentifiable
-
getLinkLanePositionId
Returns an id in the form {linkId}.{laneId}.{id} or {linkId}.{laneId}@{position} if the id is empty.- Returns:
- id in link/lane/position form.
-
evalChanged
public void evalChanged()Description copied from interface:EvalWrapper.EvalListenerNotifies the listener that evaluation results may have changed.- Specified by:
evalChangedin interfaceEvalWrapper.EvalListener
-
notify
- Specified by:
notifyin interfaceEventListener
-