void SyncRunFileLog::logLap(const QString &name) { _out << "#=#=#=#=# " << name << " " << dateTimeStr(QDateTime::currentDateTimeUtc()) << " (last step: " << _lapDuration.restart() << " msec" << ", total: " << _totalDuration.elapsed() << " msec)" << endl; }
QString dateTimeStr(qint64 nTime) { return dateTimeStr(QDateTime::fromTime_t((qint32)nTime)); }
bool EphemerisModel_readLocalData(osg::Object& obj, osgDB::Input& fr) { bool itAdvanced = false; osgEphemeris::EphemerisModel &em = static_cast<osgEphemeris::EphemerisModel &>(obj); if( fr[0].matchWord("Latitude")) { ++fr; double latitude = atof( fr[0].getStr() ); ++fr; em.setLatitude( latitude ); itAdvanced = true; } if( fr[0].matchWord("Longitude")) { ++fr; double longitude = atof( fr[0].getStr() ); ++fr; em.setLongitude( longitude ); itAdvanced = true; } if( fr[0].matchWord("DateTime" )) { ++fr; std::string dateTimeStr(fr[0].getStr()); ++fr; int year = 0, month = 0, day = 0, hour = 0, min = 0, sec = 0; if( dateTimeStr.length() >= 4 ) year = atoi( dateTimeStr.substr(0,4).c_str()); if( dateTimeStr.length() >= 6 ) month = atoi( dateTimeStr.substr(4,2).c_str()); if( dateTimeStr.length() >= 8 ) day = atoi( dateTimeStr.substr(6,2).c_str()); if( dateTimeStr.length() >= 10 ) hour = atoi( dateTimeStr.substr(8,2).c_str()); if( dateTimeStr.length() >= 12 ) min = atoi( dateTimeStr.substr(10,2).c_str()); if( dateTimeStr.length() >= 14 ) sec = atoi( dateTimeStr.substr(12,2).c_str()); em.setDateTime( osgEphemeris::DateTime( year, month, day, hour, min, sec )); itAdvanced = true; } if( fr[0].matchWord("SkyDomeRadius")) { ++fr; double radius = atof( fr[0].getStr() ); ++fr; em.setSkyDomeRadius( radius ); itAdvanced = true; } if( fr[0].matchWord("SkyDomeCenter")) { ++fr; double x = atof( fr[0].getStr() ); double y = atof( fr[1].getStr() ); double z = atof( fr[2].getStr() ); ++fr; ++fr; ++fr; em.setSkyDomeCenter( osg::Vec3(x,y,z) ); itAdvanced = true; } if( fr[0].matchWord( "AutoDateTime" )) { ++fr; #ifdef _MSC_VER bool flag = (!_stricmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #else bool flag = (!strcasecmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #endif em.setAutoDateTime( flag ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "MirrorSouthernHemisphere" )) { ++fr; #ifdef _MSC_VER bool flag = (!_stricmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #else bool flag = (!strcasecmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #endif em.setSkyDomeMirrorSouthernHemisphere( flag ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "UseSouthernHemisphere" )) { ++fr; #ifdef _MSC_VER bool flag = (!_stricmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #else bool flag = (!strcasecmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #endif em.setSkyDomeUseSouthernHemisphere( flag ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "MoveWithEyePoint" )) { ++fr; #ifdef _MSC_VER bool flag = (!_stricmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #else bool flag = (!strcasecmp( fr[0].getStr(), "True" )) || atoi(fr[0].getStr()); #endif em.setMoveWithEyePoint( flag ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "SunLightNumber" )) { ++fr; int lightNum = atoi( fr[0].getStr() ); em.setSunLightNum( lightNum ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "UpdateCallback" )) { ++fr; std::string callbackName(fr[0].getStr()); std::string tlibName = callbackName.substr( 0, callbackName.find_first_of(":")); std::string procName = callbackName.substr( callbackName.find_last_of(":")+1); std::string libName = osgDB::findLibraryFile( tlibName ); osgDB::DynamicLibrary::loadLibrary( libName ); osgEphemeris::EphemerisUpdateCallback *cb = osgEphemeris::EphemerisUpdateCallbackRegistry::instance()->getUpdateCallback( procName ); if( cb != 0L ) em.setEphemerisUpdateCallback( cb ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "SunFudgeScale" )) { ++fr; double sunFudgeScale = atof( fr[0].getStr() ); em.setSunFudgeScale( sunFudgeScale ); ++fr; itAdvanced = true; } if( fr[0].matchWord( "MoonFudgeScale" )) { ++fr; double moonFudgeScale = atof( fr[0].getStr() ); em.setMoonFudgeScale( moonFudgeScale ); ++fr; itAdvanced = true; } return itAdvanced; }