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 ();
}
Esempio n. 3
0
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 ();
}