| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 | 
							- /* -*- 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
 
-  *****************************************************************************/
 
- #ifndef QWT_PLOT_SERIES_ITEM_H
 
- #define QWT_PLOT_SERIES_ITEM_H
 
- #include "qwt_global.h"
 
- #include "qwt_plot_item.h"
 
- #include "qwt_scale_div.h"
 
- #include "qwt_series_data.h"
 
- /*!
 
-   \brief Base class for plot items reprsenting a series of samples
 
- */
 
- class QWT_EXPORT QwtPlotAbstractSeriesItem: public QwtPlotItem
 
- {
 
- public:
 
-     explicit QwtPlotAbstractSeriesItem( const QString &title = QString::null );
 
-     explicit QwtPlotAbstractSeriesItem( const QwtText &title );
 
-     virtual ~QwtPlotAbstractSeriesItem();
 
-     void setOrientation( Qt::Orientation );
 
-     Qt::Orientation orientation() const;
 
-     virtual void draw( QPainter *p,
 
-         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
 
-         const QRectF & ) const;
 
-     /*!
 
-       Draw a subset of the samples
 
-       \param painter Painter
 
-       \param xMap Maps x-values into pixel coordinates.
 
-       \param yMap Maps y-values into pixel coordinates.
 
-       \param canvasRect Contents rect of the canvas
 
-       \param from Index of the first point to be painted
 
-       \param to Index of the last point to be painted. If to < 0 the
 
-              curve will be painted to its last point.
 
-     */
 
-     virtual void drawSeries( QPainter *painter,
 
-         const QwtScaleMap &xMap, const QwtScaleMap &yMap,
 
-         const QRectF &canvasRect, int from, int to ) const = 0;
 
- private:
 
-     class PrivateData;
 
-     PrivateData *d_data;
 
- };
 
- /*!
 
-   \brief Class template for plot items reprsenting a series of samples
 
- */
 
- template <typename T>
 
- class QwtPlotSeriesItem: public QwtPlotAbstractSeriesItem
 
- {
 
- public:
 
-     explicit QwtPlotSeriesItem<T>( const QString &title = QString::null );
 
-     explicit QwtPlotSeriesItem<T>( const QwtText &title );
 
-     virtual ~QwtPlotSeriesItem<T>();
 
-     void setData( QwtSeriesData<T> * );
 
-     QwtSeriesData<T> *data();
 
-     const QwtSeriesData<T> *data() const;
 
-     size_t dataSize() const;
 
-     T sample( int i ) const;
 
-     virtual QRectF boundingRect() const;
 
-     virtual void updateScaleDiv( const QwtScaleDiv &,
 
-                                  const QwtScaleDiv & );
 
- protected:
 
-     //! Series
 
-     QwtSeriesData<T> *d_series;
 
- };
 
- /*!
 
-   Constructor
 
-   \param title Title of the series item
 
- */
 
- template <typename T>
 
- QwtPlotSeriesItem<T>::QwtPlotSeriesItem( const QString &title ):
 
-     QwtPlotAbstractSeriesItem( QwtText( title ) ),
 
-     d_series( NULL )
 
- {
 
- }
 
- /*!
 
-   Constructor
 
-   \param title Title of the series item
 
- */
 
- template <typename T>
 
- QwtPlotSeriesItem<T>::QwtPlotSeriesItem( const QwtText &title ):
 
-     QwtPlotAbstractSeriesItem( title ),
 
-     d_series( NULL )
 
- {
 
- }
 
- //! Destructor
 
- template <typename T>
 
- QwtPlotSeriesItem<T>::~QwtPlotSeriesItem()
 
- {
 
-     delete d_series;
 
- }
 
- //! \return the the curve data
 
- template <typename T>
 
- inline QwtSeriesData<T> *QwtPlotSeriesItem<T>::data()
 
- {
 
-     return d_series;
 
- }
 
- //! \return the the curve data
 
- template <typename T>
 
- inline const QwtSeriesData<T> *QwtPlotSeriesItem<T>::data() const
 
- {
 
-     return d_series;
 
- }
 
- /*!
 
-     \param index Index
 
-     \return Sample at position index
 
- */
 
- template <typename T>
 
- inline T QwtPlotSeriesItem<T>::sample( int index ) const
 
- {
 
-     return d_series ? d_series->sample( index ) : T();
 
- }
 
- /*!
 
-   Assign a series of samples
 
-   \param data Data
 
-   \warning The item takes ownership of the data object, deleting
 
-            it when its not used anymore.
 
- */
 
- template <typename T>
 
- void QwtPlotSeriesItem<T>::setData( QwtSeriesData<T> *data )
 
- {
 
-     if ( d_series != data )
 
-     {
 
-         delete d_series;
 
-         d_series = data;
 
-         itemChanged();
 
-     }
 
- }
 
- /*!
 
-   Return the size of the data arrays
 
-   \sa setData()
 
- */
 
- template <typename T>
 
- size_t QwtPlotSeriesItem<T>::dataSize() const
 
- {
 
-     if ( d_series == NULL )
 
-         return 0;
 
-     return d_series->size();
 
- }
 
- /*!
 
-   \return Bounding rectangle of the data.
 
-   If there is no bounding rect, like for empty data the rectangle is invalid.
 
-   \sa QwtSeriesData<T>::boundingRect(), QRectF::isValid()
 
- */
 
- template <typename T>
 
- QRectF QwtPlotSeriesItem<T>::boundingRect() const
 
- {
 
-     if ( d_series == NULL )
 
-         return QRectF( 1.0, 1.0, -2.0, -2.0 ); // invalid
 
-     return d_series->boundingRect();
 
- }
 
- /*!
 
-    Update the rect of interest according to the current scale ranges
 
-    \param xScaleDiv Scale division of the x-axis
 
-    \param yScaleDiv Scale division of the y-axis
 
-    \sa QwtSeriesData<T>::setRectOfInterest()
 
- */
 
- template <typename T>
 
- void QwtPlotSeriesItem<T>::updateScaleDiv( 
 
-     const QwtScaleDiv &xScaleDiv, const QwtScaleDiv &yScaleDiv )
 
- {
 
-     const QRectF rect = QRectF(
 
-         xScaleDiv.lowerBound(), yScaleDiv.lowerBound(),
 
-         xScaleDiv.range(), yScaleDiv.range() );
 
-     d_series->setRectOfInterest( rect );
 
- }
 
- #endif
 
 
  |