void OnTriggerExit(Collider collider) { if (collider.gameObject.tag == "Fist_r") { ControlModeManager.CONTROL_MODE curMode = m_ControlModeManager.GetCurrentControlMode(); //deactivate fist mode for (int i = 0; i < objects.Length; i++) { objects[i].RightUngrip(); objects[i].ChangeStatutFistOpen(); } //get position and rotation of the object when hand opens to fix the object position and rotation AssignPositionWhenHandOpens(); } if (collider.gameObject.tag == "cube") { touchCube = false; } if (collider.gameObject.tag == "elbow_l") { rotationMode = false; } }
//assign to objectposition the position of the object in the current mode public void AssignPositionWhenHandOpens() { ControlModeManager.CONTROL_MODE curMode = m_ControlModeManager.GetCurrentControlMode(); //position of the object manipulated when fist opens if (curMode == ControlModeManager.CONTROL_MODE.QUERY_BOX) { objectPosition = queryCube.transform.position; } else if (curMode == ControlModeManager.CONTROL_MODE.MESSAGE_BOX) { objectPosition = messageCube.transform.position; } else if (curMode == ControlModeManager.CONTROL_MODE.CONNECTIVITY_BOX) { objectPosition = connectivityCube.transform.position; } else { print("get position of cortex"); objectPosition = cortexModel.transform.position; objectRotation = cortexModel.transform.rotation; //get rotation of cortex } }
public void ChangeMode(MenuButton.BUTTONFUNCTION func) { ControlModeManager.CONTROL_MODE curMode = m_ControlModeManager.GetCurrentControlMode(); switch (func) { case MenuButton.BUTTONFUNCTION.QUERY: if (curMode == ControlModeManager.CONTROL_MODE.MESSAGE_MODEL || curMode == ControlModeManager.CONTROL_MODE.QUERY_MODEL || curMode == ControlModeManager.CONTROL_MODE.CONNECTIVITY_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.QUERY_MODEL); } else { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.QUERY_BOX); } return; case MenuButton.BUTTONFUNCTION.MESSAGE: if (curMode == ControlModeManager.CONTROL_MODE.MESSAGE_MODEL || curMode == ControlModeManager.CONTROL_MODE.QUERY_MODEL || curMode == ControlModeManager.CONTROL_MODE.CONNECTIVITY_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.MESSAGE_MODEL); } else { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.MESSAGE_BOX); } return; case MenuButton.BUTTONFUNCTION.CONNECTIVITY: if (curMode == ControlModeManager.CONTROL_MODE.MESSAGE_MODEL || curMode == ControlModeManager.CONTROL_MODE.QUERY_MODEL || curMode == ControlModeManager.CONTROL_MODE.CONNECTIVITY_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.CONNECTIVITY_MODEL); } else { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.CONNECTIVITY_BOX); } return; case MenuButton.BUTTONFUNCTION.MODEL: if (curMode == ControlModeManager.CONTROL_MODE.MESSAGE_BOX || curMode == ControlModeManager.CONTROL_MODE.MESSAGE_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.MESSAGE_MODEL); } else if (curMode == ControlModeManager.CONTROL_MODE.QUERY_BOX || curMode == ControlModeManager.CONTROL_MODE.QUERY_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.QUERY_MODEL); } else { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.CONNECTIVITY_MODEL); } return; case MenuButton.BUTTONFUNCTION.BOX: if (curMode == ControlModeManager.CONTROL_MODE.MESSAGE_BOX || curMode == ControlModeManager.CONTROL_MODE.MESSAGE_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.MESSAGE_BOX); } else if (curMode == ControlModeManager.CONTROL_MODE.QUERY_BOX || curMode == ControlModeManager.CONTROL_MODE.QUERY_MODEL) { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.QUERY_BOX); } else { m_ControlModeManager.SetControlMode(ControlModeManager.CONTROL_MODE.CONNECTIVITY_BOX); } return; } }
private void Update() { ControlModeManager.CONTROL_MODE curMode = m_ControlModeManager.GetCurrentControlMode(); switch (curMode) { case ControlModeManager.CONTROL_MODE.QUERY_MODEL: LeftQuery.Activate(); RightQuery.Activate(); LeftModel.Activate(); RightModel.Activate(); break; case ControlModeManager.CONTROL_MODE.QUERY_BOX: LeftQuery.Activate(); RightQuery.Activate(); LeftBox.Activate(); RightBox.Activate(); break; case ControlModeManager.CONTROL_MODE.MESSAGE_MODEL: LeftModel.Activate(); RightModel.Activate(); LeftMessage.Activate(); RightMessage.Activate(); break; case ControlModeManager.CONTROL_MODE.MESSAGE_BOX: LeftMessage.Activate(); RightMessage.Activate(); LeftBox.Activate(); RightBox.Activate(); break; case ControlModeManager.CONTROL_MODE.CONNECTIVITY_MODEL: LeftConnectivity.Activate(); RightConnectivity.Activate(); LeftModel.Activate(); RightModel.Activate(); break; case ControlModeManager.CONTROL_MODE.CONNECTIVITY_BOX: LeftConnectivity.Activate(); RightConnectivity.Activate(); LeftBox.Activate(); RightBox.Activate(); break; } if (LeftOptionsMenu.activeInHierarchy || RightOptionsMenu.activeInHierarchy) { int messageLen = m_FullLineModelRenderer.m_steps - 7; LeftMessageLength.SetPosition((float)-messageLen); RightMessageLength.SetPosition((float)-messageLen); int messageSpeed = m_FullLineModelRenderer.m_iterationDelay - 6; LeftMessageSpeed.SetPosition((float)messageSpeed); RightMessageSpeed.SetPosition((float)messageSpeed); float rangeVal = Mathf.Log((m_FullLineModelRenderer.m_connectionRange - a) / b) / c; float sliderVal = -(rangeVal * 10) + 5; LeftConnectionRange.SetPosition(sliderVal); } }