NIVissimConnection Class Reference

#include <NIVissimConnection.h>

Inheritance diagram for NIVissimConnection:

NIVissimBoundedClusterObject NIVissimAbstractEdge

Detailed Description

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 BoundarygetBoundary () const
const BoundarygetBoundingBox () const
const IntVectorgetDisturbances () const
int getFromEdgeID () const
Position2D getFromGeomPosition () const
const IntVectorgetFromLanes () const
SUMOReal getFromPosition () const
const Position2DVectorgetGeometry () const
Position2D getGeomPosition (SUMOReal pos) const
int getID () const
int getToEdgeID () const
Position2D getToGeomPosition () const
const IntVectorgetToLanes () 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 NIVissimConnectiondictionary (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

BoundarymyBoundary
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

Member Typedef Documentation

typedef std::set<NIVissimBoundedClusterObject*> NIVissimBoundedClusterObject::ContType [protected, inherited]

Definition at line 59 of file NIVissimBoundedClusterObject.h.

typedef std::map<int, NIVissimConnection*> NIVissimConnection::DictType [private]

Reimplemented from NIVissimAbstractEdge.

Definition at line 128 of file NIVissimConnection.h.


Member Enumeration Documentation

Enumerator:
NIVC_DIR_RIGHT 
NIVC_DIR_LEFT 
NIVC_DIR_ALL 

Definition at line 56 of file NIVissimConnection.h.

00056                    {
00057         NIVC_DIR_RIGHT,
00058         NIVC_DIR_LEFT,
00059         NIVC_DIR_ALL
00060     };


Constructor & Destructor Documentation

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 }


Member Function Documentation

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]

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]

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]

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]

Definition at line 115 of file NIVissimConnection.cpp.

References myDict.

00115                                                             {
00116     DictType::iterator i=myDict.find(id);
00117     if (i==myDict.end()) {
00118         myDict[id] = o;
00119         return true;
00120     }
00121     return false;
00122 }

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 }

IntVector NIVissimConnection::getForEdge ( int  edgeid,
bool  omitNodeAssigned = true 
) [static]

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

Position2D NIVissimConnection::getFromGeomPosition (  )  const

const IntVector & NIVissimConnection::getFromLanes (  )  const

Definition at line 317 of file NIVissimConnection.cpp.

References NIVissimExtendedEdgePoint::getLanes(), and myFromDef.

Referenced by buildEdgeConnections(), and NIVissimEdge::getOutgoingConnected().

00317                                        {
00318     return myFromDef.getLanes();
00319 }

SUMOReal NIVissimConnection::getFromPosition (  )  const

const Position2DVector & NIVissimAbstractEdge::getGeometry (  )  const [inherited]

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]

int NIVissimConnection::getMaxID (  )  [static]

Definition at line 353 of file NIVissimConnection.cpp.

References myMaxID.

00353                              {
00354     return myMaxID;
00355 }

int NIVissimConnection::getToEdgeID (  )  const

Position2D NIVissimConnection::getToGeomPosition (  )  const

const IntVector & NIVissimConnection::getToLanes (  )  const

SUMOReal NIVissimConnection::getToPosition (  )  const

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.

Parameters:
[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().

00231                                              {
00232     assert(myNode==-1);
00233     myNode = nodeid;
00234 }

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().

00116 {}


Field Documentation

Definition at line 125 of file NIVissimConnection.h.

Definition at line 126 of file NIVissimConnection.h.

Referenced by ~NIVissimConnection().

int NIVissimBoundedClusterObject::myClusterID [protected, inherited]

Definition at line 122 of file NIVissimConnection.h.

Definition at line 123 of file NIVissimConnection.h.

SUMOReal NIVissimConnection::myDXNothalt [private]

Definition at line 123 of file NIVissimConnection.h.

int NIVissimAbstractEdge::myID [protected, inherited]

int NIVissimConnection::myMaxID [static, private]

Definition at line 130 of file NIVissimConnection.h.

Referenced by dictionary(), and getMaxID().

std::string NIVissimConnection::myName [private]

Definition at line 120 of file NIVissimConnection.h.

int NIVissimAbstractEdge::myNode [protected, inherited]

SUMOReal NIVissimConnection::myZuschlag1 [private]

Definition at line 124 of file NIVissimConnection.h.

SUMOReal NIVissimConnection::myZuschlag2 [private]

Definition at line 124 of file NIVissimConnection.h.


The documentation for this class was generated from the following files:

Generated on Wed May 5 00:06:53 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6