/** * loads the net, additional routes and the detectors */ MSNet* load(OptionsCont& oc) { MSFrame::setMSGlobals(oc); MSVehicleControl* vc = 0; #ifdef HAVE_INTERNAL if (MSGlobals::gUseMesoSim) { vc = new MEVehicleControl(); } else { #endif vc = new MSVehicleControl(); #ifdef HAVE_INTERNAL } #endif MSNet* net = new MSNet(vc, new MSEventControl(), new MSEventControl(), new MSEventControl()); NLEdgeControlBuilder eb; NLDetectorBuilder db(*net); NLJunctionControlBuilder jb(*net, db); NLTriggerBuilder tb; NLHandler handler("", *net, db, tb, eb, jb); tb.setHandler(&handler); NLBuilder builder(oc, *net, eb, jb, db, handler); if (!builder.build()) { delete net; throw ProcessError(); } return net; }
void ExecutionBlock::AddWaitJob(void) { Job jb(JOB_WAIT,0, 0,this); // Add the new job to our job vector mJobs.push_back(jb); }
void ExecutionBlock::AddEndRaceJob(void) { Job jb(JOB_END_RACE, 0, 0, this); // Add the new job to our job vector mJobs.push_back(jb); }
/** * loads the net, additional routes and the detectors */ MSNet* load(OptionsCont& oc) { MSFrame::setMSGlobals(oc); MSVehicleControl* vc = 0; if (MSGlobals::gUseMesoSim) { vc = new MEVehicleControl(); } else { vc = new MSVehicleControl(); } MSNet* net = new MSNet(vc, new MSEventControl(), new MSEventControl(), new MSEventControl()); #ifndef NO_TRACI // need to init TraCI-Server before loading routes to catch VEHICLE_STATE_BUILT TraCIServer::openSocket(std::map<int, TraCIServer::CmdExecutor>()); #endif NLEdgeControlBuilder eb; NLDetectorBuilder db(*net); NLJunctionControlBuilder jb(*net, db); NLTriggerBuilder tb; NLHandler handler("", *net, db, tb, eb, jb); tb.setHandler(&handler); NLBuilder builder(oc, *net, eb, jb, db, handler); if (!builder.build()) { delete net; throw ProcessError(); } return net; }
void Font::renderBillboardText( const std::string& text, const vec3f& pos, float fontHeight, vec3f cameraK, const Color4f& color, const vec2f& relPos, bool fixedWidth ) { vec3f kb( cameraK ); kb.normalize(); vec3f ib( vec3f( 0.0f, 1.0f, 0.0f ).cross( kb ) ); ib.normalize(); vec3f jb( kb.cross( ib ) ); jb.normalize(); render3DText( text, pos, fontHeight, ib, jb, color, relPos, fixedWidth ); }
MSNet* NLBuilder::init() { OptionsCont& oc = OptionsCont::getOptions(); oc.clear(); MSFrame::fillOptions(); OptionsIO::getOptions(); if (oc.processMetaOptions(OptionsIO::getArgC() < 2)) { SystemFrame::close(); return nullptr; } XMLSubSys::setValidation(oc.getString("xml-validation"), oc.getString("xml-validation.net")); if (!MSFrame::checkOptions()) { throw ProcessError(); } MsgHandler::initOutputOptions(); RandHelper::initRandGlobal(); RandHelper::initRandGlobal(MSRouteHandler::getParsingRNG()); RandHelper::initRandGlobal(MSDevice::getEquipmentRNG()); MSFrame::setMSGlobals(oc); MSVehicleControl* vc = 0; if (MSGlobals::gUseMesoSim) { vc = new MEVehicleControl(); } else { vc = new MSVehicleControl(); } MSNet* net = new MSNet(vc, new MSEventControl(), new MSEventControl(), new MSEventControl()); // need to init TraCI-Server before loading routes to catch VEHICLE_STATE_BUILT TraCIServer::openSocket(std::map<int, TraCIServer::CmdExecutor>()); NLEdgeControlBuilder eb; NLDetectorBuilder db(*net); NLJunctionControlBuilder jb(*net, db); NLTriggerBuilder tb; NLHandler handler("", *net, db, tb, eb, jb); tb.setHandler(&handler); NLBuilder builder(oc, *net, eb, jb, db, handler); MsgHandler::getErrorInstance()->clear(); MsgHandler::getWarningInstance()->clear(); MsgHandler::getMessageInstance()->clear(); if (builder.build()) { // preload the routes especially for TraCI net->loadRoutes(); return net; } delete net; throw ProcessError(); }
FXint GUILoadThread::run() { GUINet *net = 0; int simStartTime = 0; int simEndTime = 0; // remove old options OptionsCont &oc = OptionsCont::getOptions(); oc.clear(); // within gui-based applications, nothing is reported to the console MsgHandler::getErrorInstance()->report2cout(false); MsgHandler::getErrorInstance()->report2cerr(false); MsgHandler::getWarningInstance()->report2cout(false); MsgHandler::getWarningInstance()->report2cerr(false); MsgHandler::getMessageInstance()->report2cout(false); MsgHandler::getMessageInstance()->report2cerr(false); // register message callbacks MsgHandler::getMessageInstance()->addRetriever(myMessageRetriever); MsgHandler::getErrorInstance()->addRetriever(myErrorRetriever); MsgHandler::getWarningInstance()->addRetriever(myWarningRetriever); // try to load the given configuration if (!initOptions()) { // the options are not valid submitEndAndCleanup(net, simStartTime, simEndTime); return 0; } MsgHandler::initOutputOptions(true); if (!MSFrame::checkOptions()) { // the options are not valid MsgHandler::getErrorInstance()->inform("Quitting (on error).", false); submitEndAndCleanup(net, simStartTime, simEndTime); return 0; } RandHelper::initRandGlobal(); // try to load MSFrame::setMSGlobals(oc); net = new GUINet(new GUIVehicleControl(), new GUIEventControl(), new GUIEventControl(), new GUIEventControl()); GUIEdgeControlBuilder *eb = new GUIEdgeControlBuilder(GUIGlObjectStorage::gIDStorage); NLJunctionControlBuilder jb(*net, oc); GUIDetectorBuilder db(*net); GUIGeomShapeBuilder sb(*net, GUIGlObjectStorage::gIDStorage); GUITriggerBuilder tb; NLHandler handler("", *net, db, tb, *eb, jb, sb); tb.setHandler(&handler); NLBuilder builder(oc, *net, *eb, jb, db, handler); try { MsgHandler::getErrorInstance()->clear(); MsgHandler::getWarningInstance()->clear(); MsgHandler::getMessageInstance()->clear(); if (!builder.build()) { throw ProcessError(); } else { net->initGUIStructures(); simStartTime = string2time(oc.getString("begin")); simEndTime = string2time(oc.getString("end")); } } catch (ProcessError &e) { if (std::string(e.what())!=std::string("Process Error") && std::string(e.what())!=std::string("")) { MsgHandler::getErrorInstance()->inform(e.what()); } MsgHandler::getErrorInstance()->inform("Quitting (on error).", false); delete net; net = 0; #ifndef _DEBUG } catch (std::exception &e) { MsgHandler::getErrorInstance()->inform(e.what()); delete net; net = 0; #endif } if (net==0) { MSNet::clearAll(); } delete eb; submitEndAndCleanup(net, simStartTime, simEndTime); return 0; }
FXint GUILoadThread::run() { GUINet* net = 0; int simStartTime = 0; int simEndTime = 0; std::vector<std::string> guiSettingsFiles; bool osgView = false; OptionsCont& oc = OptionsCont::getOptions(); // register message callbacks MsgHandler::getMessageInstance()->addRetriever(myMessageRetriever); MsgHandler::getErrorInstance()->addRetriever(myErrorRetriever); MsgHandler::getWarningInstance()->addRetriever(myWarningRetriever); // try to load the given configuration if (!initOptions()) { // the options are not valid but maybe we want to quit GUIGlobals::gQuitOnEnd = oc.getBool("quit-on-end"); submitEndAndCleanup(net, simStartTime, simEndTime); return 0; } // within gui-based applications, nothing is reported to the console MsgHandler::getMessageInstance()->removeRetriever(&OutputDevice::getDevice("stdout")); MsgHandler::getWarningInstance()->removeRetriever(&OutputDevice::getDevice("stderr")); MsgHandler::getErrorInstance()->removeRetriever(&OutputDevice::getDevice("stderr")); // do this once again to get parsed options MsgHandler::initOutputOptions(); XMLSubSys::setValidation(oc.getString("xml-validation"), oc.getString("xml-validation.net")); GUIGlobals::gRunAfterLoad = oc.getBool("start"); GUIGlobals::gQuitOnEnd = oc.getBool("quit-on-end"); if (!MSFrame::checkOptions()) { MsgHandler::getErrorInstance()->inform("Quitting (on error).", false); submitEndAndCleanup(net, simStartTime, simEndTime); return 0; } // initialise global settings RandHelper::initRandGlobal(); RandHelper::initRandGlobal(&MSVehicleControl::myVehicleParamsRNG); MSFrame::setMSGlobals(oc); GUITexturesHelper::allowTextures(!oc.getBool("disable-textures")); MSVehicleControl* vehControl = 0; #ifdef HAVE_INTERNAL GUIVisualizationSettings::UseMesoSim = MSGlobals::gUseMesoSim; if (MSGlobals::gUseMesoSim) { vehControl = new GUIMEVehicleControl(); } else #endif vehControl = new GUIVehicleControl(); GUIEdgeControlBuilder* eb = 0; try { net = new GUINet( vehControl, new GUIEventControl(), new GUIEventControl(), new GUIEventControl()); eb = new GUIEdgeControlBuilder(); GUIDetectorBuilder db(*net); NLJunctionControlBuilder jb(*net, db); GUITriggerBuilder tb; NLHandler handler("", *net, db, tb, *eb, jb); tb.setHandler(&handler); NLBuilder builder(oc, *net, *eb, jb, db, handler); MsgHandler::getErrorInstance()->clear(); MsgHandler::getWarningInstance()->clear(); MsgHandler::getMessageInstance()->clear(); if (!builder.build()) { throw ProcessError(); } else { net->initGUIStructures(); simStartTime = string2time(oc.getString("begin")); simEndTime = string2time(oc.getString("end")); guiSettingsFiles = oc.getStringVector("gui-settings-file"); #ifdef HAVE_INTERNAL osgView = oc.getBool("osg-view"); #endif } } catch (ProcessError& e) { if (std::string(e.what()) != std::string("Process Error") && std::string(e.what()) != std::string("")) { WRITE_ERROR(e.what()); } MsgHandler::getErrorInstance()->inform("Quitting (on error).", false); delete net; net = 0; #ifndef _DEBUG } catch (std::exception& e) { WRITE_ERROR(e.what()); delete net; net = 0; #endif } if (net == 0) { MSNet::clearAll(); } delete eb; submitEndAndCleanup(net, simStartTime, simEndTime, guiSettingsFiles, osgView); return 0; }