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 
16 
19 
20 #include <vrvCore/DtForceManager.h>
22 
23 #include <string>
24 #include <vector>
25 
26 #include <QtGui/QPixmap>
27 #include <QtGui/QImage>
28 #include <QtCore/QCache>
29 #include <QtCore/QString>
30 
31 #include <boost/unordered_map.hpp>
32 
33 class DtUUID;
34 
35 namespace makVrv
36 {
37  class DtDe;
38  class DtVisualizerDefinitionSet;
39  class DtVisualizerDefinition;
40 }
41 
42 namespace makVrf
43 {
44  class DtEntityMapperKey;
45 
49  {
50  public:
52  DtGuiSVGSymbolColorizerRule(const DtGuiSVGSymbolColorizerRule& orig) : myDe(orig.myDe) {}
54 
56  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const = 0;
57  virtual const char* colorizerName() const = 0;
58  virtual DtGuiSVGSymbolColorizerRule* clone() const = 0;
59 
60  protected:
62  };
63 
66  {
67  public:
68  DtSVGColorSubstituteColorizerRule(makVrv::DtDe& de, const std::string& colorizerName, const QColor& source, const QColor& destination);
70 
71  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const override;
72  virtual const char* colorizerName() const override { return myColorizerName.c_str(); }
73  virtual DtGuiSVGSymbolColorizerRule* clone() const override
74  { return new DtSVGColorSubstituteColorizerRule(*this); }
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 override;
90  virtual const char* colorizerName() const override { return "DtSVGForceColorizerRule"; }
91  virtual DtGuiSVGSymbolColorizerRule* clone() const override { return new DtSVGForceColorizerRule(*this); }
92  };
93 
96  {
97  public:
100 
101  virtual bool colorReplacementRule(const DtEntityMapperKey& key, std::pair<QColor, QColor>&) const override;
102  virtual const char* colorizerName() const override { return "DtSVGTopLevelCategoryColorizerRule"; }
103  virtual DtGuiSVGSymbolColorizerRule* clone() const override
104  { return new DtSVGTopLevelCategoryColorizerRule(*this); }
105  };
106 
114  {
115  public:
117  virtual ~DtVrfGuiSymbolMapper() override;
118 
120  static DtVrfGuiSymbolMapper& instance(makVrv::DtDe& de);
121 
123  virtual void clear();
124 
126  virtual void clearIcons(const DtEntityMapperKey&);
127 
131  virtual QPixmap getIcon(const DtEntityMapperKey&, bool destroyed = false, int pointSize = 48, bool sizeToFont = false,
132  DtSimObjectReference baseState = DtSimObjectReference::nullReference(), const QSize& rescaleToIconSize = QSize(), bool isSpotReport = false,
133  const QColor& milStdOutlineColor = Qt::black, bool fillMilStdSymbol = true, bool ignoreMenuIcon = false,
134  const QColor& fillColor = Qt::transparent);
135 
136  virtual QPixmap getIcon(const DtUUID&, int pointSize = 48, bool sizeToFont = false,
137  DtSimObjectReference baseState = DtSimObjectReference::nullReference(), const QSize& rescaleToIconSize = QSize(), bool isSpotReport = false,
138  const QColor& milStdOutlineColor = Qt::black, bool fillMilStdSymbol = true, bool ignoreMenuIcon = false);
139 
140  virtual int addFont(const QString&);
141 
142  void setIconSize(int w, int h)
143  {
144  myIconSize = QSize(w, h);
145  }
146 
147  const QSize& iconSize() const
148  {
149  return myIconSize;
150  }
151 
153  virtual void addSVGColorizerRule(const DtGuiSVGSymbolColorizerRule&);
154  virtual void removeSVGColorizerRule(const std::string&);
155  virtual void removeAllSVGColorizerRules();
156 
158  virtual QImage iconImageForIcon(const DtEntityMapperKey&, const QColor& fillColor = Qt::transparent, const QSize& iconSize = QSize(16,16)) const;
159 
161  virtual QPixmap forceColorSwatch(int force);
162 
163  virtual QImage convertSvgUsingColorizerRules(const DtEntityMapperKey&, const QSize& pixmapSize, const std::string& image) const;
164 
165  protected:
166  typedef boost::unordered_map<std::string, std::string> PathListMap;
167 
169  virtual const makVrv::DtVisualizerDefinitionSet* visualDefinitionSetThatBestMatches(const DtEntityMapperKey&, bool isSpotReport);
170  virtual unsigned short echelonGlyphFor(const DtEntityMapperKey& key, const makVrv::DtVisualizerDefinition* set) const;
171 
172  virtual QImage milStdRender(const makVrv::DtVisualizerDefinition*, const DtEntityMapperKey& key, bool destroyed, int pointSize,
173  const QColor& outlineColor = Qt::black, bool fillMilStdSymbol = true, DtSimObjectReference baseState = DtSimObjectReference::nullReference(),
174  const QColor& fillColor = Qt::transparent) const;
175  virtual QImage imageSymbolRender(const makVrv::DtVisualizerDefinition*, const DtEntityMapperKey& key, bool destroyed,
176  DtSimObjectReference baseState = DtSimObjectReference::nullReference(), const QSize& iconSize = QSize(16,16)) const;
177 
178  virtual QImage imageFromModelDefinition(const std::string&, const QSize& iconSize = QSize(16,16)) const;
179 
181  virtual DtEntityType menuItemIconIsObjectType(const DtEntityMapperKey&) const;
182 
184  virtual void composeMilStdImage(QPainter& painter, int left, int base,
185  unsigned short fillGlyph, unsigned short outlineGlyph, unsigned short echelonGlyph, unsigned short destroyedGlyph,
188 
190  virtual QImage menuItemIcon(const DtEntityMapperKey&, const QSize& iconSize = QSize()) const;
191 
192  protected:
194  QHash<QString, QPixmap*> myIconCache;
195  QHash<int, QPixmap*> myForceSwatchCache;
196  QHash<int, QString> myFontMap;
197  QSize myIconSize;
198 
202 
204 
205  typedef std::map<std::string, DtGuiSVGSymbolColorizerRule*> SVGColorizerRules;
207  };
208 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
PathListMap myTacticalMap
Definition: vrfGuiSymbolMapper.h:200
DtGuiSVGSymbolColorizerRule(makVrv::DtDe &de)
Definition: vrfGuiSymbolMapper.h:51
Definition: entityMapperKey.h:19
QHash< int, QString > myFontMap
Definition: vrfGuiSymbolMapper.h:196
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:199
makVrv::DtDe & myDe
Definition: vrfGuiSymbolMapper.h:193
The class that will contain information about the currently loaded scenario.
Definition: vrfGuiSymbolMapper.h:113
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
virtual DtGuiSVGSymbolColorizerRule * clone() const override
Definition: vrfGuiSymbolMapper.h:91
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
DtGuiSVGSymbolColorizerRule(const DtGuiSVGSymbolColorizerRule &orig)
Definition: vrfGuiSymbolMapper.h:52
Substitute one color for another.
Definition: vrfGuiSymbolMapper.h:65
QSize myIconSize
Definition: vrfGuiSymbolMapper.h:197
static DtSimObjectReferenceTemplate nullReference()
virtual ~DtGuiSVGSymbolColorizerRule()
Definition: vrfGuiSymbolMapper.h:53
Contains makVrv::DtVirtualBaseClass class.
virtual const char * colorizerName() const override
Definition: vrfGuiSymbolMapper.h:102
QHash< int, QPixmap * > myForceSwatchCache
Definition: vrfGuiSymbolMapper.h:195
virtual DtGuiSVGSymbolColorizerRule * clone() const override
Definition: vrfGuiSymbolMapper.h:103
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
PathListMap myEntityMap
Definition: vrfGuiSymbolMapper.h:201
The colorization rule class will be applied to an SVG to translate one color in the SVG to another...
Definition: vrfGuiSymbolMapper.h:48
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
const char * source
Definition: lz4.h:442
SVGColorizerRules mySVGColorizerRules
Definition: vrfGuiSymbolMapper.h:206
Substitute color based on force of incoming object.
Definition: vrfGuiSymbolMapper.h:83
Contains makVrv::DtForceManager class.
const QSize & iconSize() const
Definition: vrfGuiSymbolMapper.h:147
void setIconSize(int w, int h)
Definition: vrfGuiSymbolMapper.h:142
Base class to provide boost signal/slot management.
virtual DtGuiSVGSymbolColorizerRule * clone() const override
Definition: vrfGuiSymbolMapper.h:73
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
virtual const char * colorizerName() const override
Definition: vrfGuiSymbolMapper.h:72
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:76
virtual const char * colorizerName() const override
Definition: vrfGuiSymbolMapper.h:90
boost::unordered_map< std::string, std::string > PathListMap
Definition: vrfGuiSymbolMapper.h:166
QHash< QString, QPixmap * > myIconCache
Definition: vrfGuiSymbolMapper.h:194
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfGuiSymbolMapper.h:203
makVrv::DtDe & myDe
Definition: vrfGuiSymbolMapper.h:61
std::map< std::string, DtGuiSVGSymbolColorizerRule * > SVGColorizerRules
Definition: vrfGuiSymbolMapper.h:205

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)