void FinalizeVector(object sender, ControllerEventArgs e) { if (coordType == CoordSystemType.CARTESIAN) { if (e.isLeft) { leftActiveVec.CreateInCartesian(); leftActiveVec = null; } else { rightActiveVec.CreateInCartesian(); rightActiveVec = null; } } else { if (e.isLeft) { leftActiveVec.CreateInGeneral(); leftActiveVec = null; } else { rightActiveVec.CreateInGeneral(); rightActiveVec = null; } } }
public MathBox_Vector CreateVector(Vector3 position) { MathBox_Vector vector = Instantiate(vectorPrefab); vector.transform.SetParent(coordSystem, false); vector_list.Add(vector); usercreated_list.Add(vector); vector.SetPosition(origin.position, position); return(vector); }
void VectorCross(MathBox_Vector v1, MathBox_Vector v2) { Vector3 start = origin.position; //Vector3 end = Vector3.Cross(v1.vectorInfo, v2.vectorInfo); MathBox_Vector vector = Instantiate(vectorPrefab); vector.SetVectorType(MathBox_Vector.VectorType.CrossProduct, v1, v2); vector.transform.SetParent(coordSystem, false); vector_list.Add(vector); }
public void SelectVector(MathBox_Vector selected) { selected.select(); if (selected_vectors.Contains(selected)) { selected_vectors.Remove(selected); } else { selected_vectors.Add(selected); } }
void ToggleSelection(MathBox_Vector selected) { selected.select(); if (selected_vectors.Contains(selected)) { selected_vectors.Remove(selected); } else { selected_vectors.Add(selected); } }
MathBox_Vector LastSelection() { if (selected_vectors.Count != 0) { MathBox_Vector last = selected_vectors[selected_vectors.Count - 1]; selected_vectors.RemoveAt(selected_vectors.Count - 1); last.select(); return(last); } else { return(null); } }
void CreateVector(object sender, ControllerEventArgs e) { Transform tip = e.controller.GetComponentInChildren <InitAttachment>().tip; MathBox_Vector vector = Instantiate(vectorPrefab); vector.transform.SetParent(coordSystem, false); vector_list.Add(vector); usercreated_list.Add(vector); vector.SetPosition(origin.position, tip.position); if (e.isLeft) { leftActiveVec = vector; } else { rightActiveVec = vector; } }
void SelectVector(object sender, ControllerEventArgs e) { Transform tip = e.controller.GetComponent <InitAttachment>().tip; foreach (MathBox_Vector v in usercreated_list) { if ((v.GetEnd - tip.position).magnitude < 1) { if (e.isLeft) { leftActiveVec = v; } else { rightActiveVec = v; } } } }
void FinishEditing(object sender, ControllerEventArgs e) { if (e.isLeft && leftActiveVec == null) { return; } if (!e.isLeft && rightActiveVec == null) { return; } if (coordType == CoordSystemType.CARTESIAN) { if (e.isLeft) { leftActiveVec.FinishEditInCartesian(); leftActiveVec = null; } else { rightActiveVec.FinishEditInCartesian(); rightActiveVec = null; } } else { if (e.isLeft) { leftActiveVec.FinishEditInGeneral(); leftActiveVec = null; } else { rightActiveVec.FinishEditInGeneral(); rightActiveVec = null; } } }
void VectorAddition(MathBox_Vector v1, MathBox_Vector v2) { //operand1 Vector3 start = v1.vectorInfo; MathBox_Vector vector = Instantiate(vectorPrefab); vector.SetVectorType(MathBox_Vector.VectorType.Addition_operand1, v1, v2); vector.transform.SetParent(coordSystem, false); vector_list.Add(vector); //operand2 start = v2.vectorInfo; vector = Instantiate(vectorPrefab); vector.SetVectorType(MathBox_Vector.VectorType.Addition_operand2, v1, v2); vector.transform.SetParent(coordSystem, false); vector_list.Add(vector); //result start = origin.position; vector = Instantiate(vectorPrefab); vector.SetVectorType(MathBox_Vector.VectorType.Addition, v1, v2); vector.transform.SetParent(coordSystem, false); vector_list.Add(vector); }
public void SetVectorType(VectorType type0, MathBox_Vector op1, MathBox_Vector op2) { type = type0; operand1 = op1; operand2 = op2; }
void ReadLeftController() { if (leftController.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad)) { //app.leftMenu.EnableSelector(leftController.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0).x * 0.045f, // leftController.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0).y * 0.045f); app.SetLeftMenuPress(true); } else if (leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Touchpad)) { //app.leftMenu.EnableSelector(); } else if (leftController.GetTouch(SteamVR_Controller.ButtonMask.Touchpad)) { //app.leftMenu.UpdateSelector(leftController.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0).x * 0.045f, // leftController.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0).y * 0.045f); } else if (leftController.GetTouchUp(SteamVR_Controller.ButtonMask.Touchpad)) { //app.leftMenu.DisableSelector(); //app.SetleftMenuPress(false); } /* * // Toggle Coordinate System * if(leftController.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad)) * { * int currType = (int)CoordinateSystemInteraction.coordType; * currType++; * currType = currType % 3; * if (Enum.IsDefined(typeof(CoordinateSystemInteraction.CoordType), currType)) * { * CoordinateSystemInteraction.coordType = (CoordinateSystemInteraction.CoordType)currType; * } * } * * // Toggle Interaction Mode * if (leftController.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu)) * { * int currMode = (int)coordSystem.interactionMode; * currMode++; * currMode = currMode % 5; * if(Enum.IsDefined(typeof(CoordinateSystemInteraction.InteractionMode), currMode)) * { * coordSystem.interactionMode = (CoordinateSystemInteraction.InteractionMode)currMode; * } * } */ // Reposition /* * if (leftController.GetPressDown(SteamVR_Controller.ButtonMask.Grip)) * { * currPos = transform.position; * currLeftPos = leftController.transform.pos; * } * else if (leftController.GetPress(SteamVR_Controller.ButtonMask.Grip)) * { * Vector3 delta = currLeftPos - leftController.transform.pos; * //Vector3 delta = leftController.transform.pos - currLeftPos; * transform.position = currPos + delta; * } */ // Toggle Vector Interactions switch (coordSystem.interactionMode) { case CoordinateSystemInteraction.InteractionMode.Create: if (leftActive == null && leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) { leftActive = coordSystem.CreateVector(leftTip.position); } else if (leftActive != null && leftController.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger)) { if (CoordinateSystemInteraction.coordType == CoordinateSystemInteraction.CoordType.Cartesian) { leftActive.CreateInCartesian(); } else { leftActive.CreateInGeneral(); } leftActive = null; } else if (leftActive != null) { leftActive.SetPosition(leftActive.GetStart, leftTip.position); } break; case CoordinateSystemInteraction.InteractionMode.Modify: if (leftActive == null && leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) { foreach (MathBox_Vector v in coordSystem.usercreated_list) { if ((v.GetEnd - leftTip.position).magnitude < 0.5) { leftActive = v; break; } } } else if (leftActive != null && leftController.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger)) { if (CoordinateSystemInteraction.coordType == CoordinateSystemInteraction.CoordType.Cartesian) { leftActive.FinishEditInCartesian(); } else { leftActive.FinishEditInGeneral(); } leftActive = null; } else if (leftActive != null) { leftActive.SetPosition(leftActive.GetStart, leftTip.position); } break; case CoordinateSystemInteraction.InteractionMode.Operate: if (coordSystem.selected_vectors.Count < 2 && leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) { foreach (MathBox_Vector v in coordSystem.usercreated_list) { if ((v.GetEnd - leftTip.position).magnitude < 0.5) { coordSystem.SelectVector(v); break; } } } else if (coordSystem.selected_vectors.Count == 2 && leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) { if (coordSystem.opMode == CoordinateSystemInteraction.OperateMode.Addition) { coordSystem.AddSelected(); } else if (coordSystem.opMode == CoordinateSystemInteraction.OperateMode.CrossProduct) { coordSystem.CrossSelected(); } } else if (leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Touchpad)) { if (coordSystem.opMode == CoordinateSystemInteraction.OperateMode.Addition) { coordSystem.opMode = CoordinateSystemInteraction.OperateMode.CrossProduct; } else if (coordSystem.opMode == CoordinateSystemInteraction.OperateMode.CrossProduct) { coordSystem.opMode = CoordinateSystemInteraction.OperateMode.Addition; } } break; /* * case CoordinateSystemInteraction.InteractionMode.Function3D: * if (leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger) && activeSurface == null) * { * activeSurface = coordSystem.CreateSurface(); * } * else if(leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger) && activeSurface != null) * { * activeSurface = null; * coordSystem.ClearSurface(); * } * break; * case CoordinateSystemInteraction.InteractionMode.Clear: * if (leftController.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)) * { * coordSystem.ClearScene(); * } * break; */ } }