VR-Forces 4.0.4 Class Documentation
include/symbology/circleSymbol.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2001 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: circleSymbol.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtCircleSymbol_H_
00013 #define DtCircleSymbol_H_
00014 
00015 #include "symbology/colorizedSymbol.h"
00016 
00017 class DtNullDrawer;
00018 class DtCircleDrawer;
00019 
00020 const int DtCircleSelected_None = 0;
00021 const int DtCircleSelected_Origin = 0x00000001;
00022 const int DtCircleSelected_Circle = 0x00000002;
00023 
00024 class DtArcInfo;
00025 
00027 #include "symbology/symbologyDefines.h"
00028 class DT_DLL_symbology DtCircleSymbol : public DtColorizedSymbol
00029 {
00030 public:
00031 
00032    enum DtCircleStyle{
00033         DtStyle_NoCircle = 0,    
00034         DtStyle_Outline,         
00035         DtStyle_Fill,            
00036         DtStyle_Pattern,         
00037         DtStyle_NoEntry,         
00038         DtStyle_CrossHair,       
00039         DtStyle_Pie,             
00040         DtStyle_CircleStyle_MAX  
00041    };
00042 
00044    DtCircleSymbol( DtSymbolDrawer & drawer);
00045 
00047    DtCircleSymbol( DtNullDrawer & drawer);
00048 
00050    DtCircleSymbol(const DtCircleSymbol& orig);
00051 
00053    DtCircleSymbol& operator=(const DtCircleSymbol& orig);
00054 
00056    virtual ~DtCircleSymbol();
00057 
00059    virtual DtSymbol * clone()const;
00060    
00064    virtual void setRadius(const double r);
00065 
00067    virtual double radius() const;
00068 
00069    //If you want an ellipse, the following two functions
00070    //should be called
00071 
00074    virtual void setYRadius(const double r);
00075 
00077    virtual double yRadius() const;
00078 
00081    virtual void setRotationDegrees(const double rot);
00082 
00084    virtual double rotationDegrees() const;
00085 
00087    virtual void setCircleStyle(DtCircleStyle style);
00088    virtual DtCircleStyle circleStyle() const;
00089 
00090    virtual void setBrushStyle(Qt::BrushStyle style);
00091    virtual Qt::BrushStyle brushStyle() const;
00092 
00093    virtual void setPenStyle(Qt::PenStyle style);
00094    virtual Qt::PenStyle penStyle() const;
00095 
00097    virtual bool select(const QPoint &aPoint);
00098    virtual bool select(const QPoint &aPoint, const QSize &aSize);
00099 
00101    virtual bool pointInCircle(const QPoint &aPoint, QPoint &centerPoint,
00102       float xRadius, float yRadius, int penThickness);
00103 
00105    virtual bool rectInCircle(const QRect &aPoint, QPoint &centerPoint,
00106       float xRadius, float yRadius, int penThickness);
00107    virtual bool rectInSmallerCircle(const QRect &aRect, QPoint &centerPoint,
00108       float xRadius, float yRadius, int penThickness);
00109 
00110    bool operator==(const DtCircleSymbol& orig) const;
00111    bool operator!=(const DtCircleSymbol& orig) const;
00112 
00113    virtual bool transparentCacheChanged() const;
00114 
00120    virtual void setArcInfo(double radius, int sweep, double arcStartAngle);
00121    virtual const DtArcInfo* arcInfo() const;
00122    virtual void clearArcInfo();
00123 
00124    virtual Qt::PenStyle crossHairStyle() const;
00125    virtual void setCrossHairStyle(Qt::PenStyle style);
00126 
00127    virtual bool patternCacheChanged() const;
00128    virtual void cachePatternVariables();
00129    virtual bool needsPatternRedraw() const;
00130    virtual QPixmap* patternImage() const;
00131    virtual QPixmap* cachePatternImage(const QPixmap& pixmap);
00132 
00134    void setScaleRadiusByScaleFactor(bool);
00135    bool scaleRadiusByScaleFactor() const;
00136    virtual bool isScalable() const;
00137 
00138 private:
00140    DtCircleSymbol();
00141 
00142 protected:
00143    double myRadius;
00144 
00145    double myYRadius;
00146    double myRotationDegrees;
00147 
00148    DtCircleStyle myCircleStyle;
00149    Qt::BrushStyle myBrushStyle;
00150    Qt::PenStyle myPenStyle;
00151    Qt::PenStyle myCrossHairStyle;
00152 
00153    DtArcInfo* myArcInfo;
00154    DtSymbol*   myPatternCachedSymbol;
00155    QPixmap*  myPatternImage;
00156 
00157    bool        myScaleRadiusByScaleFactor;
00158 };
00159 
00160 class DtArcInfo
00161 {
00162 public:
00163    DtArcInfo(int i, double o) : mySweep(i), myArcStart(o) {};
00164    DtArcInfo(const DtArcInfo& a) : mySweep(a.mySweep), myArcStart(a.myArcStart) {};
00165 
00166    int      mySweep;
00167    double   myArcStart;
00168 };
00169 
00170 inline void DtCircleSymbol::setScaleRadiusByScaleFactor(bool b)
00171 {
00172    myScaleRadiusByScaleFactor = b;
00173 }
00174 
00175 inline bool DtCircleSymbol::scaleRadiusByScaleFactor() const
00176 {
00177    return myScaleRadiusByScaleFactor;
00178 }
00179 
00180 #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)