00001 /* -*- Mode: C++ -*- 00002 KDChart - a multi-platform charting engine 00003 */ 00004 00005 /**************************************************************************** 00006 ** Copyright (C) 2005-2007 Klarälvdalens Datakonsult AB. All rights reserved. 00007 ** 00008 ** This file is part of the KD Chart library. 00009 ** 00010 ** This file may be distributed and/or modified under the terms of the 00011 ** GNU General Public License version 2 as published by the Free Software 00012 ** Foundation and appearing in the file LICENSE.GPL included in the 00013 ** packaging of this file. 00014 ** 00015 ** Licensees holding valid commercial KD Chart licenses may use this file in 00016 ** accordance with the KD Chart Commercial License Agreement provided with 00017 ** the Software. 00018 ** 00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00021 ** 00022 ** See http://www.kdab.net/kdchart for 00023 ** information about KD Chart Commercial License Agreements. 00024 ** 00025 ** Contact info@kdab.net if any conditions of this 00026 ** licensing are not clear to you. 00027 ** 00028 **********************************************************************/ 00029 00030 #include "KDChartLeveyJenningsCoordinatePlane.h" 00031 #include "KDChartLeveyJenningsCoordinatePlane_p.h" 00032 00033 #include <QtDebug> 00034 #include <QPainter> 00035 00036 #include "KDChartPaintContext.h" 00037 #include "KDChartPainterSaver_p.h" 00038 #include "KDChartCartesianAxis.h" 00039 #include "KDChartLeveyJenningsDiagram.h" 00040 00041 using namespace KDChart; 00042 00043 #define d d_func() 00044 00045 LeveyJenningsCoordinatePlane::Private::Private() 00046 : CartesianCoordinatePlane::Private() 00047 { 00048 } 00049 00050 LeveyJenningsCoordinatePlane::LeveyJenningsCoordinatePlane( Chart* parent ) 00051 : CartesianCoordinatePlane( new Private(), parent ) 00052 { 00053 } 00054 00055 LeveyJenningsCoordinatePlane::~LeveyJenningsCoordinatePlane() 00056 { 00057 } 00058 00059 void LeveyJenningsCoordinatePlane::init() 00060 { 00061 } 00062 00063 void LeveyJenningsCoordinatePlane::addDiagram( AbstractDiagram* diagram ) 00064 { 00065 Q_ASSERT_X ( dynamic_cast<LeveyJenningsDiagram*>( diagram ), 00066 "LeveyJenningsCoordinatePlane::addDiagram", "Only Levey Jennings " 00067 "diagrams can be added to a ternary coordinate plane!" ); 00068 CartesianCoordinatePlane::addDiagram ( diagram ); 00069 } 00070 00071 LeveyJenningsGrid* LeveyJenningsCoordinatePlane::grid() const 00072 { 00073 LeveyJenningsGrid* leveyJenningsGrid = static_cast<LeveyJenningsGrid*>( d->grid ); 00074 Q_ASSERT( dynamic_cast<LeveyJenningsGrid*>( d->grid ) ); 00075 return leveyJenningsGrid; 00076 } 00077 00078 LeveyJenningsGridAttributes LeveyJenningsCoordinatePlane::gridAttributes() const 00079 { 00080 return d->gridAttributes; 00081 } 00082 00083 void LeveyJenningsCoordinatePlane::setGridAttributes( const LeveyJenningsGridAttributes& attr ) 00084 { 00085 d->gridAttributes = attr; 00086 } 00087 00088 const QPointF LeveyJenningsCoordinatePlane::translateBack( const QPointF& screenPoint ) const 00089 { 00090 return CartesianCoordinatePlane::translateBack( screenPoint ); 00091 } 00092 00093 #undef d