PointSymbolizer.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/se/PointSymbolizer.h
22 
23  \brief A PointSymbolizer specifies the rendering of a graphic Symbolizer at a point.
24 */
25 
26 #ifndef __TERRALIB_SE_INTERNAL_POINTSYMBOLIZER_H
27 #define __TERRALIB_SE_INTERNAL_POINTSYMBOLIZER_H
28 
29 // TerraLib
30 #include "Symbolizer.h"
31 
32 namespace te
33 {
34  namespace fe { class PropertyName; }
35 
36  namespace se
37  {
38  /*!
39  \class PointSymbolizer
40 
41  \brief A PointSymbolizer specifies the rendering of a graphic Symbolizer at a point.
42 
43  In the PointSymbolizer case, if a line, polygon, or raster geometry
44  is used, then the semantic is to
45  use the centroid of the geometry, or any similar
46  representative point.
47 
48  \ingroup se
49 
50  \sa Symbolizer, Graphic, te::fe::PropertyName
51  */
53  {
54  public:
55 
57 
58  /** @name Initializer Methods
59  * Methods related to instantiation and destruction.
60  */
61  //@{
62 
63  /*! \brief It initializes a new PointSymbolizer. */
65 
66  /*!
67  \brief Copy constructor.
68 
69  \param rhs The other point symbolizer.
70  */
71  PointSymbolizer(const PointSymbolizer& rhs);
72 
73  /*! \brief Destructor */
74  ~PointSymbolizer();
75 
76  //@}
77 
78  /** @name Accessor methods
79  * Methods used to get or set properties.
80  */
81  //@{
82 
83  void setGeometry(te::fe::PropertyName* geometry);
84 
85  const te::fe::PropertyName* getGeometry() const;
86 
87  void setGraphic(Graphic* graphic);
88 
89  const Graphic* getGraphic() const;
90 
91  const std::string& getType() const;
92 
93  //@}
94 
95  /*! \brief It creates a new copy of this object. */
96  Symbolizer* clone() const;
97 
98  private:
99 
100  te::fe::PropertyName* m_geometry; //!< A Geometry gives reference to a (the) geometry property of a feature to be used for rendering. (Optional)
101  Graphic* m_graphic; //!< A Graphic specifies or refers to a graphic Symbolizer with inherent shape, size, and coloring. (Optional)
102 
103  static const std::string sm_type; //!< A static data member used in the implementation of getType method.
104  };
105 
106  } // end namespace se
107 } // end namespace te
108 
109 #endif // __TERRALIB_SE_INTERNAL_POINTSYMBOLIZER_H
110 
A Symbolizer describes how a feature is to appear on a map.
Definition: Symbolizer.h:80
A PointSymbolizer specifies the rendering of a graphic Symbolizer at a point.
A Graphic is a graphic symbol with an inherent shape, color(s), and possibly size.
Definition: Graphic.h:66
This class is used to encode the name of any property of an object.
Definition: PropertyName.h:54
URI C++ Library.
static const std::string sm_type
A static data member used in the implementation of getType method.
#define TESEEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:187
#define TE_DEFINE_VISITABLE
Definition: BaseVisitable.h:75
te::fe::PropertyName * m_geometry
A Geometry gives reference to a (the) geometry property of a feature to be used for rendering...
Graphic * m_graphic
A Graphic specifies or refers to a graphic Symbolizer with inherent shape, size, and coloring...
A Symbolizer describes how a Feature is to appear on a map.