/****************************************************************************/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 MSLogicJunction.h14/// @author Christian Roessel15/// @author Daniel Krajzewicz16/// @author Michael Behrisch17/// @author Jakob Erdmann18/// @date Wed, 12 Dez 200119///20// with one ore more logics.21/****************************************************************************/22#pragma once23#include <config.h>2425#include "MSJunction.h"26#include <utils/common/SUMOTime.h>27#include <utils/common/StdDefs.h>28#include <bitset>29#include <vector>303132// ===========================================================================33// class declarations34// ===========================================================================35class MSLane;363738// ===========================================================================39// class definitions40// ===========================================================================41/**42* @class MSLogicJunction43* A junction which may not let all vehicles through, but must perform any44* kind of an operation to determine which cars are allowed to drive in this45* step.46*/47class MSLogicJunction : public MSJunction {48public:495051/// Destructor.52virtual ~MSLogicJunction();5354/** @brief Container for link response and foes */55typedef std::bitset<SUMO_MAX_CONNECTIONS> LinkBits;5657/// initialises the junction after the whole net has been loaded58virtual void postloadInit();5960/** @brief Returns all internal lanes on the junction61*/62const std::vector<MSLane*> getInternalLanes() const;6364protected:65/** @brief Constructor66* @param[in] id The id of the junction67* @param[in] id The type of the junction68* @param[in] position The position of the junction69* @param[in] shape The shape of the junction70* @param[in] incoming The incoming lanes71* @param[in] internal The internal lanes72*/73MSLogicJunction(const std::string& id,74SumoXMLNodeType type,75const Position& position,76const PositionVector& shape,77const std::string& name,78std::vector<MSLane*> incoming,79std::vector<MSLane*> internal80);8182protected:83/// list of incoming lanes84std::vector<MSLane*> myIncomingLanes;8586/// list of internal lanes87std::vector<MSLane*> myInternalLanes;8889private:90/// @brief Invalidated copy constructor.91MSLogicJunction(const MSLogicJunction&);9293/// @brief Invalidated assignment operator.94MSLogicJunction& operator=(const MSLogicJunction&);9596};979899