1 /****************************************************************************/ 2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo 3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others. 4 // This program and the accompanying materials 5 // are made available under the terms of the Eclipse Public License v2.0 6 // which accompanies this distribution, and is available at 7 // http://www.eclipse.org/legal/epl-v20.html 8 // SPDX-License-Identifier: EPL-2.0 9 /****************************************************************************/ 10 /// @file MSNoLogicJunction.h 11 /// @author Christian Roessel 12 /// @author Daniel Krajzewicz 13 /// @author Michael Behrisch 14 /// @author Jakob Erdmann 15 /// @date Wed, 12 Dez 2001 16 /// @version $Id$ 17 /// 18 // logic, e.g. for exits. 19 /****************************************************************************/ 20 #ifndef MSNoLogicJunction_h 21 #define MSNoLogicJunction_h 22 23 24 // =========================================================================== 25 // included modules 26 // =========================================================================== 27 #include <config.h> 28 29 #include <string> 30 #include <vector> 31 #include <bitset> 32 #include "MSJunction.h" 33 34 // =========================================================================== 35 // class declarations 36 // =========================================================================== 37 class MSLane; 38 39 40 // =========================================================================== 41 // class definitions 42 // =========================================================================== 43 /** 44 * @class MSNoLogicJunction 45 * This junctions let all vehicles past through so they only should be used on 46 * junctions where incoming vehicles are no foes to each other (may drive 47 * simultaneously). 48 */ 49 class MSNoLogicJunction : public MSJunction { 50 public: 51 /// Destructor. 52 virtual ~MSNoLogicJunction(); 53 54 /** @brief Constructor 55 * @param[in] id The id of the junction 56 * @param[in] position The position of the junction 57 * @param[in] shape The shape of the junction 58 * @param[in] incoming The incoming lanes 59 * @param[in] internal The internal lanes 60 */ 61 MSNoLogicJunction(const std::string& id, SumoXMLNodeType type, const Position& position, 62 const PositionVector& shape, 63 std::vector<MSLane*> incoming, 64 std::vector<MSLane*> internal); 65 66 /** Initialises the junction after the net was completely loaded */ 67 void postloadInit(); 68 69 /** @brief Returns all internal lanes on the junction 70 */ 71 virtual const std::vector<MSLane*> getInternalLanes() const; 72 73 private: 74 /** Lanes incoming to the junction */ 75 std::vector<MSLane*> myIncomingLanes; 76 77 /** The junctions internal lanes */ 78 std::vector<MSLane*> myInternalLanes; 79 80 private: 81 /// @brief Invalidated copy constructor. 82 MSNoLogicJunction(const MSNoLogicJunction&); 83 84 /// @brief Invalidated assignment operator. 85 MSNoLogicJunction& operator=(const MSNoLogicJunction&); 86 87 }; 88 89 90 #endif 91 92 /****************************************************************************/ 93 94