1 /**********************************************************
2  * Version $Id: Grid_Swath_Profile.h 1921 2014-01-09 10:24:11Z oconrad $
3  *********************************************************/
4 
5 ///////////////////////////////////////////////////////////
6 //                                                       //
7 //                         SAGA                          //
8 //                                                       //
9 //      System for Automated Geoscientific Analyses      //
10 //                                                       //
11 //                     Tool Library                      //
12 //                     ta_profiles                       //
13 //                                                       //
14 //-------------------------------------------------------//
15 //                                                       //
16 //                  Grid_Swath_Profile.h                 //
17 //                                                       //
18 //                 Copyright (C) 2005 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 Goettingen               //
47 //                Goldschmidtstr. 5                      //
48 //                37077 Goettingen                       //
49 //                Germany                                //
50 //                                                       //
51 ///////////////////////////////////////////////////////////
52 
53 //---------------------------------------------------------
54 
55 
56 ///////////////////////////////////////////////////////////
57 //														 //
58 //														 //
59 //														 //
60 ///////////////////////////////////////////////////////////
61 
62 //---------------------------------------------------------
63 #ifndef HEADER_INCLUDED__Grid_Swath_Profile_H
64 #define HEADER_INCLUDED__Grid_Swath_Profile_H
65 
66 //---------------------------------------------------------
67 #include "MLB_Interface.h"
68 
69 
70 ///////////////////////////////////////////////////////////
71 //														 //
72 //														 //
73 //														 //
74 ///////////////////////////////////////////////////////////
75 
76 //---------------------------------------------------------
77 class CGrid_Swath_Profile : public CSG_Tool_Grid_Interactive
78 {
79 public:
80 	CGrid_Swath_Profile(void);
81 
82 
83 protected:
84 
85 	virtual bool				On_Execute			(void);
86 	virtual bool				On_Execute_Finish	(void);
87 	virtual bool				On_Execute_Position	(CSG_Point ptWorld, TSG_Tool_Interactive_Mode Mode);
88 
89 
90 private:
91 
92 	bool						m_bAdd;
93 
94 	double						m_Width;
95 
96 	CSG_Shapes					*m_pPoints, *m_pLine;
97 
98 	CSG_Grid					*m_pDEM;
99 
100 	CSG_Parameter_Grid_List		*m_pValues;
101 
102 
103 	bool						Set_Profile	(void);
104 	bool						Set_Profile	(CSG_Point A, CSG_Point B, CSG_Point Left, CSG_Point Right);
105 
106 	bool						Add_Point	(CSG_Point Point, CSG_Point Left, CSG_Point Right, CSG_Point Step);
107 	bool						Add_Swath	(CSG_Shape *pPoint, int iEntry, CSG_Grid *pGrid, CSG_Point Left, CSG_Point Right, CSG_Point Step);
108 
109 };
110 
111 
112 ///////////////////////////////////////////////////////////
113 //														 //
114 //														 //
115 //														 //
116 ///////////////////////////////////////////////////////////
117 
118 //---------------------------------------------------------
119 #endif // #ifndef HEADER_INCLUDED__Grid_Swath_Profile_H
120