![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtEnvironmentalIndicatorVisualizer.h,v $ $Revision: 1.43 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <matrix/vlVector.h> 00016 #include <vrvCore/DtIndicatorVisualizer.h> 00017 00018 namespace makVrv 00019 { 00020 class DtControlPointWidget; 00021 class DtEnvironmentalStateListener; 00022 00028 class DT_DLL_VRVCORE DtEnvironmentalIndicatorVisualizer : 00029 public DtIndicatorVisualizer 00030 { 00031 public: 00033 DtEnvironmentalIndicatorVisualizer(DtBaseConnection& simulation, 00034 DtStateListener& listener, int modelSet); 00035 00037 virtual ~DtEnvironmentalIndicatorVisualizer(); 00038 00039 virtual void setWidgetEventsEnabled(bool b); 00040 00041 virtual void setColor(float r,float g,float b,float a); 00042 virtual void setIndicatorModelDefinitions(const std::string& normalTheme, 00043 const std::string& activeTheme, const std::string& selectedTheme, 00044 const std::string& multiSelectedTheme ); 00045 00046 virtual void setIndicatorsEnabled(bool); 00047 virtual void setShowInfoPopupOnSelect(bool b); 00048 00049 virtual void setUniqueID(DtUniqueID id); 00050 00051 virtual void setSelected(bool); 00052 virtual void setMultiSelected(bool); 00053 virtual void setIndicatorPinned(bool b); 00054 00055 DtEnvironmentalStateListener& environmentalStateListener() 00056 { 00057 return *myEnvironmentalListener; 00058 } 00059 00060 bool multiSelected() const 00061 { 00062 return myMultiSelected; 00063 } 00064 00066 virtual const DtStateVisualizer::TypeInfo& typeInfo() const; 00067 00069 static const DtStateVisualizer::TypeInfo& theTypeInfo(); 00070 00071 protected: 00072 virtual void createIndicator(); 00073 virtual void destroyIndicator(); 00074 virtual void createModelAgents(); 00075 virtual DtUnicode generateInfoString() const; 00076 virtual bool indicatorsRealizable() const; 00077 virtual bool indicatorsVisible() const; 00078 virtual void updateIndicatorVisibility(); 00079 virtual void updateDefinitionState(); 00080 virtual bool selected() const; 00081 virtual void slot_mouseInChanged(bool isMouseInIndicator); 00082 00083 protected: 00084 DtControlPointWidget* myIndicator; 00085 bool myMultiSelected; 00086 std::string myNormalTheme; 00087 std::string myActiveTheme; 00088 std::string myNormalPointTheme; 00089 std::string myActivePointTheme; 00090 bool myNeedsDefinitionUpdate; 00091 00092 // Same as myListener, but casted for convenience 00093 DtEnvironmentalStateListener* myEnvironmentalListener; 00094 }; 00095 00096 typedef DtStateVisualizerCreatorTemplate<DtEnvironmentalIndicatorVisualizer> 00097 DtEnvironmentalIndicatorVisualizerCreator; 00098 }