![]() |
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 #include <vrvCore/DtSceneObjectVisualizer.h> 00012 #include <vrvCore/DtRemoteGraphicVisualizerAttributes.h> 00013 #include <vrvCore/DtVisibilityAdapter.h> 00014 00015 class DtVector; 00016 00017 namespace makVrv 00018 { 00019 class DtAttributeGroupIndicator; 00020 class DtProjectedWidgetModelAgent; 00021 class DtAttachableDeadReckonUpdaterAgent; 00022 00026 class DT_DLL_VRVCORE DtAttributeGroupStateVisualizer : 00027 public DtSceneObjectVisualizer, 00028 public DtRemoteGraphicVisualizerAttributes 00029 { 00030 public: 00031 DtAttributeGroupStateVisualizer(DtBaseConnection& simulation, 00032 DtStateListener& listener, int modelSet); 00033 00034 virtual ~DtAttributeGroupStateVisualizer(); 00035 00036 00037 virtual void setColor(float r, float g, float b, float a); 00038 00039 virtual void setFlashing(bool flashing); 00040 00041 virtual void setPosition(const DtVector& pos); 00042 00043 virtual void setAttached(DtUniqueID id, int vtx, double percentage); 00044 00045 virtual void setHostId(const std::string& id, int vtx, double percentage); 00046 00047 virtual void setVisible(bool yesNo); 00048 00049 virtual void setAttribute(const std::string& name, double numVal, 00050 const std::string& imageFile, double yVal); 00051 00052 virtual void setNoValueAttribute(const std::string& name, int index); 00053 00054 virtual void setNumericAttribute(const std::string& name, int index, 00055 double val); 00056 00057 virtual void setBarGraphAttribute(const std::string& name, int index, 00058 double val); 00059 00060 virtual void setBitmapAttribute(const std::string& name, int index, 00061 const std::string& val); 00062 00063 virtual void setGraphAttribute(const std::string& name, int index, 00064 double xVal, double yVal); 00065 00066 virtual void setGroupTemplateName(const std::string& name); 00067 00069 virtual const DtStateVisualizer::TypeInfo& typeInfo() const; 00070 00072 static const DtStateVisualizer::TypeInfo& theTypeInfo(); 00073 00074 protected: 00075 virtual void createModelAgents(); 00076 00077 virtual void destroyModelAgents(); 00078 00079 virtual void setModelDefinitionForAgents(); 00080 00081 virtual void slot_mouseInChanged(bool mouseIn); 00082 00083 virtual void slot_mouseButtonReleased(int button); 00084 00085 protected: 00086 struct DtAttributeTemplateInfo 00087 { 00088 int index; 00089 int type; 00090 double numericValue; 00091 double yValue; 00092 std::string imageFilename; 00093 int graphUpdateNumber; 00094 }; 00095 typedef std::map<std::string, DtAttributeTemplateInfo> AttributeInfoMap; 00096 00097 AttributeInfoMap myAttributes; 00098 DtAttachableDeadReckonUpdaterAgent* myAttachedUpdaterAgent; 00099 DtVisibilityAdapter<DtAttributeGroupIndicator>* myVisibilityAdapter; 00100 DtAttributeGroupIndicator* myAttributeGroupIndicator; 00101 int myNumberOfAttributes; 00102 std::string myGroupTemplateName; 00103 00104 }; 00105 00106 typedef DtStateVisualizerCreatorTemplate<DtAttributeGroupStateVisualizer> 00107 DtAttributeGroupStateVisualizerCreator; 00108 }