ProfileTools.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3 This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5 TerraLib is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9 
10 TerraLib is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14 
15 You should have received a copy of the GNU Lesser General Public License
16 along with TerraLib. See COPYING. If not, write to
17 TerraLib Team at <terralib-team@terralib.org>.
18 */
19 
20 /*!
21 \file terralib/mnt/qt/ProfileTools.h
22 
23 \brief This file defines the profile trajectory edition tools
24 */
25 
26 #ifndef __TERRALIB_MNT_INTERNAL_PROFILETOOLS_H
27 #define __TERRALIB_MNT_INTERNAL_PROFILETOOLS_H
28 
29 // TerraLib
30 #include "../core/Config.h"
31 #include "../../qt/widgets/tools/AbstractTool.h"
32 
33 // Qt
34 #include <QMouseEvent>
35 
36 namespace te
37 {
38  namespace mnt
39  {
40  enum TEMNTEXPORT EditType
41  {
45  VERTEX_ADD,
47  NONE
48  };
49 
51  {
52 
53  public:
54  ProfileTools(te::qt::widgets::MapDisplay* display, EditType type, QObject* parent = 0);
55 
56  ~ProfileTools();
57 
58  void setType(EditType t);
59 
60  void setLines(std::vector<te::gm::LineString*> &l) { m_lines = l; }
61 
62  bool mousePressEvent(QMouseEvent* e);
63 
64  bool mouseMoveEvent(QMouseEvent* e);
65 
66  bool mouseReleaseEvent(QMouseEvent* e);
67 
68  bool mouseDoubleClickEvent(QMouseEvent* e);
69 
70  protected:
71  EditType m_type;
72  std::vector<te::gm::LineString*> m_lines;
74  };
75  }
76 }
77 
78 #endif //__TERRALIB_MNT_INTERNAL_PROFILETOOLS_H
LINE_SELECT
Definition: ProfileTools.h:42
VERTEX_ADD
Definition: ProfileTools.h:42
void setLines(std::vector< te::gm::LineString * > &l)
Definition: ProfileTools.h:60
#define TEMNTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:41
VERTEX_DELETE
Definition: ProfileTools.h:42
te::gm::LineString * m_selectline
Definition: ProfileTools.h:73
std::vector< te::gm::LineString * > m_lines
Definition: ProfileTools.h:72
A widget to control the display of a set of layers.
Definition: MapDisplay.h:68
Not visible.
Definition: TreeItem.h:60
This class defines an interface for objects that can receive application events and respond to them...
Definition: AbstractTool.h:62
VERTEX_MOVE
Definition: ProfileTools.h:42
LineString is a curve with linear interpolation between points.
Definition: LineString.h:62
URI C++ Library.
LINE_CREATE
Definition: ProfileTools.h:42