Branch data Line data Source code
1 : : /***************************************************************************
2 : : TriDecorator.cpp
3 : : ----------------
4 : : copyright : (C) 2004 by Marco Hugentobler
5 : : email : mhugent@geo.unizh.ch
6 : : ***************************************************************************/
7 : :
8 : : /***************************************************************************
9 : : * *
10 : : * This program is free software; you can redistribute it and/or modify *
11 : : * it under the terms of the GNU General Public License as published by *
12 : : * the Free Software Foundation; either version 2 of the License, or *
13 : : * (at your option) any later version. *
14 : : * *
15 : : ***************************************************************************/
16 : :
17 : : #include "TriDecorator.h"
18 : : #include "qgslogger.h"
19 : :
20 : 0 : void TriDecorator::addLine( const QVector<QgsPoint> &points, QgsInterpolator::SourceType lineType )
21 : : {
22 : 0 : if ( mTIN )
23 : : {
24 : 0 : mTIN->addLine( points, lineType );
25 : 0 : }
26 : : else
27 : : {
28 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
29 : : }
30 : 0 : }
31 : :
32 : 0 : int TriDecorator::addPoint( const QgsPoint &p )
33 : : {
34 : 0 : if ( mTIN )
35 : : {
36 : 0 : unsigned int number = mTIN->addPoint( p );
37 : 0 : return number;
38 : : }
39 : : else
40 : : {
41 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
42 : 0 : return 0;
43 : : }
44 : 0 : }
45 : :
46 : 0 : void TriDecorator::performConsistencyTest()
47 : : {
48 : 0 : if ( mTIN )
49 : : {
50 : 0 : mTIN->performConsistencyTest();
51 : 0 : }
52 : : else
53 : : {
54 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
55 : : }
56 : 0 : }
57 : :
58 : 0 : bool TriDecorator::calcNormal( double x, double y, QgsPoint &result )
59 : : {
60 : 0 : if ( mTIN )
61 : : {
62 : 0 : bool b = mTIN->calcNormal( x, y, result );
63 : 0 : return b;
64 : : }
65 : : else
66 : : {
67 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
68 : 0 : return false;
69 : : }
70 : 0 : }
71 : :
72 : 0 : bool TriDecorator::calcPoint( double x, double y, QgsPoint &result )
73 : : {
74 : 0 : if ( mTIN )
75 : : {
76 : 0 : bool b = mTIN->calcPoint( x, y, result );
77 : 0 : return b;
78 : : }
79 : : else
80 : : {
81 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
82 : 0 : return false;
83 : : }
84 : 0 : }
85 : :
86 : 0 : QgsPoint *TriDecorator::point( int i ) const
87 : : {
88 : 0 : if ( mTIN )
89 : : {
90 : 0 : QgsPoint *p = mTIN->point( i );
91 : 0 : return p;
92 : : }
93 : : else
94 : : {
95 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
96 : 0 : return nullptr;
97 : : }
98 : 0 : }
99 : :
100 : 0 : bool TriDecorator::triangleVertices( double x, double y, QgsPoint &p1, int &n1, QgsPoint &p2, int &n2, QgsPoint &p3, int &n3 )
101 : : {
102 : 0 : if ( mTIN )
103 : : {
104 : 0 : bool b = mTIN->triangleVertices( x, y, p1, n1, p2, n2, p3, n3 );
105 : 0 : return b;
106 : : }
107 : : else
108 : : {
109 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
110 : 0 : return false;
111 : : }
112 : 0 : }
113 : :
114 : 0 : bool TriDecorator::triangleVertices( double x, double y, QgsPoint &p1, QgsPoint &p2, QgsPoint &p3 )
115 : : {
116 : 0 : if ( mTIN )
117 : : {
118 : 0 : bool b = mTIN->triangleVertices( x, y, p1, p2, p3 );
119 : 0 : return b;
120 : : }
121 : : else
122 : : {
123 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
124 : 0 : return false;
125 : : }
126 : 0 : }
127 : :
128 : 0 : int TriDecorator::pointsCount() const
129 : : {
130 : 0 : if ( mTIN )
131 : : {
132 : 0 : return ( mTIN->pointsCount() );
133 : : }
134 : : else
135 : : {
136 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
137 : 0 : return false;
138 : : }
139 : 0 : }
140 : :
141 : 0 : int TriDecorator::oppositePoint( int p1, int p2 )
142 : : {
143 : 0 : if ( mTIN )
144 : : {
145 : 0 : int i = mTIN->oppositePoint( p1, p2 );
146 : 0 : return i;
147 : : }
148 : : else
149 : : {
150 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
151 : 0 : return 0;
152 : : }
153 : 0 : }
154 : :
155 : 0 : QList<int> TriDecorator::surroundingTriangles( int pointno )
156 : : {
157 : 0 : if ( mTIN )
158 : : {
159 : 0 : return mTIN->surroundingTriangles( pointno );
160 : : }
161 : : else
162 : : {
163 : 0 : return QList< int >();
164 : : }
165 : 0 : }
166 : :
167 : 0 : double TriDecorator::xMax() const
168 : : {
169 : 0 : if ( mTIN )
170 : : {
171 : 0 : double d = mTIN->xMax();
172 : 0 : return d;
173 : : }
174 : : else
175 : : {
176 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
177 : 0 : return 0;
178 : : }
179 : 0 : }
180 : :
181 : 0 : double TriDecorator::xMin() const
182 : : {
183 : 0 : if ( mTIN )
184 : : {
185 : 0 : double d = mTIN->xMin();
186 : 0 : return d;
187 : : }
188 : : else
189 : : {
190 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
191 : 0 : return 0;
192 : : }
193 : 0 : }
194 : 0 : double TriDecorator::yMax() const
195 : : {
196 : 0 : if ( mTIN )
197 : : {
198 : 0 : double d = mTIN->yMax();
199 : 0 : return d;
200 : : }
201 : : else
202 : : {
203 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
204 : 0 : return 0;
205 : : }
206 : 0 : }
207 : :
208 : 0 : double TriDecorator::yMin() const
209 : : {
210 : 0 : if ( mTIN )
211 : : {
212 : 0 : double d = mTIN->yMin();
213 : 0 : return d;
214 : : }
215 : : else
216 : : {
217 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
218 : 0 : return 0;
219 : : }
220 : 0 : }
221 : :
222 : 0 : void TriDecorator::setForcedCrossBehavior( QgsTriangulation::ForcedCrossBehavior b )
223 : : {
224 : 0 : if ( mTIN )
225 : : {
226 : 0 : mTIN->setForcedCrossBehavior( b );
227 : 0 : }
228 : : else
229 : : {
230 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
231 : : }
232 : 0 : }
233 : :
234 : 0 : void TriDecorator::setTriangleInterpolator( TriangleInterpolator *interpolator )
235 : : {
236 : 0 : if ( mTIN )
237 : : {
238 : 0 : mTIN->setTriangleInterpolator( interpolator );
239 : 0 : }
240 : : else
241 : : {
242 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
243 : : }
244 : 0 : }
245 : :
246 : 0 : void TriDecorator::eliminateHorizontalTriangles()
247 : : {
248 : 0 : if ( mTIN )
249 : : {
250 : 0 : mTIN->eliminateHorizontalTriangles();
251 : 0 : }
252 : : else
253 : : {
254 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
255 : : }
256 : 0 : }
257 : :
258 : 0 : void TriDecorator::ruppertRefinement()
259 : : {
260 : 0 : if ( mTIN )
261 : : {
262 : 0 : mTIN->ruppertRefinement();
263 : 0 : }
264 : : else
265 : : {
266 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
267 : : }
268 : 0 : }
269 : :
270 : 0 : bool TriDecorator::pointInside( double x, double y )
271 : : {
272 : 0 : if ( mTIN )
273 : : {
274 : 0 : bool b = mTIN->pointInside( x, y );
275 : 0 : return b;
276 : : }
277 : : else
278 : : {
279 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
280 : 0 : return false;
281 : : }
282 : 0 : }
283 : :
284 : 0 : bool TriDecorator::swapEdge( double x, double y )
285 : : {
286 : 0 : if ( mTIN )
287 : : {
288 : 0 : bool b = mTIN->swapEdge( x, y );
289 : 0 : return b;
290 : : }
291 : : else
292 : : {
293 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
294 : 0 : return false;
295 : : }
296 : 0 : }
297 : :
298 : 0 : QList<int> TriDecorator::pointsAroundEdge( double x, double y )
299 : : {
300 : 0 : if ( mTIN )
301 : : {
302 : 0 : return mTIN->pointsAroundEdge( x, y );
303 : : }
304 : : else
305 : : {
306 : 0 : QgsDebugMsg( QStringLiteral( "warning, null pointer" ) );
307 : 0 : return QList<int>();
308 : : }
309 : 0 : }
|