Beispiel #1
0
//### Contains all methods which are neceassry before each VTK Render() call
void mitk::VtkPropRenderer::PrepareRender()
{
  if (this->GetMapperID() != m_CameraInitializedForMapperID)
  {
    Initialize2DvtkCamera(); // Set parallel projection etc.
  }
  GetCameraController()->AdjustCameraToPlane();
}
    void MobileExampleApp::CreateApplicationModelModules()
    {
        Eegeo::EegeoWorld& world = *m_pWorld;

        m_pReactionControllerModule = Eegeo_NEW(Reaction::View::ReactionControllerModule)();

        m_pWatermarkModule = Eegeo_NEW(ExampleApp::Watermark::WatermarkModule)(m_identityProvider);

        m_pAboutPageModule = Eegeo_NEW(ExampleApp::AboutPage::View::AboutPageModule)(m_identityProvider,
                                                                                     m_pReactionControllerModule->GetReactionControllerModel());
        
        m_pOptionsModule = Eegeo_NEW(ExampleApp::Options::OptionsModule)(m_identityProvider,
                                                                         m_pReactionControllerModule->GetReactionControllerModel(),
                                                                         m_messageBus,
                                                                         m_networkCapabilities);
        
        m_pSearchModule = Eegeo_NEW(Search::SdkModel::SearchModule)(m_searchServiceModule.GetSearchService(),
                                                                    *m_pGlobeCameraController,
                                                                    *m_pCameraTransitionController,
                                                                    m_messageBus,
                                                                    m_sdkDomainEventBus);

        m_pCompassModule = Eegeo_NEW(ExampleApp::Compass::SdkModel::CompassModule)(*m_pNavigationService,
                                                                                   world.GetLocationService(),
                                                                                   *m_pGlobeCameraController,
                                                                                   m_identityProvider,
                                                                                   m_messageBus,
                                                                                   m_metricsService,
                                                                                   *m_pAppModeModel);
        
        m_pGpsMarkerModule = Eegeo_NEW(ExampleApp::GpsMarker::SdkModel::GpsMarkerModule)(m_pWorld->GetRenderingModule(),
                                                                                         m_platformAbstractions,
                                                                                         m_pWorld->GetLocationService(),
                                                                                         m_pWorld->GetTerrainModelModule(),
                                                                                         m_pWorld->GetMapModule(),
                                                                                         m_messageBus);

        Eegeo::Modules::Map::CityThemesModule& cityThemesModule = world.GetCityThemesModule();

        m_pWeatherMenuModule = Eegeo_NEW(ExampleApp::WeatherMenu::SdkModel::WeatherMenuModule)(m_platformAbstractions.GetFileIO(),
                                                                                               cityThemesModule.GetCityThemesService(),
                                                                                               cityThemesModule.GetCityThemesUpdater(),
                                                                                               m_messageBus,
                                                                                               m_metricsService);
        
        m_pSecondaryMenuModule = Eegeo_NEW(ExampleApp::SecondaryMenu::SdkModel::SecondaryMenuModule)(m_identityProvider,
                                                                                                     m_pReactionControllerModule->GetReactionControllerModel(),
                                                                                                     m_pSearchModule->GetSearchQueryPerformer(),
                                                                                                     m_messageBus,
                                                                                                     m_pAboutPageModule->GetAboutPageViewModel(),
                                                                                                     m_pOptionsModule->GetOptionsViewModel(),
                                                                                                     m_metricsService);
        m_pPlaceJumpsModule = Eegeo_NEW(PlaceJumps::SdkModel::PlaceJumpsModule)(m_platformAbstractions.GetFileIO(),
                              GetCameraController(),
                              m_pCompassModule->GetCompassModel(),
                              m_pSecondaryMenuModule->GetSecondaryMenuViewModel(),
                              m_messageBus,
                              m_metricsService);

        m_pCategorySearchModule = Eegeo_NEW(ExampleApp::CategorySearch::SdkModel::CategorySearchModule(
                                                m_searchServiceModule.GetCategorySearchModels(),
                                                SearchModule().GetSearchQueryPerformer(),
                                                m_pSecondaryMenuModule->GetSecondaryMenuViewModel(),
                                                m_messageBus,
                                                m_metricsService));

        Eegeo::Modules::Map::MapModule& mapModule = world.GetMapModule();

        m_pMapModeModule = Eegeo_NEW(MapMode::SdkModel::MapModeModule(mapModule.GetEnvironmentFlatteningService(), m_pWeatherMenuModule->GetWeatherController()));

        m_pFlattenButtonModule = Eegeo_NEW(ExampleApp::FlattenButton::SdkModel::FlattenButtonModule)(m_pMapModeModule->GetMapModeModel(),
                                 m_identityProvider,
                                 m_messageBus);

        InitialisePinsModules(mapModule, world);
        
        m_pMyPinsModule = Eegeo_NEW(ExampleApp::MyPins::SdkModel::MyPinsModule)(m_pWorldPinsModule->GetWorldPinsService(),
                                                                                m_platformAbstractions,
                                                                                m_persistentSettings,
                                                                                m_pSecondaryMenuModule->GetSecondaryMenuViewModel(),
                                                                                m_messageBus,
                                                                                m_sdkDomainEventBus,
                                                                                *m_pCameraTransitionController,
                                                                                m_pCategorySearchModule->GetCategorySearchRepository(),
                                                                                m_pSearchModule->GetMyPinsSearchResultRefreshService(),
                                                                                m_metricsService);
        
        m_pSearchResultPoiModule = Eegeo_NEW(ExampleApp::SearchResultPoi::View::SearchResultPoiModule)(m_identityProvider,
                                                                                                       m_pReactionControllerModule->GetReactionControllerModel(),
                                                                                                       m_pMyPinsModule->GetMyPinsService(),
                                                                                                       m_pSearchModule->GetSearchResultMyPinsService(),
                                                                                                       m_pCategorySearchModule->GetSearchResultIconCategoryMapper(),
                                                                                                       world.GetPlatformAbstractionModule().GetWebLoadRequestFactory(),
                                                                                                       m_messageBus);
        
        m_pSearchResultMenuModule = Eegeo_NEW(SearchResultMenu::SdkModel::SearchResultMenuModule)(m_pSearchModule->GetSearchResultRepository(),
                                                                                                  m_pSearchModule->GetSearchQueryPerformer(),
                                                                                                  m_identityProvider,
                                                                                                  *m_pCameraTransitionController,
                                                                                                  m_pReactionControllerModule->GetReactionControllerModel(),
                                                                                                  m_messageBus);
        
        m_pSearchResultOnMapModule = Eegeo_NEW(SearchResultOnMap::SdkModel::SearchResultOnMapModule)(m_pSearchModule->GetSearchResultRepository(),
                                                                                                     m_pSearchResultPoiModule->GetSearchResultPoiViewModel(),
                                                                                                     m_pWorldPinsModule->GetWorldPinsService(),
                                                                                                     m_pCategorySearchModule->GetSearchResultIconCategoryMapper(),
                                                                                                     m_pSearchModule->GetSearchResultMyPinsService(),
                                                                                                     m_messageBus,
                                                                                                     m_metricsService);
        
        m_pMyPinCreationModule = Eegeo_NEW(ExampleApp::MyPinCreation::SdkModel::MyPinCreationModule)(m_pMyPinsModule->GetMyPinsService(),
                                 m_identityProvider,
                                 m_pSecondaryMenuModule->GetSecondaryMenuViewModel(),
                                 m_pSearchModule->GetSearchQueryPerformer(),
                                 m_pSearchResultMenuModule->GetMenuViewModel(),
                                 m_pSearchModule->GetSearchRefreshService(),
                                 m_messageBus,
                                 m_pReactionControllerModule->GetReactionControllerModel());

        m_pPoiRingModule = Eegeo_NEW(ExampleApp::MyPinCreation::PoiRing::SdkModel::PoiRingModule)(m_pMyPinCreationModule->GetMyPinCreationModel(),
                           m_platformAbstractions,
                           m_pWorld->GetRenderingModule(),
                           m_pWorld->GetAsyncLoadersModule(),
                           m_pWorld->GetLightingModule(),
                           m_pWorld->GetTerrainModelModule(),
                           m_pWorld->GetMapModule());


        m_pMyPinCreationDetailsModule = Eegeo_NEW(ExampleApp::MyPinCreationDetails::View::MyPinCreationDetailsModule)(m_identityProvider,
                                        m_pReactionControllerModule->GetReactionControllerModel());

        m_pMyPinDetailsModule = Eegeo_NEW(ExampleApp::MyPinDetails::SdkModel::MyPinDetailsModule)(m_identityProvider,
                                                                                                  m_pReactionControllerModule->GetReactionControllerModel(),
                                                                                                  m_pMyPinsModule->GetMyPinsService(),
                                                                                                  m_pSearchResultPoiModule->GetSearchResultPoiViewModel(),
                                                                                                  m_messageBus);

        Eegeo::Modules::Map::Layers::InteriorsPresentationModule& interiorsPresentationModule = mapModule.GetInteriorsPresentationModule();
        m_pInteriorsExplorerModule = Eegeo_NEW(InteriorsExplorer::SdkModel::InteriorsExplorerModule)(interiorsPresentationModule.GetInteriorsController(),
                                                                                                     interiorsPresentationModule.GetCameraController(),
                                                                                                     interiorsPresentationModule.GetInteriorSelectionModel(),
                                                                                                     interiorsPresentationModule.GetInteriorSelectionController(),
                                                                                                     world.GetMapModule().GetInteriorsPresentationModule().GetPinsController(),
                                                                                                     *m_pGlobeCameraController,
                                                                                                     *m_pStreamingVolume,
                                                                                                     world.GetNativeUIFactories(),
                                                                                                     m_identityProvider,
                                                                                                     m_pMapModeModule->GetMapModeModel(),
                                                                                                     *m_pAppModeModel,
                                                                                                     m_messageBus,
                                                                                                     m_metricsService);
        
        if (m_interiorsEnabled)
        {
            m_pInteriorsEntitiesPinsModule = Eegeo_NEW(InteriorsEntitiesPins::SdkModel::InteriorsEntitiesPinsModule(m_pWorld->GetPlatformAbstractionModule(),
                                                                                                                m_pWorld->GetRenderingModule(),
                                                                                                                m_pWorld->GetMapModule(),
                                                                                                                m_screenProperties));
        }
        
        std::vector<ScreenControl::View::IScreenControlViewModel*> reactors(GetReactorControls());
        std::vector<ExampleApp::OpenableControl::View::IOpenableControlViewModel*> openables(GetOpenableControls());

        m_pModalityModule = Eegeo_NEW(Modality::View::ModalityModule)(m_messageBus, openables);

        m_pReactionModelModule = Eegeo_NEW(Reaction::View::ReactionModelModule)(m_pReactionControllerModule->GetReactionControllerModel(),
                                 openables,
                                 reactors);

        Eegeo::Modules::Map::StreamingModule& streamingModule = world.GetStreamingModule();
        m_pWorldAreaLoaderModule = Eegeo_NEW(WorldAreaLoader::SdkModel::WorldAreaLoaderModule)(streamingModule.GetPrecachingService());

        m_initialExperienceModule.InitialiseWithApplicationModels(m_pWorldAreaLoaderModule->GetWorldAreaLoaderModel(),
                                                                  m_pSearchResultMenuModule->GetMenuViewModel(),
                                                                  m_pSearchResultMenuModule->GetSearchResultMenuViewModel());
        
        m_pSecondaryMenuModule->AddMenuSection("Search", m_pCategorySearchModule->GetCategorySearchMenuModel(), true);
        m_pSecondaryMenuModule->AddMenuSection("Weather" , m_pWeatherMenuModule->GetWeatherMenuModel(), true);
        m_pSecondaryMenuModule->AddMenuSection("Locations", m_pPlaceJumpsModule->GetPlaceJumpsMenuModel(), true);
        m_pSecondaryMenuModule->AddMenuSection("My Pins", m_pMyPinsModule->GetMyPinsMenuModel(), true);
        m_pSecondaryMenuModule->AddMenuSection("Settings", m_pSecondaryMenuModule->GetSettingsMenuModel(), true);
    }