ImagingTools Core SDK
CPosition.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ImtDev includes
6#include <imtbase/TIdentifiableWrap.h>
7#include <imtgeo/IPosition.h>
8
9
10namespace imtgeo
11{
15class CPosition: virtual public IPosition
16{
17public:
18 CPosition();
19 ~CPosition();
20
21 // reimplemented (imtgeo::IPosition)
22 virtual double GetLatitude() const override;
23 virtual void SetLatitude(const double& lat) override;
24 virtual double GetLongitude() const override;
25 virtual void SetLongitude(const double& lon) override;
26 virtual int GetZoomLevel() const override;
27 virtual void SetZoomLevel(const double& zoom) override;
28
29 // reimplemented (iser::ISerializable)
30 virtual bool Serialize(iser::IArchive& archive) override;
31
32 // reimplemented (istd::IChangeable)
33 virtual int GetSupportedOperations() const override;
34 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
35 virtual bool IsEqual(const IChangeable& object) const override;
36 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
37 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
38
39private:
40 double m_latitude;
41 double m_longitude;
42 double m_zoomLevel;
43};
44
45
46typedef imtbase::TIdentifiableWrap<CPosition> CPositionIdentifiable;
47
48
49} // namespace imtgeo
50