| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | 
							- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 
-  * Qwt Widget Library
 
-  * Copyright (C) 1997   Josef Wilgen
 
-  * Copyright (C) 2002   Uwe Rathmann
 
-  *
 
-  * This library is free software; you can redistribute it and/or
 
-  * modify it under the terms of the Qwt License, Version 1.0
 
-  *****************************************************************************/
 
- #include "qwt_scale_div.h"
 
- #include "qwt_math.h"
 
- #include "qwt_interval.h"
 
- #include <qalgorithms.h>
 
- //! Construct an invalid QwtScaleDiv instance.
 
- QwtScaleDiv::QwtScaleDiv():
 
-     d_lowerBound( 0.0 ),
 
-     d_upperBound( 0.0 ),
 
-     d_isValid( false )
 
- {
 
- }
 
- /*!
 
-   Construct QwtScaleDiv instance.
 
-   \param interval Interval
 
-   \param ticks List of major, medium and minor ticks
 
- */
 
- QwtScaleDiv::QwtScaleDiv( const QwtInterval &interval,
 
-         QList<double> ticks[NTickTypes] ):
 
-     d_lowerBound( interval.minValue() ),
 
-     d_upperBound( interval.maxValue() ),
 
-     d_isValid( true )
 
- {
 
-     for ( int i = 0; i < NTickTypes; i++ )
 
-         d_ticks[i] = ticks[i];
 
- }
 
- /*!
 
-   Construct QwtScaleDiv instance.
 
-   \param lowerBound First interval limit
 
-   \param upperBound Second interval limit
 
-   \param ticks List of major, medium and minor ticks
 
- */
 
- QwtScaleDiv::QwtScaleDiv(
 
-         double lowerBound, double upperBound,
 
-         QList<double> ticks[NTickTypes] ):
 
-     d_lowerBound( lowerBound ),
 
-     d_upperBound( upperBound ),
 
-     d_isValid( true )
 
- {
 
-     for ( int i = 0; i < NTickTypes; i++ )
 
-         d_ticks[i] = ticks[i];
 
- }
 
- /*!
 
-    Change the interval
 
-    \param interval Interval
 
- */
 
- void QwtScaleDiv::setInterval( const QwtInterval &interval )
 
- {
 
-     setInterval( interval.minValue(), interval.maxValue() );
 
- }
 
- /*!
 
-   \brief Equality operator
 
-   \return true if this instance is equal to other
 
- */
 
- bool QwtScaleDiv::operator==( const QwtScaleDiv &other ) const
 
- {
 
-     if ( d_lowerBound != other.d_lowerBound ||
 
-         d_upperBound != other.d_upperBound ||
 
-         d_isValid != other.d_isValid )
 
-     {
 
-         return false;
 
-     }
 
-     for ( int i = 0; i < NTickTypes; i++ )
 
-     {
 
-         if ( d_ticks[i] != other.d_ticks[i] )
 
-             return false;
 
-     }
 
-     return true;
 
- }
 
- /*!
 
-   \brief Inequality
 
-   \return true if this instance is not equal to s
 
- */
 
- bool QwtScaleDiv::operator!=( const QwtScaleDiv &s ) const
 
- {
 
-     return ( !( *this == s ) );
 
- }
 
- //! Invalidate the scale division
 
- void QwtScaleDiv::invalidate()
 
- {
 
-     d_isValid = false;
 
-     // detach arrays
 
-     for ( int i = 0; i < NTickTypes; i++ )
 
-         d_ticks[i].clear();
 
-     d_lowerBound = d_upperBound = 0;
 
- }
 
- //! Check if the scale division is valid
 
- bool QwtScaleDiv::isValid() const
 
- {
 
-     return d_isValid;
 
- }
 
- /*!
 
-   Return if a value is between lowerBound() and upperBound()
 
-   \param value Value
 
-   \return true/false
 
- */
 
- bool QwtScaleDiv::contains( double value ) const
 
- {
 
-     if ( !d_isValid )
 
-         return false;
 
-     const double min = qMin( d_lowerBound, d_upperBound );
 
-     const double max = qMax( d_lowerBound, d_upperBound );
 
-     return value >= min && value <= max;
 
- }
 
- //! Invert the scale divison
 
- void QwtScaleDiv::invert()
 
- {
 
-     qSwap( d_lowerBound, d_upperBound );
 
-     for ( int i = 0; i < NTickTypes; i++ )
 
-     {
 
-         QList<double>& ticks = d_ticks[i];
 
-         const int size = ticks.count();
 
-         const int size2 = size / 2;
 
-         for ( int i = 0; i < size2; i++ )
 
-             qSwap( ticks[i], ticks[size - 1 - i] );
 
-     }
 
- }
 
- /*!
 
-     Assign ticks
 
-    \param type MinorTick, MediumTick or MajorTick
 
-    \param ticks Values of the tick positions
 
- */
 
- void QwtScaleDiv::setTicks( int type, const QList<double> &ticks )
 
- {
 
-     if ( type >= 0 || type < NTickTypes )
 
-         d_ticks[type] = ticks;
 
- }
 
- /*!
 
-    Return a list of ticks
 
-    \param type MinorTick, MediumTick or MajorTick
 
- */
 
- const QList<double> &QwtScaleDiv::ticks( int type ) const
 
- {
 
-     if ( type >= 0 || type < NTickTypes )
 
-         return d_ticks[type];
 
-     static QList<double> noTicks;
 
-     return noTicks;
 
- }
 
 
  |