Path: blob/main/src/netimport/vissim/tempstructs/NIVissimNodeCluster.h
169684 views
/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.3// This program and the accompanying materials are made available under the4// terms of the Eclipse Public License 2.0 which is available at5// https://www.eclipse.org/legal/epl-2.0/6// This Source Code may also be made available under the following Secondary7// Licenses when the conditions for such availability set forth in the Eclipse8// Public License 2.0 are satisfied: GNU General Public License, version 29// or later which is available at10// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html11// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later12/****************************************************************************/13/// @file NIVissimNodeCluster.h14/// @author Daniel Krajzewicz15/// @author Michael Behrisch16/// @date Sept 200217///18// -------------------19/****************************************************************************/20#pragma once21#include <config.h>2223#include <map>24#include <utils/geom/Position.h>252627// ===========================================================================28// class declarations29// ===========================================================================30class NBNode;31class NBNodeCont;32class NBEdgeCont;33class NBDistrictCont;343536// ===========================================================================37// class definitions38// ===========================================================================39/**40*41*/42class NIVissimNodeCluster {43public:44NIVissimNodeCluster(int id, int nodeid, int tlid,45const std::vector<int>& connectors,46const std::vector<int>& disturbances,47bool amEdgeSplitOnly);48~NIVissimNodeCluster();49int getID() const {50return myID;51}52void buildNBNode(NBNodeCont& nc);53bool recheckEdgeChanges();54NBNode* getNBNode() const;55Position getPos() const;56std::string getNodeName() const;575859public:60static bool dictionary(int id, NIVissimNodeCluster* o);61static int dictionary(int nodeid, int tlid, const std::vector<int>& connectors,62const std::vector<int>& disturbances, bool amEdgeSplitOnly);63static NIVissimNodeCluster* dictionary(int id);64static int contSize();65static void assignToEdges();66static void buildNBNodes(NBNodeCont& nc);67static void dict_recheckEdgeChanges();68static int getFromNode(int edgeid);69static int getToNode(int edgeid);70static void _debugOut(std::ostream& into);71static void dict_addDisturbances(NBDistrictCont& dc,72NBNodeCont& nc, NBEdgeCont& ec);73static void clearDict();74static void setCurrentVirtID(int id);757677private:7879int myID;80int myNodeID;81int myTLID;82std::vector<int> myConnectors;83std::vector<int> myDisturbances;84Position myPosition;85typedef std::map<int, NIVissimNodeCluster*> DictType;86static DictType myDict;87static int myCurrentID;88NBNode* myNBNode;89bool myAmEdgeSplit;9091};929394