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>(); }
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()); } }
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()); } }