![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /************************************************************************** 00002 * Copyright (c) 2012 MAK Technologies, Inc. 00003 * All rights reserved. 00004 **************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/vrvCore.h> 00013 #include <vrvCore/DtStateVisualizer.h> 00014 #include <vrvCore/DtEntityStateListener.h> 00015 #include <vrvCore/DtSymbolDecoration.h> 00016 #include <vrvCore/DtSymbolDecorationSettings.h> 00017 00018 #include <vrvUtil/DtSignalConnectionManager.h> 00019 00020 #include <boost/unordered_map.hpp> 00021 00022 namespace makVrv 00023 { 00024 00025 class DtAttributeGroupWidgetAgent; 00026 class DtProjectedWidgetModelAgent; 00027 class DtSymbolDecorationUpdaterAgent; 00028 class DtOverlayDirectionLineModelAgent; 00029 class DtHeadingLineUpdaterAgent; 00030 class DtSignalConnectionManager; 00031 class DtLocationSymbolDecoration; 00032 class DtAccelerationSymbolDecoration; 00033 class DtVelocitySymbolDecoration; 00034 class DtOrientationSymbolDecoration; 00035 00038 class DT_DLL_VRVCORE DtSymbolDecorationVisualizer 00039 : public DtStateVisualizer 00040 { 00041 public: 00042 00048 DtSymbolDecorationVisualizer( DtBaseConnection& simulation, 00049 DtStateListener& listener, int modelSet, 00050 const std::string& decorationTag ); 00051 00054 virtual ~DtSymbolDecorationVisualizer(); 00055 00057 virtual void createModelAgents(); 00058 00060 virtual void destroyModelAgents(); 00061 00063 virtual void setModelDefinitionForAgents(); 00064 00067 virtual void setVisualizerDefinition(const DtVisualizerDefinition& visDef); 00068 00071 virtual void setSelected( bool isSelected ); 00072 00074 virtual DtAttributeGroupWidgetAgent* widget(); 00075 00077 virtual DtSymbolDecorationUpdaterAgent* widgetUpdater(); 00078 00080 virtual unsigned int nextLabelIndex(); 00081 00083 virtual DtSceneObjectAgent* sceneObject(); 00084 00088 virtual void setDecorationsVisible(bool); 00089 00091 virtual void slot_decorationEnabled(const std::string& decoration); 00092 00094 virtual void slot_decorationDisabled(const std::string& decoration); 00095 00097 virtual void slot_backgroundColorChanged( float r, float g, float b, float a ); 00098 00100 virtual void slot_setScale(float scale); 00101 00103 virtual void slot_setEnabled(bool enabled); 00104 00106 virtual void setScale(float scale); 00107 00109 void setShowBorder(bool b); 00110 00112 virtual DtSymbolDecoration* findSymbolDecoration( 00113 const std::string& decorationId); 00114 00116 virtual void setOffset(double x, double y); 00117 00119 const DtVector& offset() const; 00120 00121 protected: 00122 00124 virtual void setBorderState(); 00125 00126 protected: 00127 00129 typedef boost::unordered_map<std::string, DtSymbolDecoration*> 00130 DecorationIdMap; 00131 00133 DtSignalConnectionManager mySignalConns; 00134 00136 DecorationIdMap myDecorationIdMap; 00137 00139 DtSymbolDecorationSettings::DecorationSet myDecorationSet; 00140 00142 DtAttributeGroupWidgetAgent* myWidget; 00143 00146 DtProjectedWidgetModelAgent* myWidgetModel; 00147 00150 DtSymbolDecorationUpdaterAgent* myWidgetUpdater; 00151 00153 float myBackgroundColor[4]; 00154 00156 float myScale; 00157 00160 DtVector myWidgetOffsetUnscaled; 00161 00163 float myFontSizeUnscaled; 00164 00166 float myHeadingLineLengthUnscaled; 00167 00169 float myWidgetColumnPadding; 00170 00172 float myWidgetRowPadding; 00173 00175 std::string myFontFile; 00176 00178 std::string myDecorationSetName; 00179 00183 std::string myDecorationTag; 00184 00186 float myTextR; 00187 00189 float myTextG; 00190 00192 float myTextB; 00193 00195 float myTextA; 00196 00198 unsigned int myNextLabelIndex; 00199 00201 bool myEnabled; 00202 00204 bool myShowBorder; 00205 00206 private: 00207 00208 void cleanup(); 00209 00210 }; 00211 00212 }