/****************************************************************************/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 MSNoLogicJunction.h14/// @author Christian Roessel15/// @author Daniel Krajzewicz16/// @author Michael Behrisch17/// @author Jakob Erdmann18/// @date Wed, 12 Dez 200119///20// logic, e.g. for exits.21/****************************************************************************/22#pragma once23#include <config.h>2425#include <string>26#include <vector>27#include <bitset>28#include "MSJunction.h"2930// ===========================================================================31// class declarations32// ===========================================================================33class MSLane;343536// ===========================================================================37// class definitions38// ===========================================================================39/**40* @class MSNoLogicJunction41* This junctions let all vehicles past through so they only should be used on42* junctions where incoming vehicles are no foes to each other (may drive43* simultaneously).44*/45class MSNoLogicJunction : public MSJunction {46public:47/// Destructor.48virtual ~MSNoLogicJunction();4950/** @brief Constructor51* @param[in] id The id of the junction52* @param[in] position The position of the junction53* @param[in] shape The shape of the junction54* @param[in] incoming The incoming lanes55* @param[in] internal The internal lanes56*/57MSNoLogicJunction(const std::string& id, SumoXMLNodeType type, const Position& position,58const PositionVector& shape,59const std::string& name,60std::vector<MSLane*> incoming,61std::vector<MSLane*> internal);6263/** Initialises the junction after the net was completely loaded */64void postloadInit();6566/** @brief Returns all internal lanes on the junction67*/68virtual const std::vector<MSLane*> getInternalLanes() const;6970private:71/** Lanes incoming to the junction */72std::vector<MSLane*> myIncomingLanes;7374/** The junctions internal lanes */75std::vector<MSLane*> myInternalLanes;7677private:78/// @brief Invalidated copy constructor.79MSNoLogicJunction(const MSNoLogicJunction&);8081/// @brief Invalidated assignment operator.82MSNoLogicJunction& operator=(const MSNoLogicJunction&);8384};858687