10 #include "qwt_vectorfield_symbol.h" 
   13 #include <qpainterpath.h> 
   25 class QwtVectorFieldArrow::PrivateData
 
   28     PrivateData( qreal headW, qreal tailW )
 
   38         path.lineTo( -headWidth, headWidth );
 
   39         path.lineTo( -headWidth, tailWidth );
 
   40         path.lineTo( -
length, tailWidth );
 
   41         path.lineTo( -
length, -tailWidth );
 
   42         path.lineTo( -headWidth, -tailWidth );
 
   43         path.lineTo( -headWidth, -headWidth );
 
   50         length = qMax( l, headWidth );
 
   52         path.setElementPositionAt( 3, -
length, tailWidth );
 
   53         path.setElementPositionAt( 4, -
length, -tailWidth );
 
   56     const qreal headWidth;
 
   57     const qreal tailWidth;
 
   76     m_data = 
new PrivateData( headWidth, tailWidth );
 
   87     m_data->setLength( 
length );
 
   92     return m_data->length;
 
   97     painter->drawPath( m_data->path );
 
  100 class QwtVectorFieldThinArrow::PrivateData
 
  103     PrivateData( qreal headW )
 
  107         path.lineTo( -headWidth, headWidth * 0.6 );
 
  109         path.lineTo( -headWidth, -headWidth * 0.6 );
 
  111         path.lineTo( -
length, 0 );
 
  114     const qreal headWidth;
 
  130     m_data = 
new PrivateData( headWidth );
 
  143     const qreal headWidth = qMin( m_data->headWidth, 
length / 3.0 );
 
  145     QPainterPath& path = m_data->path;
 
  147     path.setElementPositionAt( 1, -headWidth, headWidth * 0.6 );
 
  148     path.setElementPositionAt( 3, -headWidth, -headWidth * 0.6 );
 
  149     path.setElementPositionAt( 5, -
length, 0 );
 
  154     return m_data->length;
 
  159     p->drawPath( m_data->path );
 
virtual void paint(QPainter *) const override
Draw the symbol/arrow.
QwtVectorFieldArrow(qreal headWidth=6.0, qreal tailWidth=1.0)
Constructor.
virtual void setLength(qreal length) override
virtual qreal length() const override
virtual ~QwtVectorFieldArrow() override
Destructor.
QwtVectorFieldSymbol()
Constructor.
virtual ~QwtVectorFieldSymbol()
Destructor.
QwtVectorFieldThinArrow(qreal headWidth=6.0)
Constructor.
virtual void setLength(qreal length) override
virtual void paint(QPainter *) const override
Draw the symbol/arrow.
virtual ~QwtVectorFieldThinArrow() override
Destructor.
virtual qreal length() const override