![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: environmentalStateSetter.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef environmentalStateSetter_h 00016 #define environmentalStateSetter_h 00017 00018 #include "vrfobjcore/vrfobjcoreDefines.h" 00019 #include <vrfExtObjects/vrfWeatherStateEnums.h> 00020 00021 class DtEnvironmentalStateManager; 00022 class DtVrfObject; 00023 class DtChangeGlobalWeatherCommand; 00024 00028 class DT_DLL_vrfobjcore DtEnvironmentalStateSetter 00029 { 00030 private: 00032 00033 DtEnvironmentalStateSetter(); 00034 DtEnvironmentalStateSetter(const DtEnvironmentalStateSetter& orig); 00035 DtEnvironmentalStateSetter& operator==(const DtEnvironmentalStateSetter& orig); 00037 00038 public: 00039 DtEnvironmentalStateSetter(DtEnvironmentalStateManager* manager); 00040 virtual ~DtEnvironmentalStateSetter(); 00041 00042 virtual bool init(); 00043 00044 virtual void setGlobalEnvironmentObject(DtVrfObject* vrfObject); 00045 00046 virtual void setAirTurbidity(double value) = 0; 00047 virtual void setCloudState(DtVrfWeatherCloudState value) = 0; 00048 virtual void setPrecipitationIntensity(double value) = 0; 00049 virtual void setPrecipitationType(DtVrfWeatherPrecipitationType current) = 0; 00050 virtual void setWindSpeed(double value) = 0; 00051 virtual void setWindDirection(double value) = 0; 00052 virtual void setVisibility(double value) = 0; 00053 virtual void setTimeOfDay(double secondsPastMidnight) = 0; 00054 virtual void setTimeOfDayAdvancementSpeed(double speed) = 0; 00055 00056 protected: 00057 DtEnvironmentalStateManager* myEnvironmentalStateManager; 00058 DtVrfObject* myGlobalEnvironmentObject; 00059 }; 00060 00063 class DT_DLL_vrfobjcore DtLocalEnvironmentalStateSetter : public DtEnvironmentalStateSetter 00064 { 00065 public: 00066 DtLocalEnvironmentalStateSetter(DtEnvironmentalStateManager* manager); 00067 virtual ~DtLocalEnvironmentalStateSetter(); 00068 00069 virtual void setAirTurbidity(double value); 00070 virtual void setCloudState(DtVrfWeatherCloudState value); 00071 virtual void setPrecipitationIntensity(double value); 00072 virtual void setPrecipitationType(DtVrfWeatherPrecipitationType current); 00073 virtual void setWindSpeed(double value); 00074 virtual void setWindDirection(double value); 00075 virtual void setVisibility(double value); 00076 virtual void setTimeOfDay(double secondsPastMidnight); 00077 virtual void setTimeOfDayAdvancementSpeed(double speed); 00078 }; 00079 00082 class DT_DLL_vrfobjcore DtRemoteEnvironmentalStateSetter : public DtEnvironmentalStateSetter 00083 { 00084 public: 00085 DtRemoteEnvironmentalStateSetter(DtEnvironmentalStateManager* manager); 00086 virtual ~DtRemoteEnvironmentalStateSetter(); 00087 00088 virtual bool init(); 00089 00090 virtual void setAirTurbidity(double value); 00091 virtual void setCloudState(DtVrfWeatherCloudState value); 00092 virtual void setPrecipitationIntensity(double value); 00093 virtual void setPrecipitationType(DtVrfWeatherPrecipitationType current); 00094 virtual void setWindSpeed(double value); 00095 virtual void setWindDirection(double value); 00096 virtual void setVisibility(double value); 00097 virtual void setTimeOfDay(double secondsPastMidnight); 00098 virtual void setTimeOfDayAdvancementSpeed(double speed); 00099 00100 protected: 00101 static void tickCallback(void* usr); 00102 virtual void tick(); 00103 00104 DtChangeGlobalWeatherCommand* myChangeCommand; 00105 bool myChangeCommandNeedsSending; 00106 }; 00107 00108 #endif