Example #1
0
    public override void InitWithGeometry(Geometry geometry)
    {
        units = new VertexUnit[] { };
        if (geometry is ResolvedBody)
        {
            resolvedBody = (ResolvedBody)geometry;
        }
        GeoVertex[] geoVertices = geometry.GeoVertices();
        int[]       ids         = new int[geoVertices.Length];
        for (int i = 0; i < geoVertices.Length; i++)
        {
            ids[i] = geoVertices[i].VertexUnit().id;
        }
        face = new FaceRefer(ids);

        elements = new GeoElement[] { };

        dependencies.AddRange(units);

        GeoCircular[] geoCirculars = geometry.GeoCirculars();
        if (geoCirculars.Length != 0)
        {
            GeoCircular geoCircular = geoCirculars[0];
            circular = geoCircular.Circular();
        }
    }
Example #2
0
    private bool AddShape()
    {
        if (geometry is ResolvedBody)
        {
            ResolvedBody resolvedBody = (ResolvedBody)geometry;
            if (resolvedBody.shapeSetted)
            {
                return(false);
            }
            switch (ShapePositions.Count)
            {
            case 3:
                resolvedBody.SetTriangle(ShapePositions.ToArray());
                break;

            case 4:
                resolvedBody.SetRectangle(ShapePositions.ToArray());
                break;

            default:
                return(false);
            }
        }
        geometryBehaviour.InitGeometry(geometry);
        return(true);
    }
Example #3
0
 public ResolvedBodyGeometryState(Tool tool, Geometry geometry) : base(tool, geometry)
 {
     if (geometry is ResolvedBody)
     {
         this.geometry = (ResolvedBody)geometry;
     }
 }
Example #4
0
    public override Auxiliary GenerateAuxiliary(Geometry geometry, FormInput formInput)
    {
        bool valid = ValidateInput(geometry, formInput);

        if (!valid)
        {
            return(null);
        }

        if (!(geometry is ResolvedBody))
        {
            return(null);
        }

        ResolvedBody resolvedBody = (ResolvedBody)geometry;

        if (!resolvedBody.isSpinned || resolvedBody.isSpread)
        {
            return(null);
        }

        SpreadAuxiliary auxiliary = new SpreadAuxiliary();

        auxiliary.InitWithGeometry(geometry);
        if (!auxiliary.CanSpread())
        {
            return(null);
        }
        auxiliary.AddPlaneGraph();

        return(auxiliary);
    }
Example #5
0
    public ResolvedBodyConstructor(Geometry geometry) : base(geometry)
    {
        if (geometry is ResolvedBody)
        {
            this.geometry = (ResolvedBody)geometry;
        }

        geometrySetted = false;
    }
Example #6
0
    public TriangleConditionState(Tool tool, Condition condition, Geometry geometry) : base(tool, condition)
    {
        if (condition is TriangleCondition)
        {
            this.condition = (TriangleCondition)condition;
        }

        if (geometry is ResolvedBody)
        {
            this.geometry = (ResolvedBody)geometry;
        }
    }
Example #7
0
    public override bool ValidateInput(Geometry geometry, FormInput formInput)
    {
        if (!(geometry is ResolvedBody))
        {
            return(false);
        }
        ResolvedBody resolvedBody = (ResolvedBody)geometry;

        // FormNum height = (FormNum)formInput.inputs[2];
        // FormNum width = (FormNum)formInput.inputs[6];
        // if (!IsValidLength(height) || !IsValidLength(width))
        //     return false;

        return(true);
    }
Example #8
0
    public override Geometry GenerateGeometry()
    {
        ResolvedBody geo = new ResolvedBody();

        geo.Constructor = new ResolvedBodyConstructor(geo);
        geo.Assistor    = new Assistor(geo);
        geo.Implement   = new Implement(geo);
        geo.Init();
        // // transform camera
        // NavAxisBehaviour axis = GameObject.Find("X").GetComponent<NavAxisBehaviour>();
        // PointerEventData data = new PointerEventData(EventSystem.current);
        // axis.OnPointerClick(data);

        lockButton = GameObject.Find("LockButton").GetComponent <StatusButton>();
        lockButton.SetStatus(1);

        return(geo);
    }
Example #9
0
    public override Measure GenerateMeasure(Geometry geometry, FormInput formInput)
    {
        bool valid = ValidateInput(geometry, formInput);

        if (!valid)
        {
            return(null);
        }

        if (!(geometry is ResolvedBody))
        {
            return(null);
        }
        else
        {
            ResolvedBody resolvedBody = (ResolvedBody)geometry;
            if (!resolvedBody.isSpinned)
            {
                return(null);
            }
            GeoCircular[] geoCirculars = geometry.GeoCirculars();
            if (geoCirculars.Length != 0)
            {
                GeoCircular geoCircular = geoCirculars[0];
                Circular    circular    = geoCircular.Circular();
                if (!circular.IsNormalCircular())
                {
                    return(null);
                }
            }
        }

        GeoVertex[] geoVertices = geometry.GeoVertices();
        int[]       ids         = new int[geoVertices.Length];
        int         index       = 0;

        foreach (GeoVertex vertice in geoVertices)
        {
            ids[index++] = vertice.Id;
        }
        SurfaceAreaMeasure measure = new SurfaceAreaMeasure(ids);

        return(measure);
    }
Example #10
0
    public override void InitWithGeometry(Geometry geometry)
    {
        if (geometry is ResolvedBody)
        {
            resolvedBody = (ResolvedBody)geometry;
        }
        units = new VertexUnit[] { };

        GeoVertex[] geoVertices = geometry.GeoVertices();
        vertices = new VertexUnit[geoVertices.Length];
        int[] ids = new int[geoVertices.Length];
        for (int i = 0; i < geoVertices.Length; i++)
        {
            vertices[i] = geoVertices[i].VertexUnit();
            ids[i]      = vertices[i].id;
        }
        face = new FaceRefer(ids);

        elements = new GeoElement[] { };

        dependencies.AddRange(units);
    }
Example #11
0
    public void OpenWritingPanel(Geometry geometry)
    {
        gameObject.SetActive(true);
        StatusButton lockButton = GameObject.Find("LockButton").GetComponent <StatusButton>();

        lockButton.SetStatus(1);
        recognizePanel.showRecognizePanel();
        penBehaviour.SetDrawing(false);
        penBehaviour.SetGeometry(geometry);

        if (geometry is ResolvedBody)
        {
            ResolvedBody resolvedBody = (ResolvedBody)geometry;
            if (!resolvedBody.shapeSetted)
            {
                NavAxisBehaviour axis = GameObject.Find("X").GetComponent <NavAxisBehaviour>();
                PointerEventData data = new PointerEventData(EventSystem.current);
                axis.OnPointerClick(data);
                penBehaviour.SetDrawing(true);
                penBehaviour.SetGeometry(geometry);
                return;
            }
        }
    }