VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtGuiSymbolMapper.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2023 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCoreQt/vrvCoreQt.h>
13 #include <vrvCore/DtUniqueID.h>
15 #include <vlpi/entityType.h>
16 #include <QtGui/QPixmap>
17 #include <vrvCore/DtForceManager.h>
18 #include <vrvUtil/DtUnicode.h>
19 
20 #include <unordered_map>
21 
22 namespace makVrv
23 {
24  class DtVisualizerDefinition;
25  class DtVisualizerDefinitionSet;
26  class DtDe;
27  class DtModelSetEntry;
28 
32  {
33  public:
34 
35 
36  //Class used as the key for the icon, entity type plus the force type.
38  {
39  public:
40 
44  EntityWithForceKey(int force, DtEntityType entityType);
46 
48  virtual void setForce(int force);
49 
51  virtual void setEntityType(DtEntityType entityType);
52 
54  int force() const;
55 
57  DtEntityType entityType() const;
58 
59 
60  bool operator==(const EntityWithForceKey& rhs) const;
61 
62  bool operator<(const EntityWithForceKey& rhs) const;
63 
64  protected:
65  int myForce;
66  DtEntityType myEntityType;
67  };
68 
71 
73  virtual ~DtGuiSymbolMapper();
74 
76  static DtGuiSymbolMapper& instance(makVrv::DtDe& de);
77 
82  virtual QPixmap getIcon(DtElementID id, int pointSize = 80, const QColor& milStdOutlineColor = Qt::black);
83 
85  virtual QPixmap defaultTacticalGraphicsIconImage();
86 
88  virtual QPixmap defaultEntityIconImage();
89 
91  virtual QPixmap defaultPropIconImage();
92 
94  virtual QPixmap defaultBuoyBeaconIconImage();
95 
97  virtual QPixmap defaultObserverIconImage();
98 
101  virtual void setDefaultTacticalGraphicsIconImage(DtUnicode file);
102 
105  virtual void setDefaultEntityIconImage(DtUnicode file);
106 
109  virtual void setDefaultPropIconImage(DtUnicode file);
110 
113  virtual void setDefaultBuoyBeaconIconImage(DtUnicode file);
114 
117  virtual void setDefaultObserverIconImage(DtUnicode file);
118 
119  protected:
120 
122  bool elementDestroyed(DtElementID id) const;
123 
125  virtual EntityWithForceKey getEntityWithForceKey( DtElementID id) const;
126 
133  virtual QPixmap milStdRender(const makVrv::DtVisualizerDefinition* vis, const EntityWithForceKey& key, bool destroyed,
134  int pointSize, const QColor& outlineColor = Qt::black) const;
135 
140  virtual QPixmap imageSymbolRender(const makVrv::DtVisualizerDefinition* vis, const EntityWithForceKey& key, bool destroyed) const;
141 
145  virtual QPixmap pixmapFromFile( const std::string& filePathOrName, const int force ) const;
146 
149  virtual QPixmap getDefaultIconPixmap(DtElementID element);
150 
152  virtual QImage imageFromModelDefinition(const std::string& modelDef) const;
153 
155  const DtVisualizerDefinition* findVisualDefinition2DSet(DtElementID element, const std::string& schema);
156 
158  virtual void composeMilStdImage(QPainter& painter, int left, int base,
159  unsigned short fillGlyph, unsigned short outlineGlyph, unsigned short echelonGlyph, unsigned short destroyedGlyph,
161 
163  virtual void loadElementIconMapMappingFile();
164 
166  virtual QString generateIconKeyForElement(DtElementID element);
167 
168  private:
169 
172 
175 
177  DtGuiSymbolMapper& operator=(const DtGuiSymbolMapper& orig);
178 
179  protected:
181  std::unordered_map<QString, QPixmap*> myIconCache;
187  std::map<DtEntityType, std::string> myElementIconMap;
189  };
190 }
Definition: DtGuiSymbolMapper.h:37
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
QPixmap * myDefaultBuoyBeaconIconPixmap
Definition: DtGuiSymbolMapper.h:185
Definition: DtForceManager.h:44
QPixmap * myDefaultPropIconPixmap
Definition: DtGuiSymbolMapper.h:184
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
The class will manage the icons for the entities, tactical graphics, munitions ,ect. It caches the icon for given entity type and force.
Definition: DtGuiSymbolMapper.h:31
QPixmap * myDefaultObserverIconPixmap
Definition: DtGuiSymbolMapper.h:186
Contains DLL export macros.
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
std::string myElementIconMapMappingFile
Definition: DtGuiSymbolMapper.h:188
DtEntityType myEntityType
Definition: DtGuiSymbolMapper.h:66
Definition: modelSetEntry.h:34
int myForce
Definition: DtGuiSymbolMapper.h:65
Contains makVrv::DtVirtualBaseClass class.
QPixmap * myDefaultEntityIconPixmap
Definition: DtGuiSymbolMapper.h:183
std::unordered_map< QString, QPixmap * > myIconCache
Definition: DtGuiSymbolMapper.h:181
Contains makVrv::DtForceManager class.
makVrv::DtDe & myDe
Definition: DtGuiSymbolMapper.h:180
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:160
Contains makVrv::DtUniqueID type.
QPixmap * myDefaultTacticalGraphicsIconPixmap
Definition: DtGuiSymbolMapper.h:182
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
std::map< DtEntityType, std::string > myElementIconMap
Definition: DtGuiSymbolMapper.h:187

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)