void OpenSteer::OpenSteerDemo::updateSelectedPlugIn (const float currentTime, const float elapsedTime) { // switch to Update phase pushPhase (updatePhase); // service queued reset request, if any doDelayedResetPlugInXXX (); // if no vehicle is selected, and some exist, select the first one if (SteeringVehicle::getSelectedVehicle() == nullptr) { const AVGroup& vehicles = allVehiclesOfSelectedPlugIn(); if (vehicles.size() > 0) SteeringVehicle::setSelectedVehicle( vehicles.front() ); } // invoke selected Plugin's Update method AbstractUpdated* updatedPlugin = dynamic_cast<AbstractUpdated*>(OpenSteer::Plugin::getSelectedPlugin()); assert( updatedPlugin != nullptr ); updatedPlugin->update (currentTime, elapsedTime); // return to previous phase popPhase (); }
void OpenSteer::OpenSteerDemo::redrawSelectedPlugIn (const float currentTime, const float elapsedTime) { // switch to Draw phase pushPhase (drawPhase); // invoke selected PlugIn's Draw method selectedPlugIn->redraw (currentTime, elapsedTime); // draw any annotation queued up during selected PlugIn's Update method drawAllDeferredLines (); drawAllDeferredCirclesOrDisks (); // return to previous phase popPhase (); }
void OpenSteer::OpenSteerDemo::updateSelectedPlugIn (const float currentTime, const float elapsedTime) { // switch to Update phase pushPhase (updatePhase); // service queued reset request, if any doDelayedResetPlugInXXX (); // if no vehicle is selected, and some exist, select the first one //++selectedVehicleIndex %= maxSelectedVehicleIndex; // invoke selected PlugIn's Update method selectedPlugIn->update (currentTime, elapsedTime); // return to previous phase popPhase (); }
void OpenSteer::OpenSteerDemo::redrawSelectedPlugIn (const float currentTime, const float elapsedTime) { // switch to Draw phase pushPhase (drawPhase); // nearest mouse (to be highlighted) SteeringVehicle::setNearestMouseVehicle( OpenSteerDemo::vehicleNearestToMouse() ); // invoke selected Plugin's Draw method OpenSteer::Plugin::getSelectedPlugin()->redraw (currentTime, elapsedTime); // draw any annotation queued up during selected Plugin's Update method drawAllDeferredLines (); drawAllDeferredCirclesOrDisks (); // return to previous phase popPhase (); }
void OpenSteer::OpenSteerDemo::updateSelectedPlugIn (const float currentTime, const float elapsedTime) { // switch to Update phase pushPhase (updatePhase); // service queued reset request, if any doDelayedResetPlugInXXX (); // if no vehicle is selected, and some exist, select the first one if (selectedVehicle == NULL) { const AVGroup& vehicles = allVehiclesOfSelectedPlugIn(); if (vehicles.size() > 0) selectedVehicle = vehicles.front(); } // invoke selected PlugIn's Update method selectedPlugIn->update (currentTime, elapsedTime); // return to previous phase popPhase (); }