public void RefreshForm(FormInput formInput) { if (formInput != form) { return; } FormItem[] inputs = form.inputs; for (int i = 0; i < inputs.Length; i++) { if (inputs[i] is FormElement) { FormElement formElement = (FormElement)inputs[i]; InputElement inputElement = (InputElement)inputBases[i]; inputElement.Refresh(formElement); } else if (inputs[i] is FormNum) { FormNum formNum = (FormNum)inputs[i]; InputNum inputNum = (InputNum)inputBases[i]; inputNum.Refresh(formNum); } else if (inputs[i] is FormText) { FormText formText = (FormText)inputs[i]; InputText inputText = (InputText)inputBases[i]; inputText.Refresh(formText); } } }
public override FormInput Title() { int[] faceIds = measure.face.ids; int len = faceIds.Length; FormElement formElement = new FormElement(len); for (int i = 0; i < len; i++) { formElement.fields[i] = geometry.VertexSign(faceIds[i]); } float area = geometry.FaceArea(faceIds); FormNum formNum = new FormNum(area); formNum.format = UIConstants.AreaFormat; FormInput formInput = new FormInput(4); formInput.inputs[0] = formElement; formInput.inputs[1] = new FormText("面积"); formInput.inputs[2] = new FormText("="); formInput.inputs[3] = formNum; return(formInput); }
protected bool IsPointCoordinate(Geometry geometry, FormNum formNum) { if (formNum.isEmpty) { return(false); } return(true); }
public override bool ValidateInput(Geometry geometry, FormInput formInput) { FormElement SignElement = (FormElement)formInput.inputs[1]; FormNum formNum1 = (FormNum)formInput.inputs[3]; FormNum formNum2 = (FormNum)formInput.inputs[5]; FormNum formNum3 = (FormNum)formInput.inputs[7]; if (!IsNewSign(geometry, SignElement)) { return(false); } return(IsPointCoordinate(geometry, formNum1) && IsPointCoordinate(geometry, formNum2) && IsPointCoordinate(geometry, formNum3)); }
public void Refresh(FormNum formNum) { this.formNum = formNum; if (formNum.num == 0 && formNum.isEmpty) { SetText(""); } else { SetText(formNum.ToString()); } TextChanged(); }
public override Condition GenerateCondition(Geometry geometry, FormInput formInput) { bool valid = ValidateInput(geometry, formInput); if (!valid) { return(null); } FormNum formNum = (FormNum)formInput.inputs[2]; CuboidLengthCondition condition = new CuboidLengthCondition(formNum.num); return(condition); }
public override bool ValidateInput(Geometry geometry, FormInput formInput) { if (!(geometry is Cuboid)) { return(false); } Cuboid cuboid = (Cuboid)geometry; FormNum formNum = (FormNum)formInput.inputs[2]; if (!IsValidLength(formNum)) { return(false); } return(true); }
public override void Start() { vertexBehaviour.SetActive(true); vertexBehaviour.OnDragVertex = MoveVertex; VertexUnit[] vertices = geometry.VerticesOfMoveVertex(vertex); observeElements = new HashSet<GeoElement>(); observeGizmos = new HashSet<Gizmo>(); foreach (VertexUnit v in vertices) { HashSet<GeoElement> elementsSet = geometry.VertexUnitObserveElements(v.id); observeElements.UnionWith(elementsSet); HashSet<Gizmo> gizmosSet = geometry.VertexUnitObserveGizmos(v.id); observeGizmos.UnionWith(gizmosSet); } string sign = geometry.VertexSign(vertex.id); Vector3 position = vertex.Position(); formInput = new FormInput(8); formNumX = new FormNum(position.x); formNumY = new FormNum(position.y); formNumZ = new FormNum(position.z); formNumX.format = UIConstants.PointFormat; formNumY.format = UIConstants.PointFormat; formNumZ.format = UIConstants.PointFormat; FormElement formElement = new FormElement(1); formElement.fields[0] = sign; formInput.inputs[0] = formElement; formInput.inputs[1] = new FormText("("); formInput.inputs[2] = formNumX; formInput.inputs[3] = new FormText(","); formInput.inputs[4] = formNumY; formInput.inputs[5] = new FormText(","); formInput.inputs[6] = formNumZ; formInput.inputs[7] = new FormText(")"); inputPanel.SetFormForMessage(formInput); }
public override Auxiliary GenerateAuxiliary(Geometry geometry, FormInput formInput) { bool valid = ValidateInput(geometry, formInput); if (!valid) { return(null); } FormNum formNum1 = (FormNum)formInput.inputs[3]; FormNum formNum2 = (FormNum)formInput.inputs[5]; FormNum formNum3 = (FormNum)formInput.inputs[7]; FormElement SignElement = (FormElement)formInput.inputs[1]; string sign = Sign(SignElement); PointAuxiliary auxiliary = new PointAuxiliary(formNum1.num, formNum2.num, formNum3.num, sign); return(auxiliary); }
public override Condition GenerateCondition(Geometry geometry, FormInput formInput) { bool valid = ValidateInput(geometry, formInput); if (!valid) { return(null); } FormElement formElement = (FormElement)formInput.inputs[0]; string[] fields = formElement.fields; int id1 = geometry.SignVertex(fields[0]); int id2 = geometry.SignVertex(fields[1]); FormNum formNum = (FormNum)formInput.inputs[2]; BottomLengthCondition condition = new BottomLengthCondition(id1, id2, formNum.num); return(condition); }
public void Init() { input = transform.Find("Text").GetComponent <Text>(); input.fontSize = (int)UIConstants.TextFontSize; KeyboardSystem.OnKey.AddListener(InputKey); rectTransform = GetComponent <RectTransform>(); rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, UIConstants.TextFontSize); GameObject caretObject = transform.Find("Caret").gameObject; caret = caretObject.GetComponent <RectTransform>(); caret.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, UIConstants.TextFontSize); SetFocus(false); formNum = new FormNum(); }
public override FormInput Title() { EdgeRefer edge = measure.edge; FormElement formElement = new FormElement(2); formElement.fields[0] = geometry.VertexSign(edge.id1); formElement.fields[1] = geometry.VertexSign(edge.id2); float length = geometry.EdgeLength(edge.id1, edge.id2); FormNum formNum = new FormNum(length); formNum.format = UIConstants.LengthFormat; FormInput formInput = new FormInput(3); formInput.inputs[0] = formElement; formInput.inputs[1] = new FormText("="); formInput.inputs[2] = formNum; return(formInput); }
private InputNum AddInputNum(FormNum formNum) { GameObject go = GameObject.Instantiate(InputNumPrefab.gameObject); go.transform.SetParent(transform, false); InputNum inputNum = go.GetComponent <InputNum>(); inputNum.Init(formNum); inputNum.OnInputChanged += (num) => { formNum.num = num; if (OnInputChanged != null) { OnInputChanged(form); } RefreshLayout(); Validate(); }; return(inputNum); }
private void SetForm(FormInput formInput) { if (state != InputPanelState.Normal) { return; } form = formInput; FormItem[] inputs = form.inputs; inputBases = new InputBase[inputs.Length]; inputables = new List <Inputable>(); for (int i = 0; i < inputs.Length; i++) { if (inputs[i] is FormElement) { FormElement formElement = (FormElement)inputs[i]; InputElement inputElement = AddInputElement(formElement); inputables.Add(inputElement); inputBases[i] = inputElement; } else if (inputs[i] is FormNum) { FormNum formNum = (FormNum)inputs[i]; InputNum inputNum = AddInputNum(formNum); inputables.Add(inputNum); inputBases[i] = inputNum; } else if (inputs[i] is FormText) { FormText formText = (FormText)inputs[i]; InputText inputText = AddInputText(formText); inputBases[i] = inputText; } } RefreshLayout(); }
public override bool ValidateInput(Geometry geometry, FormInput formInput) { if (!(geometry is TriPyramid)) { return(false); } TriPyramid triPyramid = (TriPyramid)geometry; FormElement formElement = (FormElement)formInput.inputs[1]; if (!IsBottomCorner(triPyramid, formElement)) { return(false); } FormNum formNum = (FormNum)formInput.inputs[3]; if (!IsValidAngle(formNum)) { return(false); } return(true); }
public override bool ValidateInput(Geometry geometry, FormInput formInput) { if (!(geometry is TriPyramid)) { return(false); } TriPyramid triPyramid = (TriPyramid)geometry; FormElement formElement = (FormElement)formInput.inputs[0]; if (!IsBottomEdge(triPyramid, formElement)) { return(false); } FormNum formNum = (FormNum)formInput.inputs[2]; if (!IsValidLength(formNum)) { return(false); } return(true); }
public override FormInput Title() { CornerRefer corner = measure.corner; FormElement formElement = new FormElement(3); formElement.fields[0] = geometry.VertexSign(corner.id1); formElement.fields[1] = geometry.VertexSign(corner.id2); formElement.fields[2] = geometry.VertexSign(corner.id3); float angle = geometry.CornerAngle(corner.id1, corner.id2, corner.id3); FormNum formNum = new FormNum(angle); formNum.format = UIConstants.AngleFormat; FormInput formInput = new FormInput(4); formInput.inputs[0] = new FormText("∠"); formInput.inputs[1] = formElement; formInput.inputs[2] = new FormText("="); formInput.inputs[3] = formNum; return(formInput); }
public void Init(FormNum formNum) { Init(); Refresh(formNum); }
protected bool IsValidAngle(FormNum formNum) { bool result = formNum.num > 0 && formNum.num < 180; return(result); }
public override void Start() { FormInput formInput; string sign = geometry.VertexSign(vertexUnit.id); Vector3 position = vertexUnit.Position(); formInput = new FormInput(8); FormNum formNumX = new FormNum(position.x); FormNum formNumY = new FormNum(position.y); FormNum formNumZ = new FormNum(position.z); formNumX.format = UIConstants.PointFormat; formNumY.format = UIConstants.PointFormat; formNumZ.format = UIConstants.PointFormat; FormElement formElement = new FormElement(1); formElement.fields[0] = sign; formInput.inputs[0] = formElement; formInput.inputs[1] = new FormText("("); formInput.inputs[2] = formNumX; formInput.inputs[3] = new FormText(","); formInput.inputs[4] = formNumY; formInput.inputs[5] = new FormText(","); formInput.inputs[6] = formNumZ; formInput.inputs[7] = new FormText(")"); inputPanel.SetFormForInput(formInput); inputPanel.OnValidate = (form) => { return(!formNumX.isEmpty && !formNumY.isEmpty && !formNumZ.isEmpty); }; inputPanel.OnClickSubmit = (form) => { float x = formNumX.num; float y = formNumY.num; float z = formNumZ.num; Vector3 newPosition = new Vector3(x, y, z); geometry.SetUnitVector(vertexUnit.id, newPosition); stateController.RefreshStateCellById(vertexUnit.id); geometryBehaviour.UpdateElements(); geometryBehaviour.UpdateSignsPosition(); geometryBehaviour.UpdateGizmos(); geoController.EndOperation(); }; inputPanel.OnClickCancel = (form) => { geoController.EndOperation(); }; }
protected bool IsValidLength(FormNum formNum) { bool result = formNum.num > 0 && formNum.num < 10; return(result); }