Beispiel #1
0
        public void AllocateViewers <T>(int count, T viewerPrefab) where T : Viewer
        {
            Type      viewerType = viewerPrefab.GetType();
            ViewerSet viewerSet  = _viewers.GetOrAdd(viewerType);

            viewerSet.AllocateViewers(count, viewerPrefab, _viewerContainer);

            ResizeViewports();
        }
Beispiel #2
0
 public void ResizeViewports()
 {
     foreach (var kvp in _viewers)
     {
         ViewerSet viewerSet = kvp.Value;
         if (viewerSet.AssignedViewers.Count > 0)
         {
             ResizeViewports(viewerSet.AssignedViewers);
         }
         else if (viewerSet.UnassignedViewers.Count > 0)
         {
             ResizeViewports(viewerSet.UnassignedViewers);
         }
     }
 }
Beispiel #3
0
        private void InitDebugMenu()
        {
            DebugMenuNode debugMenuNode = DebugMenuManager.Instance.AddNode(() => "Core.ViewerManager");

            debugMenuNode.RenderContentsAction = () => {
                foreach (var kvp in _viewers)
                {
                    ViewerSet viewerSet = kvp.Value;
                    GUILayout.BeginVertical($"{kvp.Key} Viewers", GUI.skin.box);
                    GUILayout.Label($"Total Viewers: {viewerSet.Viewers.Count}");
                    GUILayout.Label($"Assigned Viewers: {viewerSet.AssignedViewers.Count}");
                    GUILayout.Label($"Unassigned Viewers: {viewerSet.UnassignedViewers.Count}");
                    GUILayout.EndVertical();
                }
            };
        }
Beispiel #4
0
        void InitContainers()
        {
            var controllers_factoryset =
                new FactorySet <ITrackController>(
                    SheetMusicEditor.CreateFactory()
                    );

            var controllers_viewerset =
                new ViewerSet <ITrackController>(
                    SheetMusicEditorView.Viewer.Instance
                    );

            var tracks_factoryset =
                new FactorySet <ITrack>(
                    MusicTrackFactory.Instance
                    );

            var tracks_viewerset =
                new ViewerSet <ITrack>();

            containerfactoryset.Factories.Add(
                TrackControllerContainer.CreateFactory(
                    tracks_factoryset,
                    tracks_viewerset,
                    controllers_factoryset,
                    controllers_viewerset
                    )
                );

            containerfactoryset.Factories.Add(
                PolylineContainer.CreateFactory(
                    new FactorySet <PolylineData>(
                        PolylineData.FactoryInstance
                        ),
                    new ViewerSet <PolylineData>(
                        )
                    )
                );

            containerfactoryset.Factories.Add(
                FunctionContainer.CreateFactory(
                    new FunctionCodeTools(
                        SquareFunction.FactoryClass.Instance,
                        PolylineFunction.FactoryClass.Instance,
                        PolynomialFunction.FactoryClass.Instance,
                        PulseWidthModulatedFunction.FactoryClass.Instance,

                        LocalPerspectiveFunction.FactoryClass.Instance,
                        GlobalPerspectiveFunction.FactoryClass.Instance
                        ),
                    new FactorySet <FunctionSource>(
                        FunctionSource.FactoryInstance
                        ),
                    new ViewerSet <FunctionSource>(
                        )
                    )
                );

            containerfactoryset.Factories.Add(
                ScreenContainer.CreateFactory(
                    new FactorySet <IScreen>(
                        TrackControllerScreen.FactoryInstance
                        ),
                    new ViewerSet <IScreen>(
                        TrackControllerScreenView.Viewer.Instance
                        )
                    )
                );
        }