1 /**********************************************************
2  * Version $Id$
3  *********************************************************/
4 
5 ///////////////////////////////////////////////////////////
6 //                                                       //
7 //                         SAGA                          //
8 //                                                       //
9 //      System for Automated Geoscientific Analyses      //
10 //                                                       //
11 //                     Tool Library                      //
12 //                      Grid_Filter                      //
13 //                                                       //
14 //-------------------------------------------------------//
15 //                                                       //
16 //                   Filter_Majority.h                   //
17 //                                                       //
18 //                 Copyright (C) 2010 by                 //
19 //                      Olaf Conrad                      //
20 //                                                       //
21 //-------------------------------------------------------//
22 //                                                       //
23 // This file is part of 'SAGA - System for Automated     //
24 // Geoscientific Analyses'. SAGA is free software; you   //
25 // can redistribute it and/or modify it under the terms  //
26 // of the GNU General Public License as published by the //
27 // Free Software Foundation, either version 2 of the     //
28 // License, or (at your option) any later version.       //
29 //                                                       //
30 // SAGA is distributed in the hope that it will be       //
31 // useful, but WITHOUT ANY WARRANTY; without even the    //
32 // implied warranty of MERCHANTABILITY or FITNESS FOR A  //
33 // PARTICULAR PURPOSE. See the GNU General Public        //
34 // License for more details.                             //
35 //                                                       //
36 // You should have received a copy of the GNU General    //
37 // Public License along with this program; if not, see   //
38 // <http://www.gnu.org/licenses/>.                       //
39 //                                                       //
40 //-------------------------------------------------------//
41 //                                                       //
42 //    e-mail:     oconrad@saga-gis.org                   //
43 //                                                       //
44 //    contact:    Olaf Conrad                            //
45 //                Institute of Geography                 //
46 //                University of Hamburg                  //
47 //                Germany                                //
48 //                                                       //
49 ///////////////////////////////////////////////////////////
50 
51 //---------------------------------------------------------
52 
53 
54 ///////////////////////////////////////////////////////////
55 //														 //
56 //                                                       //
57 //														 //
58 ///////////////////////////////////////////////////////////
59 
60 //---------------------------------------------------------
61 #ifndef HEADER_INCLUDED__Filter_Majority_H
62 #define HEADER_INCLUDED__Filter_Majority_H
63 
64 
65 ///////////////////////////////////////////////////////////
66 //														 //
67 //                                                       //
68 //														 //
69 ///////////////////////////////////////////////////////////
70 
71 //---------------------------------------------------------
72 #include "MLB_Interface.h"
73 
74 
75 ///////////////////////////////////////////////////////////
76 //														 //
77 //                                                       //
78 //														 //
79 ///////////////////////////////////////////////////////////
80 
81 //---------------------------------------------------------
82 class CFilter_Majority : public CSG_Tool_Grid
83 {
84 public:
85 	CFilter_Majority(void);
86 
87 
88 protected:
89 
90 	virtual bool			On_Execute			(void);
91 
92 	virtual bool			On_After_Execution	(void);
93 
94 
95 private:
96 
97 	int						m_Type, m_Threshold;
98 
99 	CSG_Grid_Cell_Addressor	m_Kernel;
100 
101 	CSG_Grid				*m_pInput;
102 
103 
104 	double					Get_Majority		(int x, int y);
105 
106 };
107 
108 
109 ///////////////////////////////////////////////////////////
110 //														 //
111 //                                                       //
112 //														 //
113 ///////////////////////////////////////////////////////////
114 
115 //---------------------------------------------------------
116 #endif // #ifndef HEADER_INCLUDED__Filter_Majority_H
117