VR-Forces 4.0.4 Class Documentation
include/symbology/lineSymbol.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2001 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: lineSymbol.h,v $ $Revision: 1.38 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtLineSymbol_H_
00013 #define DtLineSymbol_H_
00014 
00015 #include "symbology/colorizedSymbol.h"
00016 
00017 #include "ngutil/linkedList.h"
00018 #include "ngutil/dtqlist.h"
00019 
00020 class DtNullDrawer;
00021 class DtPoint;
00022 
00026 #include "symbology/symbologyDefines.h"
00027 class DT_DLL_symbology DtLineSymbol : public DtColorizedSymbol
00028 {
00029 public:
00030 
00032    DtLineSymbol( DtSymbolDrawer & drawer);
00033    DtLineSymbol( DtSymbolDrawer & drawer,
00034                    const QPoint & startPoint, const QPoint & endPoint);
00035    DtLineSymbol( DtNullDrawer & drawer);
00036 
00037    DtLineSymbol(const DtLineSymbol& orig);
00038    DtLineSymbol& operator=(const DtLineSymbol& orig);
00039 
00040    virtual ~DtLineSymbol();
00041    virtual DtSymbol * clone()const;
00042 
00043    enum DtLineSelectionMode
00044    {
00045       DtLineSelected_None = -2,
00046       DtLineSelected_Line = -1,
00047       DtLineSelected_Point
00048    };
00049 
00050    enum DtArrowStyle{
00051       DtStyle_NoArrow = 0,    
00052       DtStyle_Simple,         
00053       DtStyle_Main,           
00054       DtStyle_Double,         
00055       DtStyle_Capped,         
00056       DtStyle_Triangle,       
00057       DtStyle_2525DispTail,   
00058       DtStyle_Thick,          
00059       DtStyle_ThickDouble,    
00060       DtStyle_Feint,          
00061       DtStyle_Bridge,         
00062       DtStyle_AirAxis,        
00063       DtStyle_SegmentMode,    
00064       DtStyle_NoArrowDrawLine,
00066       DtStyle_ArrowStyle_MAX  
00067    };
00068 
00070    virtual unsigned width() const;
00071    virtual void setWidth(unsigned w);
00072 
00074    virtual void setLineWidth(int i);
00075 
00076    //Center Point is calculated
00077    virtual const DtDisplayPoint centerPoint() const;
00078    virtual void shift(QPoint p);
00079 
00081    virtual void setStartPosition(const QPoint& position);
00082    virtual QPoint startPosition() const;
00083 
00085    virtual void setEndPosition(const QPoint& position);
00086    virtual QPoint endPosition() const;
00087 
00088    virtual void setNumPoints(const int num);
00089    virtual int getNumPoints() const;
00090 
00091    virtual void addPoint(const QPoint* pnt);
00092    virtual void insertPoint(int iIndex, const QPoint* pnt);
00093    virtual void removePoint(int iIndex);
00094 
00095    virtual const QPoint getPoint(int pointNum) const;
00096    virtual void setPoint(int pointNum,const QPoint* pnt);
00097    virtual bool setLocationData(const QPolygon* pts);
00098    virtual const QPolygon* getLocationData() const;
00099 
00101 
00104    virtual bool select(const QPoint& aPoint);
00105    virtual bool selected() const;
00106 
00109    virtual bool select(const QPoint& aPoint,
00110       const QSize& rectangleSize);
00111 
00113    virtual void reverseLine();
00114 
00117    virtual void setKnobSize(int i);
00118    virtual int knobSize() const;
00119 
00120    virtual void setHighlight(const bool highlight);
00121 
00123    virtual bool pointHighlighted() const;
00124 
00126    virtual int pointSelected() const;
00127    virtual void selectPoint(int iPoint);
00128    virtual void clearSelection();
00129 
00131    virtual bool pointSelected(const QPoint& pnt);
00132 
00135    virtual void setLineSelected(bool b, int iSegment = -1);
00136    virtual int segmentSelected() const;
00137 
00141    virtual int getNumVertexPoints() const; 
00142    virtual const QPoint getVertexPoint(int pointNum) const;
00143 
00145    virtual void setCanAddPoint(bool b);
00146    virtual bool canAddPoint() const;
00147 
00151    virtual bool setAndCalculatePoint(int iIndex, const QPoint& pnt);
00152 
00154    virtual bool setAndCalculatePoint(int iIndex, const DtPoint& pnt, QVector<DtPoint>* list);
00155 
00159    virtual void setFixedLength(int iLen);
00160 
00162    static double calculateLineAngle(const QPoint& origin, const QPoint& end);
00163 
00165    virtual DtArrowStyle arrowStyle() const;
00167    virtual void setArrowStyle(DtArrowStyle style);
00168 
00172    virtual void setDrawVertexPoints(const QVector<int> pnts);
00173 
00176    virtual int getVertexOffset(int index) const;
00177 
00180    virtual int mapPointSelectedToIndex(int iPointSelected) const;
00181 
00183    virtual void setPenStyle(Qt::PenStyle style);
00184    virtual Qt::PenStyle penStyle() const;
00185 
00186 
00188    virtual bool isSkipPoint(int pointNum) const;
00189 
00193    virtual bool freehand() const;
00194    virtual void setFreehand(bool b);
00195 
00196    bool operator==(const DtLineSymbol& orig) const;
00197    bool operator!=(const DtLineSymbol& orig) const;
00198 
00199    virtual bool transparentCacheChanged() const;
00200 
00202    virtual bool keepAspectRatio() const;
00203 
00205    virtual bool originIsCenterOfMass() const;
00206 
00207 protected:
00208 
00209    //Center Point is calculated
00210    virtual const  DtDisplayPoint calcCenterPoint() const;
00211    virtual const DtDisplayPoint calcCenterPoint(QPoint& pnt) const;
00212 
00213 private:
00215    DtLineSymbol();
00216 
00217 protected:
00218 
00219    QPolygon* myPoints;
00220    unsigned myWidth;
00221 
00222    int myKnobSize;
00223    int mySegmentSelected;
00224 
00225    DtLineSelectionMode mySelection;
00226    QVector<int> myDrawVertexPoints;
00227 
00228    bool myCanAddPoint;
00229    int myFixedLength;
00230 
00231    DtArrowStyle myArrowStyle;
00232 
00233    Qt::PenStyle myPenStyle;
00234 
00235    bool myFreehand;
00236 };
00237 
00238 #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)