![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: ittEnvProcData.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 #ifndef ittEnvProcData_H_ 00009 #define ittEnvProcData_H_ 00010 00011 #include <vrfExtObjects/ittEnvProcRecs.h> 00012 #include <vrfExtObjects/envSmokeState.h> 00013 #include <matrix/vlVector.h> 00014 #include <matrix/vlTaitBryan.h> 00015 00016 #include <vrfExtObjects/vrfExtObjectsDefines.h> 00017 class DT_DLL_vrfExtObjects DtIttSourceData 00018 { 00019 public: 00020 DtIttSourceData(); 00021 DtIttSourceData(const DtIttSourceData&); 00022 virtual ~DtIttSourceData(); 00023 00024 virtual DtIttSourceData* clone() = 0; 00025 virtual void copy(DtNetEnvironmentalRecord*) = 0; 00026 virtual bool tick(DtTime t) { return true; } 00027 00028 public: 00029 int myRecordType; 00030 }; 00031 00032 class DT_DLL_vrfExtObjects DtSmokeStateData : public DtIttSourceData 00033 { 00034 public: 00035 DtSmokeStateData(); 00036 DtSmokeStateData(const DtSmokeStateData&); 00037 DtSmokeStateData(const DtNetEnvSmokeStateRecord& rec); 00038 00039 virtual ~DtSmokeStateData(); 00040 00041 virtual DtSmokeStateData* clone(); 00042 virtual void copy(DtNetEnvironmentalRecord*); 00043 virtual void copy(const DtNetEnvSmokeStateRecord& rec); 00044 00045 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00046 virtual bool tick(DtTime t); // Override this function to update this record each tick 00047 00048 public: 00049 short myAgent; 00050 double myMass; 00051 double myDensity; 00052 double myDensityRate; 00053 }; 00054 00055 class DT_DLL_vrfExtObjects DtIttEnvProcData : public DtIttSourceData 00056 { 00057 public: 00058 DtIttEnvProcData(); 00059 DtIttEnvProcData(const DtIttEnvProcData& t); 00060 00061 virtual ~DtIttEnvProcData(); 00062 00063 virtual bool tick(DtTime t); 00064 virtual void copySource(DtNetEnvironmentalRecord* source); 00065 00066 void setSigmaLevel(double); 00067 double sigmaLevel() const; 00068 00069 virtual void getValues(DtVector& location, DtVector& sigmas, DtTaitBryan& orientation); 00070 00071 void setSourceData(DtIttSourceData*); 00072 const DtIttSourceData* sourceData() const; 00073 00074 public: 00075 DtVector myLocation; 00076 DtVector myVelocity; 00077 DtVector myAngularVelocity; 00078 DtVector mySigmasSize; 00079 DtTaitBryan myOrientation; 00080 00081 double mySigmaLevel; 00082 00083 DtIttSourceData* mySourceData; 00084 }; 00085 00086 class DT_DLL_vrfExtObjects DtIttUniformBoxKind : public DtIttEnvProcData 00087 { 00088 public: 00089 DtIttUniformBoxKind(); 00090 DtIttUniformBoxKind(const DtIttUniformBoxKind& rec); 00091 DtIttUniformBoxKind(const IttEnvGeomUniformBox& rec); 00092 virtual ~DtIttUniformBoxKind(); 00093 00094 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00095 virtual DtIttSourceData* clone(); 00096 virtual bool tick(DtTime t); 00097 00098 protected: 00099 virtual void copy(DtNetEnvironmentalRecord*); 00100 virtual void copy(const IttEnvGeomUniformBox& rec); 00101 }; 00102 00103 class DT_DLL_vrfExtObjects DtIttGaussianPuffKind : public DtIttEnvProcData 00104 { 00105 public: 00106 DtIttGaussianPuffKind(); 00107 DtIttGaussianPuffKind(const DtIttGaussianPuffKind& rec); 00108 DtIttGaussianPuffKind(const IttEnvGeomGausPuff& rec); 00109 00110 virtual ~DtIttGaussianPuffKind(); 00111 00112 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00113 virtual DtIttSourceData* clone(); 00114 virtual bool tick(DtTime t); 00115 00116 protected: 00117 virtual void copy(DtNetEnvironmentalRecord*); 00118 virtual void copy(const IttEnvGeomGausPuff& rec); 00119 00120 public: 00121 DtVector myDeltaSigmas; 00122 DtVector myOriginationLocation; 00123 double myCentroidHeight; 00124 }; 00125 00126 typedef DtIttSourceData* (*DtIttSourceDataCreator)(DtNetEnvironmentalRecord*); 00127 00128 class DT_DLL_vrfExtObjects DtIttHazardKind : public DtIttSourceData 00129 { 00130 public: 00131 DtIttHazardKind(); 00132 DtIttHazardKind(const DtIttHazardKind&); 00133 00134 public: 00135 short myAgent; 00136 double myMass; 00137 double myProbability; 00138 }; 00139 00140 class DT_DLL_vrfExtObjects DtIttParticleCloud : public DtIttHazardKind 00141 { 00142 public: 00143 DtIttParticleCloud(); 00144 DtIttParticleCloud(const DtIttParticleCloud&); 00145 00146 public: 00147 double myMinParticalSize; 00148 double myMaxParticalSize; 00149 double myAvgParticalMass; 00150 }; 00151 00152 class DT_DLL_vrfExtObjects DtIttBioStateKind : public DtIttParticleCloud 00153 { 00154 public: 00155 DtIttBioStateKind(); 00156 DtIttBioStateKind(const DtIttBioStateKind&); 00157 DtIttBioStateKind(const IttEnvStateBio&); 00158 00159 virtual DtIttSourceData* clone(); 00160 virtual void copy(DtNetEnvironmentalRecord*); 00161 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00162 00163 virtual void copy(const IttEnvStateBio& rec); 00164 00165 public: 00166 double myViability; 00167 double myPurity; 00168 }; 00169 00170 class DT_DLL_vrfExtObjects DtIttChemLiquidStateKind : public DtIttParticleCloud 00171 { 00172 public: 00173 DtIttChemLiquidStateKind(); 00174 DtIttChemLiquidStateKind(const DtIttChemLiquidStateKind&); 00175 DtIttChemLiquidStateKind(const IttEnvStateChemLiquid&); 00176 00177 virtual DtIttSourceData* clone(); 00178 virtual void copy(DtNetEnvironmentalRecord*); 00179 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00180 virtual void copy(const IttEnvStateChemLiquid& rec); 00181 00182 00183 public: 00184 double myPurity; 00185 }; 00186 00187 class DT_DLL_vrfExtObjects DtIttChemStateKind : public DtIttHazardKind 00188 { 00189 public: 00190 DtIttChemStateKind(); 00191 DtIttChemStateKind(const DtIttChemStateKind&); 00192 DtIttChemStateKind(const IttEnvStateChem&); 00193 00194 virtual DtIttSourceData* clone(); 00195 virtual void copy(DtNetEnvironmentalRecord*); 00196 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00197 virtual void copy(const IttEnvStateChem& rec); 00198 }; 00199 00200 class DtIttRadStateKind : public DtIttParticleCloud 00201 { 00202 public: 00203 DtIttRadStateKind(); 00204 DtIttRadStateKind(const DtIttRadStateKind&); 00205 DtIttRadStateKind(const IttEnvStateRad&); 00206 00207 virtual DtIttSourceData* clone(); 00208 virtual void copy(DtNetEnvironmentalRecord*); 00209 static DtIttSourceData* create(DtNetEnvironmentalRecord*); 00210 virtual void copy(const IttEnvStateRad& rec); 00211 00212 public: 00213 double myActivity; 00214 }; 00215 00216 inline void DtIttEnvProcData::setSigmaLevel(double s) 00217 { 00218 if ((s < 1) || (s > 10)) 00219 { 00220 return; 00221 } 00222 00223 mySigmaLevel = s; 00224 } 00225 00226 inline double DtIttEnvProcData::sigmaLevel() const 00227 { 00228 return mySigmaLevel; 00229 } 00230 00231 inline void DtIttEnvProcData::setSourceData(DtIttSourceData* d) 00232 { 00233 delete mySourceData; 00234 mySourceData = d; 00235 } 00236 00237 inline const DtIttSourceData* DtIttEnvProcData::sourceData() const 00238 { 00239 return mySourceData; 00240 } 00241 00242 #endif 00243