public CSP copyDomains()
{
CSP result = new CSP();
result.variables = variables;
result.domains = new List<Domain>(domains.Count);
result.domains.AddRange(domains);
result.constraints = constraints;
result.varIndexHash = varIndexHash;
result.cnet = cnet;
return result;
}
}
protected void fireStateChanged(Assignment assignment, CSP csp) { foreach (CSPStateListener listener in listeners) { listener.stateChanged(assignment.copy(), csp.copyDomains()); } }