Marble

KmlCameraTagHandler.cpp
1 
2 // SPDX-License-Identifier: LGPL-2.1-or-later
3 //
4 // SPDX-FileCopyrightText: 2013 Mayank Madan <[email protected]>
5 //
6 #include "KmlCameraTagHandler.h"
7 
8 #include "MarbleDebug.h"
9 
10 #include "KmlElementDictionary.h"
11 #include "KmlObjectTagHandler.h"
12 #include "GeoDataCamera.h"
13 #include "GeoParser.h"
14 #include "GeoDataFeature.h"
15 #include "GeoDataFlyTo.h"
16 
17 namespace Marble
18 {
19 namespace kml
20 {
21 
22 KML_DEFINE_TAG_HANDLER( Camera )
23 
24 GeoNode *KmlCameraTagHandler::parse( GeoParser & parser ) const
25 {
26  Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(kmlTag_Camera)));
27 
28  GeoDataCamera* camera = nullptr;
29  GeoStackItem parentItem = parser.parentElement();
30 
31  if ( parentItem.is<GeoDataFeature>() ) {
32  camera = new GeoDataCamera;
33  KmlObjectTagHandler::parseIdentifiers( parser, camera );
34  parentItem.nodeAs<GeoDataFeature>()->setAbstractView( camera );
35  }
36 
37  if ( parentItem.is<GeoDataFlyTo>() ) {
38  camera = new GeoDataCamera;
39  KmlObjectTagHandler::parseIdentifiers( parser, camera );
40  parentItem.nodeAs<GeoDataFlyTo>()->setView( camera );
41  }
42 
43  return camera;
44 }
45 
46 }
47 
48 }
Q_SCRIPTABLE QString camera()
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Thu Sep 21 2023 04:12:27 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.