![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: environmentalStateManager.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 ** Created: 5/19/08 MEM 00008 *******************************************************************************/ 00009 00012 00014 00015 #ifndef DtEnvironmentalStateManager_H_ 00016 #define DtEnvironmentalStateManager_H_ 00017 00018 #include <vlutil/vlString.h> 00019 #include <vrfExtObjects/vrfWeatherStateEnums.h> 00020 #include "vrfobjcore/vrfobjcoreDefines.h" 00021 00022 class DtSimManager; 00023 class DtVrfObject; 00024 class DtObjectType; 00025 class DtEnvironmentalStateSetter; 00026 class DtChangeGlobalWeatherCommand; 00027 class DtChangeTimeOfDayCommand; 00028 class DtVector; 00029 00033 class DT_DLL_vrfobjcore DtEnvironmentalStateManager 00034 { 00035 private: 00037 00038 DtEnvironmentalStateManager(const DtEnvironmentalStateManager & orig); 00039 const DtEnvironmentalStateManager & operator=(const DtEnvironmentalStateManager & 00040 orig); 00041 DtEnvironmentalStateManager(); 00043 00044 public: 00045 00047 DtEnvironmentalStateManager(DtSimManager* simManager); 00048 00050 virtual ~DtEnvironmentalStateManager(); 00051 00052 virtual bool init(); 00053 00054 virtual void tick(); 00055 00056 virtual DtSimManager* simManager(); 00057 00060 virtual bool globalEnvironmentSimulatedLocally() const; 00061 00066 virtual bool startEnvironmentSimulationLocally(); 00067 00070 00071 virtual void setAirTurbidity(double factor); 00072 virtual double airTurbidity() const; 00074 00076 00077 virtual void setCloudState(DtVrfWeatherCloudState current); 00078 virtual DtVrfWeatherCloudState cloudState() const; 00080 00082 00083 virtual void setPrecipitationIntensity(double factor); 00084 virtual double precipitationIntensity() const; 00086 00088 00089 virtual void setPrecipitationType(DtVrfWeatherPrecipitationType current); 00090 virtual DtVrfWeatherPrecipitationType precipitationType() const; 00092 00094 00095 virtual void setWindSpeed(double value); 00096 virtual double windSpeed() const; 00098 00100 00101 virtual void setWindDirection(double value); 00102 virtual double windDirection() const; 00104 00106 00107 virtual void setVisibility(double value); 00108 virtual double visibility() const; 00110 00115 00116 virtual double illumination(const DtVector& localPosition) const; 00118 00121 virtual void setGlobalWeather(const DtChangeGlobalWeatherCommand& command); 00122 00125 virtual void setTimeOfDay(double secondsPastMidnight); 00126 virtual void setTimeOfDay(const DtChangeTimeOfDayCommand& command); 00127 virtual double timeOfDay() const; 00128 00130 virtual void setTimeOfDayAdvancementSpeed(double speed); 00131 virtual void setTimeOfDayAdvancementSpeed(const DtChangeTimeOfDayCommand& command); 00132 virtual double timeOfDayAdvancementSpeed() const; 00133 00134 protected: 00135 static void objectAddedCallback(DtVrfObject* object, void* usr); 00136 virtual void processObjectAdded(DtVrfObject* object); 00137 00138 static void objectRemovedCallback(DtVrfObject* object, void* usr); 00139 virtual void processObjectRemoved(DtVrfObject* object); 00140 00144 virtual void createGlobalEnvironmentObject(); 00145 00148 virtual DtObjectType globalEnvironmentObjectType() const; 00149 00151 virtual DtEnvironmentalStateSetter* createLocalEnvironmentalStateSetter(); 00153 virtual DtEnvironmentalStateSetter* createRemoteEnvironmentalStateSetter(); 00154 00155 protected: 00156 DtSimManager* mySimManager; 00157 00158 DtVrfObject* myGlobalEnvironmentObject; 00159 DtEnvironmentalStateSetter* myEnvironmentalStateSetter; 00160 00161 bool myFirstTick; 00162 }; 00163 00164 #endif 00165