![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2002 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: aggregateSymbol.h,v $ $Revision: 1.11 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtAggregateSymbol_H_ 00013 #define DtAggregateSymbol_H_ 00014 00015 #include "symbology/symbologyDefines.h" 00016 #include "symbology/compositeSymbol.h" 00017 00018 00019 00025 class DT_DLL_symbology DtAggregateSymbol : public DtCompositeSymbol 00026 { 00027 public: 00028 00029 enum DtCenterCalculationStyle{ 00030 DtNoCalculation = 0, 00031 DtWeighted, 00032 DtNotWeighted, 00033 DtCenterCalculationStyle_MAX 00034 }; 00035 00037 DtAggregateSymbol(const DtAggregateSymbol& orig); 00038 DtAggregateSymbol& operator=(const DtAggregateSymbol& orig); 00039 virtual ~DtAggregateSymbol(); 00040 00042 DtAggregateSymbol( DtSymbolDrawer & drawer ); 00043 00044 DtSymbol* clone() const; 00045 00046 virtual void shift(QPoint p); 00047 00048 virtual void setOrigin(int x, int y ); 00049 virtual void setOrigin(const QPoint& position); 00050 virtual const DtDisplayPoint centerPoint() const; 00051 virtual const QPoint origin() const; 00052 00055 static DtAggregateSymbol* createAggregate(DtSymbolDrawer & drawer, 00056 DtSymbolList* symbols); 00057 00059 virtual void addAggregate(DtSymbol* symbols); 00060 00062 virtual void draw(QPainter& paint) const; 00063 00065 virtual QSize bbox() const; 00066 00069 virtual QRect selBbox() const; 00070 00072 virtual QSize aggregatesBbox() const; 00073 00076 virtual QPoint unweightedAggregateCenter() const; 00077 00082 virtual QPoint weightedAggregateCenter() const ; 00083 00087 virtual DtSymbolList* createDeaggregateSymbols(); 00088 00090 virtual void deaggregateSymbol(DtSymbol* s); 00091 00092 virtual bool overlapsSymbol(const DtSymbol & aSymbol, 00093 const DtSymbol_OverlapTest aTest = DtSymbol_BoxPieces, 00094 const float aTolerance = 0) const; 00095 00098 virtual bool labelsOverlapsSymbol(const DtSymbol & aSymbol, 00099 const DtSymbol_OverlapTest aTest = DtSymbol_BoundingBox, 00100 const float aTolerance = 0) const; 00101 00105 virtual void setCalculationStyle(DtCenterCalculationStyle style); 00106 00107 private: 00109 DtAggregateSymbol(); 00110 00111 protected: 00112 DtCenterCalculationStyle myCalculationStyle; 00113 }; 00114 00115 #endif //DtAggregateSymbol_H_ 00116