Package org.opentrafficsim.road.network
Class CrossSectionElement
java.lang.Object
org.djutils.event.LocalEventProducer
org.opentrafficsim.road.network.CrossSectionElement
- All Implemented Interfaces:
nl.tudelft.simulation.dsol.animation.Locatable,Identifiable,EventProducer,OtsShape
public abstract class CrossSectionElement
extends LocalEventProducer
implements OtsShape, Identifiable
Cross section elements are used to compose a CrossSectionLink.
Copyright (c) 2013-2026 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Guus Tamminga
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final CrossSectionLinkCross Section Link to which the element belongs.Fields inherited from interface org.djutils.event.EventProducer
FIRST_POSITION, LAST_POSITIONFields inherited from interface org.opentrafficsim.base.geometry.OtsShape
DEFAULT_POLYGON_SEGMENTS, WORLD_MARGIN_LINE -
Constructor Summary
ConstructorsConstructorDescriptionCrossSectionElement(CrossSectionLink link, String id, CrossSectionGeometry geometry) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanfinal Polygon2dfinal org.djunits.value.vdouble.scalar.LengthRetrieve the width at the begin of the parent link.final OtsLine2dRetrieve the center line of this CrossSectionElement.org.djunits.value.vdouble.scalar.LengthgetElevation(double fractionalPosition) Returns the elevation at the given fractional position.org.djunits.value.vdouble.scalar.LengthgetElevation(org.djunits.value.vdouble.scalar.Length position) Returns the elevation at the given position.final org.djunits.value.vdouble.scalar.LengthRetrieve the width at the end of the parent link.final StringRetrieve the id of this CrossSectionElement.doublegetGrade(double fractionalPosition) Returns the grade at the given fractional position, given as delta_h / delta_f, where f is fractional position.doublegetGrade(org.djunits.value.vdouble.scalar.Length position) Returns the grade at the given position, given as delta_h / delta_f, where f is fractional position.final StringgetId()final org.djunits.value.vdouble.scalar.LengthgetLateralBoundaryPosition(LateralDirectionality lateralDirection, double fractionalLongitudinalPosition) Return the lateral offset from the design line of the parent Link of the Left or Right boundary of this CrossSectionElement at the specified fractional longitudinal position.final org.djunits.value.vdouble.scalar.LengthgetLateralBoundaryPosition(LateralDirectionality lateralDirection, org.djunits.value.vdouble.scalar.Length longitudinalPosition) Return the lateral offset from the design line of the parent Link of the Left or Right boundary of this CrossSectionElement at the specified longitudinal position.final org.djunits.value.vdouble.scalar.LengthgetLateralCenterPosition(double fractionalPosition) Retrieve the lateral offset from the Link design line at the specified longitudinal position.final org.djunits.value.vdouble.scalar.LengthgetLateralCenterPosition(org.djunits.value.vdouble.scalar.Length longitudinalPosition) Retrieve the lateral offset from the Link design line at the specified longitudinal position.final org.djunits.value.vdouble.scalar.LengthReturn the length of this CrossSectionElement as measured along the design line (which equals the center line).final CrossSectionLinkgetLink()Returns the link of this cross-section element.final RoadNetworkReturns network.final org.djunits.value.vdouble.scalar.LengthRetrieve the offset from the design line at the begin of the parent link.final org.djunits.value.vdouble.scalar.LengthRetrieve the offset from the design line at the end of the parent link.final Polygon2dfinal org.djunits.value.vdouble.scalar.LengthgetWidth(double fractionalPosition) Return the width of this CrossSectionElement at a specified fractional longitudinal position.final org.djunits.value.vdouble.scalar.LengthgetWidth(org.djunits.value.vdouble.scalar.Length longitudinalPosition) Return the width of this CrossSectionElement at a specified longitudinal position.doublegetZ()Retrieve the Z offset (used to determine what covers what when drawing).inthashCode()toString()Methods inherited from class org.djutils.event.LocalEventProducer
getEventListenerMapMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.djutils.event.EventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListenerMethods inherited from interface org.opentrafficsim.base.geometry.OtsShape
contains, contains, getAbsoluteBounds, getAbsoluteContour, getDirZ, signedDistance, signedDistance
-
Field Details
-
link
Cross Section Link to which the element belongs.
-
-
Constructor Details
-
CrossSectionElement
Constructor.- Parameters:
link- linkid- idgeometry- geometry
-
-
Method Details
-
getLink
Returns the link of this cross-section element.- Returns:
- link of this cross-section element.
-
getNetwork
Returns network.- Returns:
- the road network to which the lane belongs
-
getLateralCenterPosition
public final org.djunits.value.vdouble.scalar.Length getLateralCenterPosition(double fractionalPosition) Retrieve the lateral offset from the Link design line at the specified longitudinal position.- Parameters:
fractionalPosition- fractional longitudinal position on this Lane- Returns:
- the lateralCenterPosition at the specified longitudinal position
-
getLateralCenterPosition
public final org.djunits.value.vdouble.scalar.Length getLateralCenterPosition(org.djunits.value.vdouble.scalar.Length longitudinalPosition) Retrieve the lateral offset from the Link design line at the specified longitudinal position.- Parameters:
longitudinalPosition- the longitudinal position on this Lane- Returns:
- the lateralCenterPosition at the specified longitudinal position
-
getWidth
public final org.djunits.value.vdouble.scalar.Length getWidth(org.djunits.value.vdouble.scalar.Length longitudinalPosition) Return the width of this CrossSectionElement at a specified longitudinal position.- Parameters:
longitudinalPosition- the longitudinal position- Returns:
- the width of this CrossSectionElement at the specified longitudinal position.
-
getWidth
public final org.djunits.value.vdouble.scalar.Length getWidth(double fractionalPosition) Return the width of this CrossSectionElement at a specified fractional longitudinal position.- Parameters:
fractionalPosition- the fractional longitudinal position- Returns:
- the width of this CrossSectionElement at the specified fractional longitudinal position.
-
getLength
public final org.djunits.value.vdouble.scalar.Length getLength()Return the length of this CrossSectionElement as measured along the design line (which equals the center line).- Returns:
- the length of this CrossSectionElement
-
getOffsetAtBegin
public final org.djunits.value.vdouble.scalar.Length getOffsetAtBegin()Retrieve the offset from the design line at the begin of the parent link.- Returns:
- the offset of this CrossSectionElement at the begin of the parent link
-
getOffsetAtEnd
public final org.djunits.value.vdouble.scalar.Length getOffsetAtEnd()Retrieve the offset from the design line at the end of the parent link.- Returns:
- the offset of this CrossSectionElement at the end of the parent link
-
getBeginWidth
public final org.djunits.value.vdouble.scalar.Length getBeginWidth()Retrieve the width at the begin of the parent link.- Returns:
- the width of this CrossSectionElement at the begin of the parent link
-
getEndWidth
public final org.djunits.value.vdouble.scalar.Length getEndWidth()Retrieve the width at the end of the parent link.- Returns:
- the width of this CrossSectionElement at the end of the parent link
-
getZ
public double getZ()Retrieve the Z offset (used to determine what covers what when drawing).- Specified by:
getZin interfacenl.tudelft.simulation.dsol.animation.Locatable- Returns:
- the Z-offset for drawing (what's on top, what's underneath).
-
getCenterLine
Retrieve the center line of this CrossSectionElement.- Returns:
- the center line of this CrossSectionElement
-
getAbsoluteContour
- Specified by:
getAbsoluteContourin interfaceOtsShape
-
getRelativeContour
- Specified by:
getRelativeContourin interfaceOtsShape
-
getId
- Specified by:
getIdin interfaceIdentifiable
-
getFullId
Retrieve the id of this CrossSectionElement.- Returns:
- the id of this CrossSectionElement
-
getLateralBoundaryPosition
public final org.djunits.value.vdouble.scalar.Length getLateralBoundaryPosition(LateralDirectionality lateralDirection, double fractionalLongitudinalPosition) Return the lateral offset from the design line of the parent Link of the Left or Right boundary of this CrossSectionElement at the specified fractional longitudinal position.- Parameters:
lateralDirection- LEFT, or RIGHTfractionalLongitudinalPosition- ranges from 0.0 (begin of parentLink) to 1.0 (end of parentLink)- Returns:
- Length
- Throws:
IllegalArgumentException- when lateral direction isnullor NONE.
-
getLateralBoundaryPosition
public final org.djunits.value.vdouble.scalar.Length getLateralBoundaryPosition(LateralDirectionality lateralDirection, org.djunits.value.vdouble.scalar.Length longitudinalPosition) Return the lateral offset from the design line of the parent Link of the Left or Right boundary of this CrossSectionElement at the specified longitudinal position.- Parameters:
lateralDirection- LEFT, or RIGHTlongitudinalPosition- the position along the length of this CrossSectionElement- Returns:
- Length
-
getLocation
- 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
-
getElevation
public org.djunits.value.vdouble.scalar.Length getElevation(org.djunits.value.vdouble.scalar.Length position) Returns the elevation at the given position.- Parameters:
position- position.- Returns:
- elevation at the given position.
-
getElevation
public org.djunits.value.vdouble.scalar.Length getElevation(double fractionalPosition) Returns the elevation at the given fractional position.- Parameters:
fractionalPosition- fractional position.- Returns:
- elevation at the given fractional position.
-
getGrade
public double getGrade(org.djunits.value.vdouble.scalar.Length position) Returns the grade at the given position, given as delta_h / delta_f, where f is fractional position.- Parameters:
position- position.- Returns:
- grade at the given position.
-
getGrade
public double getGrade(double fractionalPosition) Returns the grade at the given fractional position, given as delta_h / delta_f, where f is fractional position.- Parameters:
fractionalPosition- fractional position.- Returns:
- grade at the given fractional position.
-
toString
-
hashCode
public int hashCode() -
equals
-