KOSMIndoorMap

routingprofile.h
1/*
2 SPDX-FileCopyrightText: 2024 Volker Krause <vkrause@kde.org>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6#ifndef KOSMINDOORROUTING_ROUTINGPROFILE_H
7#define KOSMINDOORROUTING_ROUTINGPROFILE_H
8
9#include "kosmindoorrouting_export.h"
10#include "routingarea.h"
11
12#include <QExplicitlySharedDataPointer>
13#include <qobjectdefs.h>
14
15namespace KOSMIndoorRouting {
16
17class RoutingProfilePrivate;
18
19/** Routing profile. That is, cost factors and area types to use/avoid
20 * for a RoutingJob run.
21 */
22class KOSMINDOORROUTING_EXPORT RoutingProfile
23{
24 Q_GADGET
25 Q_PROPERTY(KOSMIndoorRouting::AreaFlags flags READ flags WRITE setFlags)
26public:
27 explicit RoutingProfile();
31 RoutingProfile& operator=(const RoutingProfile&);
32 RoutingProfile& operator=(RoutingProfile&&) noexcept;
33
34 [[nodiscard]] bool operator==(const RoutingProfile &other) const;
35
36 /** Area types that should be included in the search. */
37 [[nodiscard]] AreaFlags flags() const;
38 void setFlags(AreaFlags flags);
39
40 /** Cost factors (>= 1.0) for each area type that is included in the search. */
41 Q_INVOKABLE [[nodiscard]] float cost(KOSMIndoorRouting::AreaType area) const;
42 Q_INVOKABLE void setCost(KOSMIndoorRouting::AreaType area, float cost);
43
44private:
46};
47}
48
49#endif
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:17:55 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.