Marble

GeoDataBuilding.h
1// SPDX-License-Identifier: LGPL-2.1-or-later
2//
3// SPDX-FileCopyrightText: 2017 Mohammed Nafees <nafees.technocool@gmail.com>
4//
5
6#ifndef MARBLE_GEODATABUILDING_H
7#define MARBLE_GEODATABUILDING_H
8
9#include <QList>
10
11#include "GeoDataCoordinates.h"
12#include "GeoDataGeometry.h"
13
14#include "geodata_export.h"
15
16namespace Marble
17{
18class GeoDataBuildingPrivate;
19
20/*!
21 \class GeoDataBuilding
22 \brief Contains important information about a building and its floors (levels)
23
24 GeoDataBuilding holds information such as minimum floor, maximum floor,
25 floor data and their respective MultiGeometry and other possible metadata such
26 as the total height of the building, type etc.
27 */
28
29class GEODATA_EXPORT GeoDataBuilding : public GeoDataGeometry
30{
31public:
32 explicit GeoDataBuilding();
33 explicit GeoDataBuilding(const GeoDataGeometry &other);
34 explicit GeoDataBuilding(const GeoDataBuilding &other);
35
36 struct NamedEntry {
38 QString label;
39 };
40
41 GeoDataBuilding &operator=(const GeoDataBuilding &other);
42
43 const char *nodeType() const override;
44
45 EnumGeometryId geometryId() const override;
46
47 GeoDataGeometry *copy() const override;
48
49 static double parseBuildingHeight(const QString &buildingHeight);
50
51 /*!
52 Destroys the GeoDataBuilding
53*/
54 ~GeoDataBuilding() override;
55
56 /*!
57 @return the height of the building
58 */
59 double height() const;
60
61 /*!
62 Sets the height of the building
63 @param height
64 */
65 void setHeight(double height);
66
67 /*!
68 @return the minimum level
69 */
70 int minLevel() const;
71
72 /*!
73 Sets the minimum level of the building
74 @param minLevel
75 */
76 void setMinLevel(int minLevel);
77
78 /*!
79 @return the maximum level of the building
80 */
81 int maxLevel() const;
82
83 /*!
84 Sets the maximum level of the building
85 @param maxLevel
86 */
87 void setMaxLevel(int maxLevel);
88
89 /*!
90 @return the non existent levels in the building
91 */
92 QList<int> nonExistentLevels() const;
93
94 /*!
95 Sets the non existent levels of the building
96 @param nonExistentLevels
97 */
98 void setNonExistentLevels(const QList<int> &nonExistentLevels);
99
100 /*!
101 @return the multigeometry associated with the building
102 */
103 GeoDataMultiGeometry *multiGeometry() const;
104
105 /*!
106 @return the latlonaltbox for the contained multigeometry
107 */
108 const GeoDataLatLonAltBox &latLonAltBox() const override;
109
110 /*!
111 @return the name of the building
112 */
113 QString name() const;
114
115 /*!
116 Sets the name of the building
117 @param name
118 */
119 void setName(const QString &name);
120
121 QList<NamedEntry> entries() const;
122
123 void setEntries(const QList<NamedEntry> &entries);
124
125private:
126 GeoDataBuildingPrivate *const d;
127};
128
129}
130
131#endif
Contains important information about a building and its floors (levels)
A 3d point representation.
A base class for all geodata features.
A class that defines a 3D bounding box for geographic data.
A class that can contain other GeoDataGeometry objects.
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Dec 20 2024 11:52:12 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.