LCOV - code coverage report
Current view: top level - src/libsumo - Person.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 0.0 % 1 0
Test Date: 2025-05-22 15:35:27 Functions: - 0 0

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2012-2025 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    Person.h
      15              : /// @author  Leonhard Luecken
      16              : /// @date    15.09.2017
      17              : ///
      18              : // C++ TraCI client API implementation
      19              : /****************************************************************************/
      20              : #pragma once
      21              : #include <vector>
      22              : #include <libsumo/TraCIDefs.h>
      23              : #include <libsumo/VehicleType.h>
      24              : 
      25              : 
      26              : // ===========================================================================
      27              : // class declarations
      28              : // ===========================================================================
      29              : #ifndef LIBTRACI
      30              : class MSPerson;
      31              : class MSStage;
      32              : struct Reservation;
      33              : class PositionVector;
      34              : #endif
      35              : 
      36              : 
      37              : // ===========================================================================
      38              : // class definitions
      39              : // ===========================================================================
      40              : /**
      41              :  * @class Person
      42              :  * @brief C++ TraCI client API implementation
      43              :  */
      44              : namespace LIBSUMO_NAMESPACE {
      45              : class Person {
      46              : public:
      47              :     static double getSpeed(const std::string& personID);
      48              :     static libsumo::TraCIPosition getPosition(const std::string& personID, const bool includeZ = false);
      49              :     static libsumo::TraCIPosition getPosition3D(const std::string& personID);
      50              :     static std::string getRoadID(const std::string& personID);
      51              :     static std::string getLaneID(const std::string& personID);
      52              :     static std::string getTypeID(const std::string& personID);
      53              :     static double getWaitingTime(const std::string& personID);
      54              :     static std::string getNextEdge(const std::string& personID);
      55              :     static std::string getVehicle(const std::string& personID);
      56              :     static int getRemainingStages(const std::string& personID);
      57              :     static libsumo::TraCIStage getStage(const std::string& personID, int nextStageIndex = 0);
      58              :     static std::vector<std::string> getEdges(const std::string& personID, int nextStageIndex = 0);
      59              :     static double getAngle(const std::string& personID);
      60              :     static double getSlope(const std::string& personID);
      61              :     static double getLanePosition(const std::string& personID);
      62              :     static double getWalkingDistance(const std::string& personID, const std::string& edgeID, double pos, int laneIndex = 0);
      63              :     static double getWalkingDistance2D(const std::string& personID, double x, double y);
      64              : 
      65              :     static std::vector<libsumo::TraCIReservation> getTaxiReservations(int onlyNew = 0);
      66              :     static std::string splitTaxiReservation(std::string reservationID, const std::vector<std::string>& personIDs);
      67              : 
      68              :     LIBSUMO_ID_PARAMETER_API
      69              :     LIBSUMO_VEHICLE_TYPE_GETTER
      70              : 
      71              :     static void add(const std::string& personID, const std::string& edgeID, double pos, double depart = libsumo::DEPARTFLAG_NOW, const std::string typeID = "DEFAULT_PEDTYPE");
      72              :     static void appendStage(const std::string& personID, const libsumo::TraCIStage& stage);
      73              :     static void replaceStage(const std::string& personID, const int stageIndex, const libsumo::TraCIStage& stage);
      74              :     static void appendWaitingStage(const std::string& personID, double duration, const std::string& description = "waiting", const std::string& stopID = "");
      75              :     static void appendWalkingStage(const std::string& personID, const std::vector<std::string>& edges, double arrivalPos, double duration = -1, double speed = -1, const std::string& stopID = "");
      76              :     static void appendDrivingStage(const std::string& personID, const std::string& toEdge, const std::string& lines, const std::string& stopID = "");
      77              :     static void removeStage(const std::string& personID, int nextStageIndex);
      78              :     static void rerouteTraveltime(const std::string& personID);
      79              :     static void moveTo(const std::string& personID, const std::string& laneID, double pos, double posLat = libsumo::INVALID_DOUBLE_VALUE);
      80              :     static void moveToXY(const std::string& personID, const std::string& edgeID, const double x, const double y, double angle = libsumo::INVALID_DOUBLE_VALUE, const int keepRoute = 1, double matchThreshold = 100);
      81              :     static void remove(const std::string& personID, char reason = libsumo::REMOVE_VAPORIZED);
      82              :     static void setSpeed(const std::string& personID, double speed);
      83              :     static void setType(const std::string& personID, const std::string& typeID);
      84              : 
      85              :     LIBSUMO_VEHICLE_TYPE_SETTER
      86              : 
      87            0 :     LIBSUMO_SUBSCRIPTION_API
      88              : 
      89              : #ifndef LIBTRACI
      90              : #ifndef SWIG
      91              :     /** @brief Saves the shape of the requested object in the given container
      92              :      *  @param id The id of the poi to retrieve
      93              :      *  @param shape The container to fill
      94              :      */
      95              :     static void storeShape(const std::string& id, PositionVector& shape);
      96              : 
      97              :     static std::shared_ptr<VariableWrapper> makeWrapper();
      98              : 
      99              :     static bool handleVariable(const std::string& objID, const int variable, VariableWrapper* wrapper, tcpip::Storage* paramData);
     100              : 
     101              : private:
     102              :     static MSPerson* getPerson(const std::string& id);
     103              :     static MSStage* convertTraCIStage(const TraCIStage& stage, const std::string personID);
     104              :     static bool filterReservation(int stateFilter, const Reservation* res, std::vector<libsumo::TraCIReservation>& reservations);
     105              : 
     106              :     /// @brief clase for CW Sorter
     107              :     class reservation_by_id_sorter {
     108              :     public:
     109              :         /// @brief constructor
     110              :         reservation_by_id_sorter() {};
     111              : 
     112              :         /// @brief comparing operation for sort
     113              :         int operator()(const TraCIReservation& r1, const TraCIReservation& r2) const;
     114              :     };
     115              : 
     116              : private:
     117              :     static SubscriptionResults mySubscriptionResults;
     118              :     static ContextSubscriptionResults myContextSubscriptionResults;
     119              : #endif
     120              : #endif
     121              : 
     122              : private:
     123              :     /// @brief invalidated standard constructor
     124              :     Person() = delete;
     125              : 
     126              : };
     127              : 
     128              : 
     129              : }
        

Generated by: LCOV version 2.0-1