![]() |
VR-Forces 4.0.4 Class Documentation
|
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