MATSIM
VisLane.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.*
3  * OTFLaneData2
4  * *
5  * *********************************************************************** *
6  * *
7  * copyright : (C) 2010 by the members listed in the COPYING, *
8  * LICENSE and WARRANTY file. *
9  * email : info at matsim dot org *
10  * *
11  * *********************************************************************** *
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * See also COPYING, LICENSE and WARRANTY file *
18  * *
19  * *********************************************************************** */
20 package org.matsim.lanes;
21 
22 import org.matsim.api.core.v01.Coord;
26 
27 import java.awt.geom.Point2D;
28 import java.io.Serializable;
29 import java.util.ArrayList;
30 import java.util.HashMap;
31 import java.util.List;
32 import java.util.Map;
33 
34 
38 public final class VisLane implements Serializable {
39 
40  private String id = null;
41  private double endPosition;
42  private double startPosition;
43  private int alignment;
44  private double numberOfLanes;
45  private List<VisLane> toLanes = null;
46  private SignalGroupState state = null;
47  private Point2D.Double startPoint = null;
48  private Point2D.Double endPoint = null;
49  private Map<String, VisSignal> signals = null;
50  private List<String> toLinkIds;
51  private transient List<VisLinkWLanes> toLinksData = null;
52  private double euklideanDistance;
53  private Coord startCoord;
54  private Coord endCoord;
55  private Map<Integer, Tuple<Coord, Coord>> drivingLaneMap = null;
56 
57  public VisLane(String id) {
58  this.id = id;
59  }
60 
61  public void setId(String id){
62  this.id = id;
63  }
64 
65  public String getId() {
66  return id;
67  }
68 
69  public void setEndPosition(double pos) {
70  this.endPosition = pos;
71  }
72 
73  public double getEndPosition() {
74  return endPosition;
75  }
76 
77 
78  public double getStartPosition() {
79  return startPosition;
80  }
81 
82 
83  public void setStartPosition(double pos) {
84  this.startPosition = pos;
85  }
86 
87  public void setAlignment(int alignment) {
88  this.alignment = alignment;
89  }
90 
91  public int getAlignment(){
92  return this.alignment;
93  }
94 
95  public double getNumberOfLanes() {
96  return this.numberOfLanes;
97  }
98 
99  public void setNumberOfLanes(double noLanes){
100  this.numberOfLanes = noLanes;
101  }
102 
104  this.state = state;
105  }
106 
108  return this.state ;
109  }
110 
111  public void addToLink(VisLinkWLanes toLink) {
112  if (this.toLinksData == null) {
113  this.toLinksData = new ArrayList<VisLinkWLanes>();
114  }
115  this.toLinksData.add(toLink);
116  }
117 
118  public void addToLane(VisLane toLane) {
119  if (this.toLanes == null){
120  this.toLanes = new ArrayList<VisLane>();
121  }
122  this.toLanes.add(toLane);
123  }
124 
125 
126  public Point2D.Double getStartPoint() {
127  return startPoint;
128  }
129 
130 
131  public void setStartEndPoint(Point2D.Double startPoint, Point2D.Double endPoint) {
132  this.startPoint = startPoint;
133  this.endPoint = endPoint;
134  this.calcCoords();
135  }
136 
137  public Point2D.Double getEndPoint() {
138  return endPoint;
139  }
140 
141  private void calcCoords(){
142  this.startCoord = new Coord(startPoint.x, startPoint.y);
143  this.endCoord = new Coord(endPoint.x, endPoint.y);
144  this.euklideanDistance = CoordUtils.calcEuclideanDistance(startCoord, endCoord);
145  }
146 
147  public void addDrivingLane(int laneNumber, Point2D.Double drivingLaneStart, Point2D.Double drivingLaneEnd) {
148  if (this.drivingLaneMap == null){
149  this.drivingLaneMap = new HashMap<Integer, Tuple<Coord, Coord>>();
150  }
151  Tuple<Coord, Coord> tuple = new Tuple<Coord, Coord>(new Coord(drivingLaneStart.x, drivingLaneStart.y), new Coord(drivingLaneEnd.x, drivingLaneEnd.y));
152  this.drivingLaneMap.put(laneNumber, tuple);
153  }
154 
156  return this.drivingLaneMap.get(laneNumber);
157  }
158 
159 
160  public Coord getStartCoord() {
161  return this.startCoord;
162  }
163 
164  public Coord getEndCoord() {
165  return this.endCoord;
166  }
167 
168  public void addSignal(VisSignal signal) {
169  if (this.signals == null){
170  this.signals = new HashMap<String, VisSignal>();
171  }
172  this.signals.put(signal.getId(), signal);
173  }
174 
175  public Map<String, VisSignal> getSignals(){
176  return this.signals;
177  }
178 
179 
180  public List<VisLinkWLanes> getToLinks() {
181  return toLinksData;
182  }
183 
184  public void addToLinkId(String toLinkId){
185  if (this.toLinkIds == null)
186  this.toLinkIds = new ArrayList<>();
187  this.toLinkIds.add(toLinkId);
188  }
189 
190  public List<String> getToLinkIds() {
191  return toLinkIds ;
192  }
193 
194  public List<VisLane> getToLanes() {
195  return toLanes;
196  }
197 
198 
199  public double getEuklideanDistance() {
200  return euklideanDistance;
201  }
202 
203 
204 
205 }
206 
207 
208 
void setEndPosition(double pos)
Definition: VisLane.java:69
void addDrivingLane(int laneNumber, Point2D.Double drivingLaneStart, Point2D.Double drivingLaneEnd)
Definition: VisLane.java:147
Point2D.Double getStartPoint()
Definition: VisLane.java:126
Map< String, VisSignal > getSignals()
Definition: VisLane.java:175
List< String > getToLinkIds()
Definition: VisLane.java:190
static double calcEuclideanDistance(Coord coord, Coord other)
transient List< VisLinkWLanes > toLinksData
Definition: VisLane.java:51
Map< String, VisSignal > signals
Definition: VisLane.java:49
Point2D.Double startPoint
Definition: VisLane.java:47
List< VisLane > getToLanes()
Definition: VisLane.java:194
Point2D.Double getEndPoint()
Definition: VisLane.java:137
void setSignalGroupState(SignalGroupState state)
Definition: VisLane.java:103
void setAlignment(int alignment)
Definition: VisLane.java:87
void setStartPosition(double pos)
Definition: VisLane.java:83
void addToLink(VisLinkWLanes toLink)
Definition: VisLane.java:111
void addSignal(VisSignal signal)
Definition: VisLane.java:168
void setId(String id)
Definition: VisLane.java:61
List< String > toLinkIds
Definition: VisLane.java:50
SignalGroupState getSignalGroupState()
Definition: VisLane.java:107
void addToLinkId(String toLinkId)
Definition: VisLane.java:184
List< VisLane > toLanes
Definition: VisLane.java:45
List< VisLinkWLanes > getToLinks()
Definition: VisLane.java:180
Tuple< Coord, Coord > getDrivingLaneStartEndCoord(int laneNumber)
Definition: VisLane.java:155
Map< Integer, Tuple< Coord, Coord > > drivingLaneMap
Definition: VisLane.java:55
void setNumberOfLanes(double noLanes)
Definition: VisLane.java:99
void addToLane(VisLane toLane)
Definition: VisLane.java:118
double getEuklideanDistance()
Definition: VisLane.java:199
Point2D.Double endPoint
Definition: VisLane.java:48
SignalGroupState state
Definition: VisLane.java:46
void setStartEndPoint(Point2D.Double startPoint, Point2D.Double endPoint)
Definition: VisLane.java:131