1 /*
2  * Copyright (C) 2001-2015 Klaralvdalens Datakonsult AB.  All rights reserved.
3  *
4  * This file is part of the KD Chart library.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef KCHARTABSTRACTTHREEDATTRIBUTES_H
21 #define KCHARTABSTRACTTHREEDATTRIBUTES_H
22 
23 #include <QMetaType>
24 #include "KChartGlobal.h"
25 
26 namespace KChart {
27 
28 /**
29   * @brief Base class for 3D attributes
30   */
31 class KCHART_EXPORT AbstractThreeDAttributes
32 {
33 public:
34     AbstractThreeDAttributes();
35     AbstractThreeDAttributes( const AbstractThreeDAttributes& );
36     AbstractThreeDAttributes &operator= ( const AbstractThreeDAttributes& );
37 
38     virtual ~AbstractThreeDAttributes() = 0;
39 
40     void setEnabled( bool enabled );
41     bool isEnabled() const;
42 
43     void setDepth( qreal depth );
44     qreal depth() const;
45 
46     // returns the depth(), if is isEnabled() is true, otherwise returns 0.0
47     qreal validDepth() const;
48 
49     bool isThreeDBrushEnabled() const;
50     void setThreeDBrushEnabled( bool enabled );
51     virtual QBrush threeDBrush( const QBrush& brush, const QRectF& rect ) const;
52 
53     bool operator==( const AbstractThreeDAttributes& ) const;
54     inline bool operator!=( const AbstractThreeDAttributes& other ) const { return !operator==(other); }
55 
56     KCHART_DECLARE_PRIVATE_BASE_POLYMORPHIC(AbstractThreeDAttributes)
57 
58     KCHART_DECLARE_SWAP_BASE(AbstractThreeDAttributes)
59 
60 }; // End of class AbstractThreeDAttributes
61 
62 }
63 
64 #if !defined(QT_NO_DEBUG_STREAM)
65 KCHART_EXPORT QDebug operator<<(QDebug, const KChart::AbstractThreeDAttributes& );
66 #endif /* QT_NO_DEBUG_STREAM */
67 
68 
69 
70 #endif // KCHARTABSTRACTTHREEDATTRIBUTES_H
71