VR-Forces 4.0.4 Class Documentation
include/symbology/compositeSymbol.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2006 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: compositeSymbol.h,v $ $Revision: 1.52 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtCompositeSymbol_H_
00013 #define DtCompositeSymbol_H_
00014 
00015 #include "symbology/symbol.h"
00016 #include "symbology/symbologyDefines.h"
00017 
00018 class DtLineSymbol;
00019 
00025 const int DtShowSymbolIndicatorsAlways = 0;
00026 const int DtShowSymbolIndicatorsNever = 1;
00027 const int DtShowSymbolIndicatorsWhenSelected = 2;
00028 
00033 
00034 class DT_DLL_symbology DtCompositeSymbol : public DtSymbol
00035 {
00036    Q_OBJECT
00037 
00038 public:
00040    DtCompositeSymbol(const DtCompositeSymbol& orig);
00041    DtCompositeSymbol& operator=(const DtCompositeSymbol& orig);
00042    virtual ~DtCompositeSymbol();
00043    
00045    DtCompositeSymbol( DtSymbolDrawer & drawer );
00046    DtCompositeSymbol( DtSymbolDrawer & drawer,
00047                    const DtDisplayPoint & center);
00048 
00051    virtual DtSymbol* clone() const;
00052 
00053    virtual bool setLocationData(const QPolygon*);
00054 
00055    void shift(QPoint p);
00056 
00057    //Draw -> draws the children not itself... 
00058    virtual void draw(QPainter& paint) const;
00059    virtual void drawHidden(QPainter& paint) const;
00060 
00063    virtual const DtDisplayPoint centerPoint() const;
00064 
00066    virtual bool select(const QPoint& point);
00067 
00070    virtual void addSymbol(DtSymbol* symbol, bool isALabel = false);
00071 
00074    virtual void removeSymbol(const DtSymbol* symbol, bool deleteSymbol = true, bool resetMainSymbol = false);
00075    virtual void removeSymbol(int iIndex, bool deleteSymbol = true, bool resetMainSymbol = false);
00076 
00079    virtual void removeAllSymbols(const QVector<DtSymbol*>& except = QVector<DtSymbol*>());
00080 
00084    virtual DtSymbol* setMainSymbol(DtSymbol* symbol);
00085    virtual DtSymbol* mainSymbol() const;
00086 
00089    virtual DtSymbol* getSymbolByName(const QString& name);
00090 
00093    virtual bool isComposite() {return true;}
00094 
00096    virtual QSize bbox() const;
00097 
00100    virtual QRect selBbox() const;
00101 
00102    virtual bool overlapsSymbol(const DtSymbol & aSymbol, 
00103       const DtSymbol_OverlapTest aTest = DtSymbol_BoxPieces,
00104       const float aTolerance = 0) const;
00105 
00106    //This function JUST compares the labels of the object for
00107    //overlap as opposed to the object itself
00108    virtual bool labelsOverlapsSymbol(const DtSymbol & aSymbol, 
00109       const DtSymbol_OverlapTest aTest = DtSymbol_BoundingBox,
00110       const float aTolerance = 0) const;
00111 
00112    virtual DtSymbolList* childrenList() const;
00113    virtual DtSymbolList* labelList() const;
00114 
00116    virtual bool show(DtShowHideContext module);
00117 
00119    virtual bool hide(DtShowHideContext module);
00120 
00122    virtual void setDrawOrder();
00123 
00125    virtual DtSymbol* editableSymbol();
00126 
00130    virtual int labelOffset(const DtSymbol* s) const;
00131    virtual void setLabelOffset(int i);
00132 
00134    virtual const QPoint& lowestLabelOffset() const;
00135 
00136    virtual void setTransparencyLevel(int i);
00137 
00139    virtual void hideAllChildren(DtShowHideContext iModule = DtDefaultShowHideContext);
00140 
00142    virtual void showAllChildren(DtShowHideContext iModule = DtDefaultShowHideContext);
00143 
00151    virtual void setShadowText(bool b);
00152 
00153    virtual void blockSignals(bool);
00154 
00156    virtual bool originIsCenterOfMass() const;
00157 
00158    static DtSymbol* create(DtSymbolDrawer& drawer);
00159    virtual void setCacheSymbolAsBitmap(bool);
00160 
00161    virtual void setShowIndicatorOption(int);
00162    int showIndicatorOption() const;
00163 
00164    virtual DtShowHideContext mapIndicatorOptionToContext(int) const;
00165    virtual void setHighlight(const bool highlight);
00166 
00168    virtual bool editMode();
00169    virtual void setEditMode(bool onOff);
00170 
00171    virtual void reset();
00172 
00173 protected:
00174    virtual bool transparentCacheChanged() const;
00175    virtual void cacheTransparentVariables();
00176 
00177 protected slots:
00179    virtual void symbolDestroyed(const DtSymbol *s);
00180 
00182    virtual void symbolRemoved(const DtSymbol* s);
00183 
00184 protected:
00186    virtual void setChildrenList(DtSymbolList* list);
00187 
00189    virtual bool forceUpdate() const;
00190 
00193    virtual void draw(DtSymbol* symbol, QPainter& paint) const;
00194    virtual void drawHidden(DtSymbol* symbol, QPainter& paint) const;
00195 
00196    virtual void setScaleBy(double factor);
00197    virtual bool isScalable() const;
00198 
00200    virtual void setupSelect();
00201    virtual void selectSymbols();
00202 
00203    virtual void wasHidden(DtSymbol* sym);
00204    virtual void wasShown(DtSymbol* sym);
00205 
00206 private:
00208    DtCompositeSymbol();
00209 
00210 protected:
00211    DtSymbolList* myChildrenList;
00212    DtSymbolList* myLabelList;
00213    DtSymbol* myMainSymbol;
00214    DtSymbolList* myDrawOrder;
00215    DtSymbolList* mySelectedChildren;
00216    int myLabelOffset;
00217    QPoint myLastParentOffset;
00218    bool myShadowText;
00219    int myShowIndicatorOption;
00220 };
00221 
00222 inline int DtCompositeSymbol::showIndicatorOption() const
00223 {
00224    return myShowIndicatorOption;
00225 }
00226 
00227 #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)