58 const std::vector<int>& connectors,
59 const std::vector<int>& disturbances,
61 : myID(id), myNodeID(nodeid), myTLID(tlid),
62 myConnectors(connectors), myDisturbances(disturbances),
63 myNBNode(0), myAmEdgeSplit(amEdgeSplitOnly) {}
73 DictType::iterator i =
myDict.find(
id);
85 const std::vector<int>& connectors,
86 const std::vector<int>& disturbances,
87 bool amEdgeSplitOnly) {
93 nodeid, tlid, connectors, disturbances, amEdgeSplitOnly);
101 DictType::iterator i =
myDict.find(
id);
112 return (
int)
myDict.size();
120 return toString<int>(
myID);
122 return toString<int>(
myID) +
"LSA " + toString<int>(
myTLID);
135 std::vector<int>::iterator i, j;
157 if (crossings.size() == 0) {
189 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
190 (*i).second->buildNBNode(nc);
205 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
211 if (ret != -1 && (*i).first != ret) {
227 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
233 if (ret != -1 && ret != (*i).first) {
249 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
251 into << std::endl << c->
myID <<
":";
259 into <<
"=======================" << std::endl;
279 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
280 const std::vector<int>& disturbances = (*i).second->myDisturbances;
282 for (std::vector<int>::const_iterator j = disturbances.begin(); j != disturbances.end(); j++) {
284 disturbance->
addToNode(node, dc, nc, ec);
293 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
static int getFromNode(int edgeid)
static void dict_recheckEdgeChanges()
static bool dictionary(int id, NIVissimAbstractEdge *e)
NIVissimNodeCluster(int id, int nodeid, int tlid, const std::vector< int > &connectors, const std::vector< int > &disturbances, bool amEdgeSplitOnly)
A container for districts.
static bool dictionary(const std::string &name, const NIVissimExtendedEdgePoint &edge, const NIVissimExtendedEdgePoint &by)
bool addToNode(NBNode *node, NBDistrictCont &dc, NBNodeCont &nc, NBEdgeCont &ec)
static bool dictionary(int id, NIVissimNodeCluster *o)
static bool dictionary(int id, NIVissimConnection *o)
Position getToGeomPosition() const
bool crossesEdge(NIVissimAbstractEdge *c) const
static void setCurrentVirtID(int id)
static void dict_addDisturbances(NBDistrictCont &dc, NBNodeCont &nc, NBEdgeCont &ec)
A point in 2D or 3D with translation and scaling methods.
virtual void buildGeom()=0
Storage for edges, including some functionality operating on multiple edges.
std::map< int, NIVissimNodeCluster * > DictType
static int getToNode(int edgeid)
static void _debugOut(std::ostream &into)
std::string getNodeName() const
std::vector< int > myConnectors
bool insert(const std::string &id, const Position &position, NBDistrict *district=0)
Inserts a node into the map.
static void buildNBNodes(NBNodeCont &nc)
Represents a single node (junction) during network building.
Position crossesEdgeAtPoint(NIVissimAbstractEdge *c) const
void buildNBNode(NBNodeCont &nc)
void push_back_noDoublePos(const Position &p)
insert in back a non double position
NBNode * retrieve(const std::string &id) const
Returns the node with the given name.
Container for nodes during the netbuilding process.
Position getPolygonCenter() const
Returns the arithmetic of all corner points.
Position getFromGeomPosition() const
static void reportRefused()
NBNode * getNBNode() const
int getFromEdgeID() const