/// <summary> /// Propose to map ivtx1 from the first graph to ivtx2 in the second for /// the isomorphism being formed /// </summary> /// <param name="ivtx1">Vertex index in the first graph</param> /// <param name="ivtx2">Vertex index in the second graph</param> /// <param name="vfs">State determining the isomorphism</param> internal void SetMatch(int ivtx1, int ivtx2, VfState <TVAttr, TEAttr> vfs) { // Add both vertices to the "In Mapping" group MoveToGroup(1, ivtx1, Group.ContainedInMapping, vfs); MoveToGroup(2, ivtx2, Group.ContainedInMapping, vfs); // Actually set the vertices to correspond in the isomorphism vfs.SetIsomorphic(ivtx1, ivtx2); // Add actions to undo this act... AddAction(new BacktrackAction(Action.DeleteMatch, 1, ivtx1)); AddAction(new BacktrackAction(Action.DeleteMatch, 2, ivtx2)); }