示例#1
0
    public override void Start()
    {
        if (conditionTool == null)
        {
            Debug.LogWarning(tool.Name + " Error!");
            geoController.EndOperation();
            return;
        }

        FormInput formInput = conditionTool.FormInput();

        if (formInput != null)
        {
            inputPanel.SetFormForInput(conditionTool.FormInput());

            inputPanel.OnValidate = (form) =>
            {
                return(conditionTool.ValidateInput(geometry, form));
            };

            inputPanel.OnClickSubmit = (form) =>
            {
                addCondition(geometry, form);
            };

            inputPanel.OnClickCancel = (form) =>
            {
                geoController.EndOperation();
            };
        }
        else
        {
            addCondition(geometry, null);
        }
    }
示例#2
0
    public override void Start()
    {
        if (conditionTool == null)
        {
            Debug.LogWarning(tool.Name + " Error!");
            geoController.EndOperation();
            return;
        }

        inputPanel.SetFormForInput(conditionTool.FormInput());

        inputPanel.OnValidate = (form) =>
        {
            return(conditionTool.ValidateInput(geometry, form));
        };

        inputPanel.OnClickSubmit = (form) =>
        {
            Condition condition = conditionTool.GenerateCondition(geometry, form);

            bool result = geometry.Constructor.AddCondition(condition);

            if (result)
            {
                AddState(condition);
                geometryBehaviour.UpdateElements();
                geometryBehaviour.UpdateSignsPosition();
                geometryBehaviour.UpdateGizmos();

                Gizmo[] gizmos = condition.gizmos;
                if (gizmos != null)
                {
                    foreach (Gizmo gizmo in gizmos)
                    {
                        geometry.AddGizmo(gizmo);
                        geometryBehaviour.AddGizmo(gizmo);
                    }
                }

                stateController.RefreshStateCells();
            }
            else
            {
                // TODO
            }

            geoController.EndOperation();
        };

        inputPanel.OnClickCancel = (form) =>
        {
            geoController.EndOperation();
        };
    }
示例#3
0
    public override void Start()
    {
        if (measureTool == null)
        {
            Debug.LogWarning(tool.Name + " Error!");
            geoController.EndOperation();
            return;
        }

        inputPanel.SetFormForInput(measureTool.FormInput());

        inputPanel.OnValidate = (form) =>
        {
            return(measureTool.ValidateInput(geometry, form));
        };

        inputPanel.OnClickSubmit = (form) =>
        {
            Measure measure = measureTool.GenerateMeasure(geometry, form);
            measure.InitWithGeometry(geometry);


            bool result = geometry.Implement.AddMeasure(measure);

            if (result)
            {
                AddState(measure);

                Gizmo[] gizmos = measure.gizmos;
                if (gizmos != null)
                {
                    foreach (Gizmo gizmo in gizmos)
                    {
                        geometry.AddGizmo(gizmo);
                        geometryBehaviour.AddGizmo(gizmo);
                    }
                }
            }
            else
            {
                // TODO
            }

            geoController.EndOperation();
        };

        inputPanel.OnClickCancel = (form) =>
        {
            geoController.EndOperation();
        };
    }
    public override void Start()
    {
        if (auxiliaryTool == null)
        {
            Debug.LogWarning(tool.Name + " Error!");
            geoController.EndOperation();
            return;
        }
        if (writeInput == null)
        {
            FormInput formInput = auxiliaryTool.FormInput();

            if (formInput != null)
            {
                inputPanel.SetFormForInput(formInput);

                inputPanel.OnValidate = (form) =>
                {
                    return(auxiliaryTool.ValidateInput(geometry, form));
                };

                inputPanel.OnClickSubmit = (form) =>
                {
                    geoController.record.SetForm(form);
                    geoController.records.Add(geoController.record);
                    addAuxiliary(geometry, form);
                };

                inputPanel.OnClickCancel = (form) =>
                {
                    geoController.EndOperation();
                };
            }
            else
            {
                addAuxiliary(geometry, null);
            }
        }
        else
        {
            addAuxiliary(geometry, writeInput);
        }
    }
示例#5
0
    public override void Start()
    {
        if (measureTool == null)
        {
            Debug.LogWarning(tool.Name + " Error!");
            geoController.EndOperation();
            return;
        }
        if (writeInput == null)
        {
            FormInput formInput = measureTool.FormInput();
            if (formInput != null)
            {
                inputPanel.SetFormForInput(formInput);

                inputPanel.OnValidate = (form) =>
                {
                    return(measureTool.ValidateInput(geometry, form));
                };

                inputPanel.OnClickSubmit = (form) =>
                {
                    AddMeasure(geometry, form);
                };

                inputPanel.OnClickCancel = (form) =>
                {
                    geoController.EndOperation();
                };
            }
            else
            {
                AddMeasure(geometry, null);
            }
        }
        else
        {
            AddMeasure(geometry, writeInput);
        }
    }
示例#6
0
    public override void Start()
    {
        if (auxiliaryTool == null)
        {
            Debug.LogWarning(tool.Name + " Error!");
            geoController.EndOperation();
            return;
        }

        inputPanel.SetFormForInput(auxiliaryTool.FormInput());

        inputPanel.OnValidate = (form) =>
        {
            return(auxiliaryTool.ValidateInput(geometry, form));
        };

        inputPanel.OnClickSubmit = (form) =>
        {
            Auxiliary auxiliary = auxiliaryTool.GenerateAuxiliary(geometry, form);
            auxiliary.InitWithGeometry(geometry);

            VertexUnit[] units    = auxiliary.units;
            GeoElement[] elements = auxiliary.elements;

            bool result = geometry.Assistor.AddAuxiliary(auxiliary);

            if (result)
            {
                foreach (VertexUnit unit in units)
                {
                    geometry.AddVertexUnit(unit);
                }

                foreach (GeoElement element in elements)
                {
                    geometry.AddElement(element);
                }

                AddState(auxiliary);

                geometryBehaviour.UpdateElements();
                foreach (GeoElement element in elements)
                {
                    geometryBehaviour.AddElement(element);
                }

                geometryBehaviour.UpdateSignsPosition();
                foreach (VertexUnit unit in units)
                {
                    geometryBehaviour.AddSign(unit.id);
                }


                Gizmo[] gizmos = auxiliary.gizmos;
                if (gizmos != null)
                {
                    foreach (Gizmo gizmo in gizmos)
                    {
                        geometry.AddGizmo(gizmo);
                        geometryBehaviour.AddGizmo(gizmo);
                    }
                }

                geometryBehaviour.UpdateGeometryShade();
            }
            else
            {
                // TODO
            }

            geoController.EndOperation();
        };

        inputPanel.OnClickCancel = (form) =>
        {
            geoController.EndOperation();
        };
    }
示例#7
0
    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();
        };
    }