コード例 #1
0
        public AnatomyLuceneSearch(AnatomyController anatomyController)
        {
            this.anatomyController = anatomyController;

            systems = new AnatomyGroupFacetManager("Systems", "System", group =>
            {
                group.addCommand(new BreakdownSearchCallbackCommand("Show System Anatomy", true, () => displayAnatomyForFacet(group.AnatomicalName, systems.FacetName)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Region", true, () => breakdownGroup("{0} of the {1}", group, regions)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Structure", true, () => breakdownGroup("{0} of the {1}", group, structures)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Classification", true, () => breakdownGroup("{1} of the {0}", group, classifications)));
            },
                                                   anatomy =>
            {
                String system = anatomy.Systems.FirstOrDefault();
                return(buildGroupFromFacets(String.Format("{0} of the {1}", system, anatomy.Region), IEnumerableUtil <AnatomyFacet> .Iter(new AnatomyFacet("System", system), new AnatomyFacet("Region", anatomy.Region))));
            });

            regions = new AnatomyGroupFacetManager("Regions", "Region", group =>
            {
                group.addCommand(new BreakdownSearchCallbackCommand("Show Region Anatomy", true, () => displayAnatomyForFacet(group.AnatomicalName, regions.FacetName)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by System", true, () => breakdownGroup("{1} of the {0}", group, systems)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Classification", true, () => breakdownGroup("{1} of the {0}", group, classifications)));
            },
                                                   anatomy =>
            {
                String system = anatomy.Systems.FirstOrDefault();
                return(buildGroupFromFacets(String.Format("{0} of the {1}", system, anatomy.Region), IEnumerableUtil <AnatomyFacet> .Iter(new AnatomyFacet("System", system), new AnatomyFacet("Region", anatomy.Region))));
            });

            classifications = new AnatomyGroupFacetManager("Classifications", "Classification", group =>
            {
                group.addCommand(new BreakdownSearchCallbackCommand("Show Individual Anatomy", true, () => displayAnatomyForFacet(group.AnatomicalName, classifications.FacetName)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Region", true, () => breakdownGroup("{0} of the {1}", group, regions)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Structure", true, () => breakdownGroup("{0} of the {1}", group, structures)));
            },
                                                           anatomy =>
            {
                return(buildGroupFromFacets(String.Format("{0} of the {1}", anatomy.Classification, anatomy.Region), IEnumerableUtil <AnatomyFacet> .Iter(new AnatomyFacet("Classification", anatomy.Classification), new AnatomyFacet("Region", anatomy.Region))));
            });

            tags = new AnatomyGroupFacetManager("Tags", "Tag", group =>
            {
                group.addCommand(new BreakdownSearchCallbackCommand("Show Individual Anatomy", true, () => displayAnatomyForFacet(group.AnatomicalName, tags.FacetName)));
            },
                                                anatomy => { throw new NotImplementedException(); });

            structures = new AnatomyGroupFacetManager("Structures", "Structure", group =>
            {
                group.addCommand(new BreakdownSearchCallbackCommand("Show Individual Anatomy", true, () => displayAnatomyForFacet(group.AnatomicalName, structures.FacetName)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by System", true, () => breakdownGroup("{1} of the {0}", group, systems)));
                group.addCommand(new BreakdownSearchCallbackCommand("Breakdown by Classification", true, () => breakdownGroup("{1} of the {0}", group, classifications)));
            },
                                                      anatomy =>
            {
                String system = anatomy.Systems.FirstOrDefault();
                return(buildGroupFromFacets(String.Format("{0} of the {1}", system, anatomy.Structure), IEnumerableUtil <AnatomyFacet> .Iter(new AnatomyFacet("System", system), new AnatomyFacet("Structure", anatomy.Structure))));
            });
        }
コード例 #2
0
        public void initializeControllers(BackgroundScene background, LicenseManager licenseManager)
        {
            //Background
            this.background     = background;
            this.LicenseManager = licenseManager;
            atlasPluginManager  = new AtlasPluginManager(this);
            atlasPluginManager.PluginLoadError += new Medical.AtlasPluginManager.PluginMessageDelegate(atlasPluginManager_PluginLoadError);
            atlasPluginManager.manageInstalledPlugins();

            clipboard = new SaveableClipboard();

            //Documents
            DocumentController = new DocumentController();

            //MDI Layout
            mdiLayout = new MDILayoutManager();

            //SceneView
            MyGUIInterface myGUI = MyGUIInterface.Instance;

            sceneViewController = new SceneViewController(mdiLayout, medicalController.EventManager, medicalController.MainTimer, medicalController.PluginManager.RendererPlugin.PrimaryWindow, myGUI.OgrePlatform.RenderManager, background);
            sceneViewController.WindowCreated         += sceneViewController_WindowCreated;
            sceneViewController.WindowDestroyed       += sceneViewController_WindowDestroyed;
            sceneViewController.DefaultBackgroundColor = new Color(0.274f, 0.274f, 0.274f);
            sceneStatsDisplayManager = new SceneStatsDisplayManager(sceneViewController, OgreInterface.Instance.OgrePrimaryWindow.OgreRenderTarget);
            sceneStatsDisplayManager.StatsVisible        = MedicalConfig.EngineConfig.ShowStatistics;
            MedicalConfig.EngineConfig.ShowStatsToggled += engineConfig => sceneStatsDisplayManager.StatsVisible = engineConfig.ShowStatistics;
            lightManager = PluginManager.Instance.RendererPlugin.createSceneViewLightManager();

            //Measurement grid
            measurementGrid = new MeasurementGrid("MeasurementGrid", sceneViewController);
            SceneUnloading += measurementGrid.sceneUnloading;
            SceneLoaded    += measurementGrid.sceneLoaded;

            //Image Renderer
            imageRenderer                       = new ImageRenderer(medicalController, sceneViewController, idleHandler);
            imageRenderer.Background            = background;
            imageRenderer.ImageRenderStarted   += measurementGrid.ScreenshotRenderStarted;
            imageRenderer.ImageRenderCompleted += measurementGrid.ScreenshotRenderCompleted;

            //Anatomy Controller
            anatomyController = new AnatomyController();

            //Medical states
            medicalStateController = new MedicalStateController(imageRenderer, medicalController);
            SceneLoaded           += medicalStateController.sceneLoaded;
            SceneUnloading        += medicalStateController.sceneUnloading;

            //Movement sequences
            movementSequenceController = new MovementSequenceController(medicalController);
            this.SceneLoaded          += movementSequenceController.sceneLoaded;
            musclePositionController   = new MusclePositionController(medicalController.MainTimer, this);

            SceneLoaded    += SleepyActorRepository.SceneLoaded;
            SceneUnloading += SleepyActorRepository.SceneUnloading;

            //Props
            propFactory = new PropFactory(this);

            //Timeline
            timelineController = new TimelineController(this);

            viewHostFactory = new MyGUIViewHostFactory(mdiLayout);
            mvcCore         = new AnomalousMvcCore(this, viewHostFactory);

            //Patient data
            patientDataController = new PatientDataController(this);

            //Tasks
            taskController = new TaskController();

            anatomyTaskManager = new AnatomyTaskManager(taskController, guiManager);

            //Coroutine
            Coroutine.SetTimer(medicalController.MainTimer);

            //Notifications
            notificationManager = new NotificationGUIManager();

            layerController = new LayerController();

            //Create virtual texture manager
            virtualTextureSceneViewLink = new VirtualTextureSceneViewLink(this);
        }