Exemple #1
0
    public void OnClickAdjustButton()
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.StartAdjustProtein();
        CoreAPI.SendCommand <MainConsoleModule, UnRegisterHoldHandlerCommand>(new UnRegisterHoldHandlerCommand());
    }
    public void ResetScale()
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.Displayer3DRoot.transform.localScale = new Vector3(1, 1, 1);
        view.scaleSlider.value = 0.5f;
    }
Exemple #3
0
    /// <summary>显示蛋白质</summary>
    public void ShowProtein()
    {
        ProteinDisplayModel model       = GetModel <ProteinDisplayModel>();
        Protein             protein     = CoreAPI.PostCommand <PdbLoaderModule, GetProteinDataCommand, Protein>(new GetProteinDataCommand());
        DisplayMode         displayMode = CoreAPI.PostCommand <MainConsoleModule, GetDisplayModeCommand, DisplayMode>(new GetDisplayModeCommand());

        //若蛋白质数据还未加载 则直接返回
        if (protein == null)
        {
            return;
        }
        //若当前ProteinData与DisplayMode均是最新则直接返回,否则销毁重新Create
        if (model.DisplayedProteinData != null && model.DisplayedProteinData.ID == protein.ID && model.DisplayedDisplayMode == displayMode)
        {
            return;
        }
        else
        {
            DestroyProtein();
        }
        model.DisplayedProteinData = protein;
        model.DisplayedDisplayMode = displayMode;
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.CreateProtein(protein, displayMode);
    }
Exemple #4
0
    public void OnClickDoneButton()
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.CompleteAdjustProtein();
        CoreAPI.SendCommand <MainConsoleModule, RegisterHoldHandlerCommand>(new RegisterHoldHandlerCommand());
    }
    public void ShowDisplayView()
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.scaleSlider.onValueChanged.AddListener(ChangeModelScale);
        view.resetScaleBtn.onClick.AddListener(ResetScale);

        view.toggle_ball_stick.onValueChanged.AddListener(OnBallStickToggleChanged);
        view.toggle_ball.onValueChanged.AddListener(OnBallToggleChanged);
        view.toggle_stick.onValueChanged.AddListener(OnStickToggleChanged);
    }
Exemple #6
0
    public void SetPolymerInfoDisplayerActive(bool active)
    {
        ProteinDisplayView  view  = GetView <ProteinDisplayView>();
        ProteinDisplayModel model = GetModel <ProteinDisplayModel>();

        if (model.DisplayedProteinData == null)
        {
            view.SetBoardActive(false);
            return;
        }
        view.SetBoardActive(active);
    }
    public void ChangeModelScale(float value)
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        // slider.value的值范围是[0,1],相要的scale范围是[0.25,4]
        if (value <= 0.5) //缩小
        {
            view.Displayer3DRoot.transform.localScale = new Vector3(value * 1.5f + 0.25f, value * 1.5f + 0.25f, value * 1.5f + 0.25f);
        }
        else //放大
        {
            view.Displayer3DRoot.transform.localScale = new Vector3(value * 6f - 2f, value * 6f - 2f, value * 6f - 2f);
        }
    }
    public void OnStickToggleChanged(bool value)
    {
        if (value == false)
        {
            return;
        }
        ProteinDisplayModel model   = GetModel <ProteinDisplayModel>();
        ProteinDisplayView  view    = GetView <ProteinDisplayView>();
        Protein             protein = model.DisplayedProteinData;

        view.displayMode = DisplayMode.Stick;
        DestroyProtein();
        ResetScale();
        view.ShowProtein(protein);
    }
    /// <summary>显示蛋白质</summary>
    public void ShowProtein()
    {
        ProteinDisplayModel model   = GetModel <ProteinDisplayModel>();
        Protein             protein = CoreAPI.PostCommand <PdbLoaderModule, GetProteinDataCommand, Protein>(new GetProteinDataCommand());

        if (model.DisplayedProteinData != null)
        {
            if (model.DisplayedProteinData.ID == protein.ID)
            {
                return;
            }
            else
            {
                DestroyProtein();
            }
        }
        model.DisplayedProteinData = protein;
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.ShowProtein(protein);
    }
Exemple #10
0
    public void SetSelectedDisplayer(IDisplayerSelected displayer)
    {
        ProteinDisplayModel model = GetModel <ProteinDisplayModel>();
        ProteinDisplayView  view  = GetView <ProteinDisplayView>();

        //若是同一个displayer则跳过
        if (model.SelectedDisplayer != null && model.SelectedDisplayer == displayer)
        {
            return;
        }
        //取消上一个Displayer的选中状态
        if (model.SelectedDisplayer != null)
        {
            model.SelectedDisplayer.OnUnSelected();
        }
        model.SelectedDisplayer = displayer;
        //设置当前选中的Displayer的选中状态
        displayer.OnSelected();
        //更新BoardInfo
        if (displayer is AtomDisplayer)
        {
            view.SetBoardInfo(displayer as AtomDisplayer);
        }
        else if (displayer is AminoacidDisplayer)
        {
            view.SetBoardInfo(displayer as AminoacidDisplayer);
        }
        else if (displayer is ChainDisplayer)
        {
            view.SetBoardInfo(displayer as ChainDisplayer);
        }
        else
        {
            throw new System.Exception();
        }
    }
Exemple #11
0
 public void ShowDisplayView()
 {
     ProteinDisplayView view = GetView <ProteinDisplayView>();
 }
Exemple #12
0
    public void OnClickCancelButton()
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.CancelDingPolymerInfoDisplayer();
    }
Exemple #13
0
    /// <summary>销毁蛋白质分子模型</summary>
    private void DestroyProtein()
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.DestroyProtein();
    }
    //public void OnBallStickToggleChanged(bool value)
    //{
    //    ProteinDisplayModel model = GetModel<ProteinDisplayModel>();
    //    ProteinDisplayView view = GetView<ProteinDisplayView>();
    //    Protein protein = model.DisplayedProteinData;
    //    view.displayMode = value ? DisplayMode.BallStick : DisplayMode.Spacefill;
    //    DestroyProtein();
    //    view.ShowProtein(protein);
    //}

    public void ShowInfoInBoard(AtomDisplayer atomDisplayer)
    {
        ProteinDisplayView view = GetView <ProteinDisplayView>();

        view.SetBoardInfo(atomDisplayer);
    }