Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
ScaleItem.cpp
Go to the documentation of this file.
1
/* Copyright (C) 2001-2014 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 LegendItem.cpp
22
23
\brief
24
25
\ingroup layout
26
*/
27
28
// TerraLib
29
#include "
ScaleItem.h
"
30
#include "
ItemController.h
"
31
#include "
Context.h
"
32
#include "
Scene.h
"
33
#include "
Observable.h
"
34
#include "../../../color/RGBAColor.h"
35
#include "../../../../qt/widgets/Utils.h"
36
#include "../../../../geometry/Envelope.h"
37
#include "../../../../common/STLUtils.h"
38
39
// Qt
40
#include <QPixmap>
41
42
te::layout::ScaleItem::ScaleItem
(
ItemController
* controller,
Observable
* o ) :
43
ObjectItem
(controller, o)
44
{
45
this->setFlags(QGraphicsItem::ItemIsMovable
46
| QGraphicsItem::ItemIsSelectable
47
| QGraphicsItem::ItemSendsGeometryChanges
48
| QGraphicsItem::ItemIsFocusable);
49
}
50
51
te::layout::ScaleItem::~ScaleItem
()
52
{
53
54
}
55
56
void
te::layout::ScaleItem::updateObserver
(
ContextItem
context )
57
{
58
if
(!m_model)
59
return
;
60
61
te::color::RGBAColor
** rgba = context.
getPixmap
();
62
63
if
(!rgba)
64
return
;
65
66
Utils
* utils =
Context::getInstance
()->
getUtils
();
67
68
if
(!utils)
69
return
;
70
71
te::gm::Envelope
box = utils->
viewportBox
(m_model->getBox());
72
73
if
(!box.
isValid
())
74
return
;
75
76
QPixmap pixmap;
77
QImage* img = 0;
78
79
if
(rgba)
80
{
81
img =
te::qt::widgets::GetImage
(rgba, box.
getWidth
(), box.
getHeight
());
82
pixmap = QPixmap::fromImage(*img);
83
}
84
85
te::common::Free
(rgba, box.
getHeight
());
86
if
(img)
87
delete
img;
88
89
setPixmap(pixmap);
90
update();
91
}
92
te::layout::Observable
Definition:
Observable.h:45
te::layout::ContextItem
Definition:
ContextItem.h:41
te::layout::ScaleItem::~ScaleItem
virtual ~ScaleItem()
Definition:
ScaleItem.cpp:51
ItemController.h
te::layout::ScaleItem::ScaleItem
ScaleItem(ItemController *controller, Observable *o)
Definition:
ScaleItem.cpp:42
Observable.h
te::gm::Envelope::getWidth
double getWidth() const
It returns the envelope width.
Definition:
Envelope.h:443
Scene.h
Context.h
te::layout::ItemController
Definition:
ItemController.h:45
te::layout::ContextItem::getPixmap
te::color::RGBAColor ** getPixmap()
Definition:
ContextItem.cpp:82
te::common::Free
void Free(std::vector< T * > *v)
This function can be applied to a pointer to a vector of pointers.
Definition:
STLUtils.h:131
te::layout::ObjectItem
Definition:
ObjectItem.h:51
te::gm::Envelope
An Envelope defines a 2D rectangular region.
Definition:
Envelope.h:51
ScaleItem.h
te::layout::Context::getUtils
Utils * getUtils()
Definition:
Context.cpp:126
te::layout::Utils::viewportBox
virtual te::gm::Envelope viewportBox(te::gm::Envelope box)
Definition:
Utils.cpp:164
te::qt::widgets::GetImage
TEQTWIDGETSEXPORT QImage * GetImage(te::color::RGBAColor **img, int width, int height)
It creates a QImage from an RGBA color array.
Definition:
Utils.cpp:63
te::color::RGBAColor
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color.
Definition:
RGBAColor.h:57
te::layout::Context::getInstance
static Context * getInstance()
This function is called to create an instance of the class.
Definition:
Context.cpp:46
te::layout::Utils
Definition:
Utils.h:42
te::gm::Envelope::getHeight
double getHeight() const
It returns the envelope height.
Definition:
Envelope.h:448
te::gm::Envelope::isValid
bool isValid() const
It tells if the rectangle is valid or not.
Definition:
Envelope.h:438
te::layout::ScaleItem::updateObserver
virtual void updateObserver(ContextItem context)
Definition:
ScaleItem.cpp:56
BB_TL5
terralib5
src
terralib
layout
qt
src
item
ScaleItem.cpp
Generated on Mon Sep 29 2014 13:46:34 for TerraLib by
1.8.7