/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2026 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 GUIMEInductLoop.h14/// @author Daniel Krajzewicz15/// @date Thu, 21.07.200516///17// The gui-version of the MEInductLoop18/****************************************************************************/19#pragma once20#include <config.h>2122#include <mesosim/MEInductLoop.h>23#include <utils/geom/Position.h>24#include <guisim/GUIDetectorWrapper.h>252627// ===========================================================================28// class declarations29// ===========================================================================30class GUILane;31class MESegment;323334// ===========================================================================35// class definitions36// ===========================================================================37/**38* @class GUIMEInductLoop39* The gui-version of the MSInductLoop.40* Allows the building of a wrapper (also declared herein) which draws the41* detector on the gl-canvas.42*/43class GUIMEInductLoop : public MEInductLoop {44public:45/// Construtor46GUIMEInductLoop(const std::string& id, MESegment* s,47double position,48const std::string name, const std::string& vTypes,49const std::string& nextEdges,50int detectPersons, bool show);5152/// Destructor53~GUIMEInductLoop();5455/** @brief Returns this detector's visualisation-wrapper56* @return The wrapper representing the detector57*/58virtual GUIDetectorWrapper* buildDetectorGUIRepresentation();596061public:62/**63* @class GUIMEInductLoop::MyWrapper64* A MSInductLoop-visualiser65*/66class MyWrapper : public GUIDetectorWrapper {67public:68/// Constructor69MyWrapper(GUIMEInductLoop& detector, double pos);7071/// Destructor72~MyWrapper();7374/// @name inherited from GUIGlObject75//@{7677/** @brief Returns an own parameter window78*79* @param[in] app The application needed to build the parameter window80* @param[in] parent The parent window needed to build the parameter window81* @return The built parameter window82* @see GUIGlObject::getParameterWindow83*/84GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent) override;8586/** @brief Draws the object87*88* @param[in] s Current visualization settings89* @see GUIGlObject::drawGL90*/91void drawGL(const GUIVisualizationSettings& s) const override;9293/// @brief return exaggeration associated with this GLObject94double getExaggeration(const GUIVisualizationSettings& s) const override;9596/** @brief Returns the boundary to which the view shall be centered in order to show the object97*98* @return The boundary the object is within99* @see GUIGlObject::getCenteringBoundary100*/101Boundary getCenteringBoundary() const override;102//@}103104/// Returns the detector itself105GUIMEInductLoop& getLoop();106107private:108/// The wrapped detector109GUIMEInductLoop& myDetector;110111/// The detector's boundary112Boundary myBoundary;113114/// The position in full-geometry mode115Position myFGPosition;116117/// The rotation in full-geometry mode118double myFGRotation;119120/// The position on the lane121double myPosition;122123private:124/// @brief Invalidated copy constructor.125MyWrapper(const MyWrapper&);126127/// @brief Invalidated assignment operator.128MyWrapper& operator=(const MyWrapper&);129130};131132};133134135