Exemple #1
0
    public void PopChanges(ActiveList <bTriangle> triangleList, ActiveList <bVertex> vertexList)
    {
        if (triangleStack.Count <= 0)
        {
            return;
        }

        runningbTriangleChanges = triangleStack[triangleStack.Count - 1];
        triangleStack.RemoveAt(triangleStack.Count - 1);
        runningVertexChanges = vertexStack[vertexStack.Count - 1];
        vertexStack.RemoveAt(vertexStack.Count - 1);

        runningbTriangleChanges.Reverse();
        runningVertexChanges.Reverse();

        foreach (bTriangle_Change t in runningbTriangleChanges)
        {
            if (t.oldData != null)
            {
                t.node.data = t.oldData;
            }

            if (t.activityToggle)
            {
                triangleList.SetActivity(t.node, !t.node.IsActive());
            }

            if (t.newNode)
            {
                triangleList.Remove(t.node);
            }
        }

        foreach (Vertex_Change v in runningVertexChanges)
        {
            if (v.oldData != null)
            {
                v.node.data = v.oldData;
            }

            if (v.activityToggle)
            {
                vertexList.SetActivity(v.node, !v.node.IsActive());
            }

            if (v.newNode)
            {
                vertexList.Remove(v.node);
            }
        }

        runningbTriangleChanges = new List <bTriangle_Change>();
        runningVertexChanges    = new List <Vertex_Change>();
    }
Exemple #2
0
    private void ChangebTriangle(ActiveNode <bTriangle> node, bTriangle newVal, bool activityToggle = false)
    {
        history.AddChange(node, node.data, activityToggle);

        if (newVal != null)
        {
            node.data = newVal;
        }

        if (activityToggle)
        {
            triangles.SetActivity(node, !node.IsActive());
        }
    }
Exemple #3
0
    private void ChangeVertex(ActiveNode <bVertex> node, bVertex newVal, bVertex oldVal, bool activityToggle = false)
    {
        history.AddChange(node, oldVal, activityToggle);

        if (newVal != null)
        {
            node.data = newVal;
        }

        if (activityToggle)
        {
            vertices.SetActivity(node, !node.IsActive());
        }
    }