VR-Forces 4.1.1 Class Documentation
symbolDesc.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: symbolDesc.h,v $ $Revision: 1.21 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef SYMBOLDESC_H
13 #define SYMBOLDESC_H
14 
16 #include "symbology/symbol.h"
17 
18 #include <QtCore/QString>
19 #include <QtGui/QColor>
20 
21 class DtSymbol;
22 class DtSymbolDrawer;
23 class DtEntityMapperKey;
24 
42 {
43 
44 public:
45 
48  DtDescriptor(),
49  myTransparencyLevel(0),
50  myColor(QRgb(0)),
51  myOptionalColorParameter(0),
52  myWriteOut(true),
53  myOptionalData(false)
54  {
55  myKeyword = "symbol-map";
56  };
57 
59  virtual ~DtSymbolDescriptor()
60  {
61  };
62 
65  DtDescriptor(orig),
66  myColor(orig.myColor),
67  myWriteOut(orig.myWriteOut),
68  myTransparencyLevel(orig.myTransparencyLevel),
69  myOptionalColorParameter(orig.myOptionalColorParameter),
70  myOptionalData(orig.myOptionalData)
71  {
72  };
73 
76  {
77  if (this == &rhs)
78  return *this;
79 
81 
82  myColor = rhs.myColor;
83  myWriteOut = rhs.myWriteOut;
84  myTransparencyLevel = rhs.myTransparencyLevel;
85  myOptionalColorParameter = rhs.myOptionalColorParameter;
86  myOptionalData = rhs.myOptionalData;
87 
88  return *this;
89  };
90 
92  virtual bool operator==(const DtSymbolDescriptor& rhs) const
93  {
94  if (DtDescriptor::operator==(rhs))
95  {
96  return ((myColor == rhs.myColor) &&
97  (myWriteOut == rhs.myWriteOut) &&
98  (myTransparencyLevel == rhs.myTransparencyLevel) &&
99  (myOptionalColorParameter == rhs.myOptionalColorParameter) &&
100  (myOptionalData == rhs.myOptionalData));
101  }
102 
103  return false;
104  }
105 
106  virtual bool operator!=(const DtSymbolDescriptor& rhs) const
107  {
108  return !(*this == rhs);
109  }
110 
113  virtual QString secondaryInfo() const
114  {
115  return "";
116  }
117 
118  virtual DtSymbol* createSymbol(DtSymbolDrawer& drawer, const DtEntityMapperKey& key) const = 0;
119 
120  void setColor(const QColor& color);
121  const QColor& color() const;
122 
123  void setTransparencyLevel(int);
124  int transparencyLevel() const;
125 
126  void setOptionalColorParameter(int);
127  int optionalColorParameter() const;
128 
129  void setWriteOut(bool);
130  bool writeOut() const;
131 
132  virtual DtSymbolDescriptor* clone() = 0;
133 
134  virtual QString descriptorInformation() const
135  {
136  QString s;
137 
138  if (myOptionalData)
139  {
140  s += "(list ";
141  s += QString::number(myColor.red());
142  s += " ";
143  s += QString::number(myColor.green());
144  s += " ";
145  s += QString::number(myColor.blue());
146  s += " ";
147  s += QString::number(myTransparencyLevel);
148  s += " ";
149  s += QString::number(myOptionalColorParameter);
150  s += ")";
151  }
152 
153  return s;
154  }
155 
156 protected:
157  virtual void setupOptionSymbolInformation(DtSymbol* mainSymbol) const;
158 
159 protected:
160  QColor myColor;
165 };
166 
167 inline void DtSymbolDescriptor::setColor(const QColor& color)
168 {
169  myOptionalData = true;
170  myColor = color;
171 }
172 
173 inline const QColor& DtSymbolDescriptor::color() const
174 {
175  return myColor;
176 }
177 
179 {
180  myOptionalData = true;
182 }
183 
185 {
186  return myTransparencyLevel;
187 }
188 
190 {
191  myOptionalData = true;
193 }
194 
196 {
198 }
199 
201 {
203 
204  if ((myColor.rgb() & RGB_MASK) != 0)
205  {
206  mainSymbol->setColor(myColor);
207  }
208 }
209 
211 {
212  myWriteOut = b;
213 }
214 
215 inline bool DtSymbolDescriptor::writeOut() const
216 {
217  return myWriteOut;
218 }
219 
220 #endif

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)