kchart

KDChartVectorSeries.cpp

00001 /* -*- Mode: C++ -*-
00002    KDChart - a multi-platform charting engine
00003    */
00004 
00005 /****************************************************************************
00006  ** Copyright (C) 2001-2003 Klarälvdalens Datakonsult AB.  All rights reserved.
00007  **
00008  ** This file is part of the KDChart 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 KDChart licenses may use this file in
00016  ** accordance with the KDChart 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.klaralvdalens-datakonsult.se/?page=products for
00023  **   information about KDChart Commercial License Agreements.
00024  **
00025  ** Contact info@klaralvdalens-datakonsult.se if any conditions of this
00026  ** licensing are not clear to you.
00027  **
00028  **********************************************************************/
00029 
00030 #include "KDChartVectorSeries.h"
00031 #include "KDChartSeriesCollection.h"
00032 
00033 
00034 KDChartVectorSeries::~KDChartVectorSeries()
00035 {
00036 }
00037 
00038 
00039 
00040 uint KDChartVectorSeries::rows() const
00041 {
00042     return size();
00043 }
00044 
00045 const KDChartData& KDChartVectorSeries::cell( uint row ) const
00046 {
00047     Q_ASSERT( row < size() );
00048     // make it compile on windows using qt232
00049     return this->at(row);
00050 }
00051 
00052 void KDChartVectorSeries::setCell( uint row, const KDChartData& element)
00053 {
00054     Q_ASSERT( row < size() );
00055     // make it compile on windows using qt232
00056     this->at(row) = element;
00057 }
00058 
00059 void KDChartVectorSeries::expand( uint rows )
00060 {
00061     resize(rows);
00062 }
00063 
00064 
00065 // we return !ok if its on the infinite axis
00066 double KDChartVectorSeries::maxValue( int coordinate, bool &ok ) const
00067 {
00068     double maxValue = 0.0;
00069     bool bStart = true;
00070 
00071 #if COMPAT_QT_VERSION >= 0x030000
00072     KDChartVectorSeries::const_iterator i;
00073 #else
00074     KDChartVectorSeries::ConstIterator i;
00075 #endif
00076 
00077     for ( i = begin(); i != end(); i ++ )
00078     {
00079         const KDChartData& d = *i;
00080         if ( d.isDouble( coordinate ) )
00081         {
00082             if ( bStart )
00083             {
00084                 maxValue = d.doubleValue( coordinate );
00085                 bStart = false;
00086             }
00087             else
00088                 maxValue = QMAX( maxValue, d.doubleValue( coordinate ) );
00089         }
00090     }
00091 
00092     ok = !bStart;
00093     return maxValue;
00094 }
00095 
00096 
00097 
00098 double KDChartVectorSeries::minValue( int coordinate, bool &ok ) const
00099 {
00100     double minValue = 0.0;
00101     bool bStart = true;
00102 
00103 #if COMPAT_QT_VERSION >= 0x030000
00104     KDChartVectorSeries::const_iterator i;
00105 #else
00106     KDChartVectorSeries::ConstIterator i;
00107 #endif
00108 
00109     for ( i = begin(); i != end(); i ++ )
00110     {
00111         const KDChartData& d = *i;
00112         if ( d.isDouble( coordinate ) ) 
00113         {
00114             if ( bStart ) 
00115             {
00116                 minValue = d.doubleValue( coordinate );
00117                 bStart = false;
00118             }
00119             else
00120                 minValue = QMIN( minValue, d.doubleValue( coordinate ) );
00121         }
00122     }
00123 
00124     ok = !bStart;
00125     return minValue;
00126 }
KDE Home | KDE Accessibility Home | Description of Access Keys