![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00014 #include <vrvCore/DtVisualizerDefinitionSet.h> 00015 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 #include <vrvUtil/signalslib.h> 00018 #include <vrvCore/DtEntityState.h> 00019 #include <vrvVrl/DtForceManager.h> 00020 00021 #include <string> 00022 #include <vector> 00023 00024 #include <QtGui/QPixmap> 00025 #include <QtGui/QImage> 00026 #include <QtCore/QCache> 00027 #include <QtCore/QString> 00028 00029 #include <boost/unordered_map.hpp> 00030 00031 namespace makVrv 00032 { 00033 class DtDe; 00034 class DtVisualizerDefinitionSet; 00035 class DtVisualizerDefinition; 00036 } 00037 00038 namespace makVrf 00039 { 00040 class DtEntityMapperKey; 00041 00043 class DT_DLL_VRFGUICOREQT DtVrfGuiSymbolMapper : public makVrv::DtVirtualBaseClass 00044 { 00045 public: 00046 DtVrfGuiSymbolMapper(makVrv::DtDe&); 00047 virtual ~DtVrfGuiSymbolMapper(); 00048 00050 static DtVrfGuiSymbolMapper& instance(makVrv::DtDe& de); 00051 00053 virtual void clear(); 00054 00056 virtual void clearIcons(const DtEntityMapperKey&); 00057 00060 virtual QPixmap getIcon(const DtEntityMapperKey&, bool destroyed = false, int pointSize = 48, bool sizeToFont = false, 00061 const makVrv::DtVrlinkSimulatedBaseState* baseState = 0); 00062 00063 virtual int addFont(const QString&); 00064 00065 void setIconSize(int w, int h) 00066 { 00067 myIconSize = QSize(w, h); 00068 } 00069 00070 const QSize& iconSize() const 00071 { 00072 return myIconSize; 00073 } 00074 00075 protected: 00076 typedef boost::unordered_map<std::string, std::string> PathListMap; 00077 00079 virtual const makVrv::DtVisualizerDefinitionSet* visualDefinitionSetThatBestMatches(const DtEntityMapperKey&); 00080 00081 virtual QImage milStdRender(const makVrv::DtVisualizerDefinition*, const DtEntityMapperKey& key, bool destroyed, int pointSize, 00082 const makVrv::DtVrlinkSimulatedBaseState* baseState = 0) const; 00083 virtual QImage imageSymbolRender(const makVrv::DtVisualizerDefinition*, const DtEntityMapperKey& key, bool destroyed, 00084 const makVrv::DtVrlinkSimulatedBaseState* baseState = 0) const; 00085 00086 virtual QImage imageFromModelDefinition(const std::string&) const; 00087 00089 virtual void composeMilStdImage(QPainter& painter, int left, int base, 00090 unsigned short fillGlyph, unsigned short outlineGlyph, unsigned short echelonGlyph, unsigned short destroyedGlyph, 00091 makVrv::DtForceManager::RGBAColor color, const makVrv::DtVrlinkSimulatedBaseState* baseState = 0) const; 00092 00093 protected: 00094 makVrv::DtDe& myDe; 00095 QHash<QString, QPixmap*> myIconCache; 00096 QHash<int, QString> myFontMap; 00097 QSize myIconSize; 00098 00099 PathListMap myAggregateMap; 00100 PathListMap myTacticalMap; 00101 PathListMap myEntityMap; 00102 }; 00103 }