void ExampleApp::Update (float dt) { Eegeo::EegeoWorld& eegeoWorld = World(); m_pCameraTouchController->Update(dt); eegeoWorld.EarlyUpdate(dt); m_pCameraController->Update(dt); Eegeo::Camera::CameraState cameraState(m_pCameraController->GetCameraState()); Eegeo::Streaming::IStreamingVolume& streamingVolume(World().GetMapModule().GetStreamingVolume()); Eegeo::EegeoUpdateParameters updateParameters(dt, cameraState.LocationEcef(), cameraState.InterestPointEcef(), cameraState.ViewMatrix(), cameraState.ProjectionMatrix(), streamingVolume, m_screenPropertiesProvider.GetScreenProperties()); eegeoWorld.Update(updateParameters); UpdateLoadingScreen(dt); }
void MobileExampleApp::Update(float dt) { Eegeo::EegeoWorld& eegeoWorld(World()); Eegeo::Modules::Map::Layers::InteriorsPresentationModule& interiorsModule = eegeoWorld.GetMapModule().GetInteriorsPresentationModule(); Eegeo::Resources::Interiors::Camera::InteriorsCameraController& interiorsCameraController = interiorsModule.GetCameraController(); m_pCurrentTouchController = interiorsModule.GetCameraController().IsEnabled() ? &interiorsModule.GetTouchController() : m_pCameraTouchController; eegeoWorld.EarlyUpdate(dt); m_pGlobeCameraController->Update(dt); m_pCameraTransitionController->Update(dt); if(interiorsCameraController.IsEnabled()) { interiorsCameraController.Update(dt); } Eegeo::Camera::CameraState cameraState(interiorsCameraController.IsEnabled() ? interiorsCameraController.GetCameraState() : m_pGlobeCameraController->GetCameraState()); Eegeo::Camera::RenderCamera renderCamera(interiorsCameraController.IsEnabled() ? interiorsCameraController.GetRenderCamera() : m_pGlobeCameraController->GetRenderCamera()); Eegeo::dv3 ecefInterestPoint(cameraState.InterestPointEcef()); m_pPoiRingModule->GetPoiRingController().Update(dt, renderCamera, ecefInterestPoint); Eegeo::EegeoUpdateParameters updateParameters(dt, cameraState.LocationEcef(), cameraState.InterestPointEcef(), cameraState.ViewMatrix(), cameraState.ProjectionMatrix(), GetUpdatedStreamingVolume(cameraState, renderCamera), m_screenProperties); eegeoWorld.Update(updateParameters); m_pSearchModule->GetSearchRefreshService().TryRefreshSearch(dt, ecefInterestPoint); m_pPinsModule->GetController().Update(dt, renderCamera); if(!eegeoWorld.Initialising()) { WorldPinsModule().GetWorldPinsScaleController().Update(dt, renderCamera); CompassModule().GetCompassUpdateController().Update(dt); CompassModule().GetCompassUpdateController().Update(dt); m_pGpsMarkerModule->GetGpsMarkerController().Update(dt, renderCamera); if (m_interiorsEnabled) { Eegeo_ASSERT(m_pInteriorsEntitiesPinsModule != NULL); m_pInteriorsEntitiesPinsModule->GetPinsModule().Update(dt, renderCamera); m_pInteriorsEntitiesPinsModule->GetInteriorsEntitiesPinsController().Update(dt); } InitialExperience::SdkModel::IInitialExperienceModel& initialExperienceModel = m_initialExperienceModule.GetInitialExperienceModel(); if(!initialExperienceModel.HasCompletedInitialExperience() && IsLoadingScreenComplete()) { InitialExperience::SdkModel::IInitialExperienceController& initialExperienceController = m_initialExperienceModule.GetInitialExperienceController(); initialExperienceController.Update(dt); } if (!m_setMetricsLocation) { Eegeo::dv3 gpsLocation; if(m_pNavigationService->TryGetGpsLocationOnTerrain(gpsLocation)) { Eegeo::Space::LatLong ll = Eegeo::Space::LatLong::FromECEF(gpsLocation); m_metricsService.SetPosition(ll.GetLatitudeInDegrees(), ll.GetLongitudeInDegrees(), 0.f, 0.f); m_setMetricsLocation = true; } } } m_pNavigationService->Update(dt); UpdateLoadingScreen(dt); }