コード例 #1
0
 /// <summary>
 /// Enables/disables all buttons except for one.
 /// </summary>
 private void EnableButtons(OverlayButtonHolder excludeButton, bool enabled)
 {
     foreach (var button in m_buttonHolders.Where(button => button != excludeButton))
     {
         button.Overlay.PickingEnabled = enabled;
     }
 }
コード例 #2
0
        /// <summary>
        /// Adds a toggle button to the panel, with different images for the enabled and disabled state.
        /// </summary>
        public OverlayButtonHolder AddButton(string enabledImage, string disabledImage, Action action)
        {
            m_overlay.Width += ButtonSize;

            var buttonHolder = new OverlayButtonHolder(m_insight3D, action, enabledImage, disabledImage, m_locationOffset, m_overlay.Width);

            m_overlay.Overlays.Add(buttonHolder.Overlay);
            m_buttonHolders.Add(buttonHolder);

            m_locationOffset += ButtonSize;

            foreach (var button in m_buttonHolders)
            {
                button.Resize(m_overlay.Width);
            }

            return(buttonHolder);
        }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance.
        /// </summary>
        public OverlayToolbar(Insight3D insight3D)
        {
            m_insight3D     = insight3D;
            m_buttonHolders = new List <OverlayButtonHolder>();

            insight3D.MouseOptions.ZoomComplete += OnZoomComplete;
            insight3D.MouseDown             += OnMouseDown;
            insight3D.MouseMove             += OnMouseMove;
            insight3D.MouseUp               += OnMouseUp;
            insight3D.MouseClick            += OnMouseClick;
            insight3D.MouseDoubleClick      += OnMouseDoubleClick;
            SceneManager.Animation.Stopped  += OnAnimationStopped;
            SceneManager.Animation.Started  += OnAnimationStarted;
            SceneManager.Animation.Paused   += OnAnimationPaused;
            SceneManager.Animation.HasReset += OnAnimationHasReset;

            m_overlay = new TextureScreenOverlay(0.0, 0.0, DefaultPanelWidth, ButtonSize)
            {
                Origin             = ScreenOverlayOrigin.BottomLeft,
                BorderSize         = 2,
                Color              = Color.Transparent,
                BorderColor        = Color.Transparent,
                Translucency       = PanelTranslucencyRegular,
                BorderTranslucency = PanelBorderTranslucencyRegular
            };
            SceneManager.ScreenOverlays.Add(m_overlay);

            // ShowHide button
            AddButton(GetTexturePath("visible.png"), GetTexturePath("invisible.png"), ShowHide);

            // Reset button
            AddButton(GetTexturePath("reset.png"), Reset);

            // DecreaseDelta button
            m_decreaseDeltaButton = AddButton(GetTexturePath("decreasedelta.png"), DecreaseDelta);

            // StepBack button
            m_stepReverseButton = AddButton(GetTexturePath("stepreverse.png"), StepReverse);

            // PlayBack button
            AddButton(GetTexturePath("playreverse.png"), PlayReverse);

            // Pause button
            AddButton(GetTexturePath("pause.png"), Pause);

            // Play button
            AddButton(GetTexturePath("playforward.png"), PlayForward);

            // StepForward button
            m_stepForwardButton = AddButton(GetTexturePath("stepforward.png"), StepForward);

            // IncreaseDelta button
            m_increaseDeltaButton = AddButton(GetTexturePath("increasedelta.png"), IncreaseDelta);

            // Zoom button
            AddButton(GetTexturePath("zoompressed.png"), GetTexturePath("zoom.png"), Zoom);
            m_zoomButton = m_buttonHolders[m_buttonHolders.Count - 1];

            // Pan button
            AddButton(GetTexturePath("panpressed.png"), GetTexturePath("pan.png"), Pan);

            // Home button
            AddButton(GetTexturePath("home.png"), Home);

            // Moon Button
            AddButton(GetTexturePath("moon.png"), Moon);

            // Scale button
            m_scaleButton = new OverlayButtonHolder(m_insight3D, Scale, GetTexturePath("scale.png"), 0, m_overlay.Width, 0.5, 0.0);
            m_scaleButton.Overlay.Origin = ScreenOverlayOrigin.TopRight;
            m_overlay.Overlays.Add(m_scaleButton.Overlay);
            m_buttonHolders.Add(m_scaleButton);

            // Rotate button
            m_rotateButton = new OverlayButtonHolder(m_insight3D, Rotate, GetTexturePath("rotate.png"), 0, m_overlay.Width, 0.5, 0.0);
            m_rotateButton.Overlay.Origin = ScreenOverlayOrigin.BottomRight;
            m_overlay.Overlays.Add(m_rotateButton.Overlay);
            m_buttonHolders.Add(m_rotateButton);

            DockBottom();
        }