47 #ifdef CHECK_MEMORY_LEAKS 49 #endif // CHECK_MEMORY_LEAKS 63 const std::vector<int>& connectors,
64 const std::vector<int>& disturbances,
66 : myID(id), myNodeID(nodeid), myTLID(tlid),
67 myConnectors(connectors), myDisturbances(disturbances),
68 myNBNode(0), myAmEdgeSplit(amEdgeSplitOnly) {}
78 DictType::iterator i =
myDict.find(
id);
90 const std::vector<int>& connectors,
91 const std::vector<int>& disturbances,
92 bool amEdgeSplitOnly) {
98 nodeid, tlid, connectors, disturbances, amEdgeSplitOnly);
106 DictType::iterator i =
myDict.find(
id);
117 return (
int)
myDict.size();
125 return toString<int>(
myID);
127 return toString<int>(
myID) +
"LSA " + toString<int>(
myTLID);
140 std::vector<int>::iterator i, j;
162 if (crossings.size() == 0) {
194 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
195 (*i).second->buildNBNode(nc);
210 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
216 if (ret != -1 && (*i).first != ret) {
232 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
238 if (ret != -1 && ret != (*i).first) {
254 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
256 into << std::endl << c->
myID <<
":";
264 into <<
"=======================" << std::endl;
284 for (DictType::iterator i =
myDict.begin(); i !=
myDict.end(); i++) {
285 const std::vector<int>& disturbances = (*i).second->myDisturbances;
287 for (std::vector<int>::const_iterator j = disturbances.begin(); j != disturbances.end(); j++) {
289 disturbance->
addToNode(node, dc, nc, ec);
298 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