Changeset View
Changeset View
Standalone View
Standalone View
src/lib/marble/geodata/data/GeoDataGeometry.cpp
Show All 22 Lines | |||||
23 | 23 | | |||
24 | #include <QDataStream> | 24 | #include <QDataStream> | ||
25 | 25 | | |||
26 | 26 | | |||
27 | namespace Marble | 27 | namespace Marble | ||
28 | { | 28 | { | ||
29 | 29 | | |||
30 | GeoDataGeometry::GeoDataGeometry() | 30 | GeoDataGeometry::GeoDataGeometry() | ||
31 | : d( new GeoDataGeometryPrivate() ) | 31 | : d_ptr(new GeoDataGeometryPrivate()) | ||
32 | { | 32 | { | ||
33 | d->ref.ref(); | 33 | d_ptr->ref.ref(); | ||
34 | } | 34 | } | ||
35 | 35 | | |||
36 | GeoDataGeometry::GeoDataGeometry( const GeoDataGeometry& other ) | 36 | GeoDataGeometry::GeoDataGeometry( const GeoDataGeometry& other ) | ||
37 | : GeoDataObject(), | 37 | : GeoDataObject(), | ||
38 | d( other.d ) | 38 | d_ptr(other.d_ptr) | ||
39 | { | 39 | { | ||
40 | d->ref.ref(); | 40 | d_ptr->ref.ref(); | ||
41 | } | 41 | } | ||
42 | 42 | | |||
43 | GeoDataGeometry::GeoDataGeometry( GeoDataGeometryPrivate* priv ) | 43 | GeoDataGeometry::GeoDataGeometry( GeoDataGeometryPrivate* priv ) | ||
44 | : GeoDataObject(), | 44 | : GeoDataObject(), | ||
45 | d( priv ) | 45 | d_ptr(priv) | ||
46 | { | 46 | { | ||
47 | d->ref.ref(); | 47 | d_ptr->ref.ref(); | ||
48 | } | 48 | } | ||
49 | 49 | | |||
50 | GeoDataGeometry::~GeoDataGeometry() | 50 | GeoDataGeometry::~GeoDataGeometry() | ||
51 | { | 51 | { | ||
52 | if (!d->ref.deref()) | 52 | if (!d_ptr->ref.deref()) | ||
53 | delete d; | 53 | delete d_ptr; | ||
54 | } | 54 | } | ||
55 | 55 | | |||
56 | void GeoDataGeometry::detach() | 56 | void GeoDataGeometry::detach() | ||
57 | { | 57 | { | ||
58 | if(d->ref.load() == 1) { | 58 | if(d_ptr->ref.load() == 1) { | ||
59 | return; | 59 | return; | ||
60 | } | 60 | } | ||
61 | 61 | | |||
62 | GeoDataGeometryPrivate* new_d = d->copy(); | 62 | GeoDataGeometryPrivate* new_d = d_ptr->copy(); | ||
63 | 63 | | |||
64 | if (!d->ref.deref()) | 64 | if (!d_ptr->ref.deref()) | ||
65 | delete d; | 65 | delete d_ptr; | ||
66 | 66 | | |||
67 | d = new_d; | 67 | d_ptr = new_d; | ||
68 | d->ref.ref(); | 68 | d_ptr->ref.ref(); | ||
69 | } | 69 | } | ||
70 | 70 | | |||
71 | const char* GeoDataGeometry::nodeType() const | 71 | const char* GeoDataGeometry::nodeType() const | ||
72 | { | 72 | { | ||
73 | return d->nodeType(); | 73 | return d_ptr->nodeType(); | ||
74 | } | 74 | } | ||
75 | 75 | | |||
76 | EnumGeometryId GeoDataGeometry::geometryId() const | 76 | EnumGeometryId GeoDataGeometry::geometryId() const | ||
77 | { | 77 | { | ||
78 | return d->geometryId(); | 78 | return d_ptr->geometryId(); | ||
79 | } | 79 | } | ||
80 | 80 | | |||
81 | GeoDataGeometry& GeoDataGeometry::operator=( const GeoDataGeometry& other ) | 81 | GeoDataGeometry& GeoDataGeometry::operator=( const GeoDataGeometry& other ) | ||
82 | { | 82 | { | ||
83 | GeoDataObject::operator=( other ); | 83 | GeoDataObject::operator=( other ); | ||
84 | 84 | | |||
85 | if (!d->ref.deref()) | 85 | if (!d_ptr->ref.deref()) | ||
86 | delete d; | 86 | delete d_ptr; | ||
87 | 87 | | |||
88 | d = other.d; | 88 | d_ptr = other.d_ptr; | ||
89 | d->ref.ref(); | 89 | d_ptr->ref.ref(); | ||
90 | 90 | | |||
91 | return *this; | 91 | return *this; | ||
92 | } | 92 | } | ||
93 | 93 | | |||
94 | bool GeoDataGeometry::extrude() const | 94 | bool GeoDataGeometry::extrude() const | ||
95 | { | 95 | { | ||
96 | return d->m_extrude; | 96 | return d_ptr->m_extrude; | ||
97 | } | 97 | } | ||
98 | 98 | | |||
99 | void GeoDataGeometry::setExtrude( bool extrude ) | 99 | void GeoDataGeometry::setExtrude( bool extrude ) | ||
100 | { | 100 | { | ||
101 | detach(); | 101 | detach(); | ||
102 | d->m_extrude = extrude; | 102 | d_ptr->m_extrude = extrude; | ||
103 | } | 103 | } | ||
104 | 104 | | |||
105 | AltitudeMode GeoDataGeometry::altitudeMode() const | 105 | AltitudeMode GeoDataGeometry::altitudeMode() const | ||
106 | { | 106 | { | ||
107 | return d->m_altitudeMode; | 107 | return d_ptr->m_altitudeMode; | ||
108 | } | 108 | } | ||
109 | 109 | | |||
110 | void GeoDataGeometry::setAltitudeMode( const AltitudeMode altitudeMode ) | 110 | void GeoDataGeometry::setAltitudeMode( const AltitudeMode altitudeMode ) | ||
111 | { | 111 | { | ||
112 | detach(); | 112 | detach(); | ||
113 | d->m_altitudeMode = altitudeMode; | 113 | d_ptr->m_altitudeMode = altitudeMode; | ||
114 | } | 114 | } | ||
115 | 115 | | |||
116 | const GeoDataLatLonAltBox& GeoDataGeometry::latLonAltBox() const | 116 | const GeoDataLatLonAltBox& GeoDataGeometry::latLonAltBox() const | ||
117 | { | 117 | { | ||
118 | return d->m_latLonAltBox; | 118 | return d_ptr->m_latLonAltBox; | ||
119 | } | 119 | } | ||
120 | 120 | | |||
121 | void GeoDataGeometry::pack( QDataStream& stream ) const | 121 | void GeoDataGeometry::pack( QDataStream& stream ) const | ||
122 | { | 122 | { | ||
123 | GeoDataObject::pack( stream ); | 123 | GeoDataObject::pack( stream ); | ||
124 | 124 | | |||
125 | stream << d->m_extrude; | 125 | stream << d_ptr->m_extrude; | ||
126 | stream << d->m_altitudeMode; | 126 | stream << d_ptr->m_altitudeMode; | ||
127 | } | 127 | } | ||
128 | 128 | | |||
129 | void GeoDataGeometry::unpack( QDataStream& stream ) | 129 | void GeoDataGeometry::unpack( QDataStream& stream ) | ||
130 | { | 130 | { | ||
131 | detach(); | 131 | detach(); | ||
132 | GeoDataObject::unpack( stream ); | 132 | GeoDataObject::unpack( stream ); | ||
133 | 133 | | |||
134 | int am; | 134 | int am; | ||
135 | stream >> d->m_extrude; | 135 | stream >> d_ptr->m_extrude; | ||
136 | stream >> am; | 136 | stream >> am; | ||
137 | d->m_altitudeMode = (AltitudeMode) am; | 137 | d_ptr->m_altitudeMode = (AltitudeMode) am; | ||
138 | } | 138 | } | ||
139 | 139 | | |||
140 | bool GeoDataGeometry::equals(const GeoDataGeometry &other) const | 140 | bool GeoDataGeometry::equals(const GeoDataGeometry &other) const | ||
141 | { | 141 | { | ||
142 | return GeoDataObject::equals(other) && | 142 | return GeoDataObject::equals(other) && | ||
143 | d->m_extrude == other.d->m_extrude && | 143 | d_ptr->m_extrude == other.d_ptr->m_extrude && | ||
144 | d->m_altitudeMode == other.d->m_altitudeMode; | 144 | d_ptr->m_altitudeMode == other.d_ptr->m_altitudeMode; | ||
145 | } | 145 | } | ||
146 | 146 | | |||
147 | } | 147 | } |