![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************** 00002 * Copyright (c) 2011 MaK Technologies, Inc. 00003 * All rights reserved. 00004 ********************************************************************/ 00005 /******************************************************************** 00006 * $RCSfile: DtConvUtils.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 ********************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvUtil/vrvUtil.h> 00015 #include <vrvUtil/DtUnicode.h> 00016 #include <makArchives/DtDisplayUnitsSettingsRecord.h> 00017 00018 namespace makVrv 00019 { 00020 00023 class DT_DLL_VRVUTIL DtUnitConverter 00024 { 00025 public: 00026 00028 DtUnitConverter(); 00029 00031 virtual DtUnitConverter* clone() const = 0; 00032 00034 virtual ~DtUnitConverter(); 00035 00036 public: 00037 00038 static void unitsForVelocity( 00039 makArchives::DtDisplayUnitsSettingsRecord::VelocityUnits units, 00040 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits& distUnit, 00041 makArchives::DtDisplayUnitsSettingsRecord::TimeUnits& timeUnit ); 00042 00043 static void unitsForAcceleration( 00044 makArchives::DtDisplayUnitsSettingsRecord::AccelerationUnits units, 00045 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits& distUnit, 00046 makArchives::DtDisplayUnitsSettingsRecord::TimeUnits& timeUnits ); 00047 00048 static void unitsForRotationalVelocity( 00049 makArchives::DtDisplayUnitsSettingsRecord::RotVelocityUnits units, 00050 makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits& oriUnit, 00051 makArchives::DtDisplayUnitsSettingsRecord::TimeUnits& timeUnit ); 00052 00053 private: 00055 DtUnitConverter( const DtUnitConverter& orig ); 00056 00058 DtUnitConverter& operator = ( const DtUnitConverter& rhs ); 00059 00060 }; 00061 00062 00065 class DT_DLL_VRVUTIL DtDistanceUnitConverter 00066 : public DtUnitConverter 00067 { 00068 public: 00069 00071 DtDistanceUnitConverter( 00072 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ); 00073 00075 virtual ~DtDistanceUnitConverter(); 00076 00078 virtual double metersToLocal( double meters ) const = 0; 00079 00081 virtual double localToMeters( double local ) const = 0; 00082 00083 protected: 00084 00085 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits myUnits; 00086 00087 }; 00088 00089 00092 class DT_DLL_VRVUTIL DtTimeUnitConverter 00093 : public DtUnitConverter 00094 { 00095 public: 00096 00098 DtTimeUnitConverter( 00099 makArchives::DtDisplayUnitsSettingsRecord::TimeUnits unit ); 00100 00102 virtual ~DtTimeUnitConverter(); 00103 00105 virtual double secondsToLocal( double meters ) const = 0; 00106 00108 virtual double localToSeconds( double local ) const = 0; 00109 00110 protected: 00111 00112 makArchives::DtDisplayUnitsSettingsRecord::TimeUnits myUnits; 00113 00114 }; 00115 00116 00119 class DT_DLL_VRVUTIL DtOrientationUnitConverter 00120 : public DtUnitConverter 00121 { 00122 public: 00123 00125 DtOrientationUnitConverter( 00126 makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit ); 00127 00129 virtual ~DtOrientationUnitConverter(); 00130 00132 virtual double radiansToLocal( double radians ) const = 0; 00133 00135 virtual double localToRadians( double local ) const = 0; 00136 00137 protected: 00138 00139 makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits myUnits; 00140 00141 }; 00142 00143 00148 class DT_DLL_VRVUTIL DtMeterConverter 00149 : public DtDistanceUnitConverter 00150 { 00151 public: 00152 00154 DtMeterConverter(); 00155 00157 virtual DtUnitConverter* clone() const; 00158 00160 virtual ~DtMeterConverter(); 00161 00163 virtual double metersToLocal( double meters ) const; 00164 00166 virtual double localToMeters( double local ) const; 00167 00168 }; 00169 00170 00174 class DT_DLL_VRVUTIL DtKilometerConverter 00175 : public DtDistanceUnitConverter 00176 { 00177 public: 00178 00180 DtKilometerConverter(); 00181 00183 virtual DtUnitConverter* clone() const; 00184 00186 virtual ~DtKilometerConverter(); 00187 00189 virtual double metersToLocal( double meters ) const; 00190 00192 virtual double localToMeters( double local ) const; 00193 00194 }; 00195 00196 00200 class DT_DLL_VRVUTIL DtFeetConverter 00201 : public DtDistanceUnitConverter 00202 { 00203 public: 00204 00206 DtFeetConverter(); 00207 00209 virtual DtUnitConverter* clone() const; 00210 00212 virtual ~DtFeetConverter(); 00213 00215 virtual double metersToLocal( double meters ) const; 00216 00218 virtual double localToMeters( double local ) const; 00219 00220 }; 00221 00222 00226 class DT_DLL_VRVUTIL DtMileConverter 00227 : public DtDistanceUnitConverter 00228 { 00229 public: 00230 00232 DtMileConverter(); 00233 00235 virtual DtUnitConverter* clone() const; 00236 00238 virtual ~DtMileConverter(); 00239 00241 virtual double metersToLocal( double meters ) const; 00242 00244 virtual double localToMeters( double local ) const; 00245 00246 }; 00247 00248 00252 class DT_DLL_VRVUTIL DtNauticalMileConverter 00253 : public DtDistanceUnitConverter 00254 { 00255 public: 00256 00258 DtNauticalMileConverter(); 00259 00261 virtual DtUnitConverter* clone() const; 00262 00264 virtual ~DtNauticalMileConverter(); 00265 00267 virtual double metersToLocal( double meters ) const; 00268 00270 virtual double localToMeters( double local ) const; 00271 00272 }; 00273 00274 00279 class DT_DLL_VRVUTIL DtSecondConverter 00280 : public DtTimeUnitConverter 00281 { 00282 public: 00283 00285 DtSecondConverter(); 00286 00288 virtual DtUnitConverter* clone() const; 00289 00291 virtual ~DtSecondConverter(); 00292 00294 virtual double secondsToLocal( double meters ) const; 00295 00297 virtual double localToSeconds( double local ) const; 00298 00299 }; 00300 00304 class DT_DLL_VRVUTIL DtMinuteConverter 00305 : public DtTimeUnitConverter 00306 { 00307 public: 00308 00310 DtMinuteConverter(); 00311 00313 virtual DtUnitConverter* clone() const; 00314 00316 virtual ~DtMinuteConverter(); 00317 00319 virtual double secondsToLocal( double meters ) const; 00320 00322 virtual double localToSeconds( double local ) const; 00323 00324 }; 00325 00326 00330 class DT_DLL_VRVUTIL DtHourConverter 00331 : public DtTimeUnitConverter 00332 { 00333 public: 00334 00336 DtHourConverter(); 00337 00339 virtual DtUnitConverter* clone() const; 00340 00342 virtual ~DtHourConverter(); 00343 00345 virtual double secondsToLocal( double meters ) const; 00346 00348 virtual double localToSeconds( double local ) const; 00349 00350 }; 00351 00352 00357 class DT_DLL_VRVUTIL DtRadianConverter 00358 : public DtOrientationUnitConverter 00359 { 00360 public: 00361 00363 DtRadianConverter(); 00364 00366 virtual DtUnitConverter* clone() const; 00367 00369 virtual ~DtRadianConverter(); 00370 00372 virtual double radiansToLocal( double radians ) const; 00373 00375 virtual double localToRadians( double local ) const; 00376 00377 }; 00378 00379 00383 class DT_DLL_VRVUTIL DtDegreeConverter 00384 : public DtOrientationUnitConverter 00385 { 00386 public: 00387 00389 DtDegreeConverter(); 00390 00392 virtual DtUnitConverter* clone() const; 00393 00395 virtual ~DtDegreeConverter(); 00396 00398 virtual double radiansToLocal( double radians ) const; 00399 00401 virtual double localToRadians( double local ) const; 00402 00403 }; 00404 00405 }