All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PointModel.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 PointModel.h
22 
23  \brief Class that represents a "Model" part of Point MVC component.
24  Its coordinate system is the same of scene (millimeters).
25  This is also son of ItemModelObservable, so it can become observable.
26 
27  \ingroup layout
28 */
29 
30 #ifndef __TERRALIB_LAYOUT_INTERNAL_POINT_MODEL_H
31 #define __TERRALIB_LAYOUT_INTERNAL_POINT_MODEL_H
32 
33 // TerraLib
34 #include "../core/pattern/mvc/ItemModelObservable.h"
35 #include "../core/ContextItem.h"
36 #include "../core/Config.h"
37 #include "../core/enum/EnumPointType.h"
38 #include "../core/property/Property.h"
39 #include "../core/property/Properties.h"
40 
41 namespace te
42 {
43  namespace layout
44  {
45  /*!
46  \brief Class that represents a "Model" part of Point MVC component.
47  Its coordinate system is the same of scene (millimeters).
48  He is also the son of ItemModelObservable, so it can become observable.
49 
50  \ingroup layout
51 
52  \sa te::layout::ItemModelObservable
53  */
55  {
56  public:
57 
58  /*!
59  \brief Constructor
60  */
61  PointModel();
62 
63  /*!
64  \brief Destructor
65  */
66  virtual ~PointModel();
67 
68  virtual Properties* getProperties() const;
69 
70  virtual void updateProperties(te::layout::Properties* properties);
71 
72  virtual EnumPointType* getEnumPointType();
73 
74  virtual EnumType* getCurrentPointType();
75 
76  virtual double getShapeSize();
77 
78  virtual te::color::RGBAColor getPointColor();
79 
80  virtual void setPointColor(te::color::RGBAColor color);
81 
82  protected:
83 
84  virtual Property pointProperty() const;
85 
88  double m_shapeSize;
90  };
91  }
92 }
93 
94 #endif
te::color::RGBAColor m_pointColor
Definition: PointModel.h:89
#define TELAYOUTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:99
Class to represent a scale point enumeration. Ex.: X, square, circle, etc.
Definition: EnumPointType.h:48
EnumPointType * m_enumPointType
Definition: PointModel.h:86
Abstract class to represent an observable. "Model" part of MVC component. All classes representing th...
The Properties class represents a persistent set of properties. The Properties can be saved to a file...
Definition: Properties.h:52
Class that represents a "Model" part of Point MVC component. Its coordinate system is the same of sce...
Definition: PointModel.h:54
Class that represents the value of an enumeration. An enumeration is made of "1..n" objects EnumType...
Definition: EnumType.h:48
EnumType * m_currentPointType
Definition: PointModel.h:87
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color.
Definition: RGBAColor.h:57
A property acts like a attribute member of a object and stores the state of this attribute. A set of properties stores the state of an object. Any data type, not included in the convertValue method in the class te::layout::Variant, it will be by default "std::string" value.
Definition: Property.h:47