LCOV - code coverage report
Current view: top level - src/microsim - MSInternalJunction.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 0.0 % 4 0
Test Date: 2024-11-22 15:46:21 Functions: 0.0 % 2 0

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
       4              : // This program and the accompanying materials are made available under the
       5              : // terms of the Eclipse Public License 2.0 which is available at
       6              : // https://www.eclipse.org/legal/epl-2.0/
       7              : // This Source Code may also be made available under the following Secondary
       8              : // Licenses when the conditions for such availability set forth in the Eclipse
       9              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10              : // or later which is available at
      11              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13              : /****************************************************************************/
      14              : /// @file    MSInternalJunction.h
      15              : /// @author  Christian Roessel
      16              : /// @author  Daniel Krajzewicz
      17              : /// @author  Michael Behrisch
      18              : /// @date    Wed, 12 Dez 2001
      19              : ///
      20              : // junction.
      21              : /****************************************************************************/
      22              : #pragma once
      23              : #include <config.h>
      24              : 
      25              : #include <utils/common/StdDefs.h>
      26              : #include "MSLogicJunction.h"
      27              : #include <bitset>
      28              : #include <vector>
      29              : #include <string>
      30              : 
      31              : 
      32              : // ===========================================================================
      33              : // class declarations
      34              : // ===========================================================================
      35              : class MSLane;
      36              : class MSJunctionLogic;
      37              : class MSLink;
      38              : 
      39              : 
      40              : // ===========================================================================
      41              : // class definitions
      42              : // ===========================================================================
      43              : /**
      44              :  * @class MSInternalJunction
      45              :  * A class which realises junctions that do regard any kind of a right-of-way.
      46              :  * The rules for the right-of-way themselves are stored within the associated
      47              :  * "MSJunctionLogic" - structure.
      48              :  */
      49              : class MSInternalJunction : public MSLogicJunction {
      50              : public:
      51              :     /** @brief Constructor
      52              :      * @param[in] id The id of the junction
      53              :      * @param[in] position The position of the junction
      54              :      * @param[in] shape The shape of the junction
      55              :      * @param[in] incoming The incoming lanes
      56              :      * @param[in] internal The internal lanes
      57              :      */
      58              :     MSInternalJunction(const std::string& id, SumoXMLNodeType type, const Position& position,
      59              :                        const PositionVector& shape,
      60              :                        std::vector<MSLane*> incoming, std::vector<MSLane*> internal);
      61              : 
      62              :     /// Destructor.
      63              :     virtual ~MSInternalJunction();
      64              : 
      65              : 
      66              :     void postloadInit();
      67              : 
      68            0 :     const std::vector<MSLink*>& getFoeLinks(const MSLink* const srcLink) const {
      69              :         UNUSED_PARAMETER(srcLink);
      70            0 :         return myInternalLinkFoes;
      71              :     }
      72              : 
      73            0 :     const std::vector<MSLane*>& getFoeInternalLanes(const MSLink* const srcLink) const {
      74              :         UNUSED_PARAMETER(srcLink);
      75            0 :         return myInternalLaneFoes;
      76              :     }
      77              : 
      78              : private:
      79              : 
      80              :     bool indirectBicycleTurn(const MSLane* specialLane, const MSLink* thisLink, const MSLane* foeFirstPart, const MSLink* foeLink) const;
      81              : 
      82              :     std::vector<MSLink*> myInternalLinkFoes;
      83              :     std::vector<MSLane*> myInternalLaneFoes;
      84              : 
      85              :     /// @brief Invalidated copy constructor.
      86              :     MSInternalJunction(const MSInternalJunction&);
      87              : 
      88              :     /// @brief Invalidated assignment operator.
      89              :     MSInternalJunction& operator=(const MSInternalJunction&);
      90              : 
      91              : };
        

Generated by: LCOV version 2.0-1