Exemple #1
0
    override public bool GetCurrentData()
    {
        if (addAtoms == null)
        {
            addAtoms = transform.parent.parent.gameObject.GetComponent <PopulateLigandMenu>().addAtoms;
        }

        bool value = addAtoms.LigandsShowing[LigandIndex];

        if (Text == null)
        {
            Text = TextLabel.GetComponent <UnityEngine.UI.Text>();
        }

        if (value)
        {
            Text.color = LabelOnColor;
        }
        else
        {
            Text.color = LabelOffColor;
        }

        return(value);
    }
 void Update()
 {
     if (addAtoms == null)
     {
         addAtoms = transform.parent.parent.GetComponent <AddAtoms>();
     }
 }
    void Start()
    {
        addAtoms = transform.parent.parent.GetComponent <AddAtoms>();

        itemsPerPage = 5;

        ligandMenuSlider           = transform.Find("LigandMenuSlider").gameObject;
        ligandMenuSliderDataBinder = ligandMenuSlider.GetComponent <LigandMenuSliderDataBinder>();

        background       = transform.Find("BackgroundCanvas").gameObject;
        backgroundHeight = background.GetComponent <RectTransform>().rect.height;
        startHeight      = backgroundHeight / 2 - menuItem.transform.Find("TextCanvas").gameObject.GetComponent <RectTransform>().rect.height / 2;

        if (addAtoms.CollectionOfLigands != null)
        {
            if (addAtoms.CollectionOfLigands.Count < itemsPerPage)
            {
                menuItems = new GameObject[addAtoms.CollectionOfLigands.Count];
            }
            else
            {
                menuItems = new GameObject[itemsPerPage];
            }

            GameObject temp;
            float      menuItemHeight = menuItem.transform.Find("TextCanvas").GetComponent <RectTransform>().rect.height;
            for (int i = 0; i < addAtoms.CollectionOfLigands.Count; i++)
            {
                if (i < itemsPerPage)
                {
                    temp = Instantiate(menuItem) as GameObject;
                    temp.transform.parent        = transform;
                    temp.transform.localScale    = Vector3.one;
                    temp.transform.localPosition = Vector3.up * (startHeight - menuItemHeight * i);
                    temp.transform.Find("LigandToggleButton").GetComponent <ToggleLigandButtonDataBinder>().LigandIndex = i;
                    temp.transform.Find("TextCanvas/LigandText").GetComponent <UnityEngine.UI.Text>().text = "Ligand" + (i + 1).ToString();
                    menuItems[i] = temp;
                }
            }
        }

        if (addAtoms.CollectionOfLigands.Count > itemsPerPage)
        {
            var pages = (addAtoms.CollectionOfLigands.Count / itemsPerPage) - 0.1f;
            if (addAtoms.CollectionOfLigands.Count % itemsPerPage != 0)
            {
                pages += 1;
            }

            ligandMenuSliderDataBinder.max         = pages;
            ligandMenuSliderDataBinder.outputValue = 0;
        }
        else
        {
            ligandMenuSlider.SetActive(false);
        }
    }
Exemple #4
0
    override public bool GetCurrentData()
    {
        if (addAtoms == null)
        {
            addAtoms = transform.parent.parent.parent.gameObject.GetComponent <AddAtoms>();
        }

        if (Text == null)
        {
            Text = TextLabel.GetComponent <UnityEngine.UI.Text>();
        }

        bool value = false;

        switch (propertyToggled)
        {
        case PropertiesToToggle.Protein:
            value = addAtoms.proteinShowing;
            break;

        case PropertiesToToggle.Ribbons:
            value = addAtoms.ribbonShowing;
            break;

        case PropertiesToToggle.AlphaTrace:
            value = addAtoms.alphaShowing;
            break;

        case PropertiesToToggle.Water:
            value = addAtoms.waterShowing;
            break;

        case PropertiesToToggle.Ions:
            value = addAtoms.ionsShowing;
            break;

        case PropertiesToToggle.HBond:
            value = addAtoms.HBondShowing;
            break;

        case PropertiesToToggle.Ligand:
            value = addAtoms.hetatmStick || addAtoms.hetatmBS;
            break;
        }

        if (value)
        {
            Text.color = LabelOnColor;
        }
        else
        {
            Text.color = LabelOffColor;
        }

        return(value);
    }
    void Start()
    {
        leapController = new Controller();
        addAtoms       = gameObject.GetComponent <AddAtoms>();
        molRoot        = GameObject.Find("molRoot");
        molRootOffset  = Vector3.zero;
        mainCamera     = GameObject.FindGameObjectWithTag("MainCamera").transform;
        menuTransform  = transform.FindChild("Menu");
        LeapHandControllerTransform = transform.FindChild("LMHeadMountedRig/TrackingSpace/CenterEyeAnchor/HeadMount/LeapHandController");
        LeftHandObjectTransform     = LeapHandControllerTransform.FindChild("ImageFullLeftHand(Clone)/HandContainer");

        //Hide menu toggle if only 1 ligand is present

        if (addAtoms.CollectionOfLigands == null)
        {
            menuTransform.FindChild("ToggleMenuButtons").gameObject.SetActive(false);
        }

        menus = new GameObject[menuTransform.childCount - 1];

        for (int i = 0; i < menus.Length; i++)
        {
            menus[i] = menuTransform.GetChild(i).gameObject;
            menus[i].SetActive(false);
        }

        menus[menuShowing].SetActive(true);

        // Move children of molRoot to position molRoot origin in middle of ligand

        GameObject[] hetatms = GameObject.FindGameObjectsWithTag("hetatmbs");

        Vector3 sumOfPos = Vector3.zero;

        for (int i = 0; i < hetatms.Length; i++)
        {
            sumOfPos += hetatms[i].transform.localPosition;
        }

        Vector3 offset = sumOfPos / hetatms.Length;

        foreach (Transform child in molRoot.transform)
        {
            child.localPosition -= offset;
        }
    }
Exemple #6
0
    void Awake()
    {
        Controller = gameObject.GetComponent <CharacterController> ();

        if (Controller == null)
        {
            Debug.LogWarning("OVRPlayerController: No CharacterController attached.");
        }

        // We use OVRCameraRig to set rotations to cameras,
        // and to be influenced by rotation
        OVRCameraRig[] CameraControllers;
        CameraControllers = gameObject.GetComponentsInChildren <OVRCameraRig> ();

        if (CameraControllers.Length == 0)
        {
            Debug.LogWarning("OVRPlayerController: No OVRCameraRig attached.");
        }
        else if (CameraControllers.Length > 1)
        {
            Debug.LogWarning("OVRPlayerController: More then 1 OVRCameraRig attached.");
        }
        else
        {
            CameraController = CameraControllers [0];
        }


        YRotation = transform.rotation.eulerAngles.y;

        Physics.IgnoreLayerCollision(0, 8);          //ignores collisions between the player and all objects



        menu   = gameObject.GetComponent <Menu> ();
        source = GetComponent <UnityEngine.AudioSource> ();


        addAtoms = gameObject.GetComponent <AddAtoms> ();
        addAtoms.Init();          // load the file

        addAtoms.parsePDB();      //populate the scene

        Quaternion ort = (HmdRotatesY) ? CameraController.centerEyeAnchor.rotation : transform.rotation;

        addAtoms.setPosition(ort * Vector3.forward * 30 + this.transform.position);          //centers the atoms infront of the user


        //initiate the kinect
        _Sensor = KinectSensor.GetDefault();
        if (_Sensor != null)
        {
            _Mapper = _Sensor.CoordinateMapper;
            _Reader = _Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Body | FrameSourceTypes.Depth);

            rightHand = transform.FindChild("RightHand").gameObject;
            leftHand  = transform.FindChild("LeftHand").gameObject;

            rightHandMover = rightHand.GetComponent <GestureMover> ();
            leftHandMover  = leftHand.GetComponent <GestureMover> ();

            var frameDesc = _Sensor.DepthFrameSource.FrameDescription;
            depthFrameWidth = frameDesc.Width;

            if (!_Sensor.IsOpen)
            {
                _Sensor.Open();
            }


            _gestureDatabase    = VisualGestureBuilderDatabase.Create(Application.streamingAssetsPath + "/Menu2.gbd");
            _gestureFrameSource = VisualGestureBuilderFrameSource.Create(_Sensor, 0);
            foreach (var gesture in _gestureDatabase.AvailableGestures)
            {
                _gestureFrameSource.AddGesture(gesture);

                if (gesture.Name == "Menu2")
                {
                    _menu = gesture;
                }
            }

            _gestureFrameReader          = _gestureFrameSource.OpenReader();
            _gestureFrameReader.IsPaused = true;
        }
    }
Exemple #7
0
    public override void OnVRGUI()
    {
        addAtoms = gameObject.GetComponent <AddAtoms> ();

        source = GetComponent <AudioSource> ();

        GUIStyle myStyle = new GUIStyle();

        myStyle.fontSize         = 25;
        myStyle.fontStyle        = FontStyle.Bold;
        myStyle.alignment        = TextAnchor.MiddleCenter;
        myStyle.normal.textColor = Color.black;


        //has to be reset each time we draw the gui
        buttonCount     = 0;
        buttons         = new List <Rect> ();
        buttonFunctions = new List <Action> ();

        GUILayout.BeginArea(new Rect(0f, 0f, Screen.width, Screen.height));

        if (addAtoms.proteinShowing)
        {
            GUI.Box(createRect(), "Hide Protein", myStyle);
        }
        else
        {
            GUI.Box(createRect(), "Show Protein", myStyle);
        }

        buttonFunctions.Add(() => bonds());


        if (addAtoms.ribbonShowing)
        {
            GUI.Box(createRect(), "Hide Ribbons", myStyle);
        }
        else
        {
            GUI.Box(createRect(), "Show Ribbons", myStyle);
        }
        buttonFunctions.Add(() => ribbons());

        if (addAtoms.alphaShowing)
        {
            GUI.Box(createRect(), "Hide Alpha Trace", myStyle);
        }
        else
        {
            GUI.Box(createRect(), "Show Alpha Trace", myStyle);
        }
        buttonFunctions.Add(() => alpha());

        if (addAtoms.waterShowing)
        {
            GUI.Box(createRect(), "Hide Water", myStyle);
        }
        else
        {
            GUI.Box(createRect(), "Show Water", myStyle);
        }
        buttonFunctions.Add(() => water());

        if (addAtoms.ionsShowing)
        {
            GUI.Box(createRect(), "Hide Ions", myStyle);
        }
        else
        {
            GUI.Box(createRect(), "Show Ions", myStyle);
        }
        buttonFunctions.Add(() => ions());

        if (addAtoms.HBondShowing)
        {
            GUI.Box(createRect(), "Hide H-Bonds", myStyle);
        }
        else
        {
            GUI.Box(createRect(), "Show H-Bonds", myStyle);
        }
        buttonFunctions.Add(() => hbonds());

        GUI.Box(createRect(), "Reset Center", myStyle);
        buttonFunctions.Add(() => resetTarget());

        GUILayout.EndArea();
    }
Exemple #8
0
    override protected void setDataModel(bool value)
    {
        if (addAtoms == null)
        {
            addAtoms = transform.parent.parent.gameObject.GetComponent <AddAtoms>();
        }

        switch (propertyToggled)
        {
        case PropertiesToToggle.Protein:
            if (addAtoms.proteinShowing)
            {
                addAtoms.proteinShowing = addAtoms.resetProtein("bonds");
                if (addAtoms.ballAndStickShowing)
                {
                    addAtoms.resetProtein("balls");
                }
            }
            else
            {
                addAtoms.proteinShowing = addAtoms.showMode("bonds");
                if (addAtoms.ballAndStickShowing)
                {
                    addAtoms.showMode("balls");
                }
            }
            break;

        case PropertiesToToggle.Ribbons:
            if (addAtoms.alphaShowing)
            {
                addAtoms.alphaShowing = addAtoms.resetProtein("alpha");
            }
            if (addAtoms.ribbonShowing)
            {
                addAtoms.ribbonShowing = addAtoms.resetProtein("ribbons");
            }
            else
            {
                addAtoms.ribbonShowing = addAtoms.showMode("ribbons");
            }
            break;

        case PropertiesToToggle.AlphaTrace:
            if (addAtoms.ribbonShowing)
            {
                addAtoms.ribbonShowing = addAtoms.resetProtein("ribbons");
            }
            if (addAtoms.alphaShowing)
            {
                addAtoms.alphaShowing = addAtoms.resetProtein("alpha");
            }
            else
            {
                addAtoms.alphaShowing = addAtoms.showMode("alpha");
            }
            break;

        case PropertiesToToggle.Water:
            if (addAtoms.waterShowing)
            {
                addAtoms.waterShowing = addAtoms.resetProtein("water");
            }
            else
            {
                addAtoms.waterShowing = addAtoms.showMode("water");
            }
            break;

        case PropertiesToToggle.Ions:
            if (addAtoms.ionsShowing)
            {
                addAtoms.ionsShowing = addAtoms.resetProtein("ion");
            }
            else
            {
                addAtoms.ionsShowing = addAtoms.showMode("ion");
            }
            break;

        case PropertiesToToggle.HBond:
            if (addAtoms.HBondShowing)
            {
                addAtoms.HBondShowing = addAtoms.resetProtein("hbond");
            }
            else
            {
                addAtoms.HBondShowing = addAtoms.showMode("hbond");
            }
            break;

        case PropertiesToToggle.Ligand:
            if (addAtoms.hetatmStick || addAtoms.hetatmBS)
            {
                if (PlayerPrefs.GetString("hetatmBS") == "True")
                {
                    addAtoms.hetatmBS = addAtoms.resetProtein("hetatmbs");
                }
                else if (addAtoms.sphere)
                {
                    addAtoms.hetatmBS = addAtoms.resetProtein("hetatmbs");
                }
                addAtoms.hetatmStick = addAtoms.resetProtein("hetatms");
            }
            else
            {
                if (PlayerPrefs.GetString("hetatmBS") == "True")
                {
                    addAtoms.hetatmBS = addAtoms.showMode("hetatmbs");
                }
                else if (addAtoms.sphere)
                {
                    addAtoms.hetatmBS = addAtoms.showMode("hetatmbs");
                }
                addAtoms.hetatmStick = addAtoms.showMode("hetatms");
            }
            break;
        }
    }