59 const std::vector<int>& connectors,
60 const std::vector<int>& disturbances,
62 : myID(id), myNodeID(nodeid), myTLID(tlid),
63 myConnectors(connectors), myDisturbances(disturbances),
64 myNBNode(0), myAmEdgeSplit(amEdgeSplitOnly) {}
74 DictType::iterator i =
myDict.find(
id);
86 const std::vector<int>& connectors,
87 const std::vector<int>& disturbances,
88 bool amEdgeSplitOnly) {
94 nodeid, tlid, connectors, disturbances, amEdgeSplitOnly);
102 DictType::iterator i =
myDict.find(
id);
113 return (
int)
myDict.size();
121 return toString<int>(
myID);
123 return toString<int>(
myID) +
"LSA " + toString<int>(
myTLID);
136 std::vector<int>::iterator i, j;
158 if (crossings.size() == 0) {
190 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
191 (*i).second->buildNBNode(nc);
206 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
212 if (ret != -1 && (*i).first != ret) {
228 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
234 if (ret != -1 && ret != (*i).first) {
250 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
252 into << std::endl << c->
myID <<
":";
260 into <<
"=======================" << std::endl;
280 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
281 const std::vector<int>& disturbances = (*i).second->myDisturbances;
283 for (std::vector<int>::const_iterator j = disturbances.begin(); j != disturbances.end(); j++) {
285 disturbance->
addToNode(node, dc, nc, ec);
294 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