QGIS API Documentation  2.8.2-Wien
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgssimplifymethod.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgssimplifymethod.cpp
3  ---------------------
4  begin : December 2013
5  copyright : (C) 2013 by Matthias Kuhn / Alvaro Huarte
6  email :
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #include "qgssimplifymethod.h"
17 #include "qgslogger.h"
18 #include "qgsgeometrysimplifier.h"
20 
22  : mMethodType( QgsSimplifyMethod::NoSimplification )
23  , mTolerance( 1 )
24  , mForceLocalOptimization( true )
25 {
26 }
27 
29 {
30  operator=( rh );
31 }
32 
34 {
38 
39  return *this;
40 }
41 
43 {
45 }
46 
47 void QgsSimplifyMethod::setTolerance( double tolerance )
48 {
50 }
51 
52 void QgsSimplifyMethod::setForceLocalOptimization( bool localOptimization )
53 {
54  mForceLocalOptimization = localOptimization;
55 }
56 
58 {
60 
61  // returns a geometry simplifier according to specified method
62  if ( methodType == QgsSimplifyMethod::OptimizeForRendering )
63  {
65  return new QgsMapToPixelSimplifier( simplifyFlags, simplifyMethod.tolerance() );
66  }
67  else if ( methodType == QgsSimplifyMethod::PreserveTopology )
68  {
69  return new QgsTopologyPreservingSimplifier( simplifyMethod.tolerance() );
70  }
71  else
72  {
73  QgsDebugMsg( QString( "Simplification method type (%1) is not recognised" ).arg( methodType ) );
74  return NULL;
75  }
76 }