Path: blob/main/src/netimport/vissim/tempstructs/NIVissimNodeDef_Edges.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 NIVissimNodeDef_Edges.h14/// @author Daniel Krajzewicz15/// @date Sept 200216///17// -------------------18/****************************************************************************/19#pragma once20#include <config.h>212223#include <string>24#include <map>25#include "NIVissimNodeParticipatingEdgeVector.h"26#include "NIVissimExtendedEdgePoint.h"27#include "NIVissimNodeDef.h"2829class NIVissimNodeDef_Edges :30public NIVissimNodeDef {31public:32NIVissimNodeDef_Edges(int id, const std::string& name,33const NIVissimNodeParticipatingEdgeVector& edges);34virtual ~NIVissimNodeDef_Edges();35static bool dictionary(int id, const std::string& name,36const NIVissimNodeParticipatingEdgeVector& edges);37// virtual void computeBounding();38// virtual void searchAndSetConnections();39virtual double getEdgePosition(int edgeid) const;4041/**42*43*/44class id_matches {45public:46explicit id_matches(int id) : myEdgeID(id) { }47bool operator()(NIVissimNodeParticipatingEdge* e) {48return e->getID() == myEdgeID;49}50private:51int myEdgeID;52};5354class lying_within_match {55public:56explicit lying_within_match(NIVissimNodeParticipatingEdge* e) : myEdge(e) { }57bool operator()(NIVissimExtendedEdgePoint* e) {58return e->getEdgeID() == myEdge->getID() &&59myEdge->positionLiesWithin(e->getPosition());60}61private:62NIVissimNodeParticipatingEdge* myEdge;63};6465protected:66NIVissimNodeParticipatingEdgeVector myEdges;67};686970