diff -r b887ce19c300 -r 234fa7eea0df com.py --- a/com.py Sun Jun 13 04:34:03 2010 +0200 +++ b/com.py Mon Jun 14 14:32:12 2010 +0200 @@ -56,14 +56,27 @@ def update(socket, client, worker, (modelName, iterations)): model = lookupModel(socket, client, modelName) if model: - for w in worker: + old_res = model.resolution + begin_y = model.range[0].imag + end_y = model.range[1].imag + begin_x = model.range[0].real + end_x = model.range[1].real + step_x = (end_x - begin_x) / len(worker) + model.resolution = (old_res[0] / len(worker), old_res[1]) + + for i, w in enumerate(worker): + new_begin_x = begin_x + step_x * i + new_end_x = begin_x + step_x * (i + 1) + model.range = (complex(new_begin_x, begin_y), + complex(new_end_x, end_y)) + print model.range + print model.resolution dump = pickle.dumps(model) - print w - socket.sendto("%010i%s%010i" % (len(dump), dump, int(iterations)), - w) - #model.update(int(iterations)) + socket.sendto("%010i%s%010i" % (len(dump), dump, int(iterations)), w) socket.sendto("model %s updated with max %s iterations\n" % (modelName, iterations), client) + model.range = (complex(begin_x, begin_y), complex(end_x, end_y)) + model.resolution = old_res commands = {"help": (help, "help"), "create model": (createModel, "creates a new model"), @@ -73,4 +86,4 @@ "set resolution": (setResolution, "sets the model resolution"), "set range": (setRange, "sets the model range"), "update": (update, "updates the model data"), - "add observer": (addObserver, "adds an observer to a model's events")} + "add observer": (addObserver, "adds an observer to a model's events"),}