Marble

KmlTessellateTagHandler.cpp
1 /*
2  SPDX-FileCopyrightText: 2008 Patrick Spendrin <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "KmlTessellateTagHandler.h"
8 
9 #include "MarbleDebug.h"
10 
11 #include "KmlElementDictionary.h"
12 
13 #include "GeoDataLinearRing.h"
14 #include "GeoDataPolygon.h"
15 #include "GeoDataGeometry.h"
16 #include "GeoDataPoint.h"
17 
18 #include "GeoParser.h"
19 
20 namespace Marble
21 {
22 namespace kml
23 {
24 KML_DEFINE_TAG_HANDLER( tessellate )
25 
26 GeoNode* KmltessellateTagHandler::parse( GeoParser& parser ) const
27 {
28  Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(kmlTag_tessellate)));
29 
30  GeoStackItem parentItem = parser.parentElement();
31 
32  QString content = parser.readElementText().trimmed();
33 
34  if( parentItem.is<GeoDataLineString>() ) {
35  GeoDataLineString* lineString = parentItem.nodeAs<GeoDataLineString>();
36 
37  const bool tesselate = (content == QLatin1String("1"));
38  lineString->setTessellate(tesselate);
39 
40  } else if( parentItem.is<GeoDataLinearRing>() ) {
41  GeoDataLinearRing* linearRing = parentItem.nodeAs<GeoDataLinearRing>();
42 
43  const bool tesselate = (content == QLatin1String("1"));
44  linearRing->setTessellate(tesselate);
45 
46  } else if( parentItem.is<GeoDataPolygon>() ) {
47  GeoDataPolygon* polygon = parentItem.nodeAs<GeoDataPolygon>();
48 
49  const bool tesselate = (content == QLatin1String("1"));
50  polygon->setTessellate(tesselate);
51  }
52 
53  return nullptr;
54 }
55 
56 }
57 }
QString trimmed() const const
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 Mon Oct 2 2023 03:52:09 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.