7 #include "GeoDataModel.h"
8 #include "GeoDataGeometry_p.h"
10 #include "GeoDataTypes.h"
11 #include "GeoDataLocation.h"
12 #include "GeoDataOrientation.h"
13 #include "GeoDataResourceMap.h"
14 #include "GeoDataScale.h"
20 class GeoDataModelPrivate :
public GeoDataGeometryPrivate
23 GeoDataModelPrivate();
25 GeoDataGeometryPrivate *
copy()
const override {
return new GeoDataModelPrivate( *
this ); }
27 GeoDataCoordinates m_coordinates;
30 GeoDataOrientation m_orientation;
31 GeoDataLocation m_location;
33 GeoDataResourceMap m_map;
38 GeoDataModelPrivate::GeoDataModelPrivate() :
50 GeoDataModel::GeoDataModel() :
51 GeoDataGeometry( new GeoDataModelPrivate )
56 GeoDataModel::GeoDataModel(
const GeoDataModel &other ) :
57 GeoDataGeometry( other )
62 GeoDataModel &GeoDataModel::operator=(
const GeoDataModel &other )
64 GeoDataGeometry::operator=( other );
68 const char *GeoDataModel::nodeType()
const
70 return GeoDataTypes::GeoDataModelType;
73 EnumGeometryId GeoDataModel::geometryId()
const
75 return GeoDataModelId;
78 GeoDataGeometry *GeoDataModel::copy()
const
80 return new GeoDataModel(*
this);
84 bool GeoDataModel::operator==(
const GeoDataModel &other )
const
86 Q_D(
const GeoDataModel);
87 const GeoDataModelPrivate *other_d = other.d_func();
89 return equals(other) &&
90 d->m_coordinates == other_d->m_coordinates &&
91 d->m_scale == other_d->m_scale &&
92 d->m_orientation == other_d->m_orientation &&
93 d->m_location == other_d->m_location &&
94 d->m_link == other_d->m_link &&
95 d->m_map == other_d->m_map &&
96 d->m_targetHref == other_d->m_targetHref &&
97 d->m_sourceHref == other_d->m_sourceHref;
100 bool GeoDataModel::operator!=(
const GeoDataModel &other )
const
105 GeoDataModel::~GeoDataModel()
109 const GeoDataCoordinates &GeoDataModel::coordinates()
const
111 Q_D(
const GeoDataModel);
112 return d->m_coordinates;
115 GeoDataCoordinates &GeoDataModel::coordinates()
120 return d->m_coordinates;
123 const GeoDataLocation &GeoDataModel::location()
const
125 Q_D(
const GeoDataModel);
126 return d->m_location;
129 GeoDataLocation &GeoDataModel::location()
134 return d->m_location;
137 void GeoDataModel::setCoordinates(
const GeoDataCoordinates &coordinates)
142 d->m_coordinates = coordinates;
145 void GeoDataModel::setLocation(
const GeoDataLocation &location)
153 const GeoDataLink &GeoDataModel::link()
const
155 Q_D(
const GeoDataModel);
159 GeoDataLink &GeoDataModel::link()
167 void GeoDataModel::setLink(
const GeoDataLink &link )
175 const GeoDataScale &GeoDataModel::scale()
const
177 Q_D(
const GeoDataModel);
181 GeoDataScale &GeoDataModel::scale()
189 void GeoDataModel::setScale(
const GeoDataScale &scale)
197 const GeoDataOrientation &GeoDataModel::orientation()
const
199 Q_D(
const GeoDataModel);
200 return d->m_orientation;
203 GeoDataOrientation &GeoDataModel::orientation()
208 return d->m_orientation;
211 void GeoDataModel::setOrientation(
const GeoDataOrientation &orientation)
216 d->m_orientation = orientation;
219 const GeoDataResourceMap &GeoDataModel::resourceMap()
const
221 Q_D(
const GeoDataModel);
225 GeoDataResourceMap &GeoDataModel::resourceMap()
233 void GeoDataModel::setResourceMap(
const GeoDataResourceMap &map)
241 QString GeoDataModel::targetHref()
const
243 Q_D(
const GeoDataModel);
244 return d->m_map.targetHref();
247 void GeoDataModel::setTargetHref(
const QString &targetHref)
252 d->m_map.setTargetHref( targetHref );
255 QString GeoDataModel::sourceHref()
const
257 Q_D(
const GeoDataModel);
258 return d->m_map.sourceHref();
261 void GeoDataModel::setSourceHref(
const QString &sourceHref)
266 d->m_map.setSourceHref( sourceHref );