VR-Forces 4.0.4 Class Documentation
include/symbolDrawer/lineDrawer.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2001 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: lineDrawer.h,v $ $Revision: 1.18 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtLineDrawer_H_
00013 #define DtLineDrawer_H_
00014 
00016 #include "symbolDrawer/baseSymbolDrawer.h"
00017 #include "symbology/lineSymbol.h"
00018 
00019 class DtSymbol;
00020 class DtCenterPoint;
00021 class QPainterPath;
00022 
00024 #include <QtCore/QCache>
00025 #include <QtGui/QPixmap>
00026 
00031 #include "symbolDrawer/symbolDrawerDefines.h"
00032 
00033 class DT_DLL_symbolDrawer DtLineDrawer : public DtBaseSymbolDrawer
00034 {
00035 public:
00036 
00037    DtLineDrawer();
00038    virtual ~DtLineDrawer();
00039    
00040 
00045    virtual bool         draw( QPainter& paint,
00046                               const DtSymbol * const symbol ) const;
00047 
00053    static void drawClippedLine(QPainterPath& path, QPainter& paint, const QPoint& point);
00054    static void drawClippedLine(QPainter& paint, const QPoint& start, const QPoint& end);
00055 
00058    virtual QSize calcBBox( const DtSymbol * const symbol ) const;
00059    
00061    virtual void setPenThickness(int thickness);
00062 
00065    virtual void setArrowStyle(DtLineSymbol::DtArrowStyle style);
00066    virtual void clearArrowStyleOverride();
00067 
00070    virtual void setPenStyle(Qt::PenStyle style);
00071    virtual void clearPenStyleOverride();
00072 
00073    static DtSymbolDrawer* create();
00074 
00075 private:
00077    DtLineDrawer(const DtLineDrawer& orig);
00078    DtLineDrawer& operator=(const DtLineDrawer& orig);
00080 
00081 protected:
00082    virtual void         drawSimpleArrow(QPainterPath& path, QPainter & paint,
00083                               const DtLineSymbol * const arrowSymbol ) const;
00084    virtual void         drawMainArrow(QPainterPath& path, QPainter & paint,
00085                               const DtLineSymbol * const arrowSymbol ) const;
00086    virtual void         drawRearArrow(QPainterPath& path, QPainter & paint,
00087                               const DtLineSymbol * const arrowSymbol ) const;
00088    virtual void         drawCappedSides(QPainterPath& path, QPainter & paint,
00089                               const DtLineSymbol * const arrowSymbol ) const;
00090    virtual void         drawTriangle(QPainterPath& path, QPainter & paint,
00091                               const DtLineSymbol * const arrowSymbol ) const;
00092    virtual void         drawThickArrow(QPainterPath& path, QPainter & paint,
00093                               const DtLineSymbol * const arrowSymbol ) const;
00094    virtual void         drawThickDoubleArrow(QPainterPath& path, QPainter & paint,
00095                               const DtLineSymbol * const arrowSymbol ) const;
00096    virtual void         drawFeintArrow(QPainterPath& path, QPainter & paint,
00097                               const DtLineSymbol * const arrowSymbol ) const;
00098    virtual void         draw2525TailArrow(QPainterPath& path, QPainter & paint,
00099                               const DtLineSymbol * const arrowSymbol ) const;
00100    virtual void         drawBridge(QPainterPath& path, QPainter & paint,
00101                               const DtLineSymbol * const arrowSymbol ) const;
00102 
00103 protected:
00104    int myPenThickness;
00105    DtLineSymbol::DtArrowStyle myArrowStyle;
00106    bool myArrowStyleOverride;
00107 
00108    Qt::PenStyle myPenStyle;
00109    bool myPenStyleOverride;
00110 };
00111 
00112 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)