VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfGuiSymbolMapper.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
18 
19 #include <vrvCore/DtEntityState.h>
20 #include <vrvCore/DtForceManager.h>
23 
24 #include <string>
25 #include <vector>
26 
27 #include <QtGui/QPixmap>
28 #include <QtGui/QImage>
29 #include <QtCore/QCache>
30 #include <QtCore/QString>
31 
32 #include <boost/unordered_map.hpp>
33 
34 class DtUUID;
35 
36 namespace makVrv
37 {
38  class DtDe;
39  class DtVisualizerDefinitionSet;
40  class DtVisualizerDefinition;
41 }
42 
43 namespace makVrf
44 {
45  class DtEntityMapperKey;
46 
50  {
51  public:
53  DtGuiSVGSymbolColorizerRule(const DtGuiSVGSymbolColorizerRule& orig) : myDe(orig.myDe) {}
55 
57  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const = 0;
58  virtual const char* colorizerName() const = 0;
59  virtual DtGuiSVGSymbolColorizerRule* clone() const = 0;
60 
61  protected:
63  };
64 
67  {
68  public:
69  DtSVGColorSubstituteColorizerRule(makVrv::DtDe& de, const std::string& colorizerName, const QColor& source, const QColor& destination);
71 
72  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const;
73  virtual const char* colorizerName() const { return myColorizerName.c_str(); }
75 
76  protected:
77  QColor mySource;
78  QColor myDestination;
79  std::string myColorizerName;
80  };
81 
84  {
85  public:
88 
89  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const;
90  virtual const char* colorizerName() const { return "DtSVGForceColorizerRule"; }
91  virtual DtGuiSVGSymbolColorizerRule* clone() const { return new DtSVGForceColorizerRule(*this); }
92  };
93 
96  {
97  public:
100 
101  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const;
102  virtual const char* colorizerName() const { return "DtSVGTopLevelCategoryColorizerRule"; }
104  };
105 
113  {
114  public:
116  virtual ~DtVrfGuiSymbolMapper();
117 
119  static DtVrfGuiSymbolMapper& instance(makVrv::DtDe& de);
120 
122  virtual void clear();
123 
125  virtual void clearIcons(const DtEntityMapperKey&);
126 
130  virtual QPixmap getIcon(const DtEntityMapperKey&, bool destroyed = false, int pointSize = 48, bool sizeToFont = false,
131  const makVrv::DtVrlinkSimulatedBaseState* baseState = 0, const QSize& rescaleToIconSize = QSize(), bool isSpotReport = false,
132  const QColor& milStdOutlineColor = Qt::black, bool fillMilStdSymbol = true, bool ignoreMenuIcon = false,
133  const QColor& fillColor = Qt::transparent);
134 
135  virtual QPixmap getIcon(const DtUUID&, int pointSize = 48, bool sizeToFont = false,
136  const makVrv::DtVrlinkSimulatedBaseState* baseState = 0, const QSize& rescaleToIconSize = QSize(), bool isSpotReport = false,
137  const QColor& milStdOutlineColor = Qt::black, bool fillMilStdSymbol = true, bool ignoreMenuIcon = false);
138 
139  virtual int addFont(const QString&);
140 
141  void setIconSize(int w, int h)
142  {
143  myIconSize = QSize(w, h);
144  }
145 
146  const QSize& iconSize() const
147  {
148  return myIconSize;
149  }
150 
152  virtual void addSVGColorizerRule(const DtGuiSVGSymbolColorizerRule&);
153  virtual void removeSVGColorizerRule(const std::string&);
154  virtual void removeAllSVGColorizerRules();
155 
157  virtual QImage iconImageForIcon(const DtEntityMapperKey&, const QColor& fillColor = Qt::transparent, const QSize& iconSize = QSize(16,16)) const;
158 
160  virtual QPixmap forceColorSwatch(int force);
161 
162  virtual QImage convertSvgUsingColorizerRules(const DtEntityMapperKey&, const QSize& pixmapSize, const std::string& image) const;
163 
164  protected:
165  typedef boost::unordered_map<std::string, std::string> PathListMap;
166 
168  virtual const makVrv::DtVisualizerDefinitionSet* visualDefinitionSetThatBestMatches(const DtEntityMapperKey&, bool isSpotReport);
169  virtual unsigned short echelonGlyphFor(const DtEntityMapperKey& key, const makVrv::DtVisualizerDefinition* set) const;
170 
171  virtual QImage milStdRender(const makVrv::DtVisualizerDefinition*, const DtEntityMapperKey& key, bool destroyed, int pointSize,
172  const QColor& outlineColor = Qt::black, bool fillMilStdSymbol = true, const makVrv::DtVrlinkSimulatedBaseState* baseState = 0, const QColor& fillColor = Qt::transparent) const;
173  virtual QImage imageSymbolRender(const makVrv::DtVisualizerDefinition*, const DtEntityMapperKey& key, bool destroyed,
174  const makVrv::DtVrlinkSimulatedBaseState* baseState = 0, const QSize& iconSize = QSize(16,16)) const;
175 
176  virtual QImage imageFromModelDefinition(const std::string&, const QSize& iconSize = QSize(16,16)) const;
177 
179  virtual DtObjectType menuItemIconIsObjectType(const DtEntityMapperKey&) const;
180 
182  virtual void composeMilStdImage(QPainter& painter, int left, int base,
183  unsigned short fillGlyph, unsigned short outlineGlyph, unsigned short echelonGlyph, unsigned short destroyedGlyph,
185 
187  virtual QImage menuItemIcon(const DtEntityMapperKey&, const QSize& iconSize = QSize()) const;
188 
189  protected:
191  QHash<QString, QPixmap*> myIconCache;
192  QHash<int, QPixmap*> myForceSwatchCache;
193  QHash<int, QString> myFontMap;
194  QSize myIconSize;
195 
199 
201 
202  typedef std::map<std::string, DtGuiSVGSymbolColorizerRule*> SVGColorizerRules;
204  };
205 }
virtual DtGuiSVGSymbolColorizerRule * clone() const
Definition: vrfGuiSymbolMapper.h:91
UUID is a unique ID wrapper class.
Definition: uuid.h:59
PathListMap myTacticalMap
Definition: vrfGuiSymbolMapper.h:197
DtGuiSVGSymbolColorizerRule(makVrv::DtDe &de)
Definition: vrfGuiSymbolMapper.h:52
Definition: entityMapperKey.h:23
QHash< int, QString > myFontMap
Definition: vrfGuiSymbolMapper.h:193
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
PathListMap myAggregateMap
Definition: vrfGuiSymbolMapper.h:196
makVrv::DtDe & myDe
Definition: vrfGuiSymbolMapper.h:190
The class that will contain information about the currently loaded scenario.
Definition: vrfGuiSymbolMapper.h:112
Definition: DtForceManager.h:44
If there is a top level category for this object, and the top level catagory has a color...
Definition: vrfGuiSymbolMapper.h:95
std::string myColorizerName
Definition: vrfGuiSymbolMapper.h:79
Contains makVrv::DtWidgetIconStyleManager class declaration.
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:28
QColor myDestination
Definition: vrfGuiSymbolMapper.h:78
virtual DtGuiSVGSymbolColorizerRule * clone() const
Definition: vrfGuiSymbolMapper.h:103
DtGuiSVGSymbolColorizerRule(const DtGuiSVGSymbolColorizerRule &orig)
Definition: vrfGuiSymbolMapper.h:53
Substitute one color for another.
Definition: vrfGuiSymbolMapper.h:66
QSize myIconSize
Definition: vrfGuiSymbolMapper.h:194
virtual ~DtGuiSVGSymbolColorizerRule()
Definition: vrfGuiSymbolMapper.h:54
Contains makVrv::DtVirtualBaseClass class.
QHash< int, QPixmap * > myForceSwatchCache
Definition: vrfGuiSymbolMapper.h:192
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
PathListMap myEntityMap
Definition: vrfGuiSymbolMapper.h:198
The colorization rule class will be applied to an SVG to translate one color in the SVG to another...
Definition: vrfGuiSymbolMapper.h:49
virtual const char * colorizerName() const
Definition: vrfGuiSymbolMapper.h:102
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
const char * source
Definition: lz4.h:442
SVGColorizerRules mySVGColorizerRules
Definition: vrfGuiSymbolMapper.h:203
Substitute color based on force of incoming object.
Definition: vrfGuiSymbolMapper.h:83
Contains makVrv::DtForceManager class.
const QSize & iconSize() const
Definition: vrfGuiSymbolMapper.h:146
void setIconSize(int w, int h)
Definition: vrfGuiSymbolMapper.h:141
Base class to provide boost signal/slot management.
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
QColor mySource
Definition: vrfGuiSymbolMapper.h:77
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
virtual const char * colorizerName() const
Definition: vrfGuiSymbolMapper.h:90
boost::unordered_map< std::string, std::string > PathListMap
Definition: vrfGuiSymbolMapper.h:165
QHash< QString, QPixmap * > myIconCache
Definition: vrfGuiSymbolMapper.h:191
virtual DtGuiSVGSymbolColorizerRule * clone() const
Definition: vrfGuiSymbolMapper.h:74
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfGuiSymbolMapper.h:200
virtual const char * colorizerName() const
Definition: vrfGuiSymbolMapper.h:73
makVrv::DtDe & myDe
Definition: vrfGuiSymbolMapper.h:62
std::map< std::string, DtGuiSVGSymbolColorizerRule * > SVGColorizerRules
Definition: vrfGuiSymbolMapper.h:202

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)