1 /**********************************************************
2  * Version $Id$
3  *********************************************************/
4 
5 ///////////////////////////////////////////////////////////
6 //                                                       //
7 //                         SAGA                          //
8 //                                                       //
9 //      System for Automated Geoscientific Analyses      //
10 //                                                       //
11 //                    User Interface                     //
12 //                                                       //
13 //                    Program: SAGA                      //
14 //                                                       //
15 //-------------------------------------------------------//
16 //                                                       //
17 //                WKSP_Shapes_Polygon.h                  //
18 //                                                       //
19 //          Copyright (C) 2005 by 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 //    contact:    Olaf Conrad                            //
43 //                Institute of Geography                 //
44 //                University of Goettingen               //
45 //                Goldschmidtstr. 5                      //
46 //                37077 Goettingen                       //
47 //                Germany                                //
48 //                                                       //
49 //    e-mail:     oconrad@saga-gis.org                   //
50 //                                                       //
51 ///////////////////////////////////////////////////////////
52 
53 //---------------------------------------------------------
54 
55 
56 ///////////////////////////////////////////////////////////
57 //														 //
58 //														 //
59 //														 //
60 ///////////////////////////////////////////////////////////
61 
62 //---------------------------------------------------------
63 #ifndef _HEADER_INCLUDED__SAGA_GUI__WKSP_Shapes_Polygon_H
64 #define _HEADER_INCLUDED__SAGA_GUI__WKSP_Shapes_Polygon_H
65 
66 
67 ///////////////////////////////////////////////////////////
68 //														 //
69 //														 //
70 //														 //
71 ///////////////////////////////////////////////////////////
72 
73 //---------------------------------------------------------
74 #include "wksp_shapes.h"
75 
76 
77 ///////////////////////////////////////////////////////////
78 //														 //
79 //														 //
80 //														 //
81 ///////////////////////////////////////////////////////////
82 
83 //---------------------------------------------------------
84 class CWKSP_Shapes_Polygon : public CWKSP_Shapes
85 {
86 public:
87 	CWKSP_Shapes_Polygon(CSG_Shapes *pShapes);
88 
Get_Outline(void)89 	bool						Get_Outline				(void)	{	return( m_bOutline );	}
Get_Def_Pen(void)90 	wxPen						Get_Def_Pen				(void)	{	return( m_Pen      );	}
Get_Def_Brush(void)91 	wxBrush						Get_Def_Brush			(void)	{	return( m_Brush    );	}
92 
93 
94 protected:
95 
96 	bool						m_bCentroid, m_bOutline;
97 
98 	wxColour					m_Sel_Color_Fill[2];
99 
100 	wxPen						m_Pen;
101 
102 	wxBrush						m_Brush;
103 
104 
105 	virtual void				On_Create_Parameters	(void);
106 	virtual void				On_DataObject_Changed	(void);
107 	virtual void				On_Parameters_Changed	(void);
108 
109 	virtual int					On_Parameter_Changed	(CSG_Parameters *pParameters, CSG_Parameter *pParameter, int Flags);
110 
111 	virtual void				Draw_Initialize			(CWKSP_Map_DC &dc_Map, int Flags);
112 	virtual void				Draw_Shape				(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape, int Selection);
113 	virtual void				Draw_Label				(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape, const wxString &Label);
114 
115 	virtual void				Edit_Shape_Draw_Move	(wxDC &dc, const CSG_Rect &rWorld, const wxPoint &Point);
116 	virtual void				Edit_Shape_Draw			(CWKSP_Map_DC &dc_Map);
117 	virtual int					Edit_Shape_HitTest		(CSG_Point Point, double max_Dist, int &iPart, int &iPoint);
118 	virtual void				Edit_Snap_Point_ToLine	(CSG_Point Point, CSG_Point &snap_Point, double &snap_Dist, CSG_Shape *pShape);
119 
120 
121 private:
122 
123 	void						_Edit_Shape_Draw		(CWKSP_Map_DC &dc_Map);
124 
125 };
126 
127 
128 ///////////////////////////////////////////////////////////
129 //														 //
130 //														 //
131 //														 //
132 ///////////////////////////////////////////////////////////
133 
134 //---------------------------------------------------------
135 #endif // #ifndef _HEADER_INCLUDED__SAGA_GUI__WKSP_Shapes_Polygon_H
136