Remove "All rights reserved" line from license headers.
[profile/ivi/qtdeclarative.git] / src / quick / scenegraph / util / qsgsimplerectnode.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the QtDeclarative module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
16 **
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
20 **
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
28 **
29 ** Other Usage
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #include "qsgsimplerectnode.h"
43 #include "qsgflatcolormaterial.h"
44
45 QT_BEGIN_NAMESPACE
46
47 /*!
48   \class QSGSimpleRectNode
49
50   \brief The QSGSimpleRectNode class is a convenience class for drawing
51   solid filled rectangles using scenegraph.
52
53  */
54
55
56
57 /*!
58     Constructs a QSGSimpleRectNode instance which is spanning \a rect with
59     the color \a color.
60  */
61 QSGSimpleRectNode::QSGSimpleRectNode(const QRectF &rect, const QColor &color)
62     : m_geometry(QSGGeometry::defaultAttributes_Point2D(), 4)
63 {
64     QSGGeometry::updateRectGeometry(&m_geometry, rect);
65     m_material.setColor(color);
66     setMaterial(&m_material);
67     setGeometry(&m_geometry);
68 }
69
70
71
72 /*!
73     Constructs a QSGSimpleRectNode instance with an empty rectangle and
74     white color.
75  */
76 QSGSimpleRectNode::QSGSimpleRectNode()
77     : m_geometry(QSGGeometry::defaultAttributes_Point2D(), 4)
78 {
79     QSGGeometry::updateRectGeometry(&m_geometry, QRectF());
80     setMaterial(&m_material);
81     setGeometry(&m_geometry);
82 }
83
84
85
86 /*!
87     Sets the rectangle of this rect node to \a rect.
88  */
89 void QSGSimpleRectNode::setRect(const QRectF &rect)
90 {
91     QSGGeometry::updateRectGeometry(&m_geometry, rect);
92     markDirty(QSGNode::DirtyGeometry);
93 }
94
95
96
97 /*!
98     Returns the rectangle that this rect node covers.
99  */
100 QRectF QSGSimpleRectNode::rect() const
101 {
102     const QSGGeometry::Point2D *pts = m_geometry.vertexDataAsPoint2D();
103     return QRectF(pts[0].x,
104                   pts[0].y,
105                   pts[3].x - pts[0].x,
106                   pts[3].y - pts[0].y);
107 }
108
109
110 /*!
111     Sets the color of this rectangle to \a color. The default
112     color will be white.
113  */
114 void QSGSimpleRectNode::setColor(const QColor &color)
115 {
116     if (color != m_material.color()) {
117         m_material.setColor(color);
118         markDirty(QSGNode::DirtyMaterial);
119     }
120 }
121
122
123
124 /*!
125     Returns the color of this rectangle.
126  */
127 QColor QSGSimpleRectNode::color() const
128 {
129     return m_material.color();
130 }
131
132 QT_END_NAMESPACE