#include <NIVissimConnection.h>

Definition at line 52 of file NIVissimConnection.h.
Public Types | |
| enum | Direction { NIVC_DIR_RIGHT, NIVC_DIR_LEFT, NIVC_DIR_ALL } |
Public Member Functions | |
| void | addDisturbance (int disturbance) |
| unsigned int | buildEdgeConnections (NBEdgeCont &ec) |
| void | buildGeom () |
| bool | clustered () const |
| void | computeBounding () |
| bool | crosses (const AbstractPoly &poly, SUMOReal offset=0) const |
| SUMOReal | crossesAtPoint (const Position2D &p1, const Position2D &p2) const |
| bool | crossesEdge (NIVissimAbstractEdge *c) const |
| Position2D | crossesEdgeAtPoint (NIVissimAbstractEdge *c) const |
| const Boundary & | getBoundary () const |
| const Boundary & | getBoundingBox () const |
| const IntVector & | getDisturbances () const |
| int | getFromEdgeID () const |
| Position2D | getFromGeomPosition () const |
| const IntVector & | getFromLanes () const |
| SUMOReal | getFromPosition () const |
| const Position2DVector & | getGeometry () const |
| Position2D | getGeomPosition (SUMOReal pos) const |
| int | getID () const |
| int | getToEdgeID () const |
| Position2D | getToGeomPosition () const |
| const IntVector & | getToLanes () const |
| SUMOReal | getToPosition () const |
| bool | hasNodeCluster () const |
| void | inCluster (int id) |
| NIVissimConnection (int id, const std::string &name, const NIVissimExtendedEdgePoint &from_def, const NIVissimExtendedEdgePoint &to_def, const Position2DVector &geom, Direction direction, SUMOReal dxnothalt, SUMOReal dxeinordnen, SUMOReal zuschlag1, SUMOReal zuschlag2, SUMOReal seglength, const IntVector &assignedVehicles, const NIVissimClosedLanesVector &clv) | |
| bool | overlapsWith (const AbstractPoly &p, SUMOReal offset=0.0) const |
| void | recheckLanes (const NBEdge *const fromEdge, const NBEdge *const toEdge) throw () |
| Resets lane numbers if all lanes shall be used. | |
| void | setNodeCluster (int nodeid) |
| void | splitAssigning () |
| virtual | ~NIVissimConnection () |
Static Public Member Functions | |
| static void | buildNodeClusters () |
| static void | clearDict () |
| static void | closeLoading () |
| static void | dict_assignToEdges () |
| static void | dict_buildNBEdgeConnections (NBEdgeCont &ec) |
| static bool | dictionary (int id, NIVissimAbstractEdge *e) |
| static NIVissimConnection * | dictionary (int id) |
| static bool | dictionary (int id, NIVissimConnection *o) |
| static bool | dictionary (int id, const std::string &name, const NIVissimExtendedEdgePoint &from_def, const NIVissimExtendedEdgePoint &to_def, const Position2DVector &geom, Direction direction, SUMOReal dxnothalt, SUMOReal dxeinordnen, SUMOReal zuschlag1, SUMOReal zuschlag2, SUMOReal seglength, const IntVector &assignedVehicles, const NIVissimClosedLanesVector &clv) |
| static IntVector | getForEdge (int edgeid, bool omitNodeAssigned=true) |
| static int | getMaxID () |
| static IntVector | getWithin (const AbstractPoly &p, SUMOReal offset=0.0) |
| static IntVector | getWithin (const AbstractPoly &poly) |
| static void | splitAndAssignToNodes () |
Protected Types | |
| typedef std::set < NIVissimBoundedClusterObject * > | ContType |
Protected Attributes | |
| Boundary * | myBoundary |
| int | myClusterID |
| IntVector | myDisturbances |
| Position2DVector | myGeom |
| int | myID |
| int | myNode |
Private Types | |
| typedef std::map< int, NIVissimConnection * > | DictType |
Private Attributes | |
| IntVector | myAssignedVehicles |
| NIVissimClosedLanesVector | myClosedLanes |
| Direction | myDirection |
| SUMOReal | myDXEinordnen |
| SUMOReal | myDXNothalt |
| NIVissimExtendedEdgePoint | myFromDef |
| std::string | myName |
| NIVissimExtendedEdgePoint | myToDef |
| SUMOReal | myZuschlag1 |
| SUMOReal | myZuschlag2 |
Static Private Attributes | |
| static DictType | myDict |
| static int | myMaxID |
typedef std::set<NIVissimBoundedClusterObject*> NIVissimBoundedClusterObject::ContType [protected, inherited] |
Definition at line 59 of file NIVissimBoundedClusterObject.h.
typedef std::map<int, NIVissimConnection*> NIVissimConnection::DictType [private] |
Definition at line 56 of file NIVissimConnection.h.
00056 { 00057 NIVC_DIR_RIGHT, 00058 NIVC_DIR_LEFT, 00059 NIVC_DIR_ALL 00060 };
| NIVissimConnection::NIVissimConnection | ( | int | id, | |
| const std::string & | name, | |||
| const NIVissimExtendedEdgePoint & | from_def, | |||
| const NIVissimExtendedEdgePoint & | to_def, | |||
| const Position2DVector & | geom, | |||
| Direction | direction, | |||
| SUMOReal | dxnothalt, | |||
| SUMOReal | dxeinordnen, | |||
| SUMOReal | zuschlag1, | |||
| SUMOReal | zuschlag2, | |||
| SUMOReal | seglength, | |||
| const IntVector & | assignedVehicles, | |||
| const NIVissimClosedLanesVector & | clv | |||
| ) |
Definition at line 65 of file NIVissimConnection.cpp.
Referenced by dictionary().
00072 : NIVissimAbstractEdge(id, geom), 00073 myName(name), myFromDef(from_def), myToDef(to_def), 00074 myDirection(direction), 00075 myDXNothalt(dxnothalt), myDXEinordnen(dxeinordnen), 00076 myZuschlag1(zuschlag1), myZuschlag2(zuschlag2), 00077 myAssignedVehicles(assignedVehicles), myClosedLanes(clv) {}
| NIVissimConnection::~NIVissimConnection | ( | ) | [virtual] |
Definition at line 80 of file NIVissimConnection.cpp.
References myClosedLanes.
00080 { 00081 for (NIVissimClosedLanesVector::iterator i=myClosedLanes.begin(); i!=myClosedLanes.end(); i++) { 00082 delete(*i); 00083 } 00084 myClosedLanes.clear(); 00085 }
| void NIVissimAbstractEdge::addDisturbance | ( | int | disturbance | ) | [inherited] |
Definition at line 192 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myDisturbances.
00192 { 00193 myDisturbances.push_back(disturbance); 00194 }
| unsigned int NIVissimConnection::buildEdgeConnections | ( | NBEdgeCont & | ec | ) |
Definition at line 248 of file NIVissimConnection.cpp.
References NBEdge::addLane2LaneConnection(), NIVissimEdge::dictionary(), NIVissimEdge::getBestIncoming(), NIVissimEdge::getBestOutgoing(), getFromEdgeID(), getFromLanes(), NBEdge::getID(), NIVissimAbstractEdge::getID(), NBEdge::getNoLanes(), getToEdgeID(), getToLanes(), MsgHandler::getWarningInstance(), MsgHandler::inform(), NBEdge::L2L_VALIDATED, recheckLanes(), NBEdgeCont::retrievePossiblySplitted(), toString(), NIVissimEdge::wasWithinAJunction(), and WRITE_WARNING.
00248 { 00249 unsigned int unsetConnections = 0; 00250 // try to determine the connected edges 00251 NBEdge *fromEdge = 0; 00252 NBEdge *toEdge = 0; 00253 NIVissimEdge *vissimFrom = NIVissimEdge::dictionary(getFromEdgeID()); 00254 if (vissimFrom->wasWithinAJunction()) { 00255 // this edge was not built, try to get one that approaches it 00256 vissimFrom = vissimFrom->getBestIncoming(); 00257 if (vissimFrom!=0) { 00258 fromEdge = ec.retrievePossiblySplitted(toString(vissimFrom->getID()), toString(getFromEdgeID()), true); 00259 } 00260 } else { 00261 // this edge was built, try to get the proper part 00262 fromEdge = ec.retrievePossiblySplitted(toString(getFromEdgeID()), toString(getToEdgeID()), true); 00263 } 00264 NIVissimEdge *vissimTo = NIVissimEdge::dictionary(getToEdgeID()); 00265 if (vissimTo->wasWithinAJunction()) { 00266 vissimTo = vissimTo->getBestOutgoing(); 00267 if (vissimTo!=0) { 00268 toEdge = ec.retrievePossiblySplitted(toString(vissimTo->getID()), toString(getToEdgeID()), true); 00269 } 00270 } else { 00271 toEdge = ec.retrievePossiblySplitted(toString(getToEdgeID()), toString(getFromEdgeID()), false); 00272 } 00273 00274 // try to get the edges the current connection connects 00275 /* 00276 NBEdge *fromEdge = ec.retrievePossiblySplitted(toString(getFromEdgeID()), toString(getToEdgeID()), true); 00277 NBEdge *toEdge = ec.retrievePossiblySplitted(toString(getToEdgeID()), toString(getFromEdgeID()), false); 00278 */ 00279 if (fromEdge==0||toEdge==0) { 00280 WRITE_WARNING("Could not build connection between '" + toString(getFromEdgeID())+ "' and '" + toString(getToEdgeID())+ "'."); 00281 return 1; // !!! actually not 1 00282 } 00283 recheckLanes(fromEdge, toEdge); 00284 const IntVector &fromLanes = getFromLanes(); 00285 const IntVector &toLanes = getToLanes(); 00286 if (fromLanes.size()!=toLanes.size()) { 00287 MsgHandler::getWarningInstance()->inform("Lane sizes differ for connection '" + toString(getID()) + "'."); 00288 } else { 00289 for (unsigned int index=0; index<fromLanes.size(); ++index) { 00290 if (fromEdge->getNoLanes()<=fromLanes[index]) { 00291 MsgHandler::getWarningInstance()->inform("Could not set connection between '" + fromEdge->getID() + "_" + toString(fromLanes[index]) + "' and '" + toEdge->getID() + "_" + toString(toLanes[index]) + "'."); 00292 ++unsetConnections; 00293 } else if (!fromEdge->addLane2LaneConnection(fromLanes[index], toEdge, toLanes[index], NBEdge::L2L_VALIDATED)) { 00294 MsgHandler::getWarningInstance()->inform("Could not set connection between '" + fromEdge->getID() + "_" + toString(fromLanes[index]) + "' and '" + toEdge->getID() + "_" + toString(toLanes[index]) + "'."); 00295 ++unsetConnections; 00296 } 00297 } 00298 } 00299 return unsetConnections; 00300 }
| void NIVissimConnection::buildGeom | ( | ) | [virtual] |
Implements NIVissimAbstractEdge.
Definition at line 238 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getGeomPosition(), myFromDef, NIVissimAbstractEdge::myGeom, myToDef, Position2DVector::push_back(), and Position2DVector::size().
00238 { 00239 if (myGeom.size()>0) { 00240 return; 00241 } 00242 myGeom.push_back(myFromDef.getGeomPosition()); 00243 myGeom.push_back(myToDef.getGeomPosition()); 00244 }
| void NIVissimConnection::buildNodeClusters | ( | ) | [static] |
Definition at line 137 of file NIVissimConnection.cpp.
References NIVissimBoundedClusterObject::clustered(), NIVissimNodeCluster::dictionary(), getWithin(), NIVissimBoundedClusterObject::myBoundary, myDict, Boundary::xmax(), and Boundary::xmin().
00137 { 00138 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00139 NIVissimConnection *e = (*i).second; 00140 if (!e->clustered()) { 00141 assert(e->myBoundary!=0&&e->myBoundary->xmax()>e->myBoundary->xmin()); 00142 IntVector connections = 00143 NIVissimConnection::getWithin(*(e->myBoundary)); 00144 NIVissimNodeCluster::dictionary(-1, -1, connections, 00145 IntVector(), true); // 19.5.!!! should be on a single edge 00146 } 00147 } 00148 }
| void NIVissimAbstractEdge::clearDict | ( | ) | [static, inherited] |
Definition at line 177 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myDict.
Referenced by NIImporter_Vissim::~NIImporter_Vissim().
00177 { 00178 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00179 delete(*i).second; 00180 } 00181 myDict.clear(); 00182 }
| void NIVissimBoundedClusterObject::closeLoading | ( | ) | [static, inherited] |
Definition at line 73 of file NIVissimBoundedClusterObject.cpp.
References NIVissimBoundedClusterObject::myDict.
Referenced by NIImporter_Vissim::postLoadBuild().
00073 { 00074 for (ContType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00075 (*i)->computeBounding(); 00076 } 00077 }
| bool NIVissimBoundedClusterObject::clustered | ( | ) | const [inherited] |
Definition at line 67 of file NIVissimBoundedClusterObject.cpp.
References NIVissimBoundedClusterObject::myClusterID.
Referenced by buildNodeClusters().
00067 { 00068 return myClusterID>0; 00069 }
| void NIVissimConnection::computeBounding | ( | ) | [virtual] |
Implements NIVissimBoundedClusterObject.
Definition at line 167 of file NIVissimConnection.cpp.
References Boundary::add(), NIVissimExtendedEdgePoint::getGeomPosition(), NIVissimBoundedClusterObject::myBoundary, myFromDef, and myToDef.
00167 { 00168 Boundary *bound = new Boundary(); 00169 bound->add(myFromDef.getGeomPosition()); 00170 bound->add(myToDef.getGeomPosition()); 00171 assert(myBoundary==0); 00172 myBoundary = bound; 00173 }
| bool NIVissimBoundedClusterObject::crosses | ( | const AbstractPoly & | poly, | |
| SUMOReal | offset = 0 | |||
| ) | const [inherited] |
Definition at line 53 of file NIVissimBoundedClusterObject.cpp.
References NIVissimBoundedClusterObject::myBoundary, Boundary::overlapsWith(), Boundary::xmax(), and Boundary::xmin().
00054 { 00055 assert(myBoundary!=0&&myBoundary->xmax()>=myBoundary->xmin()); 00056 return myBoundary->overlapsWith(poly, offset); 00057 }
| SUMOReal NIVissimAbstractEdge::crossesAtPoint | ( | const Position2D & | p1, | |
| const Position2D & | p2 | |||
| ) | const [inherited] |
Definition at line 135 of file NIVissimAbstractEdge.cpp.
References Position2DVector::getBegin(), Position2DVector::getEnd(), GeomHelper::intersection_position(), NIVissimAbstractEdge::myGeom, and GeomHelper::nearest_position_on_line_to_point().
00136 { 00137 // !!! not needed 00138 Position2D p = GeomHelper::intersection_position( 00139 myGeom.getBegin(), myGeom.getEnd(), p1, p2); 00140 return GeomHelper::nearest_position_on_line_to_point( 00141 myGeom.getBegin(), myGeom.getEnd(), p); 00142 }
| bool NIVissimAbstractEdge::crossesEdge | ( | NIVissimAbstractEdge * | c | ) | const [inherited] |
Definition at line 123 of file NIVissimAbstractEdge.cpp.
References Position2DVector::intersects(), and NIVissimAbstractEdge::myGeom.
Referenced by NIVissimNodeCluster::buildNBNode().
00123 { 00124 return myGeom.intersects(c->myGeom); 00125 }
| Position2D NIVissimAbstractEdge::crossesEdgeAtPoint | ( | NIVissimAbstractEdge * | c | ) | const [inherited] |
Definition at line 129 of file NIVissimAbstractEdge.cpp.
References Position2DVector::intersectsAtPoint(), and NIVissimAbstractEdge::myGeom.
Referenced by NIVissimDisturbance::addToNode(), and NIVissimNodeCluster::buildNBNode().
00129 { 00130 return myGeom.intersectsAtPoint(c->myGeom); 00131 }
| void NIVissimConnection::dict_assignToEdges | ( | ) | [static] |
Definition at line 343 of file NIVissimConnection.cpp.
References NIVissimEdge::dictionary(), getFromEdgeID(), getToEdgeID(), and myDict.
Referenced by NIImporter_Vissim::postLoadBuild().
00343 { 00344 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00345 NIVissimConnection *c = (*i).second; 00346 NIVissimEdge::dictionary(c->getFromEdgeID())->addOutgoingConnection((*i).first); 00347 NIVissimEdge::dictionary(c->getToEdgeID())->addIncomingConnection((*i).first); 00348 } 00349 }
| void NIVissimConnection::dict_buildNBEdgeConnections | ( | NBEdgeCont & | ec | ) | [static] |
Definition at line 304 of file NIVissimConnection.cpp.
References myDict, and WRITE_WARNING.
Referenced by NIImporter_Vissim::postLoadBuild().
00304 { 00305 unsigned int unsetConnections = 0; 00306 // go through connections 00307 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00308 unsetConnections += (*i).second->buildEdgeConnections(ec); 00309 } 00310 if (unsetConnections!=0) { 00311 WRITE_WARNING(toString<size_t>(unsetConnections) + " of " + toString<size_t>(myDict.size())+ " connections could not be assigned."); 00312 } 00313 }
| bool NIVissimAbstractEdge::dictionary | ( | int | id, | |
| NIVissimAbstractEdge * | e | |||
| ) | [static, inherited] |
Definition at line 69 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myDict.
Referenced by NIVissimNodeCluster::buildNBNode(), NIVissimDisturbance::computeBounding(), NIVissimDisturbance::dict_SetDisturbances(), NIVissimExtendedEdgePoint::getGeomPosition(), NIVissimTL::NIVissimTLSignal::getPosition(), and NIVissimAbstractEdge::NIVissimAbstractEdge().
00069 { 00070 DictType::iterator i=myDict.find(id); 00071 if (i==myDict.end()) { 00072 myDict[id] = e; 00073 return true; 00074 } 00075 return false; 00076 }
| NIVissimConnection * NIVissimConnection::dictionary | ( | int | id | ) | [static] |
Reimplemented from NIVissimAbstractEdge.
Definition at line 127 of file NIVissimConnection.cpp.
References myDict.
00127 { 00128 DictType::iterator i=myDict.find(id); 00129 if (i==myDict.end()) { 00130 return 0; 00131 } 00132 return (*i).second; 00133 }
| bool NIVissimConnection::dictionary | ( | int | id, | |
| NIVissimConnection * | o | |||
| ) | [static] |
| bool NIVissimConnection::dictionary | ( | int | id, | |
| const std::string & | name, | |||
| const NIVissimExtendedEdgePoint & | from_def, | |||
| const NIVissimExtendedEdgePoint & | to_def, | |||
| const Position2DVector & | geom, | |||
| Direction | direction, | |||
| SUMOReal | dxnothalt, | |||
| SUMOReal | dxeinordnen, | |||
| SUMOReal | zuschlag1, | |||
| SUMOReal | zuschlag2, | |||
| SUMOReal | seglength, | |||
| const IntVector & | assignedVehicles, | |||
| const NIVissimClosedLanesVector & | clv | |||
| ) | [static] |
Definition at line 89 of file NIVissimConnection.cpp.
References myMaxID, and NIVissimConnection().
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), NIVissimDisturbance::addToNode(), NIVissimEdge::buildConnectionClusters(), NIVissimNodeCluster::buildNBNode(), NIVissimEdge::getBestIncoming(), NIVissimEdge::getBestOutgoing(), NIVissimDisturbance::getConnection(), NIVissimEdge::getConnectionTo(), NIVissimConnectionCluster::getDisturbanceParticipators(), NIVissimNodeCluster::getFromNode(), NIVissimConnectionCluster::getIncomingContinuation(), NIVissimConnectionCluster::getIncomingContinuationGeometry(), NIVissimEdge::getOutgoingConnected(), NIVissimConnectionCluster::getOutgoingContinuation(), NIVissimConnectionCluster::getOutgoingContinuationGeometry(), NIVissimConnectionCluster::getPositionForEdge(), NIVissimNodeCluster::getToNode(), NIVissimConnectionCluster::isWeakDistrictConnRealisation(), NIVissimConnectionCluster::liesOnSameEdgesEnd(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimEdge::connection_position_sorter::operator()(), NIVissimSingleTypeParser_VWunschentscheidungsdefinition::parse(), NIVissimSingleTypeParser_Verbindungsdefinition::parse(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), NIVissimNodeDef_Poly::searchAndSetConnections(), and NIVissimNodeDef_Edges::searchAndSetConnections().
00098 { 00099 NIVissimConnection *o = new NIVissimConnection(id, name, from_def, to_def, 00100 geom, direction, dxnothalt, dxeinordnen, zuschlag1, zuschlag2, 00101 seglength, assignedVehicles, clv); 00102 if (!dictionary(id, o)) { 00103 delete o; 00104 return false; 00105 } 00106 if (myMaxID<id) { 00107 myMaxID = id; 00108 } 00109 return true; 00110 }
| const Boundary & NIVissimBoundedClusterObject::getBoundary | ( | ) | const [inherited] |
Definition at line 81 of file NIVissimBoundedClusterObject.cpp.
References NIVissimBoundedClusterObject::myBoundary.
Referenced by NIVissimConnectionCluster::liesOnSameEdgesEnd().
00081 { 00082 return *myBoundary; 00083 }
| const Boundary & NIVissimConnection::getBoundingBox | ( | ) | const |
Definition at line 336 of file NIVissimConnection.cpp.
References NIVissimBoundedClusterObject::myBoundary, Boundary::xmax(), and Boundary::xmin().
Referenced by NIVissimConnectionCluster::NodeSubCluster::add().
00336 { 00337 assert(myBoundary!=0&&myBoundary->xmax()>=myBoundary->xmin()); 00338 return *myBoundary; 00339 }
| const IntVector & NIVissimAbstractEdge::getDisturbances | ( | ) | const [inherited] |
Definition at line 198 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myDisturbances.
Referenced by NIVissimConnectionCluster::getDisturbanceParticipators().
00198 { 00199 return myDisturbances; 00200 }
Definition at line 177 of file NIVissimConnection.cpp.
References myDict.
00177 { 00178 IntVector ret; 00179 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00180 int connID = (*i).first; 00181 if ((*i).second->myFromDef.getEdgeID()==edgeid 00182 || 00183 (*i).second->myToDef.getEdgeID()==edgeid) { 00184 if (!(*i).second->hasNodeCluster()) { 00185 ret.push_back(connID); 00186 } 00187 } 00188 } 00189 return ret; 00190 }
| int NIVissimConnection::getFromEdgeID | ( | ) | const |
Definition at line 194 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getEdgeID(), and myFromDef.
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), NIVissimDisturbance::addToNode(), buildEdgeConnections(), dict_assignToEdges(), NIVissimEdge::dict_checkEdges2Join(), NIVissimEdge::getBestIncoming(), NIVissimDisturbance::getConnection(), NIVissimEdge::getConnectionTo(), NIVissimConnectionCluster::getIncomingContinuation(), NIVissimConnectionCluster::getIncomingContinuationGeometry(), NIVissimConnectionCluster::getPositionForEdge(), NIVissimNodeCluster::getToNode(), NIVissimConnectionCluster::liesOnSameEdgesEnd(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimEdge::connection_position_sorter::operator()(), and NIVissimConnectionCluster::recheckEdges().
| Position2D NIVissimConnection::getFromGeomPosition | ( | ) | const |
Definition at line 218 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getGeomPosition(), and myFromDef.
Referenced by NIVissimNodeCluster::buildNBNode(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), and NIVissimNodeDef_Edges::searchAndSetConnections().
00218 { 00219 return myFromDef.getGeomPosition(); 00220 }
| const IntVector & NIVissimConnection::getFromLanes | ( | ) | const |
Definition at line 317 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getLanes(), and myFromDef.
Referenced by buildEdgeConnections(), and NIVissimEdge::getOutgoingConnected().
| SUMOReal NIVissimConnection::getFromPosition | ( | ) | const |
Definition at line 206 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getPosition(), and myFromDef.
Referenced by NIVissimEdge::dict_checkEdges2Join(), NIVissimConnectionCluster::getPositionForEdge(), and NIVissimEdge::connection_position_sorter::operator()().
00206 { 00207 return myFromDef.getPosition(); 00208 }
| const Position2DVector & NIVissimAbstractEdge::getGeometry | ( | ) | const [inherited] |
Definition at line 186 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myGeom.
Referenced by NIVissimEdge::dict_checkEdges2Join(), NIVissimConnectionCluster::getIncomingContinuation(), NIVissimConnectionCluster::getIncomingContinuationGeometry(), NIVissimConnectionCluster::getOutgoingContinuation(), NIVissimConnectionCluster::getOutgoingContinuationGeometry(), NIVissimConnectionCluster::isWeakDistrictConnRealisation(), NIVissimConnectionCluster::liesOnSameEdgesEnd(), NIVissimConnectionCluster::same_direction_sorter::operator()(), and NIVissimConnectionCluster::recomputeBoundary().
00186 { 00187 return myGeom; 00188 }
| Position2D NIVissimAbstractEdge::getGeomPosition | ( | SUMOReal | pos | ) | const [inherited] |
Definition at line 91 of file NIVissimAbstractEdge.cpp.
References GeomHelper::extrapolate_second(), Position2DVector::length(), NIVissimAbstractEdge::myGeom, Position2DVector::pop_back(), Position2DVector::positionAtLengthPosition(), Position2DVector::push_back(), and SUMOReal.
Referenced by NIVissimDistrictConnection::geomPosition().
00091 { 00092 if (myGeom.length()>pos) { 00093 return myGeom.positionAtLengthPosition(pos); 00094 } else if (myGeom.length()==pos) { 00095 return myGeom[-1]; 00096 } else { 00097 Position2DVector g(myGeom); 00098 SUMOReal amount = pos - myGeom.length(); 00099 Position2D ne = GeomHelper::extrapolate_second(g[-2], g[-1], amount*2); 00100 g.pop_back(); 00101 g.push_back(ne); 00102 return g.positionAtLengthPosition(pos); 00103 } 00104 }
| int NIVissimAbstractEdge::getID | ( | ) | const [inherited] |
Definition at line 172 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myID.
Referenced by NIVissimDisturbance::addToNode(), buildEdgeConnections(), NIVissimEdge::dict_checkEdges2Join(), NIVissimEdge::getConnectionTo(), NIVissimConnectionCluster::getIncomingContinuation(), NIVissimConnectionCluster::getIncomingContinuationGeometry(), NIVissimConnectionCluster::getOutgoingContinuation(), NIVissimConnectionCluster::getOutgoingContinuationGeometry(), and NIVissimConnectionCluster::removeConnections().
00172 { 00173 return myID; 00174 }
| int NIVissimConnection::getMaxID | ( | ) | [static] |
Definition at line 353 of file NIVissimConnection.cpp.
References myMaxID.
00353 { 00354 return myMaxID; 00355 }
| int NIVissimConnection::getToEdgeID | ( | ) | const |
Definition at line 200 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getEdgeID(), and myToDef.
Referenced by NIVissimTL::NIVissimTLSignal::addTo(), NIVissimDisturbance::addToNode(), buildEdgeConnections(), NIVissimEdge::checkUnconnectedLaneSpeeds(), dict_assignToEdges(), NIVissimEdge::getBestOutgoing(), NIVissimDisturbance::getConnection(), NIVissimEdge::getConnectionTo(), NIVissimNodeCluster::getFromNode(), NIVissimEdge::getOutgoingConnected(), NIVissimConnectionCluster::getOutgoingContinuation(), NIVissimConnectionCluster::getOutgoingContinuationGeometry(), NIVissimConnectionCluster::getPositionForEdge(), NIVissimConnectionCluster::liesOnSameEdgesEnd(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimSingleTypeParser_VWunschentscheidungsdefinition::parse(), NIVissimEdge::propagateOwn(), NIVissimEdge::propagateSpeed(), NIVissimConnectionCluster::recheckEdges(), and NIVissimEdge::setDistrictSpeed().
| Position2D NIVissimConnection::getToGeomPosition | ( | ) | const |
Definition at line 225 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getGeomPosition(), and myToDef.
Referenced by NIVissimNodeCluster::buildNBNode(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), and NIVissimNodeDef_Edges::searchAndSetConnections().
00225 { 00226 return myToDef.getGeomPosition(); 00227 }
| const IntVector & NIVissimConnection::getToLanes | ( | ) | const |
Definition at line 323 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getLanes(), and myToDef.
Referenced by buildEdgeConnections(), NIVissimEdge::checkUnconnectedLaneSpeeds(), NIVissimSingleTypeParser_VWunschentscheidungsdefinition::parse(), NIVissimEdge::propagateOwn(), NIVissimEdge::propagateSpeed(), and NIVissimEdge::setDistrictSpeed().
| SUMOReal NIVissimConnection::getToPosition | ( | ) | const |
Definition at line 212 of file NIVissimConnection.cpp.
References NIVissimExtendedEdgePoint::getPosition(), and myToDef.
Referenced by NIVissimConnectionCluster::getPositionForEdge(), and NIVissimEdge::connection_position_sorter::operator()().
00212 { 00213 return myToDef.getPosition(); 00214 }
| IntVector NIVissimAbstractEdge::getWithin | ( | const AbstractPoly & | p, | |
| SUMOReal | offset = 0.0 | |||
| ) | [static, inherited] |
Definition at line 147 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myDict, NIVissimAbstractEdge::myID, and NIVissimAbstractEdge::overlapsWith().
Referenced by NIVissimNodeDef_Poly::searchAndSetConnections().
00147 { 00148 IntVector ret; 00149 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00150 NIVissimAbstractEdge *e = (*i).second; 00151 if (e->overlapsWith(p, offset)) { 00152 ret.push_back(e->myID); 00153 } 00154 } 00155 return ret; 00156 }
| IntVector NIVissimConnection::getWithin | ( | const AbstractPoly & | poly | ) | [static] |
Definition at line 155 of file NIVissimConnection.cpp.
References myDict.
Referenced by buildNodeClusters().
00155 { 00156 IntVector ret; 00157 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00158 if ((*i).second->crosses(poly)) { 00159 ret.push_back((*i).second->myID); 00160 } 00161 } 00162 return ret; 00163 }
| bool NIVissimAbstractEdge::hasNodeCluster | ( | ) | const [inherited] |
Definition at line 166 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myNode.
00166 { 00167 return myNode!=-1; 00168 }
| void NIVissimBoundedClusterObject::inCluster | ( | int | id | ) | [inherited] |
Definition at line 61 of file NIVissimBoundedClusterObject.cpp.
References NIVissimBoundedClusterObject::myClusterID.
00061 { 00062 myClusterID = id; 00063 }
| bool NIVissimAbstractEdge::overlapsWith | ( | const AbstractPoly & | p, | |
| SUMOReal | offset = 0.0 | |||
| ) | const [inherited] |
Definition at line 160 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myGeom, and Position2DVector::overlapsWith().
Referenced by NIVissimAbstractEdge::getWithin().
00160 { 00161 return myGeom.overlapsWith(p, offset); 00162 }
| void NIVissimConnection::recheckLanes | ( | const NBEdge *const | fromEdge, | |
| const NBEdge *const | toEdge | |||
| ) | throw () |
Resets lane numbers if all lanes shall be used.
Calls "NIVissimExtendedEdgePoint::recheckLanes" for both used edges.
| [in] | The | built from-edge |
| [in] | The | built to-edge |
Definition at line 329 of file NIVissimConnection.cpp.
References myFromDef, myToDef, and NIVissimExtendedEdgePoint::recheckLanes().
Referenced by buildEdgeConnections().
00329 { 00330 myFromDef.recheckLanes(fromEdge); 00331 myToDef.recheckLanes(toEdge); 00332 }
| void NIVissimConnection::setNodeCluster | ( | int | nodeid | ) | [virtual] |
Implements NIVissimAbstractEdge.
Definition at line 231 of file NIVissimConnection.cpp.
References NIVissimAbstractEdge::myNode.
Referenced by NIVissimNodeDef_Poly::searchAndSetConnections(), and NIVissimNodeDef_Edges::searchAndSetConnections().
| void NIVissimAbstractEdge::splitAndAssignToNodes | ( | ) | [static, inherited] |
Definition at line 108 of file NIVissimAbstractEdge.cpp.
References NIVissimAbstractEdge::myDict, and NIVissimAbstractEdge::splitAssigning().
00108 { 00109 for (DictType::iterator i=myDict.begin(); i!=myDict.end(); i++) { 00110 NIVissimAbstractEdge *e = (*i).second; 00111 e->splitAssigning(); 00112 } 00113 }
| void NIVissimAbstractEdge::splitAssigning | ( | ) | [inherited] |
Definition at line 116 of file NIVissimAbstractEdge.cpp.
Referenced by NIVissimAbstractEdge::splitAndAssignToNodes().
Definition at line 125 of file NIVissimConnection.h.
Boundary* NIVissimBoundedClusterObject::myBoundary [protected, inherited] |
Definition at line 61 of file NIVissimBoundedClusterObject.h.
Referenced by buildNodeClusters(), NIVissimDisturbance::computeBounding(), computeBounding(), NIVissimBoundedClusterObject::crosses(), NIVissimBoundedClusterObject::getBoundary(), getBoundingBox(), and NIVissimBoundedClusterObject::~NIVissimBoundedClusterObject().
int NIVissimBoundedClusterObject::myClusterID [protected, inherited] |
Definition at line 62 of file NIVissimBoundedClusterObject.h.
Referenced by NIVissimBoundedClusterObject::clustered(), and NIVissimBoundedClusterObject::inCluster().
NIVissimConnection::DictType NIVissimConnection::myDict [static, private] |
Reimplemented from NIVissimAbstractEdge.
Definition at line 129 of file NIVissimConnection.h.
Referenced by buildNodeClusters(), dict_assignToEdges(), dict_buildNBEdgeConnections(), dictionary(), getForEdge(), and getWithin().
Direction NIVissimConnection::myDirection [private] |
Definition at line 122 of file NIVissimConnection.h.
IntVector NIVissimAbstractEdge::myDisturbances [protected, inherited] |
Definition at line 76 of file NIVissimAbstractEdge.h.
Referenced by NIVissimAbstractEdge::addDisturbance(), and NIVissimAbstractEdge::getDisturbances().
SUMOReal NIVissimConnection::myDXEinordnen [private] |
Definition at line 123 of file NIVissimConnection.h.
SUMOReal NIVissimConnection::myDXNothalt [private] |
Definition at line 123 of file NIVissimConnection.h.
Definition at line 121 of file NIVissimConnection.h.
Referenced by buildGeom(), computeBounding(), getFromEdgeID(), getFromGeomPosition(), getFromLanes(), getFromPosition(), and recheckLanes().
Position2DVector NIVissimAbstractEdge::myGeom [protected, inherited] |
Definition at line 75 of file NIVissimAbstractEdge.h.
Referenced by buildGeom(), NIVissimEdge::buildNBEdge(), NIVissimAbstractEdge::crossesAtPoint(), NIVissimAbstractEdge::crossesEdge(), NIVissimAbstractEdge::crossesEdgeAtPoint(), NIVissimEdge::getBegin2D(), NIVissimEdge::getEnd2D(), NIVissimEdge::getFromNode(), NIVissimAbstractEdge::getGeometry(), NIVissimAbstractEdge::getGeomPosition(), NIVissimEdge::getLength(), NIVissimEdge::getToNode(), NIVissimAbstractEdge::NIVissimAbstractEdge(), NIVissimAbstractEdge::overlapsWith(), and NIVissimEdge::resolveSameNode().
int NIVissimAbstractEdge::myID [protected, inherited] |
Definition at line 74 of file NIVissimAbstractEdge.h.
Referenced by NIVissimEdge::buildNBEdge(), NIVissimEdge::getFromNode(), NIVissimAbstractEdge::getID(), NIVissimEdge::getToNode(), NIVissimAbstractEdge::getWithin(), NIVissimEdge::NIVissimEdge(), NIVissimEdge::resolveSameNode(), and NIVissimEdge::setDistrictSpeed().
int NIVissimConnection::myMaxID [static, private] |
std::string NIVissimConnection::myName [private] |
Definition at line 120 of file NIVissimConnection.h.
int NIVissimAbstractEdge::myNode [protected, inherited] |
Definition at line 77 of file NIVissimAbstractEdge.h.
Referenced by NIVissimAbstractEdge::hasNodeCluster(), NIVissimEdge::setNodeCluster(), and setNodeCluster().
Definition at line 121 of file NIVissimConnection.h.
Referenced by buildGeom(), computeBounding(), getToEdgeID(), getToGeomPosition(), getToLanes(), getToPosition(), and recheckLanes().
SUMOReal NIVissimConnection::myZuschlag1 [private] |
Definition at line 124 of file NIVissimConnection.h.
SUMOReal NIVissimConnection::myZuschlag2 [private] |
Definition at line 124 of file NIVissimConnection.h.
1.5.6